Branch: refs/heads/pmtu-fixes
Home:
https://github.com/kronosnet/kronosnet
Commit: 2b1cd7120428690d8181afae7949f5be2dcac92c
https://github.com/kronosnet/kronosnet/commit/2b1cd7120428690d8181afae7949f…
Author: Fabio M. Di Nitto <fdinitto(a)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(a)redhat.com>