prf::pr::ax25 namespace

Classes

struct Address
One decoded AX.25 address field.
class FrameDecoder
AX.25 frame decoder with FCS validation.
struct FrameDecoderStats
Receiver statistics for AX.25 frame validation stage.
struct ParsedUiFrame
Parsed AX.25 UI frame.
struct RawFrame
One validated AX.25 frame without trailing FCS bytes.

Enums

enum class ParseError: std::uint8_t { kNone = 0, kTooShort = 1, kAddressFieldMalformed = 2, kTooManyRepeaters = 3, kNotUiControl = 4, kMissingPid = 5, kInfoTooLong = 6 }
Parse failure reason for parse_ui_frame.

Functions

auto compute_fcs(std::span<const std::uint8_t> bytes) -> std::uint16_t
Compute AX.25 FCS over frame bytes.
auto parse_ui_frame(std::span<const std::uint8_t> raw_frame, ParsedUiFrame* out, ParseError* out_error) -> bool
Parse raw AX.25 frame bytes (without FCS) as UI frame.
auto pid_is_ipv4(const std::uint8_t pid) -> bool constexpr
Return true if PID indicates IPv4 payload.
auto validate_fcs(std::span<const std::uint8_t> bytes_with_fcs) -> bool
Validate trailing FCS for a frame that includes FCS bytes.

Enum documentation

enum class prf::pr::ax25::ParseError: std::uint8_t

Parse failure reason for parse_ui_frame.

Function documentation

std::uint16_t prf::pr::ax25::compute_fcs(std::span<const std::uint8_t> bytes)

Compute AX.25 FCS over frame bytes.

Parameters
bytes AX.25 frame bytes without trailing FCS field.
Returns FCS value in host endianness. On-wire order is little-endian.

bool prf::pr::ax25::parse_ui_frame(std::span<const std::uint8_t> raw_frame, ParsedUiFrame* out, ParseError* out_error)

Parse raw AX.25 frame bytes (without FCS) as UI frame.

Parameters
raw_frame AX.25 bytes without trailing FCS.
out out Parsed frame destination.
out_error out Parse failure details on error.
Returns true on successful parse and UI control validation.

bool prf::pr::ax25::pid_is_ipv4(const std::uint8_t pid) constexpr

Return true if PID indicates IPv4 payload.

bool prf::pr::ax25::validate_fcs(std::span<const std::uint8_t> bytes_with_fcs)

Validate trailing FCS for a frame that includes FCS bytes.

Parameters
bytes_with_fcs AX.25 frame bytes including trailing 2-byte FCS.
Returns true if FCS is valid.