PNNI is a suite of network protocols that can be used to discover an ATM network topology, create a database of topology information, and route calls over the discovered topology. PNNI is a link-state routing protocol, which means that the protocol collects information about the current state of links and nodes in the network to build a network database. The PNNI network database can be used to determine the network structure and the current state of network components. To build the PNNI network database, each PNNI node must receive topology information from all the other devices in the network. To keep the database current, the node must receive regular updates from other nodes.

The PNNI protocol communicates the state of a PNNI network in PNNI Topology State Elements (PTSEs). PTSEs are discrete messages that contain information about one of the following types of network components:

PNNI nodes

Reachable addresses

PNNI links between nodes

To enable communications with other nodes, each switch needs to have all the PTSE information for each switch in the network. Each node is responsible for flooding out its own PTSE information to all the other switches in the network.

Since up-to-date PTSE information is required for optimal routing decisions to be made, there are several different mechanisms in place to help ensure that all nodes have reasonably accurate PTSE information. The five common reasons for updating PTSEs are as follows:

Resources administratively added, removed or altered on a node.

Resource failure such as an Loss of Signal (LOS) on a link.

A significant change in link resources due to virtual circuits (VCs) routing or derouting.

PTSE information is passed between nodes using PNNI Topology State Packets (PTSPs). These packets utilize the Routing Control Channel (RCC; VPI = 0 and VCI = 18) between adjacent nodes. The RCC is also used for Hello packets and other PNNI messages. If the switch is unable to establish the RCC with the adjacent node, then PTSE information is not exchanged. Once a node receives PTSE information, the node stores the contents, or element information, in the database. This information is used to generate precomputed routing tables that identify routes to other network devices. PNNI uses the Dijkstra's algorithm for SPF calculation. The PNNI database is also used to perform on-demand routing when the appropriate routing table does not contain a viable path.

PNNI measures line capacities and delays in addition to simple cost metrics.