Repository navigation
fix(mh): keep the reserved bits of 24 BitField flag namespaces on rebuild - #1421
Merged
Merged
Conversation
…uild Ten messages (BRM, FBack, FBU, FB, HAck, HI, Heartbeat, LRA, SR, UPN), twelve options (DNS-UPDATE, DMNP, DynIP Multicast Selector, IPv4 Address Ack, IPv4 DHCP Support Mode, IPv4 HoA Reply/Request, IPv4 Traffic Offload Selector, MAG Multipath Binding, NAT Detection, Redirect, Transient Binding), the Multi-Prefix CGA extension and the per-session bit-rate QoS attribute left bits of their flags word unnamed, so they were packed back as zero. Each site now names a 'reserved' sub-field, read into the data model (flags_reserved on messages, reserved elsewhere) and written by make(), defaulting to 0. Closes #1418 Refs #1288
Owner
Author
|
Verdict: GOOD TO GO at
|
Contributor
|
Coverage: 89.43% (unit tier, Python 3.14,
Per-file detail: the |
JarryShaw
added a commit
that referenced
this pull request
Oct 8, 2026
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.
maketargets not runmake testpasses, and a test case covers the change — only the modules listed belowWhat is the purpose of your pull request?
fix— corrects a defectDescription of your pull request and other information
Closes #1418
Refs #1288
All 24 sites name a
reservedsub-field, read into the data model (flags_reservedon the ten messages, sinceMH.reservedis the header octet;reservedon the options, Multi-Prefix extension and per-session bit-rate attribute) and written bymake(), default0. Follows #1345.Breaking: each of the 24 data classes gains a required field.
Before/after: each frame sets every reserved bit of its site. On
main,from_datarebuilt all 24 with those bits zeroed (e.g. Heartbeatfffc→0000, FBUcfff→c000). Now all 24 are byte-exact.Tests: new
tests/protocols/internet/test_mh_flags_reserved_unit.py, table-driven over all 24 sites: parse→from_data, make→parse, default 0, over-wide value rejected. Without the fix: 120 subtests fail. With it: 6 passed / 120 subtests.test_mh_unit.pystubs updated for the new field (52 passed).test_mh_roundtrip_unit6 passed,test_option_roundtrip_unit6 passed, legprotocols/internet572 OK,tests/project399 passed.Rebase note: #1416 is not merged yet. Its
KNOWN_GAPSlists these 24 MH entries; delete them when rebasing over #1416.