- Layer: L3 (network)
- Header: variable length
- Notes: IS-IS (P2)
| Lower layer | Selector | Value |
llc | First 8 bits of the payload when dsap = 254 (0xfe) | 131 (0x83) |
ppp | First 8 bits of the payload when protocol = 35 (0x0023) | 131 (0x83) |
isis | pdu_type | 24 (re-decodes this layer) |
| Field | Type | Default | Auto | Description |
irpd | enum(8) | 131 (isis) | | Intradomain routing protocol discriminator (0x83 = IS-IS). |
header_length | uint(8) | 33 | | Length of the fixed header in octets (constant for each PDU type: LAN Hello / LSP 27, P2P Hello 20, CSNP 33, PSNP 17). |
version_ext | uint(8) | 1 | | Version / protocol ID extension (1). |
id_length | uint(8) | 0 | | System ID length (0 = 6 octets). |
reserved | uint(3) | 0 | | |
pdu_type | enum(5) | 24 (l1_csnp) | | PDU type (15/16 LAN Hello L1/L2, 17 P2P Hello, 18/20 LSP L1/L2, 24/25 CSNP, 26/27 PSNP). |
version | uint(8) | 1 | | Version (1). |
reserved2 | uint(8) | 0 | | |
max_area_addresses | uint(8) | 0 | | Maximum number of area addresses (0 = 3). |
pdu_length | uint(16) | | Length of the header and payload in octets | Length of the whole PDU (Auto). On a Hello, a Manual value pads the PDU to that length with Padding TLVs (e.g. 1497 for an MTU of 1500). |
source_id | bytes(7) | 00 00 00 00 00 01 00 | | System ID of the sender and circuit ID (0). |
start_lsp_id | bytes(8) | 00 00 00 00 00 00 00 00 | | First LSP ID covered by the CSNP. |
end_lsp_id | bytes(8) | ff ff ff ff ff ff ff ff | | Last LSP ID covered by the CSNP. |
tlvs | tlv — rest of the PDU | 1 items | | TLVs (8-bit code / 8-bit length) and their sub-TLVs. |
| Value | Name |
| 15 | l1_lan_hello |
| 16 | l2_lan_hello |
| 17 | p2p_hello |
| 18 | l1_lsp |
| 20 | l2_lsp |
| 24 | l1_csnp |
| 25 | l2_csnp |
| 26 | l1_psnp |
| 27 | l2_psnp |
- 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) | area_addresses | addresses | |
| 2 (0x02) | is_reachability | virtual_flag, neighbors | |
| 6 (0x06) | is_neighbors | neighbors | |
| 8 (0x08) | padding | data | |
| 9 (0x09) | lsp_entries | entries | |
| 10 (0x0a) | authentication | auth_type, value | |
| 22 (0x16) | extended_is_reachability | neighbors | |
| 128 (0x80) | ip_internal_reachability | prefixes | |
| 129 (0x81) | protocols_supported | nlpids | |
| 130 (0x82) | ip_external_reachability | prefixes | |
| 132 (0x84) | ip_interface_addresses | addresses | |
| 134 (0x86) | te_router_id | router_id | |
| 135 (0x87) | extended_ip_reachability | prefixes | |
| 137 (0x89) | dynamic_hostname | hostname | |
| 232 (0xe8) | ipv6_interface_addresses | addresses | |
| 236 (0xec) | ipv6_reachability | prefixes | |
| 240 (0xf0) | p2p_adjacency_state | adjacency_state, extended_local_circuit_id, neighbor_system_id, neighbor_extended_local_circuit_id | |
| 242 (0xf2) | router_capability | router_id, flags, sub_tlvs | |
| Field | Type | Default | Auto | Description |
addresses | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
address | nsap | | | |
| Field | Type | Default | Auto | Description |
virtual_flag | uint(8) | | | |
neighbors | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
default_metric | uint(8) | 10 | | |
delay_metric | uint(8) | 128 | | |
expense_metric | uint(8) | 128 | | |
error_metric | uint(8) | 128 | | |
neighbor_id | bytes(7) | | | |
| Field | Type | Default | Auto | Description |
neighbors | list<mac> — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
data | bytes — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
entries | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
remaining_lifetime | uint(16) | | | |
lsp_id | bytes(8) | | | |
sequence_number | uint(32) | | | |
checksum | uint(16) | | | |
| Field | Type | Default | Auto | Description |
auth_type | enum(8) | | | |
value | bytes — rest of the PDU | | | |
| Value | Name |
| 1 (0x01) | cleartext |
| 54 (0x36) | hmac_md5 |
| Field | Type | Default | Auto | Description |
neighbors | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
neighbor_id | bytes(7) | | | |
metric | uint(24) | | | |
sub_tlvs_length | uint(8) | | Size of sub_tlvs in octets | |
sub_tlvs | tlv — sub_tlvs_length octets | | | |
- 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 |
| 3 (0x03) | admin_group | value | |
| 4 (0x04) | link_ids | local_id, remote_id | |
| 6 (0x06) | ipv4_interface_address | address | |
| 8 (0x08) | ipv4_neighbor_address | address | |
| 9 (0x09) | max_link_bandwidth | value | |
| 10 (0x0a) | max_reservable_bandwidth | value | |
| 11 (0x0b) | unreserved_bandwidth | values | |
| 18 (0x12) | te_default_metric | value | |
| 31 (0x1f) | adj_sid | flags, weight, sid | |
| 32 (0x20) | lan_adj_sid | flags, weight, neighbor_id, sid | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › admin_group
| Field | Type | Default | Auto | Description |
value | uint(32) | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › link_ids
| Field | Type | Default | Auto | Description |
local_id | uint(32) | | | |
remote_id | uint(32) | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › ipv4_interface_address
| Field | Type | Default | Auto | Description |
address | ipv4 | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › ipv4_neighbor_address
| Field | Type | Default | Auto | Description |
address | ipv4 | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › max_link_bandwidth
| Field | Type | Default | Auto | Description |
value | uint(32) | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › max_reservable_bandwidth
| Field | Type | Default | Auto | Description |
value | uint(32) | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › unreserved_bandwidth
| Field | Type | Default | Auto | Description |
values | bytes(32) | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › te_default_metric
| Field | Type | Default | Auto | Description |
value | uint(24) | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › adj_sid
| Field | Type | Default | Auto | Description |
flags | flags(8) | | | |
weight | uint(8) | | | |
sid | bytes — rest of the PDU | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › adj_sid › flags
| Bit | Mask | Name |
| 7 | 128 (0x80) | f |
| 6 | 64 (0x40) | b |
| 5 | 32 (0x20) | v |
| 4 | 16 (0x10) | l |
| 3 | 8 (0x08) | s |
| 2 | 4 (0x04) | p |
tlvs › extended_is_reachability › neighbors › sub_tlvs › lan_adj_sid
| Field | Type | Default | Auto | Description |
flags | flags(8) | | | |
weight | uint(8) | | | |
neighbor_id | bytes(6) | | | |
sid | bytes — rest of the PDU | | | |
tlvs › extended_is_reachability › neighbors › sub_tlvs › lan_adj_sid › flags
| Bit | Mask | Name |
| 7 | 128 (0x80) | f |
| 6 | 64 (0x40) | b |
| 5 | 32 (0x20) | v |
| 4 | 16 (0x10) | l |
| 3 | 8 (0x08) | s |
| 2 | 4 (0x04) | p |
| Field | Type | Default | Auto | Description |
prefixes | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
default_metric | uint(8) | 10 | | |
delay_metric | uint(8) | 128 | | |
expense_metric | uint(8) | 128 | | |
error_metric | uint(8) | 128 | | |
ip_address | ipv4 | | | |
subnet_mask | ipv4 | | | |
| Field | Type | Default | Auto | Description |
nlpids | list<enum(8)> — rest of the PDU | | | |
| Value | Name |
| 129 (0x81) | clnp |
| 142 (0x8e) | ipv6 |
| 204 (0xcc) | ipv4 |
| Field | Type | Default | Auto | Description |
prefixes | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
default_metric | uint(8) | 10 | | |
delay_metric | uint(8) | 128 | | |
expense_metric | uint(8) | 128 | | |
error_metric | uint(8) | 128 | | |
ip_address | ipv4 | | | |
subnet_mask | ipv4 | | | |
| Field | Type | Default | Auto | Description |
addresses | list<ipv4> — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
router_id | ipv4 | | | |
| Field | Type | Default | Auto | Description |
prefixes | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
metric | uint(32) | | | |
up_down | uint(1) | | | |
sub_tlvs_present | uint(1) | | Number of items of sub_tlv_block | |
prefix_length | uint(6) | | | |
prefix | bytes — (prefix_length + 7) / 8 octets | | | |
sub_tlv_block | list<struct> — sub_tlvs_present items | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
sub_tlvs_length | uint(8) | | Size of sub_tlvs in octets | |
sub_tlvs | tlv — sub_tlvs_length octets | | | |
tlvs › extended_ip_reachability › prefixes › sub_tlv_block › sub_tlvs
- 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) | admin_tag | tags | |
| 2 (0x02) | admin_tag64 | tags | |
| 3 (0x03) | prefix_sid | flags, algorithm, sid | |
| 4 (0x04) | prefix_attribute_flags | flags | |
tlvs › extended_ip_reachability › prefixes › sub_tlv_block › sub_tlvs › admin_tag
| Field | Type | Default | Auto | Description |
tags | list<uint(32)> — rest of the PDU | | | |
tlvs › extended_ip_reachability › prefixes › sub_tlv_block › sub_tlvs › admin_tag64
| Field | Type | Default | Auto | Description |
tags | list<uint(64)> — rest of the PDU | | | |
tlvs › extended_ip_reachability › prefixes › sub_tlv_block › sub_tlvs › prefix_sid
| Field | Type | Default | Auto | Description |
flags | flags(8) | | | |
algorithm | uint(8) | | | |
sid | bytes — rest of the PDU | | | |
tlvs › extended_ip_reachability › prefixes › sub_tlv_block › sub_tlvs › prefix_sid › flags
| Bit | Mask | Name |
| 7 | 128 (0x80) | r |
| 6 | 64 (0x40) | n |
| 5 | 32 (0x20) | p |
| 4 | 16 (0x10) | e |
| 3 | 8 (0x08) | v |
| 2 | 4 (0x04) | l |
tlvs › extended_ip_reachability › prefixes › sub_tlv_block › sub_tlvs › prefix_attribute_flags
| Field | Type | Default | Auto | Description |
flags | bytes — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
hostname | bytes — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
addresses | list<ipv6> — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
prefixes | list<struct> — rest of the PDU | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
metric | uint(32) | | | |
up_down | uint(1) | | | |
external | uint(1) | | | |
sub_tlvs_present | uint(1) | | Number of items of sub_tlv_block | |
reserved | uint(5) | | | |
prefix_length | uint(8) | | | |
prefix | bytes — (prefix_length + 7) / 8 octets | | | |
sub_tlv_block | list<struct> — sub_tlvs_present items | | | |
Each item is a group of the fields below.
| Field | Type | Default | Auto | Description |
sub_tlvs_length | uint(8) | | Size of sub_tlvs in octets | |
sub_tlvs | tlv — sub_tlvs_length octets | | | |
tlvs › ipv6_reachability › prefixes › sub_tlv_block › sub_tlvs
- 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) | admin_tag | tags | |
| 2 (0x02) | admin_tag64 | tags | |
| 3 (0x03) | prefix_sid | flags, algorithm, sid | |
| 4 (0x04) | prefix_attribute_flags | flags | |
tlvs › ipv6_reachability › prefixes › sub_tlv_block › sub_tlvs › admin_tag
| Field | Type | Default | Auto | Description |
tags | list<uint(32)> — rest of the PDU | | | |
tlvs › ipv6_reachability › prefixes › sub_tlv_block › sub_tlvs › admin_tag64
| Field | Type | Default | Auto | Description |
tags | list<uint(64)> — rest of the PDU | | | |
tlvs › ipv6_reachability › prefixes › sub_tlv_block › sub_tlvs › prefix_sid
| Field | Type | Default | Auto | Description |
flags | flags(8) | | | |
algorithm | uint(8) | | | |
sid | bytes — rest of the PDU | | | |
tlvs › ipv6_reachability › prefixes › sub_tlv_block › sub_tlvs › prefix_sid › flags
| Bit | Mask | Name |
| 7 | 128 (0x80) | r |
| 6 | 64 (0x40) | n |
| 5 | 32 (0x20) | p |
| 4 | 16 (0x10) | e |
| 3 | 8 (0x08) | v |
| 2 | 4 (0x04) | l |
tlvs › ipv6_reachability › prefixes › sub_tlv_block › sub_tlvs › prefix_attribute_flags
| Field | Type | Default | Auto | Description |
flags | bytes — rest of the PDU | | | |
| Field | Type | Default | Auto | Description |
adjacency_state | enum(8) | | | |
extended_local_circuit_id | uint(32) | | | |
neighbor_system_id | bytes(6) | | | |
neighbor_extended_local_circuit_id | uint(32) | | | |
| Value | Name |
| 0 (0x00) | up |
| 1 (0x01) | initializing |
| 2 (0x02) | down |
| Field | Type | Default | Auto | Description |
router_id | ipv4 | | | |
flags | flags(8) | | | |
sub_tlvs | tlv — rest of the PDU | | | |
| Bit | Mask | Name |
| 0 | 1 (0x01) | s |
| 1 | 2 (0x02) | d |
- 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 |
| 2 (0x02) | sr_capabilities | flags, ranges | |
| 19 (0x13) | sr_algorithms | algorithms | |
| Field | Type | Default | Auto | Description |
flags | flags(8) | | | |
ranges | bytes — rest of the PDU | | | |
tlvs › router_capability › sub_tlvs › sr_capabilities › flags
| Bit | Mask | Name |
| 7 | 128 (0x80) | i |
| 6 | 64 (0x40) | v |
| Field | Type | Default | Auto | Description |
algorithms | list<uint(8)> — rest of the PDU | | | |
| Level | Rule |
| warning | header_length = 33 |
- isis-l1-csnp —
templates/protocols/routing/isis-l1-csnp.wpg.yaml