Repository navigation
Conversation
|
Coverage: 94.41% (unit tier, Python 3.15,
Per-file detail: the |
|
NEEDS CHANGES (cross-review, different model from the author). Required: (1) a plain Should-fix: wrong Type codes, field layout, checksum fixtures and protocol wiring for v1/v2 all independently confirmed correct. Relaying all three required fixes to the original agent. |
90169ae to
41b5735
Compare
|
All required fixes applied and verified directly (new head |
41b5735 to
d1e4b4e
Compare
|
Auto-resolved conflict (standing rule): #2444 went CONFLICTING against Old head Old head's CI was still early (only 2 check-runs posted, both non-failing) when this landed, so there's no completed-green state to bypass checks against — the rebase just needs its own CI run. |
|
Round 2 verdict: substantively GOOD, one timing note. The reviewer's one "blocker" (head not rebased onto main, CONFLICTING) was reviewed against head All substantive checks passed: Two should-fix items found: the RFC 1112 Appendix I citation has no working Noted for later: all three sibling wave-2 PRs will conflict with this one on |
d1e4b4e to
ce2f5e6
Compare
|
Both should-fix items applied and verified directly (new head |
ce2f5e6 to
63a93e7
Compare
|
Re-resolved the conflict (my own process gap this time, not the worker's): the previous fix-relay agent amended the branch inside the live worktree, which still held the pre-rebase history — my earlier out-of-band rebase (pushed from a separate scratch worktree) never got synced back into the live one, so that agent's force-push silently reverted it, and Old head |
|
Confirmed by direct diff: content at new head |
|
We do not need a dispatcher logic for IGMP i think. And we can use dynamic properties and log/error messages, so to avoid duplicate/similar code. |
|
Yes correct, move similar/duplicate code to the base class. |
b0d444d to
7514811
Compare
|
Rebased onto
|
|
Anything needs decision? |
|
Yes, one item: #2444's IGMP dispatcher. My reading of your 02:15Z comment is to drop the dispatcher and use dynamic properties with log/error messages. Confirm, and I'll open the fix round; the PR is on hold until you do. |
|
yes, drop the dispatcher. confirmed. |
7514811 to
e4584a4
Compare
|
NEEDS CHANGES (Sonnet,
|
|
Held: Actions queue at 44 (above the hold line). Fix round dispatches when the queue drops. |
|
Prefer to use an abstract property |
|
My reading of your 03:37Z comment: an abstract |
|
An abstract Two options:
I recommend option 1. Which do you want? |
|
No, |
|
My reading of your 03:49Z comment: the IGMP base stays abstract and non-instantiable. The rework repoints the |
|
Held: Actions queue at 50 (above the hold line). The rework dispatches when the queue drops below 40. |
|
Member order is in scope for this rework. Group the class body as: properties, public methods ( |
…t base - igmp.py: IGMP is abstract (version is an abstract property). It holds the schema, data model, read path and make; _classify places a message in a version. Refuses other types and non-8-octet Queries (RFC 9776 s7.1). - igmpv1.py / igmpv2.py: IGMP with version 1 / 2; id() is the family and version. alias is dynamic from version. - TransType.IGMP registry entry points at igmpv2.IGMP. IGMPv1 messages on IP proto 2 fall back to Raw; the registry has one slot per code. - Schema, data model, IANA Type registry, docs and tests added.
|
Rework pushed as Decision needed: |
|
hmm, in this case, sounds like we'd still need a dispatcher logic then. |
|
My reading of your 04:44Z comment: the IGMP registry entry needs dispatch logic to choose between IGMPv1 and IGMPv2, so the earlier no-dispatcher direction is reversed for this case. This is a rework: #2444 goes back to needs-changes, held until the Actions queue is below 40. |
|
Held: Actions queue at 78 (well above the hold line). The dispatch rework dispatches when the queue drops below 40. |
Summary
IGMPbase (feat(internet): implement IGMP v1/v2 (v3's group-record list as a follow-up) #2439).IGMPis not instantiable:versionis abstract on the base;IGMPv1andIGMPv2return 1 and 2.TransType.IGMPpoints atigmpv2.IGMP. IGMPv1 messages on IP protocol 2 fall back to Raw.Test plan
tests/protocols/internet/test_igmp_unit.py,tests/protocols/test_dispatch_registry_unit.py: 40 passed, 169 subtestsexamples/generators/make_samples.pyruns cleaninternet.pyfails isort onmainas welligmp.py: C0301, R0913/R0917 onmake, W0622 on_classify'stype