Module rtr

Module rtr 

Source
Expand description

RPKI-to-Router (RTR) Protocol Parser

This module provides parsing and encoding functions for RTR protocol PDUs as defined in RFC 6810 (v0) and RFC 8210 (v1).

§Parsing

use bgpkit_parser::parser::rpki::rtr::{parse_rtr_pdu, read_rtr_pdu};
use bgpkit_parser::models::rpki::rtr::*;

// Parse from a byte slice
let bytes = [1, 2, 0, 0, 0, 0, 0, 8]; // Reset Query v1
let (pdu, consumed) = parse_rtr_pdu(&bytes).unwrap();
assert_eq!(consumed, 8);

§Encoding

use bgpkit_parser::parser::rpki::rtr::RtrEncode;
use bgpkit_parser::models::rpki::rtr::*;

let query = RtrResetQuery::new_v1();
let bytes = query.encode();
assert_eq!(bytes.len(), 8);

Enums§

RtrError
Errors that can occur during RTR PDU parsing or encoding

Constants§

RTR_CACHE_RESET_LEN
Cache Reset PDU length
RTR_CACHE_RESPONSE_LEN
Cache Response PDU length
RTR_END_OF_DATA_V0_LEN
End of Data PDU length (v0)
RTR_END_OF_DATA_V1_LEN
End of Data PDU length (v1)
RTR_HEADER_LEN
RTR PDU header length (common to all PDUs)
RTR_IPV4_PREFIX_LEN
IPv4 Prefix PDU length
RTR_IPV6_PREFIX_LEN
IPv6 Prefix PDU length
RTR_RESET_QUERY_LEN
Reset Query PDU length
RTR_ROUTER_KEY_MIN_LEN
Router Key PDU minimum length (header(8) + flags(1) + zero(1) + SKI(20) + ASN(4) = 34)
RTR_SERIAL_NOTIFY_LEN
Serial Notify PDU length
RTR_SERIAL_QUERY_LEN
Serial Query PDU length

Traits§

RtrEncode
Trait for encoding RTR PDUs to bytes

Functions§

parse_rtr_pdu
Parse a single RTR PDU from a byte slice.
read_rtr_pdu
Read a single RTR PDU from a reader.