- Layer: Application and control
- Header: variable length
| Lower layer | Selector | Value |
bgp | type | 2 (0x02) |
| Field | Type | Default | Auto | Description |
withdrawn_routes_length | uint(16) | | Size of withdrawn_routes in octets | Length of the withdrawn routes, in octets (Auto). |
withdrawn_routes | list<struct> — withdrawn_routes_length octets | [] | | Withdrawn IPv4 routes (prefix length in bits, prefix). |
total_path_attribute_length | uint(16) | | Size of path_attributes in octets | Length of the path attributes, in octets (Auto). |
path_attributes | tlv — total_path_attribute_length octets | 3 items | | Path attributes (flags + type code; the length is 16 bits with the Extended Length flag, set automatically above 255 octets). |
nlri | list<struct> — rest of the PDU | 1 items | | Announced IPv4 routes (prefix length in bits, prefix); other families go in MP_REACH_NLRI. |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
prefix | bytes — (length + 7) / 8 octets | | | |
- Type 16 bits, length 8 bits.
- The length counts the value only.
- Type bit 0x1000 selects a 16-bit length.
- Unknown types are kept as raw value octets.
| Type | Name | Value fields | Description |
| 16385 (0x4001) | origin | origin | |
| 16386 (0x4002) | as_path | segments | |
| 16387 (0x4003) | next_hop | next_hop | |
| 32772 (0x8004) | multi_exit_disc | med | |
| 16389 (0x4005) | local_pref | local_pref | |
| 16390 (0x4006) | atomic_aggregate | | |
| 49159 (0xc007) | aggregator | asn, address | |
| 49160 (0xc008) | communities | values | |
| 32782 (0x800e) | mp_reach_ipv4_unicast | afi, safi, next_hop_length, next_hop, reserved, nlri; when the value starts with 00 01 01 | |
| 32782 (0x800e) | mp_reach_ipv6_unicast | afi, safi, next_hop_length, next_hop, reserved, nlri; when the value starts with 00 02 01 | |
| 32782 (0x800e) | mp_reach_vpnv4 | afi, safi, next_hop_length, next_hop, reserved, nlri; when the value starts with 00 01 80 | |
| 32782 (0x800e) | mp_reach_vpnv6 | afi, safi, next_hop_length, next_hop, reserved, nlri; when the value starts with 00 02 80 | |
| 32782 (0x800e) | mp_reach_evpn | afi, safi, next_hop_length, next_hop, reserved, nlri; when the value starts with 00 19 46 | |
| 32782 (0x800e) | mp_reach_nlri | afi, safi, next_hop_length, next_hop, reserved, nlri | |
| 32783 (0x800f) | mp_unreach_ipv4_unicast | afi, safi, withdrawn; when the value starts with 00 01 01 | |
| 32783 (0x800f) | mp_unreach_ipv6_unicast | afi, safi, withdrawn; when the value starts with 00 02 01 | |
| 32783 (0x800f) | mp_unreach_vpnv4 | afi, safi, withdrawn; when the value starts with 00 01 80 | |
| 32783 (0x800f) | mp_unreach_vpnv6 | afi, safi, withdrawn; when the value starts with 00 02 80 | |
| 32783 (0x800f) | mp_unreach_evpn | afi, safi, withdrawn; when the value starts with 00 19 46 | |
| 32783 (0x800f) | mp_unreach_nlri | afi, safi, withdrawn | |
| 49168 (0xc010) | extended_communities | values | |
| 49184 (0xc020) | large_communities | values | |
| 49174 (0xc016) | pmsi_tunnel | flags, tunnel_type, mpls_label, tunnel_id | |
| Field | Type | Default | Auto | Description |
origin | uint(8) | | | |
| Field | Type | Default | Auto | Description |
segments | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
segment_type | enum(8) | | | |
segment_length | uint(8) | | | |
asns | list<uint(32)> — segment_length * 4 octets | | | |
| Value | Name |
| 1 (0x01) | as_set |
| 2 (0x02) | as_sequence |
| Field | Type | Default | Auto | Description |
next_hop | ipv4 | | | |
| Field | Type | Default | Auto | Description |
med | uint(32) | | | |
| Field | Type | Default | Auto | Description |
local_pref | uint(32) | | | |
| Field | Type | Default | Auto | Description |
asn | uint(32) | | | |
address | ipv4 | | | |
| Field | Type | Default | Auto | Description |
values | list<uint(32)> — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 1 | | |
safi | uint(8) | 1 | | |
next_hop_length | uint(8) | | Size of next_hop in octets | |
next_hop | list<ipv4> — next_hop_length octets | | | |
reserved | uint(8) | | | |
nlri | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
prefix | bytes — (length + 7) / 8 octets | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 2 | | |
safi | uint(8) | 1 | | |
next_hop_length | uint(8) | | Size of next_hop in octets | |
next_hop | list<ipv6> — next_hop_length octets | | | |
reserved | uint(8) | | | |
nlri | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
prefix | bytes — (length + 7) / 8 octets | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 1 | | |
safi | uint(8) | 128 | | |
next_hop_length | uint(8) | | Size of next_hop in octets | |
next_hop | list<struct> — next_hop_length octets | | | |
reserved | uint(8) | | | |
nlri | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
address | ipv4 | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
label | uint(20) | | | |
exp | uint(3) | | | |
bos | uint(1) | | | |
rd | bytes(8) | | | |
prefix | bytes — (length - 81) / 8 octets | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 2 | | |
safi | uint(8) | 128 | | |
next_hop_length | uint(8) | | Size of next_hop in octets | |
next_hop | list<struct> — next_hop_length octets | | | |
reserved | uint(8) | | | |
nlri | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
address | ipv6 | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
label | uint(20) | | | |
exp | uint(3) | | | |
bos | uint(1) | | | |
rd | bytes(8) | | | |
prefix | bytes — (length - 81) / 8 octets | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 25 | | |
safi | uint(8) | 70 | | |
next_hop_length | uint(8) | | Size of next_hop in octets | |
next_hop | bytes — next_hop_length octets | | | |
reserved | uint(8) | | | |
nlri | tlv — rest of the PDU | | | |
- Type 8 bits, length 8 bits.
- The length counts the value only.
- Unknown types are kept as raw value octets.
| Type | Name | Value fields | Description |
| 1 (0x01) | ethernet_ad | rd, esi, ethernet_tag, mpls_label | |
| 2 (0x02) | mac_ip | rd, esi, ethernet_tag, mac_length, mac, ip_length, ip_address, labels | |
| 3 (0x03) | inclusive_multicast | rd, ethernet_tag, ip_length, originating_ip | |
| 4 (0x04) | ethernet_segment | rd, esi, ip_length, originating_ip | |
| 5 (0x05) | ip_prefix | rd, esi, ethernet_tag, ip_prefix_length, ip_prefix, gateway, mpls_label; when the value is 34 octets | |
| 5 (0x05) | ipv6_prefix | rd, esi, ethernet_tag, ip_prefix_length, ip_prefix, gateway, mpls_label; when the value is 58 octets | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ethernet_tag | uint(32) | | | |
mpls_label | uint(24) | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ethernet_tag | uint(32) | | | |
mac_length | uint(8) | | | |
mac | mac | | | |
ip_length | uint(8) | | | |
ip_address | bytes — ip_length / 8 octets | | | |
labels | list<uint(24)> — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
ethernet_tag | uint(32) | | | |
ip_length | uint(8) | | | |
originating_ip | bytes — ip_length / 8 octets | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ip_length | uint(8) | | | |
originating_ip | bytes — ip_length / 8 octets | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ethernet_tag | uint(32) | | | |
ip_prefix_length | uint(8) | | | |
ip_prefix | ipv4 | | | |
gateway | ipv4 | | | |
mpls_label | uint(24) | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ethernet_tag | uint(32) | | | |
ip_prefix_length | uint(8) | | | |
ip_prefix | ipv6 | | | |
gateway | ipv6 | | | |
mpls_label | uint(24) | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | | | |
safi | uint(8) | | | |
next_hop_length | uint(8) | | Size of next_hop in octets | |
next_hop | bytes — next_hop_length octets | | | |
reserved | uint(8) | | | |
nlri | bytes — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 1 | | |
safi | uint(8) | 1 | | |
withdrawn | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
prefix | bytes — (length + 7) / 8 octets | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 2 | | |
safi | uint(8) | 1 | | |
withdrawn | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
prefix | bytes — (length + 7) / 8 octets | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 1 | | |
safi | uint(8) | 128 | | |
withdrawn | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
label | uint(20) | | | |
exp | uint(3) | | | |
bos | uint(1) | | | |
rd | bytes(8) | | | |
prefix | bytes — (length - 81) / 8 octets | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 2 | | |
safi | uint(8) | 128 | | |
withdrawn | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
label | uint(20) | | | |
exp | uint(3) | | | |
bos | uint(1) | | | |
rd | bytes(8) | | | |
prefix | bytes — (length - 81) / 8 octets | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | 25 | | |
safi | uint(8) | 70 | | |
withdrawn | tlv — rest of the PDU | | | |
- Type 8 bits, length 8 bits.
- The length counts the value only.
- Unknown types are kept as raw value octets.
| Type | Name | Value fields | Description |
| 1 (0x01) | ethernet_ad | rd, esi, ethernet_tag, mpls_label | |
| 2 (0x02) | mac_ip | rd, esi, ethernet_tag, mac_length, mac, ip_length, ip_address, labels | |
| 3 (0x03) | inclusive_multicast | rd, ethernet_tag, ip_length, originating_ip | |
| 4 (0x04) | ethernet_segment | rd, esi, ip_length, originating_ip | |
| 5 (0x05) | ip_prefix | rd, esi, ethernet_tag, ip_prefix_length, ip_prefix, gateway, mpls_label; when the value is 34 octets | |
| 5 (0x05) | ipv6_prefix | rd, esi, ethernet_tag, ip_prefix_length, ip_prefix, gateway, mpls_label; when the value is 58 octets | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ethernet_tag | uint(32) | | | |
mpls_label | uint(24) | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ethernet_tag | uint(32) | | | |
mac_length | uint(8) | | | |
mac | mac | | | |
ip_length | uint(8) | | | |
ip_address | bytes — ip_length / 8 octets | | | |
labels | list<uint(24)> — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
ethernet_tag | uint(32) | | | |
ip_length | uint(8) | | | |
originating_ip | bytes — ip_length / 8 octets | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ip_length | uint(8) | | | |
originating_ip | bytes — ip_length / 8 octets | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ethernet_tag | uint(32) | | | |
ip_prefix_length | uint(8) | | | |
ip_prefix | ipv4 | | | |
gateway | ipv4 | | | |
mpls_label | uint(24) | | | |
| Field | Type | Default | Auto | Description |
rd | bytes(8) | | | |
esi | bytes(10) | | | |
ethernet_tag | uint(32) | | | |
ip_prefix_length | uint(8) | | | |
ip_prefix | ipv6 | | | |
gateway | ipv6 | | | |
mpls_label | uint(24) | | | |
| Field | Type | Default | Auto | Description |
afi | uint(16) | | | |
safi | uint(8) | | | |
withdrawn | bytes — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
values | list<uint(64)> — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
values | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
global_admin | uint(32) | | | |
local_data1 | uint(32) | | | |
local_data2 | uint(32) | | | |
| Field | Type | Default | Auto | Description |
flags | uint(8) | | | |
tunnel_type | enum(8) | | | |
mpls_label | uint(24) | | | |
tunnel_id | bytes — rest of the PDU | | | |
| Value | Name |
| 0 (0x00) | none |
| 1 (0x01) | rsvp_te_p2mp |
| 2 (0x02) | mldp_p2mp |
| 3 (0x03) | pim_ssm |
| 4 (0x04) | pim_sm |
| 5 (0x05) | bidir_pim |
| 6 (0x06) | ingress_replication |
| 7 (0x07) | mldp_mp2mp |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
length | uint(8) | | | |
prefix | bytes — (length + 7) / 8 octets | | | |