Private Network-to-Network Interface
The Private Network-to-Network Interface (PNNI) is a link-state routing protocol used in asynchronous transfer mode (ATM) networks. PNNI is similar to the open shortest path first (OSPF) used for IP routing. 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: 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: 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 shortest path first (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.