Ipv4Reassembly class final
#include <npr/ipv4/ipv4_reassembly.hpp>
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. |