ProtoCore v1.0.16
Deterministic, zero-heap network stack for embedded targets
Loading...
Searching...
No Matches
DtlsHsReasm Struct Reference

Reassembles the fragments of a single handshake message into a contiguous body. More...

#include <dtls_handshake.h>

Public Attributes

proto_bool active
 false until the first fragment of the target message is seen
 
proto_bool have_len
 true once a fragment established the full message length
 
uint8_t msg_type
 HandshakeType of the message being reassembled.
 
uint16_t msg_seq
 the message sequence number this reassembler accepts
 
uint32_t length
 full body length (from the first non-empty fragment)
 
uint8_t * buf
 caller-provided body buffer (>= length bytes)
 
size_t buf_cap
 capacity of buf
 
uint32_t range_lo [PROTOCORE_DTLS_HS_REASM_MAX_RANGES]
 received interval starts
 
uint32_t range_hi [PROTOCORE_DTLS_HS_REASM_MAX_RANGES]
 received interval ends (exclusive)
 
uint8_t range_count
 number of active intervals
 

Detailed Description

Reassembles the fragments of a single handshake message into a contiguous body.

Fragments may arrive out of order, duplicated, or with overlapping ranges (RFC 9147 ยง5.4 requires an implementation to handle overlap). Received byte ranges are merged into a bounded interval list; the message is complete when a single interval covers [0, length).

Definition at line 79 of file dtls_handshake.h.

Member Data Documentation

◆ active

proto_bool DtlsHsReasm::active

false until the first fragment of the target message is seen

Definition at line 81 of file dtls_handshake.h.

◆ have_len

proto_bool DtlsHsReasm::have_len

true once a fragment established the full message length

Definition at line 82 of file dtls_handshake.h.

◆ msg_type

uint8_t DtlsHsReasm::msg_type

HandshakeType of the message being reassembled.

Definition at line 83 of file dtls_handshake.h.

◆ msg_seq

uint16_t DtlsHsReasm::msg_seq

the message sequence number this reassembler accepts

Definition at line 84 of file dtls_handshake.h.

◆ length

uint32_t DtlsHsReasm::length

full body length (from the first non-empty fragment)

Definition at line 85 of file dtls_handshake.h.

◆ buf

uint8_t* DtlsHsReasm::buf

caller-provided body buffer (>= length bytes)

Definition at line 86 of file dtls_handshake.h.

◆ buf_cap

size_t DtlsHsReasm::buf_cap

capacity of buf

Definition at line 87 of file dtls_handshake.h.

◆ range_lo

uint32_t DtlsHsReasm::range_lo[PROTOCORE_DTLS_HS_REASM_MAX_RANGES]

received interval starts

Definition at line 88 of file dtls_handshake.h.

◆ range_hi

uint32_t DtlsHsReasm::range_hi[PROTOCORE_DTLS_HS_REASM_MAX_RANGES]

received interval ends (exclusive)

Definition at line 89 of file dtls_handshake.h.

◆ range_count

uint8_t DtlsHsReasm::range_count

number of active intervals

Definition at line 90 of file dtls_handshake.h.


The documentation for this struct was generated from the following file: