1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/// The size of the fragment header.
pub const FRAGMENT_HEADER_SIZE: u8 = 4;
/// The size of the acknowledgment header.
pub const ACKED_PACKET_HEADER: u8 = 8;
/// The size of the arranging header.
pub const ARRANGING_PACKET_HEADER: u8 = 3;
/// The size of the standard header.
pub const STANDARD_HEADER_SIZE: u8 = 5;
/// The ordering stream that will be used to order on if there is not ordering stream specified.
pub const DEFAULT_ORDERING_STREAM: u8 = 255;
/// The sequencing stream that will be used to sequence packets on if there is not sequencing stream specified.
pub const DEFAULT_SEQUENCING_STREAM: u8 = 255;
/// Default maximal number of fragments to size.
pub const MAX_FRAGMENTS_DEFAULT: u16 = 16;
/// Default maximal size of each fragment.
pub const FRAGMENT_SIZE_DEFAULT: u16 = 1024;
/// Maximum transmission unit of the payload.
///
/// Derived from ethernet_mtu - ipv6_header_size - udp_header_size - packet header size
///       1452 = 1500         - 40               - 8               - 8
///
/// This is not strictly guaranteed -- there may be less room in an ethernet frame than this due to
/// variability in ipv6 header size.
pub const DEFAULT_MTU: u16 = 1452;
/// This is the current protocol version.
///
/// It is used for:
/// - Generating crc16 for the packet header.
/// - Validating if arriving packets have the same protocol version.
pub const PROTOCOL_VERSION: &str = "laminar-0.1.0";