UPC and NPC
![]() | This article may be too technical for most readers to understand.(March 2012) |
Usage Parameter Control (UPC) and Network Parameter Control (NPC) are functions performed in a computer network at the User-Network Interface (UNI) or the Network-Node Interface (NNI), respectively, that check network traffic flows from a network host (user) or from another network for conformance to the expected levels. Generally the functions performed by UPC and NPC are the same.
Uses
UPC and NPC (and BAG control) are used to protect networks against excessive transmissions by their users. This allows the bandwidths provided by a network for each connection to be guaranteed.
ATM
UPC and NPC for the Asynchronous Transfer Mode (ATM) protocol are defined in ITU-T Recommendation I.371 Traffic control and congestion control in B ISDN [1] and the ATM Forum's User-Network Interface (UNI) Specification[2]. These provide a conformance definition, using a form of the leaky bucket algorithm called the Generic Cell Rate Algorithm (GCRA), which specifies how cells are checked for conformance with a cell rate, or its reciprocal emission interval, and jitter tolerance: either a Cell Delay Variation tolerance (CDVt) for testing conformance to the Peak Cell Rate (PCR) or a Burst Tolerance or Maximum Burst Size (MBS) for testing conformance to the Sustainable Cell Rate (SCR).
UPC and NPC are normally performed on a per Virtual Channel (VC) or per Virtual Path (VP) basis, i.e. the intervals are measured, using an algorithm that has the same performance as the GCRA reference, between cells bearing the same Virtual Channel Identifier (VCI) and or Virtual Path Identifier (VPI). If the function is implemented at, e.g., a switch input, then because cells on the different VCs and VPs arrive sequentially, only a single implementation of the function is required. However, this single implementation must be able to access the parameters relating to a specific connection using the VCI and or VPI to address them. This is often done using Content-addressable memory (CAM), where the VCI and or VPI form the addressable content.
Cells that fail to conform, i.e. because they come too soon after the preceding cell on the channel or path because the average rate is too high or because the jitter exceeds the tolerance, may be dropped, i.e. discarded, or reduced in priority so that they may be discarded downstream if there is congestion.
The GCRA, while, possibly, complicated to describe and understand, can be implemented very simply. While it is more likely to be implemented in hardware, as an example, an assembly language implementation can be written in as few as 15 to 20 instructions with a longest execution path of as few as 8 to 12 instructions, depending on the language (availability of indirection and the orthogonality of the instruction set).
AFDX
Transmissions onto an AFDX network are required to be limited to a Bandwidth Allocation Gap (BAG). Conformance to this BAG (and maximum transmission jitter) is then checked in the network switches in a similar way to UPC in ATM networks. However, the token bucket algorithm is recommended for AFDX, and a version that allows for variable length frames (one that counts bytes) is preferred over one that only counts frames and assumes that all frames are of the maximum permitted length [3].
References
- ^ ITU-T, Traffic control and congestion control in B ISDN, Recommendation I.371, International Telecommunication Union, 2004, Annex A.
- ^ ATM Forum, The User Network Interface (UNI), v. 3.1, ISBN 0-13-393828-X, Prentice Hall PTR, 1995.
- ^ Aeronautical Radio, INC., Aircraft Data Network Part 7 Avionics Full Duplex Switched Ethernet (AFDX) Network, ARINC Specification 664P7.