MPLS Environment Introduction to MPLS Multi-Protocol Label Switching (MPLS) is a highly efficient and flexible routing approach for forwarding packets over packet-switched networks, irrespective of the protocol used to build the packets. A router which supports MPLS is referred to as a Label Switching Router (LSR). A network comprising interconnected LSRs is called MPLS network. To use MPLS, network layer packets (for example, IP packets) are converted into labeled packets by adding a label. A label is attached to each packet when it enters an MPLS network, and any remaining labels are removed when it leaves the MPLS network. Note however that MPLS packets do not require the presence of a network layer header for being forwarded to a destination within the MPLS network, or to a non- MPLS host directly attached to an LSR. Note To allow more complex routing capabilities, MPLS permits attaching a label stack to each packet (a label stack is an ordered set of labels). Within the MPLS network, forwarding actions are based only on the labels carried by the packets. Therefore, labeled packets following a certain path can be assigned the same label. Forwarding within the MPLS network is performed as follows: 1. When an LSR receives a packet, it looks up the incoming packet label in a table to determine what label to attach instead of the current label. MPLS Environment 1
Note The look up table may be preconfigured by traffic engineering personnel (static routing), or be dynamically created using dedicated protocols. 1. The LSR replaces the existing label with the new label. 2. The LSR now sends the packet over the appropriate port to the next hop. Therefore, the LSRs comprised in an MPLS network can forward traffic without knowing anything about the network protocol used by the packets: only the ingress LSR located on the edge of the MPLS network must be aware of the network protocol of the packets it receives from the directly attached non-mpls hosts, whereas the egress LSR must be aware of the network protocol of the packets it forwards to an attached non-mpls host. A label-switched path (LSP) connects the ingress LSR to the egress LSR. An LSP is inherently unidirectional: for bidirectional applications, for example, voice transport, data communication, etc., two LSPs must be associated. Different labels may thus be used in each direction. Since a packet is first assigned a label when it enters the network, the ingress LSR may use, in determining the assignment, any information it has about the packet: for example, packets arriving on different ports may be assigned different labels. Moreover, the ingress LSR can select the label in accordance with considerations such as the packet precedence, or class of service. MPLS Label Structure Figure 1 shows the MPLS label structure. Byte 1 Byte 2 Byte 3 Byte 4 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Label EXP S TTL Figure 1. MPLS Label Structure 2 MPLS Environment
Labe EXP S TTL Label value (the label itself). The label is represented by 20 bits, and thus the range allowed by the standards is 0 to 1048576. Note that in accordance with the standards, certain values (for example, 0, 1, 2, 3) have special meaning. Three bits for experimental use. The value carried by these bits, which is in the range of 0 to 7, is usually used to indicate the class of service (7 indicates the highest priority). Bottom of stack indicator. When using label stacks, this bit is set to 0 for all the label entries in the stack, except for the last one, in which it is set to 1 to indicate that no other label follows. See Figure 2 for an example. Time To Live, consist of 8 bits (range: 0 to 255). The TTL value is decremented by 1 at each LSR: a packet with TTL = 0 is discarded. MPLS Packet Structure Figure 2 illustrates a typical structure for MPLS packets, identifies the location of the MPLS header, and general structure of MPLS label stack. Layer 2 Header MPLS Header Label n (most recent) EXP S=0 TTL Additional Labels Label 2 EXP S=0 TTL Label 1 EXP S=1 TTL Layer 3 Header (e.g., IP) Layer 4 Header (e.g., UDP) Optional Payload Figure 2. Typical MPLS Packet Structure MPLS Environment 3
The MPLS header is inserted after the Layer 2 (data link) header and before any higher layer header (for example, before the Layer 3 (network layer) header shown in Figure 2). As a minimum, an MPLS header consists of one label having the structure of Figure 1, with the S bit set to 1. An MPLS label stack consists several label entries, each having the structure of Figure 1, when the bottom label has its S bit set to 1, and all the other labels have the S bit set to 0. When an LSR receives a labeled packet, it looks up the label value at the top of the stack. As a result of a successful lookup, the LSR learns: 2. The next hop to which the packet is to be forwarded 3. The operation to be performed on the label stack before forwarding: either replace the top label in the stack with another, or pop (remove) an entry off the label stack, or replace the top label stack entry and then push one or more additional entries on the label stack. In addition to learning the next hop and the label stack, the LSR may also learn the outgoing data link encapsulation, and possibly other information which is needed to properly forward the packet. Handing over MPLS Traffic When the last label is popped (removed) from a packet label stack (resulting in the stack being emptied), further processing of the packet is based on the network layer header of the packet. For example, when the network header is an IP header, the packet can be forwarded to an IP router, which can route the packet toward its final destination through an IP-based network. Note that the last label can also be popped by the penultimate LSR, because it already knows how to forward the packet to its final destination. When MPLS hosts are directly attached to the edge LSRs, the packet MPLS label can be directly provided by that host therefore, no IP header needs be inserted in the packets, thereby reducing the packet overhead and increasing bandwidth utilization efficiency. For example, in voice compression applications, RAD supports the AAL2 over MPLS 4 MPLS Environment
(AAL2oMPLS) encapsulation for the compressed voice packets: this significantly decreases the overhead length. Transporting TDM Traffic over MPLS MPLS can be used to transport all the types of TDM traffic, including: Constant rate traffic: unframed, framed, and fractional data. This type of traffic, referred to as TDM over MPLS (TDMoMPLS) also includes uncompressed voice. Uncompressed voice is very similar to constant rate data, except that it requires special handling of the signaling information, which can be either CAS or CCS. Variable rate traffic. With respect to C, this type of traffic includes compressed voice, and HDLC traffic (CCS is often carried by means of HDLC). TDM over MPLS TDMoMPLS uses an MPLS header before the TDMoIP data. The resulting packet structure is shown in Figure 3. Tunnel Label EXP S=0 TTL Pseudowire Label EXP S=1 TTL TDMoIP Control Word Payload Figure 3. TDMoMPLS Packet Structure The specific fields are explained below: Tunnel Label Pseudowire Label The tunnel label is an MPLS label that identifies the MPLS LSP used to tunnel the TDM packets through the MPLS network (also known as the transport label). This label is not mandatory. The pseudowire label is mandatory, and it is used to carry the circuit bundle identifier (CBID), as in TDMoIP packets. MPLS Environment 5
AAL1 Payload Type In general, for constant rate traffic, the payload can be efficiently encoded using AAL1 (ATM Adaptation Layer 1, described in ITU-T Rec. I.363.1) format. Constant rate traffic is characterized by static timeslot allocation, and no activity detection. In the AAL1 mode, the TDMoIP payload consists of between 1 and 30 48-octet subframes. The number of subframes must be preconfigured, and typically it is hosen according to latency and bandwidth constraints. AAL2 Payload Type The AAL2 (ATM Adaptation Layer 2, described in ITU-T Rec. I.363.2) format is especially suitable for compressed voice with activity detection, because it enables efficient utilization of PSN bandwidth. For TDMoIP applications, the basic AAL2 cells are concatenated in one packet, with user-configured maximum length and maximum interval for packet filling. HDLC Payload Type The HDLC format is used to efficiently transport CCS (common channel signaling such as Signaling Scheme 7 SS7), which is carried in specific timeslots of the E1 stream. The HDLC format is intended to operate in the port mode, transparently passing all HDLC data and control messages over a separate pseudowire connection. To transport HDLC, the sending gateway monitors the HDLC flags, until a meaningful frame is detected. The contents of the frame are then transferred to the receiving gateway, which reconstructs the original HDLC frame. 6 MPLS Environment