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