-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Packet parser part 1 #167
Merged
Merged
Packet parser part 1 #167
+4,524
−895
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
daniel-noland
force-pushed
the
pr/daniel-noland/parser-part-1
branch
3 times, most recently
from
January 25, 2025 17:47
ecf6ab1
to
262b21d
Compare
Closed
daniel-noland
force-pushed
the
pr/daniel-noland/parser-part-1
branch
22 times, most recently
from
January 31, 2025 08:04
de5a252
to
77e6ca8
Compare
Now that we have selected a license it should be reflected in the Cargo.toml file Signed-off-by: Daniel Noland <[email protected]>
This is bother easier to maintain and more friendly to deny.toml. Signed-off-by: Daniel Noland <[email protected]>
mvachhar
reviewed
Jan 31, 2025
mvachhar
requested changes
Jan 31, 2025
daniel-noland
force-pushed
the
pr/daniel-noland/parser-part-1
branch
from
February 1, 2025 00:31
d133341
to
92f4364
Compare
This commit changes the default build to only include packages which don't require the sysroot. This should ease development on developer machines using operating systems other than linux or processors which are not x86_64. Ordinary `cargo build` should function on such machines after this commit. In order to build dpdk-sys based packages, run ``` just cargo build --package=dpdk-sys ``` or ``` just cargo build --package=dpdk ``` or ``` just cargo build --package=dataplane ``` Signed-off-by: Daniel Noland <[email protected]>
The big change is that `forbid(unsafe_code)` and `no_std` are not viable modes after the upcomming expansion. The primary reason for this is that we will make significant use of const-evaluated unsafe code (which is benign) but which will offend the linter. no_std was always just a crude means of forbidding IO and discouraging memory allocations in the net crate. Given that the etherparse error handling requires std, this is no longer useful. Signed-off-by: Daniel Noland <[email protected]>
daniel-noland
force-pushed
the
pr/daniel-noland/parser-part-1
branch
5 times, most recently
from
February 1, 2025 01:22
f5d570f
to
4d1ff39
Compare
daniel-noland
force-pushed
the
pr/daniel-noland/parser-part-1
branch
from
February 1, 2025 04:44
6376955
to
b33d91b
Compare
mvachhar
approved these changes
Feb 1, 2025
I'm sorry this is such a large commit! The problem with breaking it into smaller parts is that the headers frequently depend on each other. Also, given that all of this code shares a common objective, I'm not convinced that breaking the commit into smaller components will aid review. Of (arguably) more significant note, this commit is decidedly incomplete (in spite of its massive size). It explicitly does not include parsing and manipulation of some of the less immediately needed header types (ICMPv4/6). This is mostly due to time constraints. The remaining parts (and tests) should be done in part two (ideally after other developers have had a chance to use and criticize the API I have cooked up here) Signed-off-by: Daniel Noland <[email protected]>
This new just recipe compiles all commits between the current commit and ths commit labeled start. The goal is to speed up development by making sure your commits build before you send them to CI. Signed-off-by: Daniel Noland <[email protected]>
As of rust 1.84 the new resolver is available. May as well jump to it Signed-off-by: Daniel Noland <[email protected]>
rust.env was requiring static linking with libc. That works until you need a sanitizer (which doesn't currently support static libc build). Since the fuzz tests use sanitizers, adjust rust.env to allow fuzz tests to be built with dynamic libc. Debug builds use the default (i.e., static for musl and dynamic for glibc). Release builds still require static linking. Signed-off-by: Daniel Noland <[email protected]>
For unknown reasons, nextest is hanging in the CI. I don't have time to debug that so fall back to cargo test. Signed-off-by: Daniel Noland <[email protected]>
These files are created by the fuzzer to help guide it over as many code paths as possible. Technically, we could check them in, but I think that is silly at this point. Signed-off-by: Daniel Noland <[email protected]>
profraw files are generated by programs instrumented by LLVM to track performance and coverage. They are useful for the fuzzer but not useful to check in to git. Signed-off-by: Daniel Noland <[email protected]>
daniel-noland
force-pushed
the
pr/daniel-noland/parser-part-1
branch
from
February 1, 2025 04:51
b33d91b
to
6aec261
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Introduce part 1 of the packet parsing and manipulation framework.