Expand description
FIPS Protocol Messages
Wire format definitions for FIPS protocol communication across two layers:
§Link Layer (peer-to-peer, hop-by-hop)
Messages exchanged between directly connected peers over Noise-encrypted links. Includes spanning tree gossip, bloom filter propagation, discovery protocol, and forwarding of session-layer datagrams.
Link-layer peer authentication uses Noise IK (see noise.rs), which
establishes the encrypted channel before any of these messages are sent.
§Session Layer (end-to-end, between FIPS addresses)
Messages exchanged between source and destination FIPS nodes, encrypted with session keys that intermediate nodes cannot read. Includes session establishment, IPv6 datagram encapsulation, and routing errors.
Session-layer datagrams are carried as opaque payloads through the link layer, encrypted end-to-end independently of per-hop link encryption.
Structs§
- Coords
Required - Link-layer error signal indicating router cache miss.
- Disconnect
- Orderly disconnect notification sent before closing a peer link.
- Filter
Announce - Bloom filter announcement for reachability propagation.
- FspFlags
- FSP common prefix flags (cleartext, in outer header).
- FspInner
Flags - FSP inner header flags (encrypted, inside AEAD envelope).
- Lookup
Request - Request to discover a node’s coordinates.
- Lookup
Response - Response to a lookup request with target’s coordinates.
- MtuExceeded
- Error indicating a forwarded packet exceeded the next-hop transport MTU.
- Path
Broken - Error indicating routing failure (local minimum or unreachable).
- Path
MtuNotification - Path MTU notification (msg_type 0x13).
- Session
Ack - Session acknowledgement.
- Session
Datagram - Encapsulated session-layer datagram for multi-hop forwarding.
- Session
Datagram Ref - Zero-copy view over a
SessionDatagram. The innerpayloadis a borrowed slice into the caller’s buffer — no allocation, no memcpy. - Session
Flags - Session flags for setup options.
- Session
Msg3 - XK handshake message 3 (initiator -> responder).
- Session
Receiver Report - Session-layer receiver report (msg_type 0x12).
- Session
Sender Report - Session-layer sender report (msg_type 0x11).
- Session
Setup - Session setup to establish cached coordinate state.
- Tree
Announce - Spanning tree announcement carrying parent declaration and ancestry.
Enums§
- Disconnect
Reason - Reason for an orderly disconnect notification.
- Handshake
Message Type - Handshake message type identifiers.
- Link
Message Type - Link-layer message type identifiers.
- Protocol
Error - Errors related to protocol message handling.
- Session
Message Type - SessionDatagram payload message type identifiers.
Constants§
- COORDS_
REQUIRED_ SIZE - Wire size of CoordsRequired payload: msg_type(1) + flags(1) + dest_addr(16) + reporter(16).
- MTU_
EXCEEDED_ SIZE - Wire size of MtuExceeded payload: msg_type(1) + flags(1) + dest_addr(16) + reporter(16) + mtu(2).
- PATH_
MTU_ NOTIFICATION_ SIZE - Body size for PathMtuNotification.
- PROTOCOL_
VERSION - Protocol version for message compatibility.
- SESSION_
DATAGRAM_ HEADER_ SIZE - SessionDatagram fixed header size: msg_type(1) + ttl(1) + path_mtu(2) + src_addr(16) + dest_addr(16).
- SESSION_
RECEIVER_ REPORT_ SIZE - Body size for SessionReceiverReport: 2 reserved + 64 fields.
- SESSION_
SENDER_ REPORT_ SIZE - Body size for SessionSenderReport: 2 reserved + 44 fields.
Type Aliases§
- Message
Type Deprecated