In a differentiated services domain, traffic is classified into a behavior aggregate (BA), based on the type of diff-serv behavior for the traffic. At each node, traffic belonging to a particular BA is mapped to the corresponding per-hop behavior (PHB), which provides the scheduling behavior and drop probability required by the traffic.
MPLS uses the EXP bits in the shim header to support differentiated services. The JUNOSe software supports both statically configured and signaled mapping between the EXP bits and the PHB of traffic.
In a signaled environment, you can configure on the ingress node the set of PHBs that a tunnel supports, and then the set of PHBs is signaled end to end.
To support differentiated services, MPLS employs two types of LSPs: E-LSPs and L-LSPs. The two types differ in how their PHB is determined. In the JUNOSe software, the PHB is a combination of traffic class (also called per-hop scheduling class, or PSC) and drop precedence (color).
Table 27: Incoming L-LSP PHB Determination
|
PSC |
+ |
EXP Field |
= |
PHB |
|---|---|---|---|---|
|
BE |
|
000 |
|
BE |
|
CSn |
|
000 |
|
CSn |
|
AFn |
|
001 |
|
AFn1 |
|
AFn |
|
010 |
|
AFn2 |
|
AFn |
|
011 |
|
AFn3 |
|
EF |
|
000 |
|
EF |
For nonstandard PHBs (any that are not listed in Table 27), the JUNOSe software uses mapping similar to AFn mapping; EXP 001 is mapped to color green, EXP 010 is mapped to yellow, and EXP 011 is mapped to red.
Table 28 presents three examples that indicate how the PSC and the EXP field are combined to determine the PHB for traffic on incoming L-LSPs.
Table 28: Examples of Incoming L-LSP PHB Determination
|
PSC |
+ |
EXP Field |
= |
PHB |
|---|---|---|---|---|
|
AF2 |
|
010 |
|
AF22 |
|
AF3 |
|
010 |
|
AF32 |
|
AF3 |
|
011 |
|
AF33 |
Table 29: Outgoing L-LSP PHB Determination
|
PHB |
= |
EXP Field |
|---|---|---|
|
BE |
|
000 |
|
CSn |
|
000 |
|
AFn1 |
|
001 |
|
AFn2 |
|
010 |
|
AFn3 |
|
011 |
|
EF |
|
000 |
For nonstandard PHBs, the mapping is similar to AFn mapping. Red color maps to 011, yellow maps to 010, and green maps to 001.
You can configure static EXP-to-PHB mapping at the per-VR level, only for LSPs that do not have specific policies attached (by either per-LSP configured mapping or signaled mapping). The configured mapping applies regardless of label distribution protocol, BGP. LDP, or RSVP-TE.
The PHB of incoming packets is determined from the EXP bits by the match values set with the mpls match exp-bits command.
The EXP bits of outgoing packets are determined from the PHB by the mtach values set with the mpls match traffic-class command.
To configure static EXP-to-PHB mapping:
- host1(config)#mpls match exp-bits 1 set traffic-class
bronze color red
You can repeat the command to support the eight possible EXP bit values.
- host1(config)#mpls match traffic-class gold
color green set exp-bits 7
You can repeat the command to support up to 24 combinations: eight traffic classes supported on the router times three colors.
For signaled mapping between EXP and PHB, policies apply the EXP bits matching and setting on a per-LSP basis rather than a per-VR basis. Signaled mapping applies only when RSVP-TE is the label distribution protocol.
When traffic is mapped onto the ingress router of the LSP, the EXP bits are set according to a policy attached to the LSP. The policy corresponds to the EXP-to-PHB mapping defined for the LSP. Typically, the policy sets the EXP bits differently according to classifier lists that match on internal class/color information or on a user packet class associated with a packet.
For transit routers and egress routers along the path of the LSP, the incoming EXP bits are matched to determine the traffic class and drop preference (color red, yellow, or green). This matching is accomplished by means of a policy corresponding to the signaled EXP-to-PHB mapping that is created and attached when the LSP is established.
EXP bits are not normally changed on transit routers, but when traffic is sent out of an LSP on a transit router, the bits can be changed by the policy. Normally, however, the net effect is that the EXP-bits remain the same through the mapping sequence of EXP bits to an internal traffic class/color combination back to EXP bits, unless the traffic class/color combination is also modified by other factors.
Because the policy (which maps the EXP bits to an internal traffic class/color combination and vice versa) attached to an LSP is created according to the PHB-ID–to–EXP mapping signaled by RSVP-TE, you must configure on each router a mapping association between PHB IDs and the internal traffic class/color combinations.
The JUNOSe software automatically generates and attaches policies when tunnels are established.
Figure 65 shows the mapping associations between PHB IDs, EXP bits, and traffic class (TC)/color combination in an E-LSP case.
Figure 65: Associations Between PHB ID, EXP Bits, and Traffic Classes/Colors

Figure 66 shows the operations performed at ingress, transit, and egress systems during signaled mapping sessions.
Figure 66: Signaled Mapping

To define a policy rule that sets the EXP bits in packets to which the policy is applied:
- host1(config-policy-list)#mark-exp 5 classifier-group
claclEXP precedence 32
To create or modify an MPLS classifier control list to match on traffic class/color combination or EXP bits:
- host1(config)#mpls classifier-list be-green
traffic-class best-effort color yellow
To map the specified PHB ID to the internal traffic class/color combination:
- host1(config)#mpls diff-serv phb-id standard
45 traffic-class gold color green
To create or modify an MPLS policy:
To enable collection of policy statistics for a tunnel or LSP. Collection is disabled by default.
Policy statistics are displayed when you issue the show mpls forwarding or show mpls tunnel command, if a policy is attached and policy statistics are enabled.
To specify the traffic class for which LSP-level queues are created and the scheduler profile to be used with the queues:
- host1(config)#mpls traffic-class af1 scheduler-profile
af1-scheduler-profile
These classes originate from E-LSPs and L-LSPs (classes derived from the signaled PHB-ID) or regular LSPs (classes configured with the mpls traffic-class command)
To specify the PHB supported by a signaled tunnel:
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 35 exp-bits 5
For E-LSPs, you also use this command to map the PHB to the specified exp-bits bitValue. You can repeat the command for up to eight PHB mappings.
For L-LSPs, do not use the exp-bits keyword. If you repeat the command, the most recent command overwrites the previous command.
MPLS always prefers the per-LSP method of matching and setting EXP bits by means of applied policies over the per-VR method.
Per-VR matching of EXP bits is not performed on the LSP when an input policy (matching on incoming EXP bits) is attached to the ingress segment of the LSP.
Similarly, per-VR setting of EXP bits is not performed on the LSP when an output policy (setting the outgoing EXP bits) is attached to the egress segment of the LSP.
The commands in this example illustrate a partial network configuration that supports four differentiated service classes on a particular tunnel: a best-effort class, two assured forwarding classes, and an expedited forwarding class. Table 30 presents the mapping between EXP bits, PHB, PHB ID, and traffic class/color combination.
Table 30: Differentiated Services Mapping
![]() |
Note: This example includes both MPLS and policy configuration commands, and assumes that you are thoroughly familiar with the information and commands presented in the JUNOSe Policy Management Configuration Guide. |
The four traffic classes are configured to allocate fabric resources and allow global synchronization of the three segments of the data path through an E-series router: ingress, fabric, and egress. The JUNOSe software automatically creates the best-effort traffic class, with a default weight of eight. You must define the remaining three classes, af1, af2, and ef. In this example, the af1 class has twice as much fabric bandwidth as the best-effort class, and the af2 class has twice as much fabric bandwidth as the af1 class. The expedited forwarding traffic (the ef class) requires strict-priority queuing.
- host1(config)#traffic-class af1
- host1(config-traffic-class)#fabric-weight
16
- host1(config)#traffic-class af2
- host1(config-traffic-class)#fabric-weight
32
- host1(config)#traffic-class ef
- host1(config-traffic-class)#fabric-strict-priority
Define two scheduler profiles for the af1 and af2 classes on the egress line modules:
- host1(config)#scheduler-profile af1-scheduler-profile
- host1(config-scheduler-profile)#weight 16
- host1(config)#scheduler-profile af2-scheduler-profile
- host1(config-scheduler-profile)#weight 32
Create queue profiles to define how queues are instantiated to implement the corresponding traffic classes and PHBs. The JUNOSe software automatically creates the best-effort queue profiles.
- host1(config)#queue-profile af1-queues
- [Queue configuration omitted]
- host1(config)#queue-profile af2-queues
- [Queue configuration omitted]
- host1(config)#queue-profile ef-queues
- [Queue configuration omitted]
The scheduler and queue profiles are referenced in QoS profiles. For example, you can create a QoS profile for port-based per-class queuing or for LSP-level per-class queuing (configuration omitted).
You must map the PHB IDs to the appropriate traffic class/color combinations:
- host1(config)#mpls diff-serv phb-id standard
0 traffic-class best-effort color green
- host1(config)#mpls diff-serv phb-id standard
10 traffic-class af1 color green
- host1(config)#mpls diff-serv phb-id standard
12 traffic-class af1 color yellow
- host1(config)#mpls diff-serv phb-id standard
14 traffic-class af1 color red
- host1(config)#mpls diff-serv phb-id standard
18 traffic-class af2 color green
- host1(config)#mpls diff-serv phb-id standard
20 traffic-class af2 color yellow
- host1(config)#mpls diff-serv phb-id standard
22 traffic-class af2 color red
- host1(config)#mpls diff-serv phb-id standard
46 traffic-class ef color green
You must access the tunnel interface to map the PHB IDs to the EXP bits. The E-series router signals this mapping to all routers on the tunnel. You can establish different PHB-ID–to–EXP mappings for different tunnels.
- host1(config)#interface tunnel mpls:example
PHB-ID–to–EXP mapping for the best-effort traffic class:
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 0x0000 exp-bits 0
PHB-ID–to–EXP mapping for the af1 traffic class:
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 10 exp-bits 1
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 12 exp-bits 2
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 14 exp-bits 3
PHB-ID–to–EXP mapping for the af2 traffic class:
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 18 exp-bits 4
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 20 exp-bits 5
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 22 exp-bits 6
PHB-ID–to–EXP mapping for the ef traffic class:
- host1(config-if)#tunnel mpls diff-serv phb-id
standard 46 exp-bits 7
Define classifier control lists to classify the incoming packets into classifier groups. Although not shown here, for each CLACL you must define the rules that will select the appropriate incoming packets: be, af1, af2, or ef.
- host1(config)#classifier-list be-packets
- host1(config)#classifier-list af1-packets
- host1(config)#classifier-list af2-packets
- host1(config)#classifier-list ef-packets
Define a policy that maps the selected packets into traffic classes. For the assured forwarding classes, this example uses rate limit profiles to set the colors.
- host1(config)#policy-list classify-packets
- host1(config-policy-list)#traffic-class best-effort
classifier-group bf-packets
- host1(config-policy-list)#traffic-class ef
classifier-group ef-packets
- host1(config-policy-list)#traffic-class af1
classifier-group af1-packets
- host1(config-policy-list)#traffic-class af2
classifier-group af2-packets
- host1(config-policy-list)#rate-limit-profile
af1-profile classifier-group af1-packets
- host1(config-policy-list)#rate-limit-profile
af2-profile classifier-group af2-packets
- host1(config)#rate-limit-profile af1-profile
- host1(config-rate-limit-profile)#committed-rate
6000000
- host1(config-rate-limit-profile)#committed-burst
1000000
- host1(config-rate-limit-profile)#peak-rate
8000000
- host1(config-rate-limit-profile)#peak-burst
1000000
- host1(config)#rate-limit-profile af2-profile
- host1(config-rate-limit-profile)#committed-rate
8000000
- host1(config-rate-limit-profile)#committed-burst
1500000
- host1(config-rate-limit-profile)#peak-rate
12000000
- host1(config-rate-limit-profile)#peak-burst
1000000
You attach the policy to the ingress interface of the ingress router. As packets arrive, they are classified with the internal traffic class/color combination and forwarded into the appropriate queues in the fabric. When the packets are sent into the tunnel out of the ingress router, the EXP bits are set according to the router-generated policy (in this example called mpls-exp-setting) that the JUNOSe software automatically attached to the tunnel.
When the tunnel is established, the JUNOSe software automatically creates an output policy to map traffic-class/color combinations to EXP bits and attaches the policy to the outgoing segment of the tunnel. The JUNOSe software generates classifier list and policy list names, and creates the EXP-setting policy as if the following commands were entered:
![]() |
Note: You do not actually issue these commands; they represent the behavior automatically performed by the router. |
- host1(config)#mpls classifier-list be-green
traffic-class best-effort color green
- host1(config)#mpls classifier-list ef-green
traffic-class ef color green
- host1(config)#mpls classifier-list af1-green
traffic-class af1 color green
- host1(config)#mpls classifier-list af1-yellow
traffic-class af1 color yellow
- host1(config)#mpls classifier-list af1-red
traffic-class af1 color red
- host1(config)#mpls classifier-list af2-green
traffic-class af2 color green
- host1(config)#mpls classifier-list af2-yellow
traffic-class af2 color yellow
- host1(config)#mpls classifier-list af2-red
traffic-class af2 color red
- host1(config)#mpls policy-list mpls-exp-setting
- host1(config-policy-list)#mark 0 classifier-group
be-green
- host1(config-policy-list)#mark 1 classifier-group
af1-green
- host1(config-policy-list)#mark 2 classifier-group
af1-yellow
- host1(config-policy-list)#mark 3 classifier-group
af1-red
- host1(config-policy-list)#mark 4 classifier-group
af2-green
- host1(config-policy-list)#mark 5 classifier-group
af2-yellow
- host1(config-policy-list)#mark 6 classifier-group
af2-red
- host1(config-policy-list)#mark 7 classifier-group
ef-green
![]() |
Note: For a topology-driven LSP, you have to configure and apply the classifier list and policy list manually. |
When the tunnel is established, the JUNOSe software automatically creates an input policy to match the EXP bits and map them to the traffic-class/color combinations and attaches the policy to the incoming segment of the tunnel. The JUNOSe software generates classifier list and policy list names, and creates the policy as if the following commands were entered:
![]() |
Note: You do not actually issue these commands; they represent the behavior automatically performed by the router. |
- host1(config)#mpls classifier-list bf-packets
exp 0
- host1(config)#mpls classifier-list af11-packets
exp 1
- host1(config)#mpls classifier-list af12-packets
exp 2
- host1(config)#mpls classifier-list af13-packets
exp 3
- host1(config)#mpls classifier-list af21-packets
exp 4
- host1(config)#mpls classifier-list af22-packets
exp 5
- host1(config)#mpls classifier-list af22-packets
exp 6
- host1(config)#mpls classifier-list ef-packets
exp 7
- host1(config)#mpls policy-list mpls-exp-matching
- host1(config-policy-list)#traffic-class best-effort
classifier-group bf-packets
- host1(config-policy-list)#traffic-class af1
classifier-group af11-packets
- host1(config-policy-list)#traffic-class af1
classifier-group af12-packets
- host1(config-policy-list)#traffic-class af1
classifier-group af13-packets
- host1(config-policy-list)#traffic-class af2
classifier-group af21-packets
- host1(config-policy-list)#traffic-class af2
classifier-group af22-packets
- host1(config-policy-list)#traffic-class af2
classifier-group af23-packets
- host1(config-policy-list)#traffic-class ef
classifier-group ef-packets
- host1(config-policy-list)#color green classifier-group
af11-packets
- host1(config-policy-list)#color green classifier-group
af21-packets
- host1(config-policy-list)#color yellow classifier-group
af12-packets
- host1(config-policy-list)#color yellow classifier-group
af22-packets
- host1(config-policy-list)#color red classifier-group
af13-packets
- host1(config-policy-list)#color red classifier-group
af23-packets
![]() |
Note: For a topology-driven LSP, you must configure and apply the classifier list and policy list manually. |
The packets are forwarded to the appropriate fabric queue according to the traffic class/color combination. On a transit router, when the packet is forwarded out of the tunnel, the router-generated output policy then sets the EXP bits back according to the traffic class/color combination. Typically, the effect of the EXP bits to traffic class/color combination to EXP bits is no change.
On an egress router, where the tunnel terminates, no router-generated output policy is attached, and the packets pass out of the router subject to any manually configured IP policy management applied to their traffic class/color combination.