Branch: refs/heads/pmtu-fixes Home: https://github.com/kronosnet/kronosnet Commit: 2b1cd7120428690d8181afae7949f5be2dcac92c https://github.com/kronosnet/kronosnet/commit/2b1cd7120428690d8181afae7949f5... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2017-11-26 (Sun, 26 Nov 2017)
Changed paths: M libknet/internals.h M libknet/links.c M libknet/threads_pmtud.c
Log Message: ----------- [pmtud] fix PMTU detection when link is first up
we noticed, during testing, that from time to time the kernel would return EMSGSIZE also on known valid packet specially during first time link intialization.
after re-reading carefully man 7 ip, it turns out that we did not account for:
"While MTU discovery is in progress, initial packets from datagram sockets may be dropped. Applications using UDP should be aware of this and not take it into account for their packet retransmit strategy."
as solution, we use the first PMTUd run to send a series of packets that will give time to the kernel to perform its own PMTU detection before we start operating.
This can probably lay the base for sending packets, and then use getsockopt to determine the link MTU vs rely on other nodes reply.
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com