[Contents] [Prev] [Next] [Index] [Report an Error]

# Classifying Traffic for Differentiated Services

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).

- E-LSPs (EXP-inferred-PSC LSP) can transport as many as eight BAs. For E-LSPs, the traffic’s PHB is learned from the MPLS shim header.
- L-LSPs (Label-only-inferred-PSC LSP) transport a single PSC. The PHB is determined from a combination of the packet’s label, which indicates the traffic class, and the EXP field of the shim header, which indicates the drop precedence.
  - Table 26 indicates how the PSC (column 1) is combined with the EXP field (column 2) to determine the PHB for incoming traffic on L-LSPs.

    Table 26: 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 26), 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 27 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 27: Examples of Incoming L-LSP PHB Determination

    PSC | + | EXP Field | = | PHB
    --- | --- | --- | --- | ---
    AF2 |  | 010 |  | AF22
    AF3 |  | 010 |  | AF32
    AF3 |  | 011 |  | AF33

  - For outgoing L-LSPs, the EXP is determined by the PHB. Table 28 indicates the PHB-to-EXP mapping for outgoing traffic on L-LSPs.

    Table 28: 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.

## Configuring Static EXP-to-PHB Mapping

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:

1. Set a combination of traffic class and color for incoming traffic that matches the specified EXP bits value in the shim header.
   `
   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.

2. Set the EXP bits in the shim header of outgoing traffic that matches a particular combination of traffic class and color.
   `
   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.

## Signaled Mapping for RSVP-TE Tunnels

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.

- Mapping association between PHB ID and EXP bits is configured on ingress routers using the tunnel mpls diff-serv phb-id command.
- Mapping association between PHB ID and traffic class/color combination is configured on all routers using the mpls diff-serv phb-id traffic-class command.
- Mapping association between EXP bits and traffic class/color combination is done automatically by the JUNOSe software at the appropriate routers along the path.

  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:

- Issue the mark-exp command.
  `
  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:

- Issue the mpls classifier-list command.
  `
  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:

- Issue the mpls diff-serv phb-id traffic-class command.
  `
  host1(config)#mpls diff-serv phb-id standard 45 traffic-class gold color green
  `

To create or modify an MPLS policy:

- Issue the mpls policy-list command.
  `
  host1(config)#mpls policy-list mpls-exp-setting
  `

To enable collection of policy statistics for a tunnel or LSP. Collection is disabled by default.

- Issue the mpls policy-statistics command.
  `
  host1#mpls policy-statistics boston2dc
  `

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:

- Issue the mpls traffic-class command.
  `
  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:

- Issue the tunnel mpls diff-serv phb-id command.
  `
  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.

## Preference of per-VR Versus per-LSP Behavior

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.

## Example Traffic Class Configuration for Differentiated Services

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 29 presents the mapping between EXP bits, PHB, PHB ID, and traffic class/color combination.

Table 29: Differentiated Services Mapping

EXP | PHB | PHB ID | 6-bit PHB ID | Traffic Class/Color
--- | --- | --- | --- | ---
000 | BE | 0x0000 | 00 | best-effort/green
001 | AF11 | 0x2800 | 10 | af1/green
010 | AF12 | 0x3000 | 12 | af1/yellow
011 | AF13 | 0x3800 | 14 | af1/red
100 | AF21 | 0x4800 | 18 | af2/green
101 | AF22 | 0x5000 | 20 | af2/yellow
110 | AF23 | 0x5800 | 22 | af2/red
111 | EF | 0xb800 | 46 | ef/green

| 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

`

### Configuration on the Ingress Router

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.

### Configuration on the Ingress and Transit Routers

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.

### Configuration on the Transit and Egress Routers

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.

#### Related Topics

- See the JUNOSe Policy Management Configuration Guide for more information about defining policies.
- Configuring MPLS and Differentiated Services
- Configuring EXP Bits for Differentiated Services
- Example Differentiated Services Application and Configuration
- mark-exp
- mpls classifier-list
- mpls diff-serv phb-id traffic-class
- mpls match exp-bits
- mpls match traffic-class
- mpls policy-list
- mpls policy-statistics
- mpls traffic-class
- tunnel mpls diff-serv phb-id

[Contents] [Prev] [Next] [Index] [Report an Error]