Repository navigation
fix(ipv4)!: the TS option zeroes the timestamp slots beyond the pointer on rebuild (#1349) - #1390
Conversation
…r on rebuild `ts_data` now models every 32-bit slot of the option; the slots at or beyond the pointer are the new data field `remaining` (raw words) and a make() keyword, as #1319 did for LSR/SSR/RR. A paired flag never splits a pair, and a pre-specified flag keeps every whole pair as before, with an odd trailing slot kept in `remaining` instead of dropped. Closes #1349
|
Cross-review verdict on
Nit: The reviewer found two round-trip defects that
It also saw that |
|
Follow-up to the verdict above.
|
|
Coverage: 89.40% (unit tier, Python 3.14,
Per-file detail: the |
|
The red |
make pylint,make mypy,make isort) — not runmake testpasses, and a test case covers the change — scoped: everytests/protocols/internet/module,test_option_roundtrip_unit.py,tests/projectWhat is the purpose of your pull request?
fix— corrects a defectDescription of your pull request and other information
Closes #1349. TS
ts_datacovered onlypointer - 5octets, and the rest was a zero-packingPaddingField(schema/internet/ipv4.py:321,:326). As #1319 did for LSR/SSR/RR,ts_datanow holds every 32-bit slot. The slots at or beyond the pointer go in the newremainingdata field (raw words), also amake()keyword. A paired flag never splits a pair. A pre-specified flag still keeps every whole pair; an odd trailing slot now goes inremaininginstead of being dropped.Breaking:
TSOptiondata gains a requiredremainingfield.Before → after,
from_dataoption bytes:440c0500 0000000100000002→…0000000000000000/ exact;44100900 000000010000000200000003→…000000010000000000000000/ exact.Tests: new
test_ipv4_ts_slots_unit.py(3 tests, 6 subtests); with the three source files reverted toorigin/main, 8 fail.test_ipv4_unit.pyupdated in four places: they pinned the removed padding-as-pre-specified-address path or builtTSOptionwithoutremaining. Results: 41 modules gave 384 passed and 2433 subtests passed. Legprotocols/internetran 549 tests with 0 failures.tests/projectgave 389 passed.