Author: Fabio M. Di Nitto <fdinitto(a)redhat.com>
Date: 2017-12-30 (Sat, 30 Dec 2017)
[PTMUd] if any threads receives a EMSGSIZE outside of a PMTUD run, force PTMUd to run
node X has MTU Y on the interface and application is sending packets with size >= Y.
The interface MTU is suddenly reduced to < Y
Before this change, the kernel would be dropping packets till the next PMTUd run.
After this change, the PMTUd will be informed that it has to rerun (overriding
the pmtud_interval), reducing the packet drop to a minimum.
How to test:
force knet_bench to send 1500 size packets with ping_data (requires code change)
and start it.
reduce MTU on the interface from 1500 to 1300 (for example)
Notice an immediate trigger of PMTUd run in debug mode
Note: going up, from 1300 to 1500 will wait for the next PMTUd re-run as there
is no immediate way to detect this change unless we start listening to kernel
netlink sockets with libnl3 (investigation in progress but not critical enough atm).
Signed-off-by: Fabio M. Di Nitto <fdinitto(a)redhat.com>