Document ID: 10488
Contents
Introduction
Prerequisites
Requirements
Components Used
Conventions
Understand PNNI Identifiers
Node ID
Peer Group ID
Port ID
Internal Node Numbers
PNNI Packet Format
PNNI Packet Header
PNNI Packet Types
Hello State Machine
Related Information
Introduction
Private Network-Node Interface (PNNI) is the ATM Forum protocol to create switched virtual connections (SVCs) and soft permanent virtual circuits (PVCs) across and between ATM networks. PNNI uses the hello protocol for two purposes, as defined in the PNNI specification of the ATM Forum:
-
Discover and verify the identity of neighbor nodes.
-
Determine the status of the links to those nodes.
The purpose of this document is to assist with troubleshooting PNNI and ATM routing problems, particularly when LANE is used in a campus network, by the review of the data structure of the hello packet as well as the hello state machine. This document also discusses PNNI identifiers, such as node ID and peer group ID, which are exchanged in hello packets. These PNNI identifiers help to determine the state of the hello protocol.
Note: Although the explanation provided here applies to the PNNI protocol itself, this sample configuration focuses on Catalyst and LightStream 1010 Switches that run Cisco IOS® software.
Prerequisites
Requirements
There are no specific requirements for this document.
Components Used
This document is not restricted to specific software and hardware versions.
Conventions
Refer to Cisco Technical Tips Conventions for more information on document conventions.
Understand PNNI Identifiers
Before the hello protocol is discussed, you need to understand node ID, peer group ID, and port ID. The reason is that the hello state machine uses this information for the originating node as well as for the remote node. For example, the hello state machine changes state if it enters HelloMismatchReceived. In this state, the value of the node ID, peer group ID, port ID or protocol version field in the neighbor hello is different from the value saved from the last time a hello packet was received from the neighbor.
ATM end station addresses are 20 octets or 160 bits. PNNI routing operates only on the first 19 octets. The selector octet is used to distinguish node IDs of the various nodes on the same switch.
There are three types of PNNI entities: nodes, links, and peer groups. These entities occur at various hierarchical levels. The level specifies a bit string length and ranges from 0 to 104. The level indicator is absolute in the sense that it specifies the exact number of significant bits used for the peer group ID.
This output of the show atm pnni local-node command shows three logical nodes on the same physical ATM switch. Each node operates at a different PNNI level. Subsequent sections of this document explain PNNI levels.
NewYork.BldB.T2#show atm pnni local-node PNNI node 1 is enabled and running Node name: NewYork.BldB.T2 System address 47.009144556677114410111244.00603E5BBC01.01 Node ID 72:160:47.009144556677114410111244.00603E5BBC01.00 Peer group ID 72:47.0091.4455.6677.1144.0000.0000 Level 72, Priority 40 40, No. of interfaces 3, No. of neighbors 1 Parent Node Index: 2 <information deleted> PNNI node 2 is enabled and not running Node name: NewYork.BldB System address 47.009144556677114410111244.00603E5BBC01.02 Node ID 64:72:47.009144556677114400000000.00603E5BBC01.00 Peer group ID 64:47.0091.4455.6677.1100.0000.0000 Level 64, Priority 40 40, No. of interfaces 0, No. of neighbors 0 Parent Node Index: 3 <information deleted> PNNI node 3 is enabled and not running Node name: NewYork System address 47.009144556677114410111244.00603E5BBC01.03 Node ID 56:64:47.009144556677110000000000.00603E5BBC01.00 Peer group ID 56:47.0091.4455.6677.0000.0000.0000 Level 56, Priority 0 0, No. of interfaces 0, No. of neighbors 0 Parent Node Index: NONE
Node ID
The node ID spans 22 bytes and consists of two parts: a 1-byte level indicator and a 21-byte value that must be unique within the routing domain. Two methods currently define how to create node IDs, which depends on whether the PNNI node represents a PNNI peer group:
-
Node does not represent a peer group:
-
Byte 1—Level indicator specifies the level of the peer group in which the node is a member.
-
Byte 2—Always a value of 160.
-
Bytes 3 - 22—Contains the 20-byte ATM end system address of the system represented by the node.
-
-
Node does represent a child peer group to a parent peer group:
-
Byte 1—Level indicator specifies the level of the peer group for this logical or physical node.
-
Bytes 2 - 15—Peer group ID of the child peer group.
-
Bytes 16 - 21—End system identifier (ESI) of the physical system implementing the logical group node functionality.
-
Byte 22—Always a value of 0x00.
-
Here is an example:
Node ID 64:72:47.009144556677114400000000.00603E5BBC01.00
In this node ID, 64 represents the level of the node peer group. 72:47.009144556677114400000000 represents the child peer group ID. 00603E5BBC01 represents the end-system identifier. 00 represents the selector byte.
Peer Group ID
A peer group ID consists of up to 104 bits of ATM end system addresses. Peer group IDs consist of 14 octets: 1 octet for level indicator and 13 octets of identifier information.
In this example, the peer group ID in fact is 104 bits, and the peer group level is 56 bits.
Peer group ID 56:47.0091.4455.6677.0000.0000.0000 Level 56, Priority 0 0, No. of interfaces 0, No. of neighbors 0
The level is a value between zero and 104 (bits).
Port ID
A port ID is a 32-bit number assigned to a node which clearly identifies what the PNNI specification terms "a point of attachment of a logical link to that node." Port IDs are only meaningful to the node that assigns them. The values zero and 0xFFFFFFFF are reserved and cannot be used.
In this example, the output of the show atm pnni interface atm x/x/x detail command displays the remote port ID. Both the actual slot#/module#/port# as well as the 32-bit port ID (80003000) are displayed.
Remote node ID 72:160:47.009144556677223310111266.00603E7B2001.00 Remote node address 47.009144556677223310111266.00603E7B2001.01 Remote port ID ATM0/0/3 (80003000) (0)
Note: The remote switch must be a Cisco IOS-based ATM switch router (such as an LS1010, Catalyst 8500, or 6400) to translate the port identifier into a meaningful string such as ATM 3/0/0.
Internal Node Numbers
As shown in the previous example, PNNI node identifiers consist of many bytes. On Cisco ATM switches, the PNNI implementation maps PNNI node identifiers into internal node numbers, which the switch uses to display the topology in a compact fashion. These numbers are local to one ATM switch router, as opposed to the other identifiers defined in the ATM Forum specs. Different internal node numbers are assigned by different nodes in the network.
Issue the show atm pnni identifiers command in order to see the internal node names.
Switch#show atm pnni identifiers Node Node Id Name 1 56:160:47.00918100000000603E7B3201.00603E7B3201.00 Switch20 2 56:160:47.0091810000000003DDE74601.0003DDE74601.00 Switch22
This command displays the names of only those nodes that are in the same peer group as this node.
PNNI Packet Format
PNNI routing packets begin with a common PNNI packet header.
PNNI Packet Header
|
Size (Octets) |
Name |
|---|---|
|
2 |
Packet type |
|
2 |
Packet length |
|
1 |
Protocol version |
|
1 |
Newest version supported |
|
1 |
Oldest version supported |
|
1 |
Reserved |
PNNI Packet Types
|
Packet Type |
Packet Name |
|---|---|
|
1 |
Hello |
|
2 |
PTSP |
|
3 |
PTSE Acknowledgment |
|
4 |
Database Summary |
|
5 |
PTSE Request |
An ATM switch, known in PNNI as a node, transmits hellos over multiple links and connections:
-
All physical links to immediate neighbor nodes via VPI/VCI 0/18
-
All virtual path connections for which this node is an endpoint
-
All SVCCs established for the purpose to exchange PNNI routing information for which this node is an endpoint
At any time, only one interface to each neighboring peer is used to flood PNNI topology state elements (PTSEs). This interface is identified as (Flooding Port) in the command output.
Switch#show atm pnni neighbor local-node 1
Neighbors For Node (Index 1, Level 72)
Neighbor Name: NewYork.BldB.T1, Node number: 12
Neighbor Node Id: 72:160:47.009144556677114410111233.00603E7B3A01.00
Neighboring Peer State: Full
Link Selection Set To: minimize blocking of future calls
Port Remote Port Id Hello state
ATM0/1/3 ATM1/1/3 2way_in (Flooding Port)
This table lists the fields on the PNNI hello packet:
|
Bytes |
Name |
Function/Description |
|---|---|---|
|
8 |
PNNI Header |
Standard 8-byte PNNI header with packet type = 1 to indicate hello packets. |
|
2 |
Flags |
Reserved. |
|
22 |
Node ID |
Node ID of originating node. |
|
20 |
ATM End System Address |
An ATM switch that runs PNNI must use a unique ATM end system address for each node and must accept calls to this address. |
|
14 |
Peer Group ID |
Peer group ID of originating node. |
|
22 |
Remote Node ID |
Learned through the analysis of the node ID in received hellos on the same link. The remote node ID is set to all zeros if not yet known. |
|
4 |
Port ID |
Must be a value other than zero or all Fs. |
|
4 |
Remote Port ID |
Learned through the analysis of the port ID in received hellos on same link. Set to zero if not yet known. |
|
2 |
Hello Interval |
Dictates how often the switch transmits a hello packet. If no hello is received within a time period of (inactivity factor x hello interval), then the link is assumed to have failed. |
|
2 |
Reserved |
Reserved. |
The neighbor node is identified by the node ID found in the header of the hello packet. If the remote node ID, remote peer group ID, and remote port ID in the hello packet have not yet been specified, then they must be set to the originating node ID of the received hello, peer group ID, and port ID.
If a node finds a match in its own peer group, it declares itself to be a neighboring peer in a common peer group.
Hello State Machine
The hello protocol follows a state machine, in which it progresses through various states before it reaches a state at which it should operate properly. The states in the hello state machine are:
|
State |
Description |
|---|---|
|
Down |
Initial state when an interface first is enabled or when lower-level protocols indicate that the physical link is unusable. No PNNI routing packets are sent or received over a link in this state. |
|
Attempt |
Indicates that switch received either no hellos or hellos with mismatched information from the neighbor. In this state, the local node periodically sends hellos to the neighbor at an interval defined by the hellointerval timer. |
|
1-Way Inside |
Hellos have been received from the neighbor, and both nodes are members of the same peer group. However, the remote node ID and remote port ID in the neighbor's hellos were set to zero. |
|
2-Way Inside |
Hellos have recently been received from the neighbor which indicate that both nodes are members of the same peer group, and the remote node ID and remote port ID fields are the correct, non-zero values. This state indicates that bi-directional communication over this link has been achieved. Database summary packets, PNNI Topology State Element (PTSE) request packets, PNNI Topology State Packets (PTSPs), and PTSE acknowledgment packets only can be transmitted over links that are in the 2-way inside state. For physical links and VPCs, only those links that are in the 2-way inside state can be advertised by this node in PTSEs as horizontal links. |
|
1-Way Outside |
Hellos have recently been received from the neighbor and neighbor node belongs to a different peer group. The remote node ID and remote port ID in the neighbor's hellos are set to zero. |
|
2-Way Outside |
Hellos have recently been received from the neighbor which indicate that the neighbor node belongs to a different peer group. The hellos include the correct remote node ID and remote port ID fields, but with a nodal hierarchy list that does not include any common peer group. Note: In 1-way and 2-way outside, the node searches for a common peer group that contains both this node and the neighbor node. |
|
Common Outside |
Indicates that the node found a common level of the routing hierarchy and achieved full bi-directional communication with a neighbor node. A switch can advertise links that reach the Common Outside state in PTSEs as uplinks to the upnode. |
Hellos are sent periodically every HelloInterval seconds or sent at any time because of an event, such as one of several hello protocol state changes.
In a PNNI topology that uses multiple peer groups, the hello protocol transfers the link parameters on outside links. On these links, PTSE packets are not flooded via the well-known 0,18 VC, as is used on horizontal links. Instead, the only way to exchange link parameters on an outside link is via the hello protocol.
Issue the show atm pnni interface command to display information about the status of the PNNI interfaces and the hello protocol.
Switch#show atm pnni interface atm 0/0/2 detail Port ATM0/0/2 RCC is up , Hello state common_out with node SanFran.BldA.T4 Next hello occurs in 1 seconds, Dead timer fires in 63 seconds CBR : AW 5040 MCR 155519 ACR 147743 CTD 154 CDV 138 CLR0 10 CLR01 10 VBR-RT : AW 5040 MCR 155519 ACR 155519 CTD 707 CDV 691 CLR0 8 CLR01 8 VBR-NRT: AW 5040 MCR 155519 ACR 155519 CLR0 8 CLR01 8 ABR : AW 5040 MCR 155519 ACR 0 UBR : AW 5040 MCR 155519 Aggregation Token: configured 0 , derived 2, remote 2 Tx ULIA seq# 1, Rx ULIA seq# 1, Tx NHL seq# 2, Rx NHL seq# 1 Remote node ID 72:160:47.009144556677223310111266.00603E7B2001.00 Remote node address 47.009144556677223310111266.00603E7B2001.01 Remote port ID ATM0/0/3 (80003000) (0) Common peer group ID 56:47.0091.4455.6677.0000.0000.0000 Upnode ID 56:72:47.009144556677223300000000.00603E7B2001.00 Upnode Address 47.009144556677223310111266.00603E7B2001.02 Upnode number: 10 Upnode Name: SanFran
The show atm pnni neighbor command displays information about adjacencies. Multiple links can be connected to the same neighboring peer. The output from this command displays all PNNI interfaces to each neighboring peer in the same peer group, which includes the local port, the remote port, and the hello state for each interface.
The show atm status command displays the hello state of all interfaces on the switch. Use this command when you troubleshoot hello problems, such as when the hello state is down. Also, refer to Troubleshooting Switch Router ATM Network Connections for more information.
Related Information
- ATM Forum PNNI 1.0 Specification

- ATM Switch Router Command Reference
- Introduction to PNNI
- Technical Support & Documentation - Cisco Systems
| Updated: Dec 04, 2006 | Document ID: 10488 |
