RTRlib
Loading...
Searching...
No Matches
rtr_pdus.h
Go to the documentation of this file.
3#include <stdint.h>
17
32
33struct pdu_header {
34 uint8_t ver;
35 uint8_t type;
36 uint16_t reserved;
37 uint32_t len;
38};
39
41 uint8_t ver;
42 uint8_t type;
43 uint16_t session_id;
44 uint32_t len;
45};
46
48 uint8_t ver;
49 uint8_t type;
50 uint16_t session_id;
51 uint32_t len;
52 uint32_t sn;
53};
54
56 uint8_t ver;
57 uint8_t type;
58 uint16_t session_id;
59 uint32_t len;
60 uint32_t sn;
61};
62
63struct pdu_ipv4 {
64 uint8_t ver;
65 uint8_t type;
66 uint16_t reserved;
67 uint32_t len;
68 uint8_t flags;
69 uint8_t prefix_len;
71 uint8_t zero;
72 uint32_t prefix;
73 uint32_t asn;
74};
75
76struct pdu_ipv6 {
77 uint8_t ver;
78 uint8_t type;
79 uint16_t reserved;
80 uint32_t len;
81 uint8_t flags;
82 uint8_t prefix_len;
84 uint8_t zero;
85 uint32_t prefix[4];
86 uint32_t asn;
87};
88
89struct pdu_error {
90 uint8_t ver;
91 uint8_t type;
92 uint16_t error_code;
93 uint32_t len;
94 uint32_t len_enc_pdu;
95 uint8_t rest[];
96};
97
99 uint8_t ver;
100 uint8_t type;
101 uint8_t flags;
102 uint8_t zero;
103 uint32_t len;
104 uint8_t ski[SKI_SIZE];
105 uint32_t asn;
106 uint8_t spki[SPKI_SIZE];
107} __attribute__((packed));
108
109/*
110 * 0 8 16 24 31
111 * .-------------------------------------------.
112 * | Protocol | PDU | |
113 * | Version | Type | reserved = zero |
114 * | 0 | 2 | |
115 * +-------------------------------------------+
116 * | |
117 * | Length=8 |
118 * | |
119 * `-------------------------------------------'
120 */
122 uint8_t ver;
123 uint8_t type;
124 uint16_t flags;
125 uint32_t len;
127
128struct pdu_aspa {
129 uint8_t ver;
130 uint8_t type;
131 uint16_t zero;
132 uint32_t len;
133 uint8_t flags;
134 uint8_t afi_flags;
136 uint32_t customer_asn;
137 uint32_t provider_asns[];
138};
139
141 uint8_t ver;
142 uint8_t type;
143 uint16_t session_id;
144 uint32_t len;
145 uint32_t sn;
146};
147
149 uint8_t ver;
150 uint8_t type;
151 uint16_t session_id;
152 uint32_t len;
153 uint32_t sn;
157};
#define SPKI_SIZE
Definition spkitable.h:27
#define SKI_SIZE
Definition spkitable.h:26
pdu_type
Definition rtr_pdus.h:18
@ CACHE_RESPONSE
Definition rtr_pdus.h:22
@ ASPA
Definition rtr_pdus.h:30
@ EOD
Definition rtr_pdus.h:26
@ ERROR
Definition rtr_pdus.h:29
@ SERIAL_QUERY
Definition rtr_pdus.h:20
@ ROUTER_KEY
Definition rtr_pdus.h:28
@ RESET_QUERY
Definition rtr_pdus.h:21
@ IPV6_PREFIX
Definition rtr_pdus.h:25
@ CACHE_RESET
Definition rtr_pdus.h:27
@ SERIAL_NOTIFY
Definition rtr_pdus.h:19
@ IPV4_PREFIX
Definition rtr_pdus.h:23
@ RESERVED
Definition rtr_pdus.h:24
pdu_error_type
Definition rtr_pdus.h:5
@ WITHDRAWAL_OF_UNKNOWN_RECORD
Definition rtr_pdus.h:12
@ DUPLICATE_ANNOUNCEMENT
Definition rtr_pdus.h:13
@ UNSUPPORTED_PDU_TYPE
Definition rtr_pdus.h:11
@ CORRUPT_DATA
Definition rtr_pdus.h:6
@ PDU_TOO_BIG
Definition rtr_pdus.h:15
@ UNEXPECTED_PROTOCOL_VERSION
Definition rtr_pdus.h:14
@ INTERNAL_ERROR
Definition rtr_pdus.h:7
@ NO_DATA_AVAIL
Definition rtr_pdus.h:8
@ INVALID_REQUEST
Definition rtr_pdus.h:9
@ UNSUPPORTED_PROTOCOL_VER
Definition rtr_pdus.h:10
struct pdu_reset_query __attribute__
Definition rtr_pdus.h:128
uint16_t provider_count
Definition rtr_pdus.h:135
uint32_t customer_asn
Definition rtr_pdus.h:136
uint32_t provider_asns[]
Definition rtr_pdus.h:137
uint8_t flags
Definition rtr_pdus.h:133
uint8_t type
Definition rtr_pdus.h:130
uint16_t zero
Definition rtr_pdus.h:131
uint32_t len
Definition rtr_pdus.h:132
uint8_t ver
Definition rtr_pdus.h:129
uint8_t afi_flags
Definition rtr_pdus.h:134
Definition rtr_pdus.h:40
uint16_t session_id
Definition rtr_pdus.h:43
uint32_t len
Definition rtr_pdus.h:44
uint8_t ver
Definition rtr_pdus.h:41
uint8_t type
Definition rtr_pdus.h:42
Definition rtr_pdus.h:140
uint8_t type
Definition rtr_pdus.h:142
uint32_t sn
Definition rtr_pdus.h:145
uint8_t ver
Definition rtr_pdus.h:141
uint32_t len
Definition rtr_pdus.h:144
uint16_t session_id
Definition rtr_pdus.h:143
Definition rtr_pdus.h:148
uint32_t refresh_interval
Definition rtr_pdus.h:154
uint32_t sn
Definition rtr_pdus.h:153
uint32_t expire_interval
Definition rtr_pdus.h:156
uint8_t ver
Definition rtr_pdus.h:149
uint16_t session_id
Definition rtr_pdus.h:151
uint8_t type
Definition rtr_pdus.h:150
uint32_t len
Definition rtr_pdus.h:152
uint32_t retry_interval
Definition rtr_pdus.h:155
Definition rtr_pdus.h:89
uint8_t type
Definition rtr_pdus.h:91
uint32_t len
Definition rtr_pdus.h:93
uint16_t error_code
Definition rtr_pdus.h:92
uint8_t rest[]
Definition rtr_pdus.h:95
uint32_t len_enc_pdu
Definition rtr_pdus.h:94
uint8_t ver
Definition rtr_pdus.h:90
Definition rtr_pdus.h:33
uint32_t len
Definition rtr_pdus.h:37
uint8_t type
Definition rtr_pdus.h:35
uint16_t reserved
Definition rtr_pdus.h:36
uint8_t ver
Definition rtr_pdus.h:34
Definition rtr_pdus.h:63
uint8_t prefix_len
Definition rtr_pdus.h:69
uint32_t len
Definition rtr_pdus.h:67
uint8_t zero
Definition rtr_pdus.h:71
uint8_t flags
Definition rtr_pdus.h:68
uint8_t type
Definition rtr_pdus.h:65
uint32_t asn
Definition rtr_pdus.h:73
uint16_t reserved
Definition rtr_pdus.h:66
uint8_t max_prefix_len
Definition rtr_pdus.h:70
uint32_t prefix
Definition rtr_pdus.h:72
uint8_t ver
Definition rtr_pdus.h:64
Definition rtr_pdus.h:76
uint8_t max_prefix_len
Definition rtr_pdus.h:83
uint32_t asn
Definition rtr_pdus.h:86
uint8_t prefix_len
Definition rtr_pdus.h:82
uint16_t reserved
Definition rtr_pdus.h:79
uint8_t ver
Definition rtr_pdus.h:77
uint32_t prefix[4]
Definition rtr_pdus.h:85
uint8_t zero
Definition rtr_pdus.h:84
uint8_t flags
Definition rtr_pdus.h:81
uint32_t len
Definition rtr_pdus.h:80
uint8_t type
Definition rtr_pdus.h:78
Definition rtr_pdus.h:121
uint8_t ver
Definition rtr_pdus.h:122
uint32_t len
Definition rtr_pdus.h:125
uint16_t flags
Definition rtr_pdus.h:124
uint8_t type
Definition rtr_pdus.h:123
Definition rtr_pdus.h:98
uint8_t ski[SKI_SIZE]
Definition rtr_pdus.h:104
uint8_t type
Definition rtr_pdus.h:100
uint8_t spki[SPKI_SIZE]
Definition rtr_pdus.h:106
uint32_t len
Definition rtr_pdus.h:103
uint8_t zero
Definition rtr_pdus.h:102
uint32_t asn
Definition rtr_pdus.h:105
uint8_t flags
Definition rtr_pdus.h:101
uint8_t ver
Definition rtr_pdus.h:99
Definition rtr_pdus.h:47
uint32_t len
Definition rtr_pdus.h:51
uint16_t session_id
Definition rtr_pdus.h:50
uint32_t sn
Definition rtr_pdus.h:52
uint8_t type
Definition rtr_pdus.h:49
uint8_t ver
Definition rtr_pdus.h:48
Definition rtr_pdus.h:55
uint8_t type
Definition rtr_pdus.h:57
uint8_t ver
Definition rtr_pdus.h:56
uint32_t sn
Definition rtr_pdus.h:60
uint16_t session_id
Definition rtr_pdus.h:58
uint32_t len
Definition rtr_pdus.h:59