Guest

Private Network-Network Interface (PNNI)

Understanding PNNI Node IDs and the PNNI Hello Protocol

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



Updated: Dec 04, 2006 Document ID: 10488