fix(s2n-quic-transport): handle MaxMtu smaller than Base PLPMTU #1893
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes:
In #1737 we starting disabling MTU probing when the socket cannot support it by setting the
MaxMtu
for the endpoint toMaxMtu::MIN
.MaxMtu::MIN
is based on the smaller of the minimal IPv4 and IPv6 header lengths. Themtu::controller
had a debug assertion that validated that the givenMaxMtu
is larger than a value that was dependent on if the peer socket address wasIPv4
orIPv6
. This means that an endpoint starting on a platform that cannot support MTU probing but can support IPv6 would fail this debug assertion, as the IPv6 header is larger. This change removes the debug assertion and instead just takes the max with theBASE_PLPMTU
.I've also removed some usage of the
IPV6
feature that had previously been removed in #886Testing:
Updated unit test, and tested locally on MacOS, which experiences this issue.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.