Branch: refs/heads/pmtud-fixes Home: https://github.com/kronosnet/kronosnet Commit: 77aa525da66c13d61fcf7c2a35df584c50d546ba https://github.com/kronosnet/kronosnet/commit/77aa525da66c13d61fcf7c2a35df58... Author: Fabio M. Di Nitto fdinitto@redhat.com Date: 2019-08-12 (Mon, 12 Aug 2019)
Changed paths: M libknet/Makefile.am M libknet/crypto.c M libknet/crypto_model.h M libknet/crypto_nss.c M libknet/crypto_openssl.c M libknet/internals.h M libknet/links.c A libknet/onwire.c M libknet/onwire.h M libknet/tests/Makefile.am A libknet/tests/fun_pmtud_crypto.c M libknet/threads_common.c M libknet/threads_pmtud.c
Log Message: ----------- [PMTUd] rework the whole math to calculate MTU
internal changes: - drop the concept of sec_header_size that was completely wrong and unnecessary - bump crypto API to version 3 due to the above change - clarify the difference between link->proto_overhead and link->status->proto_overhead. We cannot rename the status one as it would also change ABI. - add onwire.c with documentation on the packet format and what various len(s) mean in context. - add 3 new functions to calculate MTUs back and forth and use them around, hopefully with enough clarification on why things are done in a given way. - heavily change thread_pmtud.c to use those new facilities. - fix major calculation issues when using crypto (non-crypto was not affected by the problem). - fix checks around to make sure they match the new math. - fix padding calculation. - add functional PMTUd crypto test this test can take several hours (12+) and should be executed on a controlled environment since it automatically changes loopback MTU to run tests.
user visible changes: - Global MTU is now calculated properly when using crypto and values will be in general bigger than before due to incorrect padding calculation in the previous implementation.
Signed-off-by: Fabio M. Di Nitto fdinitto@redhat.com