TeD Models of ATM PNNI Networks
The most recent version of this document is available as http://www.cc.gatech.edu/computing/pads/pnnireadme.html
Quick Start

What is TeD? TeD stands for Telecommunications Description Language. designed mainly for modeling telecommunicating network elements and protocols.
See the TeD web page.
What is PNNI? PNNI stands for Private Network to Network Interface. It is an ATM forum standard for large-scale ATM networks.
See the PNNI specification.
What is modeled? The TeD models of the PNNI includes detailed implementations of most of the protocol features. These include booting the network from ground-up, dynamic peer-group detection using the Hello protocol, topology discovery by PTSE flooding, topology aggregation, call admission control, call routing, VCC setup and tear-down across the network between user nodes, VCC setup crankback, VCC failure codes, periodic update of peer group composition, actual transfer of data packets/cells over established VCCs and so on. [More information...]
Also, see SIGMETRICS March 98 and IEEE Communications August 98.
The PNNI models were one of the first complex models of large-scale networks that were developed using the TeD language. The initial version of the models was developed by Kalyan Perumalla and Matthew Andrews at Bellcore in the summer of 1996. The modeling effort was led by Sandeep Bhatt . Further development has been continued at Georgia Tech by Kalyan Perumalla and Fang Hao .


Quick Start
Step Description
0 Agree to the terms of usage.
1 Obtain the TeD software ted3.0.tar.Z by email request.
2 zcat ted3.0.tar.Z | tar -xvf -
extracts into a directory named TED3.0
3 Type make in TED3.0 directory to build TeD. [More info]
4 If you intend to use the Jane graphical interface to execute PNNI simulations, edit TED3.0/JANECLIENT/janeclient.csh to set JDKHOME, SWINGHOME and JANEHOME appropriately (use absolute path names for their values). [More info]
5 Obtain the PNNI software pnni2.0.tar.Z by email request.
6 zcat pnni2.0.tar.Z | tar -xvf -
extracts into a directory named PNNI2.0
7 Goto the PNNI2.0/SRC directory. Edit Makefile to set TEDINSTALLDIR to the directory TED3.0 created in step 2.
8 Type make in PNNI2.0/SRC to build PNNI. The executable will be OBJ/ARCH/runmodel, where ARCH is the architecture code of your machine.
9 Execute OBJ/ARCH/runmodel 1 300
to run the default network on 1 processor for 300 units of simulated time.
10 To use the Jane graphical interface:
  1. Start the Jane server by executing:
  2. Start the Jane client by executing:
    (cd TED3.0/JANECLIENT; janeclient.csh)
  3. Connect to the server using the Connect dialog.
  4. Suppose you have installed PNNI in the directory /usr/foo/PNNI2.0 (substitute your specific directory path). In the Simulation-Start dialog, enter:
    /usr/foo/PNNI2.0/SRC in the working directory cell of the first row.
    /usr/foo/PNNI2.0/SRC/OBJ/ARCH/runmodel in the federate executable cell of the first row.
    Choose the type of simulation as TeD/GTW, and start the simulation.

Customize Network Configurations
There are several PNNI network configurations supplied with the PNNI software, in the directories RBOCS-DATA, DATA, DATA2, etc. For each configuration, information must be specified in the following files:
Parallel Simulation

Large configurations of the PNNI network models have been simulated in parallel, with significant execution time speedup. See the report on simulation performance .

It is recommended that you first run the simulation on one processor, and consider running in parallel only after you have successfully simulated your network on one processor without any problems. To run on multiple processors of a shared-memory processor, just specify the number of parameters on the command-line argument, as with any TeD application.

Node-to-Processor Mapping for Parallel Simulation
The following mapping schemes are incorporated into the PNNI models, from which the most suitable one should be selected depending upon the particular network size, configuration and behavior. Assume that P is the number of processors, and n is the number of physical PNNI network nodes.
  1. Round-Robin Mapping
    Assign the next network node to the next processor.
    for i = 0..n-1
        map[i] = pe
        pe = (pe+1) % P
  2. Locality-based Mapping
    This is a heuristic based on user-specified grouping of nodes. Assume the network nodes are divided into mutually disjoint G logical groups (say, corresponding to bottom-most peer groups). Each network node is tagged by the user as belonging to one of those groups. Each group, in descending order of group size, is assigned to the next least-loaded processor.
    for i = 0..G-1
        g = largest unassigned group at present
        p = least loaded processor at present
        for all nodes j belonging to g
            map[j] = p
        update the load of processor p (increase by size of g)
        mark group g as assigned
  3. Degree-based Mapping
    In each iteration, find the node with the largest number of unassigned neighbors, and allocate as many of its unassigned neighbors to the least loaded processor while not exceeding the load of that processor above the average load. While assigning the neighbors, choose the neighbors in increasing order of their number of unassigned neighbors so far.
    m = (n-1)/P + 1      (integer division)
    while there are more nodes to be assigned to processors
        v = node that has the maximum number of unassigned neighbors
        p = least loaded processor at present
        map[v] = p
        Sort the unassigned neighbors of v in descending order of the number
            of their unassigned neighbors
        In the sorted order, assign as many neighbors as can fit on processor
            p such that the total number of nodes on p is not greater than m

What is Modeled?
Feature Description Reference
Network boot-up The network nodes start with no global information, empty topology database, and no peer group leaders. network.ted
Dynamic peer group detection The network nodes discover the neighbors via the Hello protocol, and form peer groups. pnnitopo.ted
Topology discovery The network nodes discover (their view of) the network topology dynamically using the PTSE flooding mechanism, and update their topology databases. pnnitopo.ted
Topology aggregation Peer group leaders aggregate their group's topology. Multiple aggregation methods are supported, from which one can be selected before simulation, and it is easy to incorporate other methods. pnnitopo.ted
Peer group election Election of a peer group leader is modeled simply via configuration. Each PNNI node is assigned a PGL capability level. A PGL capability of a node is the number of (contiguous) levels in the PGL hierarchy at which the node is a group leader. Group leadership is determined via configuration, since PGL election is not implemented in the models. pnnitopo.ted
Call admission control Call admission control algorithms are incorporated in the models. Different methods are supported, such as Competitive On-line; any other algorithm can be easily incorporated. pnniroute.ted
Call routing Calls are routed based on a routing algorithm which can be easily replaced with alternative algorithms. pnniroute.ted
VCC setup and tear-down VCCs can be setup and torn-down at runtime between any two network nodes. The same VCC setup mechanism is used both for setting up communication paths among peer group leaders as well as for VCCs between any network user nodes. In the current model, there is one user node attached to each network node. pnnivcc.ted, uniclient.ted
VCC setup crankback Crankback is implemented by which multiple alternative routes are explored whenever routing along some paths is unsuccessful. pnniroute.ted
VCC failure codes In case a VCC setup fails, the node that initiated the VCC connection is informed of the exact reason for failure. pnniroute.ted, pnniuser.ted
Data transfer (packets/cells) Once a VCC is setup, actual data packets can be transmitted over the VCC. pnniuser.ted

Frequently Asked Questions
Q1: When I run the PNNI models, I notice messages such as "...VCC connection failed...retrying...". Does it indicate a problem in the simulation?
Such messages are normal towards the beginning of the simulation, especially while the network is still booting up. What is happening is that some peer group leaders (PGLs) come into existence and initiate VCC connections to the rest of the PGLs in their group. Since the network is not completely setup initially, it is possible for certain connections to fail, in which case the PGLs retry their VCC setup. Note that the messages should indicate that there is no path to the peer as the reason of failure. If you see any other reason, it may indicate there is some other problem in the simulation.
Q2: Is there a runtime visualization of the network activity as the simulation is progressing?
Yes, a runtime visualization of the PNNI network hierarchy, and with some traffic behavior animation is incorporated in the latest version fo the PNNI extension of Jane. The Jane graphical interface, which provides a default view of the TeD entity tree information, has been enhanced to include PNNI-specific animations.
Q3: Where can I get more help/information?
This document is periodically updated with more information and answers over time. Check out the latest version. Or, send questions via email, or post a question to the TeD users mailing list.

Distribution List

PNNI models have been distributed to researchers at the following institutions upon their request.

AT&T Research Bellcore Bell Labs, Lucent Technologies
BT Labs Cooperative Systems ATRI, Curtin Univ. of Tech.
Georgia Tech Fondazione Ugo Bordoni, Italy University of Kent
National Institute of Standards and Technology Israel Institute of Technology [and several others]

Copyright and Disclaimers
The PNNI software is released under the same terms, conditions and disclaimers as the TeD software.
Modules Authors
PNNI Core Perumalla and Andrews
Crankback Hao

Kalyan Perumalla, 20 March 1999
Last updated 15 July 1999