pub struct RetransmitDescriptor {
pub seq: u64,
pub stream_id: u64,
pub events: Vec<Bytes>,
pub flags: PacketFlags,
}Expand description
Pre-encryption inputs needed to rebuild a packet for retransmission.
The reliable retransmit path used to stash the fully-encrypted
packet bytes, but every encrypted packet carries the cipher’s
outer counter stamped at build time. Replaying those exact bytes
produces the same wire counter on the wire, which the receiver’s
update_rx_counter rejects as a replay — making NACK-driven
recovery a no-op the first time it fired. Stashing the rebuild
inputs instead lets the retransmit driver call
PacketBuilder::build with a fresh counter on each retransmit,
so the receiver accepts the recovered packet.
Fields§
§seq: u64Per-stream sequence number stamped on the packet header.
stream_id: u64Stream id for the rebuild call.
events: Vec<Bytes>Pre-encryption event payloads (the same &[Bytes] originally
passed to PacketBuilder::build).
flags: PacketFlagsPacket flags as stamped on the original send.
Trait Implementations§
Source§impl Clone for RetransmitDescriptor
impl Clone for RetransmitDescriptor
Source§fn clone(&self) -> RetransmitDescriptor
fn clone(&self) -> RetransmitDescriptor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more