#[repr(u8)]pub enum FrameType {
Show 17 variants
Ack = 1,
Nak = 2,
Loss = 3,
Timing = 4,
Ring = 5,
Path = 6,
Link = 7,
LossAcct = 8,
Pmtu = 9,
BwProbe = 10,
Trace = 11,
AvailBw = 12,
Forecast = 13,
Periodicity = 14,
SessionChallenge = 15,
SessionResponse = 16,
SessionAnnounce = 17,
}Expand description
Frame type tags. Stable on the wire; append new variants, never renumber.
Variants§
Ack = 1
Cumulative ack frontier (receiver -> sender).
Nak = 2
Selective negative ack: a block and its missing-shard bitmap.
Loss = 3
Fused loss / burstiness / delay-trend readings (receiver -> sender).
Timing = 4
Sender clock beat plus the peer beat being echoed, for RTT and OWD.
Ring = 5
Source-ring shape telemetry (the legacy heartbeat payload).
Path = 6
The peer’s observed TTL / ECN / hop-count of THIS endpoint’s packets.
Link = 7
The peer’s link class and normalized quality.
LossAcct = 8
Highest peer sequence the sender of this frame has seen, for bidirectional (forward vs reverse) loss accounting.
Pmtu = 9
The peer’s observed path MTU.
BwProbe = 10
One member of an active bandwidth probe train (packet-pair / chirp).
Trace = 11
A mini-traceroute marker riding the control stream at a chosen TTL.
AvailBw = 12
The receiver’s WBest available-bandwidth estimate (reverse-reported so the sender can cross-check its passive BtlBw).
Forecast = 13
The receiver’s Sprout-style forecast of the next-tick deliverable rate (5th-percentile lower bound), so the sender pre-sizes ahead of a dip.
Periodicity = 14
The receiver’s detected LEO handover cadence and seconds-to-next-spike, so the sender pre-arms protection one cycle ahead of a periodic delay spike.
SessionChallenge = 15
Receiver -> sender: prove you can receive at the address a datagram under an unrecognised session epoch came from.
SessionResponse = 16
Sender -> receiver: the challenge echoed back.
SessionAnnounce = 17
The epoch of the session this endpoint is sending under, and on feedback the session it describes. Rides the heartbeat, so it reaches a peer whose data is being discarded.