|
Network System 0.1.1
High-performance modular networking library for scalable client-server applications
|
Builder for QUIC packet headers (RFC 9000 Section 17) More...
#include <packet.h>

Static Public Member Functions | |
| static auto | build_initial (const connection_id &dest_cid, const connection_id &src_cid, const std::vector< uint8_t > &token, uint64_t packet_number, uint32_t version=quic_version::version_1) -> std::vector< uint8_t > |
| Build an Initial packet header. | |
| static auto | build_handshake (const connection_id &dest_cid, const connection_id &src_cid, uint64_t packet_number, uint32_t version=quic_version::version_1) -> std::vector< uint8_t > |
| Build a Handshake packet header. | |
| static auto | build_zero_rtt (const connection_id &dest_cid, const connection_id &src_cid, uint64_t packet_number, uint32_t version=quic_version::version_1) -> std::vector< uint8_t > |
| Build a 0-RTT packet header. | |
| static auto | build_retry (const connection_id &dest_cid, const connection_id &src_cid, const std::vector< uint8_t > &token, const std::array< uint8_t, 16 > &integrity_tag, uint32_t version=quic_version::version_1) -> std::vector< uint8_t > |
| Build a Retry packet header. | |
| static auto | build_short (const connection_id &dest_cid, uint64_t packet_number, bool key_phase=false, bool spin_bit=false) -> std::vector< uint8_t > |
| Build a Short Header (1-RTT) packet. | |
| static auto | build (const long_header &header) -> std::vector< uint8_t > |
| Build a long header from a header structure. | |
| static auto | build (const short_header &header) -> std::vector< uint8_t > |
| Build a short header from a header structure. | |
Static Private Member Functions | |
| static void | append_bytes (std::vector< uint8_t > &buffer, std::span< const uint8_t > data) |
| Helper to append bytes to buffer. | |
Builder for QUIC packet headers (RFC 9000 Section 17)
Builds raw bytes from QUIC packet header structures. Note that header protection must be applied after building.
|
staticprivate |
|
staticnodiscard |
Build a long header from a header structure.
| header | Long header structure |
Definition at line 611 of file packet.cpp.
References kcenon::network::protocols::quic::handshake, kcenon::network::protocols::quic::initial, kcenon::network::protocols::quic::retry, and kcenon::network::protocols::quic::zero_rtt.
|
staticnodiscard |
Build a short header from a header structure.
| header | Short header structure |
Definition at line 633 of file packet.cpp.
|
staticnodiscard |
Build a Handshake packet header.
| dest_cid | Destination Connection ID |
| src_cid | Source Connection ID |
| packet_number | Packet number |
| version | QUIC version (default: version 1) |
Definition at line 467 of file packet.cpp.
References kcenon::network::protocols::quic::packet_number::encode(), kcenon::network::protocols::quic::packet_number::encoded_length(), kcenon::network::protocols::quic::handshake, and kcenon::network::version().
Referenced by kcenon::network::protocols::quic::connection::build_packet(), and kcenon::network::internal::quic_socket::send_packet().


|
staticnodiscard |
Build an Initial packet header.
| dest_cid | Destination Connection ID |
| src_cid | Source Connection ID |
| token | Token for address validation (empty for client initial) |
| packet_number | Packet number |
| version | QUIC version (default: version 1) |
Definition at line 423 of file packet.cpp.
References kcenon::network::protocols::quic::packet_number::encode(), kcenon::network::protocols::quic::varint::encode(), kcenon::network::protocols::quic::packet_number::encoded_length(), kcenon::network::protocols::quic::initial, and kcenon::network::version().
Referenced by kcenon::network::protocols::quic::connection::build_packet(), and kcenon::network::internal::quic_socket::send_packet().


|
staticnodiscard |
Build a Retry packet header.
| dest_cid | Destination Connection ID |
| src_cid | Source Connection ID |
| token | Retry token |
| integrity_tag | Retry Integrity Tag (16 bytes) |
| version | QUIC version (default: version 1) |
Definition at line 541 of file packet.cpp.
References kcenon::network::protocols::quic::retry, and kcenon::network::version().

|
staticnodiscard |
Build a Short Header (1-RTT) packet.
| dest_cid | Destination Connection ID |
| packet_number | Packet number |
| key_phase | Key phase bit |
| spin_bit | Spin bit for latency measurement |
Definition at line 578 of file packet.cpp.
References kcenon::network::protocols::quic::packet_number::encode(), and kcenon::network::protocols::quic::packet_number::encoded_length().
Referenced by kcenon::network::protocols::quic::connection::build_packet(), and kcenon::network::internal::quic_socket::send_packet().


|
staticnodiscard |
Build a 0-RTT packet header.
| dest_cid | Destination Connection ID |
| src_cid | Source Connection ID |
| packet_number | Packet number |
| version | QUIC version (default: version 1) |
Definition at line 504 of file packet.cpp.
References kcenon::network::protocols::quic::packet_number::encode(), kcenon::network::protocols::quic::packet_number::encoded_length(), kcenon::network::version(), and kcenon::network::protocols::quic::zero_rtt.
