npr::rf::Ipv4Segmenter class final

Packet splitter with internal packet-counter generator.

One segmenter instance owns one active packet session at a time.

Public static functions

static auto segment_count_for_size(size_t packet_size) -> uint8_t
Returns required number of NPR segments for given packet size.

Public functions

auto active() const -> bool
true when segmentation session is active.
auto mark_segment_sent() -> bool
Commits current segment as sent and advances to next one.
auto next_segment(Ipv4SegmentView* out_segment) const -> bool
Returns current segment view without advancing internal cursor.
void reset()
Resets internal state and current session.
auto start_session(const uint8_t* ipv4_packet, size_t packet_size) -> bool
Starts segmentation session for one IPv4 packet copy.

Function documentation

bool npr::rf::Ipv4Segmenter::mark_segment_sent()

Commits current segment as sent and advances to next one.

Returns true when segment cursor was advanced.

bool npr::rf::Ipv4Segmenter::next_segment(Ipv4SegmentView* out_segment) const

Returns current segment view without advancing internal cursor.

Returns true when segment is available.

bool npr::rf::Ipv4Segmenter::start_session(const uint8_t* ipv4_packet, size_t packet_size)

Starts segmentation session for one IPv4 packet copy.

Returns true when packet was accepted.