Skip to content

fix(ipv6-route): an RPL routing header inside IPv6 loses its address compression on rebuild #1456

Closed

Description

@JarryShaw

Bug. IPv6.from_data(info) re-expands a compressed RPL routing header. _make_data_type_rpl writes addr.packed without the [cmpr_i:]/[cmpr_e:] slice (pcapkit/protocols/internet/ipv6_route.py:795-797).

Repro on main (b14d676c5):

rt = bytes([59, 2, 3, 1, 0x88, 0, 0, 0]) + bytes(range(1, 17))   # CmprI=CmprE=8, two addresses
raw = IPv6 header (next header 43, src ::1, dst ::2) + rt          # 64 octets
len(IPv6.from_data(IPv6(raw, 64).info).data)                       # 80, not 64

An IPv6_Route header parsed on its own round-trips; the loss only happens when it sits inside IPv6.

Found by #1454 (#1202).

Activity

  1. added
    fixPull requests that fix a defect (fix: subject prefix)
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 9, 2026
  2. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 9, 2026
  3. JarryShaw commented on Oct 9, 2026

    @JarryShaw
    OwnerAuthor

    A worker is on it now, on branch fix/1456-1457-rpl-routing.

  4. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 9, 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

    fixPull requests that fix a defect (fix: subject prefix)

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions