HomeClusterLabs Projects

[PTMUd] if any threads receives a EMSGSIZE outside of a PMTUD run, force PTMUd…

Description

[PTMUd] if any threads receives a EMSGSIZE outside of a PMTUD run, force PTMUd to run

Scenario:

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@redhat.com>

Details

Provenance
fabbioneAuthored on Dec 30 2017, 12:19 AM
Parents
rK912be6b2bb46: [PMTUd] rename pmtud_running to pmtud_waiting
Branches
Unknown
Tags
Unknown

Event Timeline