refactor(s2n-quic-core): use an event handler for XDP decoding #1732
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:
While implementing the AF_XDP IO provider, I realized I didn't expose a way to get the ECN value out of the XDP decoding function. I've repurposed the
Validator
trait to be a more genericEventHandler
trait which has callbacks for each of the different types of headers we handle. I've also implemented this trait for thexdp::path::Tuple
anddatagram::Header
to make it easy to extract all of the required information for the IO traits.Call-outs:
The latest nightly started complaining about conflicting exports in
inet
- each module has aHeader
and does apub use module::*;
. I made it so they all explicitly export types that are used in the code base.Testing:
All of the XDP decoder tests should handle this change. I've also updated the BPF programs and checked that they continue to load and pass the kernel verifier.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.