Skip to content

fix(link): a FRAD header cut short rebuilds different octets and logs CRITICAL #2710

Closed

Description

@JarryShaw

Found while reviewing the #2703 fix and confirmed by a Sonnet cross-review. It is identical on main. Rebuilding a FRAD header cut by the capture to 1–3 octets via from_data has two problems:

  • It logs NoDefaultValue: Field ext_nlpid has no default value. at CRITICAL.
  • Its rebuilt octets differ from the captured ones.

The second breaks the byte-exact round-trip rule, which makes it more serious than the logging. The rebuild should write back the octets captured and log nothing, through Schema's built-in short read.

Activity

  1. added this to the PyPCAPKit v1.6 milestone on Nov 3, 2026
  2. added
    bugIssues reporting a defect (set by the bug report template; a default, not an assessment)
    on Nov 3, 2026
  3. JarryShaw commented on Nov 3, 2026

    @JarryShaw
    OwnerAuthor

    A worker is on it now, stacked on #2703's rebuild-path change, which is good to go. Moved to wip.

  4. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Nov 3, 2026
  5. JarryShaw commented on Nov 3, 2026

    @JarryShaw
    OwnerAuthor

    Fix committed locally as 3ebbc15bf, one commit on top of #2712's head 987711d1f. A Sonnet cross-review is running now.

    • The CRITICAL log: make(nlpid=0) now writes the pad and an NLPID of 0. The schema's built-in short read cuts them back, so every cut prefix rebuilds exactly and quietly.
    • The differing octets: these came from address forms the data model cannot hold, namely EA bits other than 0 then 1, and not from the cut. read now refuses such an address with ProtocolError. Behind LinuxSLL and on a FRELAY capture, the frame is kept as Raw and nothing is logged.
    • I'm treating the refusal as in scope. The "refuse or rebuild exactly" rule covers it, and FRAD has not shipped yet. Keeping the EA bits instead would need new make() parameters, which refactor(protocols)!: make() takes an enum member or an int, with no keyword groups (#2594) #2692 owns.

    The PR opens once the review passes and #2712 merges.

  6. JarryShaw commented on Nov 3, 2026

    @JarryShaw
    OwnerAuthor

    The Sonnet review of 3ebbc15bf came back NEEDS CHANGES, for prose only.

  7. JarryShaw commented on Nov 3, 2026

    @JarryShaw
    OwnerAuthor

    The PR is #2719.

  8. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIssues reporting a defect (set by the bug report template; a default, not an assessment)

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions