HomeClusterLabs Projects

[PMTUd] rework the whole math to calculate MTU

Description

[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.
  • fix way the lowest MTU is calculated during a PMTUd run to avoid spurious double notifications.
  • drop redundant checks.

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>

Details

Provenance
fabbioneAuthored on Aug 12 2019, 10:52 AM
Parents
rK496748b133b6: [PMTUd] fix MTU calculation when using crypto and add docs
Branches
Unknown
Tags
Unknown

Event Timeline