Skip to content
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

Reworked layer slicing to include payloads & add lax parsing methods #71

Merged
merged 98 commits into from
Feb 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
e3aaec5
Add function
JulianSchmid Jul 17, 2023
c4114fd
Modified description of lax function
JulianSchmid Jul 17, 2023
24cd0e8
Corrected IpHeader::from_slice_lax and added tests
JulianSchmid Jul 30, 2023
ddd2bf8
Applied rust fmt
JulianSchmid Jul 30, 2023
c0aac55
Fixed cargo clippy warnings
JulianSchmid Jul 30, 2023
b590ad8
Add tests for IpHeader::{v4, v6}
JulianSchmid Aug 31, 2023
cdbdf8f
Add comment to Ipv4Header::from_slice
JulianSchmid Sep 1, 2023
9284ed0
Add crate::IpHeader::ipv4_from_slice_lax
JulianSchmid Sep 1, 2023
226597c
Extend Ipv4Header::from_slice comment
JulianSchmid Sep 1, 2023
daa1ddd
Add IpHeader::ipv6_from_slice_lax
JulianSchmid Sep 2, 2023
512a8bf
Add Ipv4Slice::from_slice_lax
JulianSchmid Sep 2, 2023
58d366b
Update docs & added IpHeader::from_slice_lax ext content header tests
JulianSchmid Sep 2, 2023
0b0048b
Add tests for IpHeader::{ipv4_from_slice_lax, ipv6_from_slice_lax}
JulianSchmid Sep 2, 2023
da89640
Add Ipv4Slice::from_slice_lax tests
JulianSchmid Sep 2, 2023
28b1fd7
Renamed internet_slice.rs to ip_slice.rs
JulianSchmid Sep 2, 2023
359a572
Renamed InternetSlice to IpSlice and added deprecated alias
JulianSchmid Sep 2, 2023
39a9c90
Renamed src/packet_decoder.rs -> src/packet_headers.rs
JulianSchmid Sep 3, 2023
e7894b6
Moved checksum test from test folder to implementation tests
JulianSchmid Sep 3, 2023
a27e824
Moved packet builder tests to implementation
JulianSchmid Sep 3, 2023
90b7ff4
Removed Roadmap section from readme and root doc (replaced by tickets)
JulianSchmid Sep 3, 2023
d53399c
Removed test writer
JulianSchmid Sep 4, 2023
07fb82d
Migrate further tests to implementation
JulianSchmid Sep 4, 2023
a0dcbbf
Migrated tests to impls
JulianSchmid Sep 4, 2023
f205e7f
Moved composition tests
JulianSchmid Sep 4, 2023
cc92b37
Migrated ip header tests to impl
JulianSchmid Sep 4, 2023
3f200df
Migrate tests to impl
JulianSchmid Sep 4, 2023
91c4594
Removed dev dependencies to the test gens to get around rust analyzer…
JulianSchmid Sep 4, 2023
4b48172
Added IpSlice::from_ip_slice implementation
JulianSchmid Sep 5, 2023
a6950fb
Add IpSlice::from_ip_slice_lax tests
JulianSchmid Sep 5, 2023
cd37363
Applied rust fmt and extended Ipv4Header & Ipv4HeaderSlice documentation
JulianSchmid Sep 5, 2023
a194fa5
Add Ipv6Slice::from_slice_lax implementation & tests
JulianSchmid Sep 6, 2023
bc5254a
Update Ipv6Slice::from_slice doc
JulianSchmid Sep 6, 2023
89f1621
Update IpvXHeader::from_slice doc
JulianSchmid Sep 6, 2023
284b987
Correct documentation comments (ipvX headers)
JulianSchmid Sep 6, 2023
0680a66
Corrected Ipv4Slice::from_slice_lax test
JulianSchmid Sep 6, 2023
d0370d2
Add IpSlice From implementation for v4 & v6
JulianSchmid Sep 6, 2023
c3beb16
Add SlicedPacket::from_ip_lax implementation
JulianSchmid Sep 7, 2023
2c21dca
Add rest of lax parsing methods to SlicedPacket
JulianSchmid Sep 7, 2023
3cfd3ea
Renamed packet_slicing.rs to sliced_packet.rs
JulianSchmid Sep 7, 2023
192d034
Add Ipv6ExtensionsSlice::from_slice_lax
JulianSchmid Sep 9, 2023
13f2cc4
Correct lib module import
JulianSchmid Sep 9, 2023
ac2eaae
Add Ipv4Exts::from_slice_lax & additional documentation
JulianSchmid Sep 9, 2023
8b7e308
Apply rust fmt
JulianSchmid Sep 9, 2023
0455313
Add Ipv4Exts::from_slice_lax
JulianSchmid Sep 9, 2023
2cd64b8
Add Ipv4Exts::from_slice_lax tests
JulianSchmid Sep 9, 2023
f29fbfc
Add Ipv4ExtensionSlice::from_slice_lax tests
JulianSchmid Sep 9, 2023
56ecb6f
Add Ipv6Extensions::from_slice_lax
JulianSchmid Sep 9, 2023
07c9140
Add Ipv6Extensions::from_slice_lax tests
JulianSchmid Sep 10, 2023
774ffbf
Added Ipv6Extensions tests
JulianSchmid Sep 10, 2023
0fdc321
Add Ipv6ExtsSlice::from_slice_lax tests
JulianSchmid Sep 19, 2023
ee9266c
Renamed ip header errors to ip header's' errors
JulianSchmid Sep 26, 2023
0eb52b8
Added 's' suffix to ip header errors
JulianSchmid Sep 26, 2023
e30e678
Restructured errors for ip
JulianSchmid Sep 26, 2023
28494df
Correct lax error and debug tests
JulianSchmid Sep 26, 2023
98fd580
Renamed IpHeader to IpHeaders
JulianSchmid Sep 26, 2023
b8879c7
Adapted doc to IpHeader to IpHeaders rename
JulianSchmid Sep 26, 2023
e903e3a
Added alias IpHeader for backwards compatibility
JulianSchmid Sep 26, 2023
4e3a517
Rewrote VLAN parser to not trigger UB failure in MIRI
JulianSchmid Oct 29, 2023
c116fc8
Add err::packet::SliceError in preparation for LaxSlicedPacket
JulianSchmid Nov 12, 2023
12dae68
Changed payload behavior
JulianSchmid Dec 25, 2023
8c3cb88
Reworked interfaces to use typed payloads
JulianSchmid Dec 31, 2023
2c9b095
Applied rust fmt
JulianSchmid Dec 31, 2023
587a74a
Add LaxIpSlice & feature flag documentation
JulianSchmid Jan 5, 2024
1c5f7db
Add missing file & corrected typo
JulianSchmid Jan 5, 2024
201ea3a
Another round of typo fixes
JulianSchmid Jan 5, 2024
7cd3565
Finish up initial lax packet parsing
JulianSchmid Jan 7, 2024
d3851ef
Applied rust fmt
JulianSchmid Jan 7, 2024
ff2235a
Removed unused argument
JulianSchmid Jan 7, 2024
60fa666
Resolved clippy warnings
JulianSchmid Jan 7, 2024
cf62a96
Adpated ip header lax & doc fixes
JulianSchmid Jan 7, 2024
d9a28bd
Resolved compilation errors and aligned names in IpSlice
JulianSchmid Jan 16, 2024
54b0c87
Applied rust fmt
JulianSchmid Jan 16, 2024
bcdf9a6
Renamed 'internet' module to 'net'
JulianSchmid Jan 16, 2024
f87551d
Corrected ip_header file name
JulianSchmid Jan 16, 2024
07ab924
Added NetSlice, NetHeaders & LaxNetSlice and switched packet slicing …
JulianSchmid Jan 16, 2024
81ebe55
Applied rust fmt
JulianSchmid Jan 16, 2024
3846306
Doc updated
JulianSchmid Jan 22, 2024
07b07d7
More doc updates
JulianSchmid Jan 22, 2024
a47fbed
Update doc
JulianSchmid Jan 23, 2024
e967025
Removed duplicate file
JulianSchmid Jan 23, 2024
d074d86
Add UdpSlice::from_slice_lax
JulianSchmid Jan 23, 2024
0c510d2
Switched lax parsing to use UdpSlice::from_slice_lax
JulianSchmid Jan 23, 2024
06d33af
Doc updates
JulianSchmid Jan 23, 2024
aa46b2e
Added tests for LaxSlicedPacket
JulianSchmid Jan 28, 2024
1a4f091
Added test for lax parsing & solved clippy warning
JulianSchmid Jan 28, 2024
2dbf410
Add net slice tests
JulianSchmid Jan 28, 2024
ed2e0a5
Exclude proptests lib from coverage script
JulianSchmid Jan 28, 2024
1b18052
Add lax net slice tests
JulianSchmid Jan 28, 2024
f379fbf
Added net headers tests
JulianSchmid Jan 28, 2024
f2da336
Add LaxPacketHeaders & parsing functions
JulianSchmid Jan 28, 2024
52b2b9a
Add lax packet headers parse & test code
JulianSchmid Feb 3, 2024
0d4df1a
Re-enabled ICMPv4 regression test
JulianSchmid Feb 3, 2024
374a472
Moved LenSource to root module of crate
JulianSchmid Feb 3, 2024
80519cc
Add example for LaxPacketHeaders::from_ethernet
JulianSchmid Feb 3, 2024
c2092fe
Add example for LaxPacketHeaders::from_ether_type
JulianSchmid Feb 3, 2024
d6b22c1
Apply rust fmt & added LaxPacketHeaders::from_ip example
JulianSchmid Feb 3, 2024
e421fef
Added tests for payload slices
JulianSchmid Feb 3, 2024
e440268
Extended tests
JulianSchmid Feb 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[workspace]
resolver = "2"
members = [
"etherparse",
"etherparse_proptest_generators",
Expand Down
5 changes: 0 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,6 @@ Read the documentations of the different methods for a more details:
* [`Icmpv4Header::write`](https://docs.rs/etherparse/~0/etherparse/struct.Icmpv4Header.html#method.write)
* [`Icmpv6Header::write`](https://docs.rs/etherparse/~0/etherparse/struct.Icmpv6Header.html#method.write)

## Roadmap
* MutPacketSlice -> modifaction of fields in slices directly?
* Reserializing SlicedPacket & MutSlicedPacket with corrected checksums & id's
* IEEE 802.3

## References
* Darpa Internet Program Protocol Specification [RFC 791](https://tools.ietf.org/html/rfc791)
* Internet Protocol, Version 6 (IPv6) Specification [RFC 8200](https://tools.ietf.org/html/rfc8200)
Expand Down
6 changes: 2 additions & 4 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@

## 0.14.0

### TODO before release

* TODO: Use lengths in IP, UDP & TCP headers to correctly identify payload.

### New

* Added non-allocating `to_bytes()` methods that return `arrayvec::ArrayVec<u8, Header::MAX_LEN>` to the following headers:
Expand All @@ -23,6 +19,7 @@

### Breaking Changes:

* `packet_filter` has been removed
* Refactored error types so functions & methods (mostly) only return error types that they can cause.
* Removed `SerializedSize` trait and deprecated `SERIALIZED_SIZE`. Newly added constants `Header::LEN`, `Header::MIN_LEN` & `Header::MAX_LEN` to the headers as an replacement.
* `Ipv4Header.fragments_offset` renamed to `Ipv4Header.fragment_offset`.
Expand Down Expand Up @@ -50,6 +47,7 @@
### Deprecations / Renames:

* The following types have been renamed (alias with the old name exist for backwards compatibility but will trigger a deprecation warning):
* `InternetSlice` to `IpSlice`
* `IpAuthenticationHeader` to `IpAuthHeader`
* `IpAuthenticationHeaderSlice` to `IpAuthHeaderSlice`
* `Ipv6RawExtensionHeader` to `Ipv6RawExtHeader`
Expand Down
10 changes: 8 additions & 2 deletions coverage/coverage.bash
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ cargo cov -- report \
--ignore-filename-regex='/.cargo/registry' \
--ignore-filename-regex='/.rustup/toolchains' \
--ignore-filename-regex='/rustc' \
--ignore-filename-regex='etherparse_proptest_generators' \
"--instr-profile=${coverage_dir}/raw/merge.profdata" \
$(printf -- "-object %s " $(cat "${coverage_dir}/raw/filenames.txt")) \
> "${coverage_dir}/report_all.txt"
Expand All @@ -63,7 +64,8 @@ cargo cov -- report \
--ignore-filename-regex='/.cargo/registry' \
--ignore-filename-regex='/.rustup/toolchains' \
--ignore-filename-regex='/rustc' \
--ignore-filename-regex='tests/' \
--ignore-filename-regex='etherparse/tests/' \
--ignore-filename-regex='etherparse_proptest_generators' \
"--instr-profile=${coverage_dir}/raw/merge.profdata" \
$(printf -- "-object %s " $(cat "${coverage_dir}/raw/filenames.txt")) \
> "${coverage_dir}/report_without_tests.txt"
Expand All @@ -73,6 +75,7 @@ cargo cov -- show --format=html \
--ignore-filename-regex='/.cargo/registry' \
--ignore-filename-regex='/.rustup/toolchains' \
--ignore-filename-regex='/rustc' \
--ignore-filename-regex='etherparse_proptest_generators' \
"--instr-profile=${coverage_dir}/raw/merge.profdata" \
$(printf -- "-object %s " $(cat "${coverage_dir}/raw/filenames.txt")) \
"--output-dir=${coverage_dir}/html_all"
Expand All @@ -82,7 +85,8 @@ cargo cov -- show --format=html \
--ignore-filename-regex='/.cargo/registry' \
--ignore-filename-regex='/.rustup/toolchains' \
--ignore-filename-regex='/rustc' \
--ignore-filename-regex='tests/' \
--ignore-filename-regex='etherparse/tests/' \
--ignore-filename-regex='etherparse_proptest_generators' \
"--instr-profile=${coverage_dir}/raw/merge.profdata" \
$(printf -- "-object %s " $(cat "${coverage_dir}/raw/filenames.txt")) \
"--output-dir=${coverage_dir}/html_without_tests"
Expand All @@ -92,6 +96,7 @@ cargo cov -- export --format=lcov \
--ignore-filename-regex='/.cargo/registry' \
--ignore-filename-regex='/.rustup/toolchains' \
--ignore-filename-regex='/rustc' \
--ignore-filename-regex='etherparse_proptest_generators' \
"--instr-profile=${coverage_dir}/raw/merge.profdata" \
$(printf -- "-object %s " $(cat "${coverage_dir}/raw/filenames.txt")) \
> "${coverage_dir}/export.lcov.txt"
Expand All @@ -101,6 +106,7 @@ cargo cov -- export --format=text \
--ignore-filename-regex='/.cargo/registry' \
--ignore-filename-regex='/.rustup/toolchains' \
--ignore-filename-regex='/rustc' \
--ignore-filename-regex='etherparse_proptest_generators' \
"--instr-profile=${coverage_dir}/raw/merge.profdata" \
$(printf -- "-object %s " $(cat "${coverage_dir}/raw/filenames.txt")) \
> "${coverage_dir}/export.json"
Expand Down
5 changes: 4 additions & 1 deletion etherparse/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,7 @@ arrayvec = { version = "0.7.2", default-features = false }

[dev-dependencies]
proptest = "1.0.0"
etherparse_proptest_generators = { path = "../etherparse_proptest_generators" }

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
10 changes: 5 additions & 5 deletions etherparse/examples/read_by_slicing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,17 @@ fn main() {
Err(value) => println!("Err {:?}", value),
Ok(value) => {
println!("Ok");
use etherparse::{InternetSlice::*, LinkSlice::*, TransportSlice::*, VlanSlice::*};
use etherparse::{LinkSlice::*, NetSlice::*, TransportSlice::*, VlanSlice::*};

match value.link {
Some(Ethernet2(value)) => println!(
" Ethernet2 {:?} => {:?}",
value.source(),
value.destination()
),
Some(EtherPayload(payload)) => {
println!(" EtherPayload (ether type {:?})", payload.ether_type)
}
None => {}
}

Expand All @@ -57,7 +60,7 @@ fn main() {
None => {}
}

match value.ip {
match value.net {
Some(Ipv4(ipv4)) => {
println!(
" Ipv4 {:?} => {:?}",
Expand Down Expand Up @@ -99,9 +102,6 @@ fn main() {
value.options_iterator().collect();
println!(" {:?}", options);
}
Some(Unknown(ip_protocol)) => {
println!(" Unknwon Protocol (ip protocol number {:?}", ip_protocol)
}
None => {}
}
}
Expand Down
1 change: 1 addition & 0 deletions etherparse/proptest-regressions/internet/ip_header.txt

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions etherparse/proptest-regressions/internet/ip_slice.txt

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions etherparse/proptest-regressions/internet/ipv4_exts.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Seeds for failure cases proptest has generated in the past. It is
# automatically read and these particular cases re-run before any
# novel cases are generated.
#
# It is recommended to check this file in to source control so that
# everyone who runs the test benefits from these saved cases.
cc 437386ca2a231427893f72679446650276d0b4913d7a8a27c4d792a864806647 # shrinks to auth = IpAuthHeader { next_header: 38 (IDPR-CMTP - IDPR Control Message Transport Proto), spi: 0, sequence_number: 0, raw_icv: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 97, 221, 214, 171, 240, 40, 121, 63, 60, 128, 84, 176, 126, 51, 89, 111, 186, 144, 173, 18, 139, 65, 203, 201, 92, 255, 180, 14, 203, 163, 11, 179, 7, 7, 44, 142, 26, 247, 206, 130, 175, 158, 169, 170, 53, 78, 236, 79, 248, 144, 107, 85, 25, 231, 37, 222, 117, 244, 14, 164, 136, 68, 30, 9, 152, 134, 8, 107, 211, 118, 102, 203, 44, 90, 247, 6, 60, 144, 125, 230, 101, 125, 199, 47, 9, 219, 201, 123, 113, 85, 150, 243, 215, 176, 57, 142, 140, 220, 179, 126, 63, 100, 189, 58, 92, 213, 238, 109, 145, 122, 108, 13, 84, 177, 150, 236, 215, 245, 9, 236, 61, 38, 196, 191, 11, 4, 67, 249, 253, 248, 93, 155, 186, 11, 233, 120, 56, 0, 75, 188, 241, 134, 41, 24, 140, 124, 243, 63, 181, 106, 63, 178, 153, 228, 48, 183, 170, 194, 182, 78, 79, 158, 164, 174, 233, 241, 186, 105, 165, 182, 78, 161, 58, 0, 79, 190, 201, 77, 133, 75, 123, 169, 93, 88, 95, 173, 136, 6, 211, 97, 219, 238, 252, 206, 235, 86, 16, 179, 250, 233, 55, 239, 251, 241, 196, 226, 20, 203, 78, 133, 131, 236, 204, 2, 121, 79, 195, 197, 60, 168, 16, 195, 122, 1, 229, 178, 15, 53, 93, 72, 88, 163, 136, 58, 109, 44, 22, 76, 79, 213, 168, 141, 197, 110, 56, 32, 240, 253, 168, 147, 28, 171, 238, 239, 95, 88, 31, 181, 5, 66, 31, 44, 246, 201, 112, 20, 187, 46, 14, 171, 193, 142, 27, 73, 2, 56, 93, 251, 147, 55, 30, 194, 37, 102, 65, 85, 131, 113, 130, 109, 209, 13, 198, 168, 176, 241, 218, 70, 210, 178, 12, 184, 184, 234, 122, 128, 217, 237, 101, 102, 209, 68, 46, 108, 100, 178, 85, 21, 143, 224, 206, 231, 236, 204, 153, 111, 31, 253, 141, 148, 181, 154, 120, 66, 0, 177, 29, 166, 179, 187, 53, 219, 42, 136, 217, 95, 213, 205, 151, 236, 1, 52, 56, 11, 164, 146, 137, 40, 41, 50, 137, 154, 113, 175, 199, 151, 18, 168, 211, 205, 230, 131, 171, 214, 157, 21, 228, 116, 32, 91, 216, 181, 48, 223, 154, 94, 146, 193, 114, 113, 44, 212, 98, 69, 134, 119, 74, 173, 173, 119, 49, 130, 23, 28, 207, 167, 180, 86, 13, 109, 36, 84, 194, 113, 36, 33, 161, 221, 172, 19, 75, 16, 108, 51, 255, 118, 74, 101, 172, 238, 105, 45, 12, 101, 28, 108, 77, 234, 251, 196, 233, 187, 40, 176, 220, 4, 59, 128, 48, 95, 49, 123, 37, 224, 62, 36, 217, 103, 12, 152, 162, 26, 49, 148, 82, 50, 63, 64, 7, 102, 185, 45, 71, 41, 184, 55, 195, 172, 80, 217, 251, 38, 5, 194, 139, 67, 61, 160, 52, 15, 173, 116, 153, 111, 222, 228, 145, 193, 14, 134, 6, 28, 66, 148, 163, 111, 107, 15, 94, 157, 48, 154, 36, 145, 41, 15, 3, 7, 208, 168, 153, 239, 109, 16, 117, 90, 254, 130, 187, 186, 72, 40, 194, 27, 25, 115, 31, 248, 20, 19, 145, 123, 27, 39, 30, 141, 189, 30, 229, 102, 208, 174, 249, 221, 170, 241, 156, 193, 138, 20, 26, 65, 228, 31, 99, 163, 213, 50, 225, 17, 227, 96, 47, 136, 8, 118, 176, 216, 181, 24, 32, 139, 41, 78, 179, 212, 101, 15, 124, 188, 33, 86, 175, 129, 121, 246, 11, 25, 121, 184, 144, 12, 108, 177, 9, 113, 108, 82, 214, 207, 215, 118, 239, 129, 56] }
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
#
# It is recommended to check this file in to source control so that
# everyone who runs the test benefits from these saved cases.
cc 5b09c952f4a0d41917d3992eaeaea3686706086170afab226dd252df65a643f6 # shrinks to header_size = 0, post_header = 1
cc 8241e4aed6355dae62ebffd014e532bc315a4795977336d48b8ed9b83ae04d6f # shrinks to header_size = 0, post_header = 1 (ICMP - Internet Control Message)
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
#
# It is recommended to check this file in to source control so that
# everyone who runs the test benefits from these saved cases.
cc 55bd1154c311f3811677737988feb70774f6e5b164cd29b9ba1ea1a0aa51dc0d # shrinks to checksum = 0, rand_u32 = 0, rand_4bytes = [0, 0, 0, 0]
cc 925b9a2a0ec5a0f366aebbadd60534e57feb06ff69477bf7d18e5fa85168aee3 # shrinks to header_size = 0, post_header = 52 (I-NLSP - Integrated Net Layer Security TUBA)
8 changes: 8 additions & 0 deletions etherparse/proptest-regressions/internet/lax_ip_slice.txt

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions etherparse/proptest-regressions/internet/lax_ipv4_slice.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Seeds for failure cases proptest has generated in the past. It is
# automatically read and these particular cases re-run before any
# novel cases are generated.
#
# It is recommended to check this file in to source control so that
# everyone who runs the test benefits from these saved cases.
cc 4724ddcae41fb2b83ddd860c5a2af55e5da54b5bf7a344cb018b37c7e1566921 # shrinks to v4 = Ipv4Header { dscp: Ipv4Dscp(19), ecn: Ipv4Ecn(3), total_len: 1385, identification: 26272, dont_fragment: true, more_fragments: true, fragment_offset: IpFragOffset(3574), time_to_live: 83, protocol: 36 (XTP - XTP), header_checksum: 50303, source: [0, 0, 0, 0], destination: [0, 99, 43, 14], options: [] }, v4_exts = Ipv4Extensions { auth: Some(IpAuthHeader { next_header: 76 (BR-SAT-MON - Backroom SATNET Monitoring), spi: 1975662188, sequence_number: 2239760872, raw_icv: [149, 42, 236, 203, 206, 127, 250, 146, 34, 212, 83, 211, 63, 59, 197, 24, 243, 51, 121, 242, 6, 58, 30, 213, 7, 57, 47, 36, 199, 171, 193, 6, 89, 77, 70, 234, 57, 24, 120, 65, 135, 210, 111, 93, 149, 12, 90, 25, 124, 10, 245, 131, 62, 171, 96, 34, 203, 3, 160, 81, 254, 240, 254, 121, 254, 166, 98, 226, 130, 81, 168, 50, 161, 31, 25, 221, 10, 132, 169, 126, 112, 215, 19, 208, 137, 123, 159, 114, 89, 236, 32, 170, 235, 242, 221, 105, 65, 252, 238, 35, 105, 238, 161, 70, 142, 180, 57, 148, 244, 140, 104, 255, 177, 102, 155, 81, 213, 241, 22, 10, 5, 54, 203, 135, 207, 222, 91, 252, 61, 224, 149, 197, 64, 231, 27, 57, 150, 234, 154, 115, 140, 168, 140, 31, 59, 210, 57, 254, 36, 118, 160, 123, 119, 199, 70, 161, 248, 63, 162, 143, 120, 67, 243, 19, 79, 78, 78, 94, 39, 253, 0, 124, 31, 45, 59, 11, 216, 187, 215, 37, 66, 3, 112, 93, 255, 226, 81, 22, 21, 220, 156, 47, 164, 95, 63, 99, 46, 166, 247, 15, 23, 43, 228, 1, 47, 135, 102, 241, 42, 178, 76, 53, 197, 143, 7, 121, 248, 233, 224, 149, 141, 145, 115, 47, 179, 104, 98, 53, 19, 14, 92, 231, 140, 61, 246, 100, 42, 224, 94, 104, 46, 243, 142, 216, 127, 188, 31, 173, 77, 3, 157, 233, 65, 211, 225, 98, 158, 34, 119, 76, 199, 167, 21, 109, 115, 99, 87, 164, 91, 144, 224, 55, 172, 148, 163, 166, 121, 233, 160, 65, 142, 67, 112, 230, 204, 3, 162, 29, 163, 179, 237, 30, 119, 180, 106, 15, 60, 157, 182, 123, 189, 110, 212, 146, 211, 4, 58, 180, 27, 112, 244, 167, 181, 233, 154, 220, 68, 164, 102, 140, 207, 135, 65, 151, 126, 56, 220, 203, 118, 86, 197, 146, 22, 182, 200, 181, 47, 97, 182, 93, 123, 99, 51, 158, 179, 40, 108, 227, 127, 3, 41, 164, 202, 5, 42, 170, 158, 245, 128, 238, 255, 158, 167, 162, 61, 6, 142, 212, 122, 151, 208, 143, 15, 206, 154, 28, 114, 156, 174, 219, 216, 73, 239, 53, 217, 137, 248, 106, 44, 50, 217, 69, 54, 57, 41, 61, 193, 155, 57, 232, 4, 184, 22, 129, 60, 109, 110, 140, 120, 178, 5, 167, 183, 47, 237, 140, 249, 134, 181, 14, 235, 43, 80, 150, 126, 121, 9, 63, 20, 109, 166, 47, 105, 195, 125, 225, 148, 127, 150, 211, 161, 244, 238, 216, 193, 215, 194, 7, 162, 70, 39, 108, 178, 6, 16, 166, 254, 18, 22, 180, 44, 128, 134, 254, 29, 122, 254, 152, 25, 154, 248, 115, 234, 137, 106, 205, 118, 38, 25, 203, 145, 5, 163, 45, 102, 68, 211, 71, 66, 135, 40, 77, 177, 249, 215, 23, 186, 8, 226, 173, 126, 212, 107, 192, 158, 234, 155, 41, 152, 107, 171, 7, 79, 71, 46, 213, 83, 41, 168, 85, 157, 143, 242, 43, 169, 151, 76, 151, 115, 30, 231, 137, 28, 194, 167, 73, 35, 79, 250, 91, 17, 148, 219, 208, 42, 101, 175, 72, 241, 236, 209, 241, 106, 233, 91, 184, 153, 95, 100, 41, 150, 56, 251, 179, 203, 78, 155, 86, 50, 143, 78, 224, 16, 30, 129, 212, 125, 244, 214, 178, 23, 151, 166, 178, 51, 121, 106, 118, 6, 71, 215, 222, 233, 95, 234, 17, 67, 69, 200, 213, 248, 81, 147, 169, 197, 195, 227, 48, 131, 136, 189, 87, 189, 95, 76, 209, 20, 110, 222, 233, 255, 59, 60, 253, 100, 166, 188, 119, 103, 239, 74, 137, 55, 200, 76, 69, 157, 97, 141, 133, 27, 183, 148, 70, 189, 228, 200, 87, 38, 211, 244, 63, 246, 166, 179, 88, 59, 44, 187, 36, 167, 16, 98, 57, 136, 0, 39, 253, 169, 81, 45, 193, 218, 217, 125, 115, 124, 27, 48, 94, 254, 99, 227, 50, 248, 159, 206, 244, 239, 51, 210, 161, 206, 74, 38, 64, 15, 93, 90, 197, 76, 232, 238, 98, 68, 177, 29, 115, 232, 74, 110, 163, 93, 10, 197, 237, 31, 16, 122, 23, 133, 152, 245, 131, 255, 27, 135, 115, 22, 27, 228, 175, 107, 18, 106, 179, 166, 58, 50, 10, 69, 125, 138, 49, 50, 111, 206, 118, 15, 83, 236, 199, 65, 100, 195, 91, 124, 155, 2, 101, 239, 227, 146, 16, 254, 75, 228, 149, 108, 67, 195, 194, 140, 187, 160, 213, 109, 141, 11, 184, 234, 96, 99, 45, 0, 31, 17, 138, 237, 0, 189, 64, 5, 51, 239, 23, 154, 251, 243, 83, 157, 200, 210, 31, 33, 102, 101, 107, 103, 60, 184, 240, 168, 74, 16, 22, 158, 84, 167, 232, 15, 55, 216, 217, 159, 250, 23, 50, 4, 44, 24, 243, 188, 231, 18, 183] }) }
7 changes: 7 additions & 0 deletions etherparse/proptest-regressions/internet/lax_ipv6_slice.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Seeds for failure cases proptest has generated in the past. It is
# automatically read and these particular cases re-run before any
# novel cases are generated.
#
# It is recommended to check this file in to source control so that
# everyone who runs the test benefits from these saved cases.
cc f0761b48eac05085c3fa2a6c5c20148568d377c333f962b765f2f185e1615430 # shrinks to ipv6_base = Ipv6Header { traffic_class: 148, flow_label: Ipv6FlowLabel(94032), payload_length: 38061, next_header: 10 (BBN-RCC-MON - BBN RCC Monitoring), hop_limit: 199, source: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], destination: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 216, 64, 193, 21, 9] }, auth_base = IpAuthHeader { next_header: 70 (VISA - VISA Protocol), spi: 535744038, sequence_number: 2726038174, raw_icv: [101, 79, 87, 105, 27, 252, 79, 166, 200, 200, 250, 158, 215, 243, 207, 2, 14, 154, 125, 118, 37, 26, 26, 99, 165, 92, 245, 187, 220, 245, 106, 51, 81, 140, 144, 21, 252, 209, 168, 117, 214, 156, 133, 228, 83, 41, 203, 119, 213, 137, 26, 175, 163, 109, 132, 64, 101, 9, 59, 189, 37, 109, 143, 133, 88, 188, 109, 163, 26, 80, 121, 143, 209, 36, 34, 216, 233, 225, 33, 164, 132, 192, 168, 6, 116, 230, 117, 59, 145, 216, 87, 1, 229, 122, 31, 19, 52, 9, 253, 54, 40, 198, 159, 197, 234, 26, 156, 10, 9, 44, 183, 157, 171, 4, 2, 32, 82, 38, 79, 119, 179, 29, 164, 188, 189, 95, 79, 236, 248, 39, 244, 190, 160, 232, 50, 157, 3, 101, 243, 113, 142, 154, 244, 13, 44, 160, 185, 246, 110, 70, 184, 112, 89, 39, 8, 233, 102, 126, 227, 110, 80, 233, 70, 124, 220, 9, 226, 250, 142, 73, 153, 18, 255, 229, 148, 203, 76, 37, 211, 145, 252, 105, 156, 150, 42, 78, 90, 59, 83, 202, 43, 216, 64, 221, 135, 159, 34, 161, 26, 55, 18, 2, 125, 110, 71, 25, 149, 101, 69, 87, 122, 143, 190, 56, 83, 112, 4, 42, 239, 171, 36, 33, 229, 47, 231, 247, 2, 212, 193, 167, 119, 171, 223, 56, 205, 10, 150, 67, 15, 180, 54, 226, 71, 30, 69, 25, 38, 55, 117, 184, 229, 123, 135, 89, 220, 55, 55, 91, 18, 21, 81, 214, 42, 14, 240, 227, 95, 71, 190, 125, 47, 84, 245, 101, 102, 199, 195, 13, 154, 66, 234, 119, 135, 38, 242, 176, 185, 67, 73, 91, 76, 2, 73, 118, 131, 153, 178, 50, 96, 119, 158, 125, 186, 29, 8, 186, 16, 127, 65, 180, 234, 99, 36, 97, 115, 255, 210, 103, 122, 73, 10, 88, 108, 180, 146, 112, 160, 230, 151, 11, 133, 100, 158, 135, 55, 65, 244, 62, 166, 102, 228, 221, 147, 250, 145, 203, 127, 247, 247, 152, 1, 122, 98, 42, 31, 246, 167, 222, 149, 92, 223, 103, 147, 194, 194, 149, 99, 82, 151, 82, 29, 31, 42, 57, 175, 68, 115, 22, 79, 57, 162, 63, 191, 68, 171, 117, 140, 211, 5, 107, 161, 94, 248, 245, 38, 221, 216, 107, 243, 119, 100, 184, 138, 121, 112, 130, 97, 208, 237, 163, 5, 255, 27, 142, 20, 109, 177, 63, 91, 115, 118, 207, 39, 68, 110, 94, 251, 252, 39, 11, 189, 46, 72, 70, 177, 26, 94, 47, 52, 55, 197, 126, 106, 215, 184, 89, 79, 212, 85, 91, 13, 87, 42, 77, 26, 20, 142, 200, 110, 224, 14, 121, 109, 120, 194, 235, 255, 31, 67, 49, 161, 149, 37, 222, 165, 72, 88, 32, 96, 165, 20, 162, 107, 174, 157, 94, 84, 122, 224, 226, 88, 127, 64, 183, 138, 185, 126, 59, 229, 56, 219, 129, 162, 126, 215, 126, 147, 249, 215, 46, 80, 152, 251, 33, 199, 48, 218, 32, 60, 26, 154, 242, 163, 184, 50, 235, 147, 211, 207, 183, 239, 199, 192, 236, 106, 157, 240, 45, 205, 162, 42, 48, 154, 172, 47, 43, 133, 57, 124, 134, 29, 177, 254, 105, 128, 40, 233, 77, 131, 98, 198, 29, 97, 165, 19, 25, 197, 132, 223, 7, 25, 154, 241, 138, 16, 123, 232, 254, 117, 165, 1, 2, 11, 135, 89, 79, 93, 119, 217, 90, 0, 99, 48, 74, 7, 68, 185, 185, 8, 131, 11, 130, 126, 9, 179, 113, 11, 17, 212, 51, 180, 161, 48, 163, 113, 53, 96, 73, 112, 133, 82, 72, 10, 14, 38, 210, 209, 205, 45, 157, 151, 182, 186, 58, 248, 156, 119, 20, 14, 106, 133, 64, 224, 226, 129, 239, 79, 69, 179, 64, 142, 182, 79, 157, 161, 11, 180, 237, 105, 99, 71, 157, 191, 235, 63, 137, 28, 217, 148, 241, 107, 210, 52, 76, 133, 138, 49, 136, 0, 131, 153, 139, 196, 54, 47, 170, 70, 130, 17, 223, 44, 70, 196, 184, 37, 195, 238, 214, 32, 0, 142, 144, 157, 173, 50, 174, 141, 42, 13, 36, 189, 73, 144, 119, 167, 86, 114, 17, 67, 126, 51, 50, 150, 59, 49, 189, 44, 68, 203, 222, 218, 217, 153, 117, 6, 194, 21, 246, 7, 51, 234, 231, 54, 66, 182, 157, 1, 188, 75, 132, 30, 106, 47, 206, 242, 245, 208, 83, 194, 88, 251, 124, 73, 134, 68, 35, 76, 180, 2, 4, 35, 244, 114, 209, 14, 23, 255, 97, 31, 120, 37, 245, 41, 49, 247, 21, 127, 120] }
Loading
Loading