mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-24 03:58:19 +00:00
Add docs for RecvMeta (#1634)
This helps implementors of AsyncUdpSocket.
This commit is contained in:
committed by
GitHub
parent
c02c8a5a7a
commit
9cdae99a50
@@ -35,11 +35,28 @@ pub use imp::UdpSocketState;
|
||||
/// Number of UDP packets to send/receive at a time
|
||||
pub const BATCH_SIZE: usize = imp::BATCH_SIZE;
|
||||
|
||||
/// Metadata for a single buffer filled with bytes received from the network
|
||||
///
|
||||
/// This associated buffer can contain one or more datagrams, see [`stride`].
|
||||
///
|
||||
/// [`stride`]: RecvMeta::stride
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
pub struct RecvMeta {
|
||||
/// The source address of the datagram(s) contained in the buffer
|
||||
pub addr: SocketAddr,
|
||||
/// The number of bytes the associated buffer has
|
||||
pub len: usize,
|
||||
/// The size of a single datagram in the associated buffer
|
||||
///
|
||||
/// When GRO (Generic Receive Offload) is used this indicates the size of a single
|
||||
/// datagram inside the buffer. If the buffer is larger, that is if [`len`] is greater
|
||||
/// then this value, then the individual datagrams contained have their boundaries at
|
||||
/// `stride` increments from the start. The last datagram could be smaller than
|
||||
/// `stride`.
|
||||
///
|
||||
/// [`len`]: RecvMeta::len
|
||||
pub stride: usize,
|
||||
/// The Explicit Congestion Notification bits for the datagram(s) in the buffer
|
||||
pub ecn: Option<EcnCodepoint>,
|
||||
/// The destination IP address which was encoded in this datagram
|
||||
pub dst_ip: Option<IpAddr>,
|
||||
|
||||
Reference in New Issue
Block a user