Ipv4Segmenter class final
#include <npr/ipv4/ipv4_segmenter.hpp>
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
truewhen 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. |
|---|