Configuring Enhanced Transmission Selection

Enhanced Transmission Selection (ETS) is a transmission selection algorithm (TSA) that is specified by IEEE 802.1Qaz draft standard. It defines priority-based processing and bandwidth allocation on different traffic classes with different traffic types (such as LAN, SAN, IPC).

ETS enables the switch/router to prioritize traffic based on CoS to Priority mapping. ETS enables you to configure the ETS/CEE (Converged Enhanced Ethernet) parameters. These parameters include mapping of incoming priorities (traffic with different CoS) to traffic-classes, assigning weights and corresponding bandwidth to those priorities, and scheduling of all occupied traffic-class traffic egress wire.

These settings are applied as a policy. This policy, the CEE Map, is then applied on the target interfaces. CEE maps can be applied to Layer 2 interfaces (physical switch interfaces), Layer 2 Port-channels, MCT Client Interfaces, and ICL Links. CEE maps cannot be applied to Physical or Logical Layer 3 interfaces and Tunnel interfaces.

For Enhanced Transmission Selection to work, QoS hardware profile must be configured for Lossless Profile. Do the following to set the hardware profile to the lossless profile. To enable the Lossless Profile, we need to reboot the setup.

device# configure terminal
device(config)# hardware
device(config-hardware)# profile qos lossless
            
  1. Enter configuration mode.
    device# configure terminal
                        
  2. Create a CEE map. There can only be one CEE map and it is always named as default.
    device(config)# cee-map default
                        
    The CEE map is created if not already created. Only one CEE map can be created and it is always named as default.
  3. Create the priority-group-table entries. First define the Strict Priority Group entries. Packets in the Strict Priority Group are accorded higher priority than normal traffic. A value in the range 15.0-15.7 indicates strict priority traffic. Within this range, packets marked with 15.0 has a higher priority than packets marked with 15.1, packets marked with 15.1 has higher priority than those marked with 15.2, and so on. Within the Strict Priority Group traffic, packets with the highest priority is assigned all the egress bandwidth. The next priority traffic is allocated the remaining bandwidth, and so on, till the bandwidth is exhausted. In a congestion scenario, once all the bandwidth has been allocated, there is a possibility that the Strict Priority Group traffic can also be dropped. There are eight (8) priorities in the range 15.0-15.7.
    device(config-cee-map-default)# priority-group-table 15.0 pfc off 
    device(config-cee-map-default)# priority-group-table 15.1 pfc off
    device(config-cee-map-default)# priority-group-table 15.2 pfc off
    device(config-cee-map-default)# priority-group-table 15.3 pfc off
    ...
    device(config-cee-map-default)# priority-group-table 15.7 pfc off
                        

    PFC cannot be configured for Strict Priority Group traffic. Trying to configure PFC will result in an error.

  4. Next create the Low Priority (DWRR) entries. Eight (8) priorities are available in the range 0-7. When creating these entries, ensure that you allocate bandwidth ratios for these flows. Bandwidth is allocated using the weight parameter. Enter numerical values for weight. For example, set 10 for 10%, 20 for 20%. Ensure that the sum of all DWRR weights must equal 100%. If the sum does not equal 100%, then an error is thrown.
    device(config-cee-map-default)# priority-group-table 1 weight 40 pfc on
    device(config-cee-map-default)# priority-group-table 2 weight 60 pfc off
    device(config-cee-map-default)#
                        

    Only create entries for those DWRR priorities that you plan to use. Do not create entries for those priorities which you do not intend to use and assign a weight of 0 to them. For example, this is an invalid configuration.

    device(config-cee-map-default)# priority-group-table 3 weight 0 pfc off
                        
  5. Map the Priority with the entries in the priority-group-table. Use the priority-table command to create this mapping.
    device(config-cee-map-default)# priority-table 2 2 2 1 2 2 2 15.0
                        

    Each entry in the row represents a CoS. In this mapping CoS 0-2, 4-6 are mapped with priority group 2. Priority group 2 is configured with 60% bandwidth allocation and PFC off. CoS 3 is mapped to Priority group 1. Priority group 1 is configured with 40% bandwidth allocation with PFC on. CoS 7 is assigned 15.0 indicating Strict Priority group.

    In scenarios where Hybrid scheduling is used, the packets with Strict Priority Group traffic classes are served first. The remaining bandwidth, if any, is then allocated to the active DWRR queues according to the ratio of the weights allocated to them.

    Note

    Note

    CoS 7 is reserved for Strict Priority Group and is always assigned a value of 15.0.
  6. Exit out of the CEE Map context.
    device(config-cee-map-default)# exit
    device(config)#
                        
  7. Assign the CEE Map to an interface.
    device(config)# interface Ethernet 0/1
    device(conf-if-eth-0/1)# cee default
    device(conf-if-eth-0/1)#
                        
    The CEE map is applied to the selected interface. Once a CEE map is applied to the interface, the device starts advertising its capabilities to peers using LLDP TLVs. For more information on the LLDP TLVs that are used, see LLDP TLVs for Enhanced Transmission Selection.
  8. To verify the configuration, use the show cee maps default command.
    device(config)# do show cee maps default
    
    CEE Map 'default'
    Precedence: 1
    
    Priority Group Table
    1: Weight 40, PFC Enabled, BW% 40
    2: Weight 60, PFC Disabled, BW% 60
    15.0: PFC Disabled
    15.1: PFC Disabled
    15.2: PFC Disabled
    15.3: PFC Disabled
    15.4: PFC Disabled
    15.5: PFC Disabled
    15.6: PFC Disabled
    15.7: PFC Disabled
    Priority Table
    CoS: 0 1 2 3 4 5 6 7
    ----------------------------------------
    PGID: 2 2 2 1 2 2 2 15.0
    Enabled on the following interfaces:
    Ethernet 0/1
                        
  9. You can also use the show qos interface to view the CEE information.
    SLX# show qos interface ethernet  0/1
    [Note: CoS = Class of Service, TC = Traffic Class, DP = Drop Precedence]
    Interface Ethernet 0/1
      Provisioning Mode: cee
      CEE Map: default
      Default TC: 0
    
      TC-to-CoS Map: default
                  In-TC: 0  1  2  3  4  5  6  7
          -------------------------------------
          Out-CoS(DP=0): 0  1  2  3  4  5  6  7
          Out-CoS(DP=1): 0  1  2  3  4  5  6  7
          Out-CoS(DP=2): 0  1  2  3  4  5  6  7
          Out-CoS(DP=3): 0  1  2  3  4  5  6  7
    
      TC-to-DSCP Map: default
                   In-TC:  0   1   2   3   4   5   6   7
          ----------------------------------------------
          Out-DSCP(DP=0): 00  08  16  24  32  40  48  56
    
          Out-DSCP(DP=1): 00  08  16  24  32  40  48  56
    
          Out-DSCP(DP=2): 00  08  16  24  32  40  48  56
    
          Out-DSCP(DP=3): 00  08  16  24  32  40  48  56
    
      DSCP Mutation Map: default (DSCP = d1d2)
          d1 :  d2 0  1  2  3  4  5  6  7  8  9
          -------------------------------------
           0 :    00 01 02 03 04 05 06 07 08 09
           1 :    10 11 12 13 14 15 16 17 18 19
           2 :    20 21 22 23 24 25 26 27 28 29
           3 :    30 31 32 33 34 35 36 37 38 39
           4 :    40 41 42 43 44 45 46 47 48 49
           5 :    50 51 52 53 54 55 56 57 58 59
           6 :    60 61 62 63
    
      DSCP-to-TC Map: _default_cee_dscp_tc (x/y: TC = x, DP = y, DSCP = d1d2)
          d1 :  d2  0   1   2   3   4   5   6   7   8   9
          ------------------------------------------------
           0 :     1/0 1/0 1/0 1/0 1/0 1/0 1/0 1/0 0/0 0/0
           1 :     0/0 0/0 0/0 0/0 0/0 0/0 2/0 2/0 2/0 2/0
           2 :     2/0 2/0 2/0 2/0 3/0 3/0 3/0 3/0 3/0 3/0
           3 :     3/0 3/0 4/0 4/0 4/0 4/0 4/0 4/0 4/0 4/0
           4 :     5/0 5/0 5/0 5/0 5/0 5/0 5/0 5/0 6/0 6/0
           5 :     6/0 6/0 6/0 6/0 6/0 6/0 7/0 7/0 7/0 7/0
           6 :     7/0 7/0 7/0 7/0
    
      DSCP-to-CoS Map: default (DSCP = d1d2)
          d1 :  d2 0  1  2  3  4  5  6  7  8  9
          -------------------------------------
           0 :    00 00 00 00 00 00 00 00 01 01
           1 :    01 01 01 01 01 01 02 02 02 02
           2 :    02 02 02 02 03 03 03 03 03 03
           3 :    03 03 04 04 04 04 04 04 04 04
           4 :    05 05 05 05 05 05 05 05 06 06
           5 :    06 06 06 06 06 06 07 07 07 07
           6 :    07 07 07 07
    
      Per Traffic-Class Tail Drop Threshold (bytes)
                 TC:      0      1      2      3      4      5      6      7
          ------------------------------------------------------------------
          Threshold:      0      0      0      0      0      0      0      0
    
      Flow control mode PFC
          CoS3 TX on, RX on
    
      Traffic Class Scheduler configured for 1 Strict Priority queues
          TrafficClass:   0   1   2   3   4   5   6   7
          ---------------------------------------------
            DWRRWeight:   0   0   0  40   0   0  60 ---