mirror of
https://github.com/jmcorgan/fips.git
synced 2026-08-12 01:27:32 +00:00
SessionDatagram redesign: add src_addr, reclassify error signals
Add src_addr to SessionDatagram envelope (34-byte header: msg_type + src_addr + dest_addr + hop_limit) so transit routers can route error signals back to the packet's originator. Reclassify CoordsRequired/PathBroken as link-layer error signals (plaintext inside SessionDatagram) rather than e2e encrypted session messages. Transit routers generate these when forwarding fails and route them to src_addr; if source is also unreachable, drop silently. Remove redundant src_addr/dest_addr/hop_limit from SessionSetup, SessionAck, and DataPacket (now in envelope). DataPacket header reduced from 36 to 4 bytes. Remove PathBroken.original_src. Fix routing loop vulnerability: gate bloom filter path on having cached dest_coords to prevent blind forwarding between peers. Simplify select_best_candidate() to require coordinates. Fix gossip protocol type codes (0x11->0x20, 0x12->0x30, 0x13->0x31) for consistency across all design docs. All 5 design docs updated and cross-checked for consistency. 335 tests pass, zero warnings.
This commit is contained in:
@@ -892,11 +892,16 @@ Post-handshake data packets between authenticated peers.
|
||||
│ │ 1 │ payload │ variable │ Message-specific payload │ │
|
||||
│ └────────┴──────────────────┴───────────┴───────────────────────────────┘ │
|
||||
│ │
|
||||
│ Link message types: │
|
||||
│ Link message types (inside encrypted frame): │
|
||||
│ 0x10 = TreeAnnounce 0x30 = LookupRequest │
|
||||
│ 0x20 = FilterAnnounce 0x31 = LookupResponse │
|
||||
│ 0x40 = SessionDatagram 0x50 = Disconnect │
|
||||
│ │
|
||||
│ SessionDatagram (0x40) carries session-layer payloads: │
|
||||
│ 0x00 = SessionSetup 0x10 = DataPacket │
|
||||
│ 0x01 = SessionAck 0x20 = CoordsRequired │
|
||||
│ 0x21 = PathBroken │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user