VBVX 0.1.0
Header-only C++23 library for safe, zero-copy parsing of packet buffers.
Loading...
Searching...
No Matches
vbvx::IPv4Header Struct Reference

IPv4 header (minimum 20 bytes). More...

#include <ip4_header.hxx>

Public Member Functions

constexpr auto version () const noexcept -> uint8_t
constexpr auto ihl_words () const noexcept -> uint16_t
constexpr auto ihl_bytes () const noexcept -> uint16_t
constexpr auto dscp () const noexcept -> uint8_t
constexpr auto ecn () const noexcept -> uint8_t
constexpr auto total_length () const noexcept -> uint16_t
constexpr auto id () const noexcept -> uint16_t
constexpr auto frag_off () const noexcept -> uint16_t
constexpr auto frag_flags () const noexcept -> IPv4Flags
constexpr bool has_flag (IPv4Flags flag) const noexcept
constexpr auto frag_offset_units8 () const noexcept -> uint16_t
constexpr auto frag_offset_bytes () const noexcept -> uint16_t
constexpr bool is_fragmented () const noexcept
constexpr void set_frag_flags (IPv4Flags flags) noexcept
constexpr void set_frag_offset_units8 (uint16_t units8) noexcept
constexpr void set_frag_offset_bytes (uint16_t bytes) noexcept
constexpr void set_df (bool enabled) noexcept
constexpr void set_mf (bool enabled) noexcept
constexpr auto l4_protocol () const noexcept -> IpProtocol
constexpr auto checksum () const noexcept -> uint16_t
constexpr void set_checksum (uint16_t v) noexcept
constexpr auto src_addr () const noexcept -> uint32_t
constexpr auto dst_addr () const noexcept -> uint32_t
constexpr void set_src (uint32_t v) noexcept
constexpr void set_dst (uint32_t v) noexcept
constexpr bool valid_min_size () const noexcept

Public Attributes

uint8_t version_ihl
uint8_t tos
uint16_t total_length_be
uint16_t id_be
uint16_t frag_off_be
uint8_t ttl
uint8_t protocol
uint16_t checksum_be
uint32_t src_addr_be
uint32_t dst_addr_be

Detailed Description

IPv4 header (minimum 20 bytes).

See also
IANA IPv4 Parameters: https://www.iana.org/assignments/ipv4-parameters/ipv4-parameters.xhtml
IETF RFC 791 (Internet Protocol): https://datatracker.ietf.org/doc/html/rfc791

Member Function Documentation

◆ checksum()

auto vbvx::IPv4Header::checksum ( ) const -> uint16_t
inlineconstexprnoexcept

◆ dscp()

auto vbvx::IPv4Header::dscp ( ) const -> uint8_t
inlineconstexprnoexcept

◆ dst_addr()

auto vbvx::IPv4Header::dst_addr ( ) const -> uint32_t
inlineconstexprnoexcept

◆ ecn()

auto vbvx::IPv4Header::ecn ( ) const -> uint8_t
inlineconstexprnoexcept

◆ frag_flags()

auto vbvx::IPv4Header::frag_flags ( ) const -> IPv4Flags
inlineconstexprnoexcept

◆ frag_off()

auto vbvx::IPv4Header::frag_off ( ) const -> uint16_t
inlineconstexprnoexcept

◆ frag_offset_bytes()

auto vbvx::IPv4Header::frag_offset_bytes ( ) const -> uint16_t
inlineconstexprnoexcept

◆ frag_offset_units8()

auto vbvx::IPv4Header::frag_offset_units8 ( ) const -> uint16_t
inlineconstexprnoexcept

◆ has_flag()

bool vbvx::IPv4Header::has_flag ( IPv4Flags flag) const
inlineconstexprnoexcept

◆ id()

auto vbvx::IPv4Header::id ( ) const -> uint16_t
inlineconstexprnoexcept

◆ ihl_bytes()

auto vbvx::IPv4Header::ihl_bytes ( ) const -> uint16_t
inlineconstexprnoexcept

◆ ihl_words()

auto vbvx::IPv4Header::ihl_words ( ) const -> uint16_t
inlineconstexprnoexcept

◆ is_fragmented()

bool vbvx::IPv4Header::is_fragmented ( ) const
inlineconstexprnoexcept

◆ l4_protocol()

auto vbvx::IPv4Header::l4_protocol ( ) const -> IpProtocol
inlineconstexprnoexcept

◆ set_checksum()

void vbvx::IPv4Header::set_checksum ( uint16_t v)
inlineconstexprnoexcept

◆ set_df()

void vbvx::IPv4Header::set_df ( bool enabled)
inlineconstexprnoexcept

◆ set_dst()

void vbvx::IPv4Header::set_dst ( uint32_t v)
inlineconstexprnoexcept

◆ set_frag_flags()

void vbvx::IPv4Header::set_frag_flags ( IPv4Flags flags)
inlineconstexprnoexcept

◆ set_frag_offset_bytes()

void vbvx::IPv4Header::set_frag_offset_bytes ( uint16_t bytes)
inlineconstexprnoexcept

◆ set_frag_offset_units8()

void vbvx::IPv4Header::set_frag_offset_units8 ( uint16_t units8)
inlineconstexprnoexcept

◆ set_mf()

void vbvx::IPv4Header::set_mf ( bool enabled)
inlineconstexprnoexcept

◆ set_src()

void vbvx::IPv4Header::set_src ( uint32_t v)
inlineconstexprnoexcept

◆ src_addr()

auto vbvx::IPv4Header::src_addr ( ) const -> uint32_t
inlineconstexprnoexcept

◆ total_length()

auto vbvx::IPv4Header::total_length ( ) const -> uint16_t
inlineconstexprnoexcept

◆ valid_min_size()

bool vbvx::IPv4Header::valid_min_size ( ) const
inlineconstexprnoexcept

◆ version()

auto vbvx::IPv4Header::version ( ) const -> uint8_t
inlineconstexprnoexcept

Member Data Documentation

◆ checksum_be

uint16_t vbvx::IPv4Header::checksum_be

◆ dst_addr_be

uint32_t vbvx::IPv4Header::dst_addr_be

◆ frag_off_be

uint16_t vbvx::IPv4Header::frag_off_be

◆ id_be

uint16_t vbvx::IPv4Header::id_be

◆ protocol

uint8_t vbvx::IPv4Header::protocol

◆ src_addr_be

uint32_t vbvx::IPv4Header::src_addr_be

◆ tos

uint8_t vbvx::IPv4Header::tos

◆ total_length_be

uint16_t vbvx::IPv4Header::total_length_be

◆ ttl

uint8_t vbvx::IPv4Header::ttl

◆ version_ihl

uint8_t vbvx::IPv4Header::version_ihl

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