SUBJECT D5)

Questions about VPI, VCI, VPCI

SUBJECT D5-1) Question: What is VPI and VCI?

Answer: ATM is a connection orientated protocol and as such there is a connection identifier in every cell header which explicitly associates a cell with a given virtual channel on a physical link. The connection identifier consists of two sub-fields, the Virtual Channel Identifier (VCI) and the Virtual Path Identifier (VPI). Together they are used in multiplexing, demultiplexing and switching a cell through the network. VCIs and VPIs are not addresses. They are explicitly assigned at each segment (link between ATM nodes) of a connection when a connection is established, and remain for the duration of the connection. Using the VCI/VPI the ATM layer can asynchronously interleave (multiplex) cells from multiple connections.


SUBJECT D5-2) Question: Why both VPI *and* VCI?

Answer: The Virtual Path concept originated with concerns over the cost of controlling BISDN networks. The idea was to group connections sharing common paths through the network into identifiable units (the Paths). Network management actions would then be applied to the smaller number of groups of connections (paths) instead of a larger number of individual connections (VCI). Management here including call setup, routing, failure management, bandwidth allocation etc. For example, use of Virtual Paths in an ATM network reduces the load on the control mechanisms because the function needed to set up a path through the network are performed only once for all subsequent Virtual Channels using that path. Changing the trunk mapping of a single Virtual Path can effect a route change for every Virtual Channel using that path.

Now the basic operation of an ATM switch will be the same, no matter if it is handling a virtual path or virtual circuit. The switch must identify on the basis of the incomming cell's VPI, VCI, or both, which output port to forward a cell received on a given input port. It must also determine what the new values the VPI/VCI are on this output link, substituting these new values in the cell.

The algorithms for selecting which switch output port a given input VPI/VCI should be mapped to is done at the time the call is set up, and is part of the overall call routing algorithm. The port to be used depends on what other switches that port is connected to. Call routing is addressed by protocols like P-NNI (private network-network interface), just being completed by the ATM forum.

The choice of an outbound VPI/VCI value, on the other hand, is partially a function of the switch architecture, and partially a function of the interface. The UNI spec dictates which side of a link, user or network, selects values. The PNNI spec also has rules for this. Within the switch designated as the one selecting the values, the choice depends on switch internals (what space does it support, are VPI/VCI spaces on all ports fully independent, what is the switch software's policy for value resue, etc).


SUBJECT D5-3) Question: With respect to the assignment of VPI/VCIs for an ATM Forum 3.1 or Q.2931 SVC service request, consider two users A and B which will communicate across a network. Are there really four VPI/VCIs that must be assigned by the call setup process:

  1. The VPI/VCI A uses to send to B
  2. The VPI/VCI that B will receive from A
  3. The VPI/VCI B uses to send to A
  4. The VPI/VCI that A will receive from B?
Answer: According to the ATM Forum UNI 3.1 specification, User A will request a VCC via a SETUP message. The Network will either respond with (if there are no problems) a CALL PROCEEDING message or a CONNECT message. In either case, it must respond with a Connection Identifier (VPI/VCI) in the first response to the User (see the section labeled "Connection Identifier Allocation/Selection -Origination in the ATM Forum UNI specification).

At the Called User side (B), the Network will allocate a Connection Identifier (VPI/VCI) for the Called user and will be SETUP message sent to the Called User.

In both cases (according to UNI 3.0/3.1) the Network allocates the VPI/VCI. Also, the VCC can be bidirectional or unidirectional based on how the VCC was established.

The rationale is simple: it is always the "network" side of the UNI that allocates all VCCs for communication on that UNI. It is the master and the "user" is the slave. Hence, the switch always knows which VCCs are available for use at the UNI. The range of valid VCCs is setup using ILMI.

Q.2931 allows more flexibility. The initiator of the connection over a UNI (be it "user" or "network") can effectively specify one of the following:

  1. exclusive VPI, exclusive VCI
  2. exclusive VPI, any VCI
  3. any VPI, any VCI
The other side of the UNI must satisfy the desired choice i.e. if choice A, it must use the specified VPI/VCI; if choice B, it may use any VCI within the specified VPI; if choice C, it may use any VPI/VCI.

Due to this flexibility, there is the possibility that the initiator of the conenction over a UNI chooses a VPI/VCI value that is not available at the other side. Q.2931 does not allow negotiation so the other side has no choice but to release the VCC.


SUBJECT D5-4) Question:Are VP and VC unidirectional?

Answer: This question has been discussed at some length in the past in this group. Here is one way to look at the situation: each link in the ATM network can be split into two parts, one in each direction. Each directional sub link has the entire range of VCCs (pt-pt links can distinguish between directional data streams). In this context, VCs and VPs can be considered unidirectional.

However, one always allocates the same VPI/VCI in both directions for a connection. This may be considered a limitation of the signalling spec or a simplification.

Nevertheless, there is no constraint that the same bandwidth must be allocated in both directions. In fact, each direction is an indepndent traffic stream and has its own traffic parameters and qos. Some connections may assign the same parameters to both directions if the traffic flows are symmetrical but this is certainly no requirement.

Irrespective of all the above, implementation wise, VPs and VCs must be bidirectional and some bandwidth must be allocated in both directions to order to support OAM flows. Maybe this is hidden from a user but it needs to be done just the same.


SUBJECT D5-5) Question:What is VPCI and how does it differ from VPI? Often in SVC context, we see the terminology VPCI used in Connection Identifier IE. How does VPCI differ from VPI?

Answer: Per Q2931 specs sec 5.1.2.3.
"The Connection identifier information element is used in signaling messages to identify the corresponding user information flow. The Connection identifier information element contains the Virtual Path Connection Identifier (VPCI) and the Virtual Channel Identifier (VCI). The VPCI is used instead of the Virtual Path Identifier (VPI) since virtual path cross connects may be used in the access and multiple interfaces could be controlled by the signaling virtual channel.

Both the user and the network must understand the relationship between the VPCI used in the signaling protocol and the actual VPI used for the user information flow. VPCIs only have significance with regard to a given signaling virtual channel.

If the signaling virtual channel only controls a single interface at the user side, the VPI and the VPCI have the same numerical value at the user side.

If the signaling channel controls multiple interfaces at the user side, the VPCI corresponds to both the interface and a VPI on the interface."

The following table provides an example:
Interface IDVPIVPCI
Single interface on user side
=> VPI == VPCI
 NA  0 0
 2  2
Multiple interfaces on user side
=> VPI != VPCI
 0  0  00
 1  2  12


[ Back to Index | FAQ Index | Cell Relay Retreat ]

Maintained by Cell Relay Retreat
Last Changed 24 November 2002