23#define PACKET_HEADER_SIZE ((size_t)offsetof(PotrPacket, payload))
58 const void *packed_payload,
int packet_build_fin(PotrPacket *packet, const PotrPacketSessionHdr *shdr)
正常終了通知 (FIN) パケットを構築します。
int packet_build_packed(PotrPacket *out, const PotrPacketSessionHdr *shdr, uint32_t seq_num, const void *packed_payload, size_t payload_len)
データパケット (パックコンテナ) を構築します。
int packet_build_ping(PotrPacket *packet, const PotrPacketSessionHdr *shdr, uint32_t seq_num, uint32_t ack_num)
PING パケットを構築します。
int packet_parse(PotrPacket *packet, const void *buf, size_t buf_len)
受信バイト列をパケット構造体に解析します。
int packet_build_nack(PotrPacket *packet, const PotrPacketSessionHdr *shdr, uint32_t nack_num)
NACK パケットを構築します。
int packet_build_reject(PotrPacket *packet, const PotrPacketSessionHdr *shdr, uint32_t seq_num)
再送不能通知 (REJECT) パケットを構築します。
int packet_unpack_next(const PotrPacket *container, size_t *offset, PotrPacket *elem_out)
データパケットから次のペイロードエレメントを取り出します。
size_t packet_wire_size(const PotrPacket *packet)
パケットのヘッダー + ペイロードの合計バイト数を返します。
int32_t session_tv_nsec
セッション開始時刻 ナノ秒部。
int64_t service_id
サービス識別子。
uint32_t session_id
セッション識別子 (乱数)。
int64_t session_tv_sec
セッション開始時刻 秒部。