Repository navigation
fix(mh)!: keep the reserved octets MH PaddingField sites capture (#1437) - #1442
Merged
Merged
Conversation
- 38 MH reserved PaddingField sites (8 message bodies, 22 options, 3 Flow Identification sub-options, 1 ANI sub-option, 4 QoS attributes) were dropped by their readers, so a rebuild wrote zeros. The readers now keep them on the data model -- `msg_reserved` on a message, `reserved` elsewhere -- and the makers write them back, with a zero default for fresh builds. - Breaking: those data models gain a required `bytes` field. - tests/protocols/internet/test_mh_unit.py: hand-built schemas and data models carry the new field. Refs #1437 (part A: MH)
Owner
Author
|
Verdict: GOOD TO GO at
Worth a decision while the change is breaking anyway:
|
Contributor
|
Coverage: 89.49% (unit tier, Python 3.14,
Per-file detail: the |
This was referenced Oct 9, 2026
Closed
This file contains hidden or 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
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.
mypyon the 3 MH modules: no new errors vsmain(311 both);pylintadds onlyunused-argumenton the newTYPE_CHECKINGstub parameters (as every existing stub does);isortnot runmake testpasses, and a test case covers the change — ordering legprotocols/internet588 OK;test_bitfield_coverage_unit3 passed;tests/project419 passed, 1 skippedWhat is the purpose of your pull request?
fix— corrects a defectDescription of your pull request and other information
Refs #1437 (part A: MH). Part B (IPv4, L2TP, PCAP-NG) is a separate PR.
Every MH reserved
PaddingFieldthat #1436 did not thread, all 38, zero-filled on rebuild. Measured onmain: Home Test Init…0101000000aabb…became…010100000000…, and GRE Key2102aabbbecame21020000. The 38 are 8 message bodies, 22 options, 3 Flow Identification sub-options, 1 ANI sub-option and 4 QoS attributes. Each reader now keeps the octets (msg_reservedon a message, apart from the header'sreserved;reservedelsewhere). Each maker takes them as a keyword and writes them back through a tolerantgetattr. A fresh build still writes zeros.Breaking: those 38 data models gain a required
bytesfield.test_mh_unit.pyhad five hand-built fixtures, which now carry it.New
tests/protocols/internet/test_mh_reserved_padding_unit.pycovers parse→rebuild byte-exact and fresh-build zeros for all 38 sites, and checks that the site list matches the schema. Onmainit fails 40 (38 sub-tests + 2). Aftermake_samples.py,options-internet.pcapinfogains only zero-valuedmsg_reserved/reserved(8 + 22 frames), with no other change.