npr::rf::Ipv4Reassembly class final

Public static variables

static uint64_t kDefaultTimeoutUs constexpr
static size_t kMaxConcurrentPackets constexpr

Constructors, destructors, conversion operators

Ipv4Reassembly(uint64_t timeout_us = kDefaultTimeoutUs) explicit
Creates reassembler with configurable inactive-context timeout.

Public functions

void expire(uint64_t now_us, uint32_t* timeout_drop_counter = nullptr)
Expires timed-out contexts.
auto ingest(uint8_t segmenter_byte, const uint8_t* payload, size_t payload_size, uint64_t now_us, uint8_t* out_packet, size_t out_capacity) -> Ipv4ReassemblyResult
Ingests one segment and updates reassembly state.
void reset()
Clears all active contexts and buffered data.

Function documentation

void npr::rf::Ipv4Reassembly::expire(uint64_t now_us, uint32_t* timeout_drop_counter = nullptr)

Expires timed-out contexts.

Parameters
now_us Current monotonic time.
timeout_drop_counter Optional counter incremented by number of expired contexts.

Ipv4ReassemblyResult npr::rf::Ipv4Reassembly::ingest(uint8_t segmenter_byte, const uint8_t* payload, size_t payload_size, uint64_t now_us, uint8_t* out_packet, size_t out_capacity)

Ingests one segment and updates reassembly state.

Parameters
segmenter_byte NPR segmenter byte.
payload Segment payload bytes.
payload_size Number of bytes in payload.
now_us Current monotonic time.
out_packet Output buffer for completed packet.
out_capacity Capacity of out_packet.
Returns Detailed acceptance/completion/drop status.