IS-IS PDU Types
Understanding IS-IS Protocol Data Units
IS-IS uses four main types of Protocol Data Units (PDUs) to maintain network topology and establish adjacencies. Each PDU type serves a specific purpose in the IS-IS protocol operation.
Common PDU Header
All IS-IS PDUs share a common header structure that provides basic protocol information and PDU identification.
IS-IS Common Header Format
PDU Type Values
PDU Type | Value | Level | Purpose |
---|---|---|---|
LAN Hello | 15 (L1), 16 (L2) | Level-1, Level-2 | Neighbor discovery on broadcast networks |
P2P Hello | 17 | Both levels | Neighbor discovery on point-to-point links |
LSP | 18 (L1), 20 (L2) | Level-1, Level-2 | Link state information distribution |
CSNP | 24 (L1), 25 (L2) | Level-1, Level-2 | Complete sequence number PDU |
PSNP | 26 (L1), 27 (L2) | Level-1, Level-2 | Partial sequence number PDU |
Hello PDUs
Hello PDU Functions
Hello PDUs are used for neighbor discovery, adjacency establishment, and maintenance. IS-IS defines two types of Hello PDUs based on the network type.
LAN Hello PDU
- Used on broadcast networks
- Separate PDUs for Level-1 and Level-2
- Contains DIS priority information
- Lists all neighbors on LAN
Point-to-Point Hello
- Used on point-to-point links
- Single PDU for both levels
- No DIS election needed
- Simpler adjacency process
LAN Hello PDU Structure
LAN Hello PDU Fields
# LAN Hello PDU Structure
Common Header (8 bytes)
Circuit Type (1 byte) # Level-1, Level-2, or both
Source ID (6 + 1 bytes) # System ID + Pseudonode ID
Holding Time (2 bytes) # Neighbor aging timer
PDU Length (2 bytes) # Total PDU length
Priority (1 byte) # DIS election priority
LAN ID (6 + 1 bytes) # DIS System ID + Circuit ID
TLVs (variable) # Type-Length-Value fields
Hello PDU TLVs
TLV Type | Name | Purpose | Required |
---|---|---|---|
1 | Area Addresses | List of area addresses | Yes |
6 | IS Neighbors | List of neighboring routers | LAN Hello |
8 | Padding | Pad to minimum size | Optional |
10 | Authentication | Authentication information | Optional |
129 | Protocols Supported | Supported network protocols | Yes |
132 | IP Interface Address | Interface IP addresses | Optional |
DIS Election Process
Designated Intermediate System (DIS) Election
1. Priority Comparison
Router with highest priority becomes DIS
2. System ID Tiebreaker
Highest System ID wins if priorities equal
3. Preemptive Election
New router with higher priority can preempt
4. Pseudonode Creation
DIS creates pseudonode LSP for the LAN
Link State PDUs (LSPs)
LSP Overview
Link State PDUs contain the actual topology information in IS-IS. They describe the router's local connectivity and are flooded throughout the appropriate level to build the link state database.
LSP Header Structure
LSP Header Fields
# LSP Header Structure
Common Header (8 bytes)
PDU Length (2 bytes) # Total LSP length
Remaining Lifetime (2 bytes) # LSP aging timer
LSP ID (8 bytes) # System ID + Pseudonode ID + LSP Number
Sequence Number (4 bytes) # LSP version identifier
Checksum (2 bytes) # LSP integrity check
P/ATT/OL/IS Type (1 byte) # Flags and router type
TLVs (variable) # Type-Length-Value fields
LSP Flags
Flag | Bit | Name | Description |
---|---|---|---|
P | 7 | Partition Repair | Partition repair supported |
ATT | 6-4 | Attached | Level-1-2 router attached to other areas |
OL | 3 | Overload | Router in overload condition |
IS Type | 2-1 | IS Type | 01=L1, 11=L2, 10=L1-L2 |
LSP TLVs
Basic TLVs
- TLV 1: Area Addresses
- TLV 2: IS Neighbors
- TLV 6: IS Neighbors (LAN)
- TLV 8: Padding
- TLV 10: Authentication
Extended TLVs
- TLV 128: IP Internal Reachability
- TLV 129: Protocols Supported
- TLV 130: IP External Reachability
- TLV 132: IP Interface Address
- TLV 135: Extended IP Reachability
LSP Lifecycle
Generation
Router creates LSP describing local topology
Flooding
LSP is flooded to all routers in level
Aging
LSP lifetime decrements over time
Refresh/Purge
LSP refreshed or purged when expired
Sequence Number PDUs (SNPs)
SNP Functions
Sequence Number PDUs are used for database synchronization and LSP acknowledgment. IS-IS defines two types of SNPs for different synchronization scenarios.
Complete SNP (CSNP)
- Contains summary of entire LSDB
- Sent periodically by DIS on LANs
- Used for database synchronization
- Helps detect missing LSPs
Partial SNP (PSNP)
- Contains subset of LSDB entries
- Used to request missing LSPs
- Acknowledges received LSPs
- Sent on both LAN and P2P links
CSNP Structure
Complete SNP Fields
# CSNP Structure
Common Header (8 bytes)
PDU Length (2 bytes) # Total CSNP length
Source ID (6 + 1 bytes) # Sending router ID
Start LSP ID (8 bytes) # First LSP in range
End LSP ID (8 bytes) # Last LSP in range
TLVs (variable) # LSP entries TLV
Database Synchronization Process
CSNP Transmission
DIS sends CSNP every 10 seconds listing all LSPs
Database Comparison
Routers compare CSNP with local database
PSNP Request
Send PSNP to request missing or newer LSPs
LSP Transmission
Missing LSPs are sent and acknowledged
TLV Structure
Type-Length-Value Format
IS-IS uses Type-Length-Value (TLV) encoding for variable-length fields in PDUs. This flexible format allows for protocol extensions and vendor-specific information.
TLV Basic Structure
Common TLV Types
Type | Name | Usage | PDU Types |
---|---|---|---|
1 | Area Addresses | List of area addresses | Hello, LSP |
2 | IS Neighbors | Point-to-point neighbors | LSP |
6 | IS Neighbors (LAN) | LAN neighbors | Hello, LSP |
8 | Padding | Pad to minimum size | Hello |
9 | LSP Entries | LSP database entries | CSNP, PSNP |
10 | Authentication | Authentication data | All PDUs |
128 | IP Internal Reachability | Internal IP prefixes | LSP |
129 | Protocols Supported | Network layer protocols | Hello, LSP |
130 | IP External Reachability | External IP prefixes | LSP |
132 | IP Interface Address | Interface IP addresses | Hello, LSP |
135 | Extended IP Reachability | Wide metric IP prefixes | LSP |
TLV Example: Area Addresses
Area Addresses TLV Format
# Area Addresses TLV (Type 1)
Type: 01
Length: 04 # 4 bytes of data
Value:
Address Length: 03 # 3-byte area address
Area Address: 49.0001 # Area 49.0001
# Hex representation: 01 04 03 49 00 01
TLV Benefits
- Extensibility: New TLVs can be added without breaking existing implementations
- Flexibility: Variable-length data encoding
- Backward Compatibility: Unknown TLVs can be safely ignored
- Vendor Extensions: Support for proprietary features