Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Announcement: Try the Ask AI chatbot for answers to your technical questions about Juniper products and solutions.

close
header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
list Table of Contents
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

Applying Scheduler Maps to Chassis-Level Queues

date_range 29-Nov-23

On Intelligent Queuing (IQ) and Intelligent Queuing 2 (IQ2) interfaces, as well as on the 10x10GE MIC with SFP+, the traffic that is fed from the packet forwarding components into the PIC uses low packet loss priority (PLP) by default and is distributed evenly across the four chassis queues (not PIC queues), regardless of the scheduling configuration for each logical interface. This default behavior can cause traffic congestion.

The default chassis scheduler allocates resources for queue 0 through queue 3, with 25 percent of the bandwidth allocated to each queue. When you configure the chassis to use more than four queues, you must configure and apply a custom chassis scheduler to override the default chassis scheduler.

To apply a custom chassis scheduler:

  1. Specify the interface on which to apply the scheduler.

    content_copy zoom_out_map
    [edit]
    user@host# edit class-of-service interfaces interface-name
    

    For example:

    content_copy zoom_out_map
    [edit]
    user@host# edit class-of-service interfaces so-0/1/*
    
  2. Specify the name of the custom scheduler you want to apply to the interface.

    content_copy zoom_out_map
    [edit class-of-service interfaces so-0/1/0]
    user@host# set scheduler-map-chassis map-name
    

To control the aggregated traffic transmitted from the chassis queues into the PIC, you can configure the chassis queues to derive their scheduling configuration from the associated logical interface’s.

To configure the chassis queues to derive their scheduling from the associated logical interfaces:

  1. Specify the logical interfaces from which to derive the scheduling configuration.

    content_copy zoom_out_map
    [edit]
    user@host# edit class-of-service interfaces interface-name
    

    For example:

    content_copy zoom_out_map
    [edit]
    user@host# edit class-of-service interfaces so-0/1/*
    
  2. Specify that the scheduler configuration is derived from the specified logical interfaces.

    content_copy zoom_out_map
    [edit class-of-service interfaces so-0/1/0]
    user@host# set scheduler-map-chassis derived
    
CAUTION:

If you specify the scheduler-map-chassis derived statement in the configuration, packet loss might occur when you subsequently add or remove logical interfaces at the [edit interfaces interface-name] hierarchy level.

When fragmentation occurs on the egress interface, the first set of packet counters displayed in the output of the show interfaces queue command show the post-fragmentation values. The second set of packet counters (under the Packet Forwarding Engine Chassis Queues field) show the pre-fragmentation values. For more information about the show interfaces queue command, see the CLI Explorer.

You can specify both the scheduler-map and the scheduler-map-chassis derived statements in the same interface configuration. The scheduler-map statement controls the scheduler inside the PIC, while the scheduler-map-chassis derived statement controls the aggregated traffic transmitted into the entire PIC.

Note:

For the Gigabit Ethernet IQ PIC, you must specify both the scheduler-map and the scheduler-map-chassis derived statements in the interface configuration.

Generally, when you specify the scheduler-map-chassis statement in the configuration, you must use an interface wildcard for the interface name, as in type-fpc/pic/*. The wildcard must use this format—for example. so-1/2/*, which means all interfaces on FPC slot 1, PIC slot 2. There is one exception—you can apply the chassis scheduler map to a specific interface on the Gigabit Ethernet IQ PIC only.

According to Junos OS wildcard rules, specific interface configurations override wildcard configurations. For chassis scheduler map configurations, this rule does not apply; instead, specific interface CoS configurations are added to the chassis scheduler map configuration. For more information about how wildcards work with chassis scheduler maps, see Examples: Scheduling Packet Forwarding Component Queues. For general information about wildcards, see the Junos OS Administration Library for Routing Devices.

Note:

The interface applies wildcard configuration only if you do not add any specific configuration. If you add the specific interface configuration, then the interface deletes the applied wildcard configuration and applies the specified configuration.

Applying Custom Schedulers to Packet Forwarding Component Queues

Optionally, you can apply a custom scheduler to the chassis queues instead of configuring the chassis queues to automatically derive their scheduling configuration from the logical interfaces on the PIC.

To apply a custom chassis scheduler:

  1. Specify the interface on which to apply the scheduler.
    content_copy zoom_out_map
    [edit]
    user@host# edit class-of-service interfaces interface-name
    

    For example:

    content_copy zoom_out_map
    [edit]
    user@host# edit class-of-service interfaces so-0/1/*
    
  2. Specify the name of the custom scheduler you want to apply to the interface.
    content_copy zoom_out_map
    [edit class-of-service interfaces so-0/1/0]
    user@host# set scheduler-map-chassis map-name
    

When you apply a custom scheduler map to packet forwarding component queues, or when you modify the configuration of a custom scheduler map that is already applied to packet forwarding component queues, packets already in the chassis queues might be dropped. The amount of packet loss is not deterministic and depends on the offered traffic load at the time you apply or modify the custom scheduler map.

Examples: Scheduling Packet Forwarding Component Queues

Example: Applying a Chassis Scheduler Map to a 2-Port IQ PIC

This example applies a chassis scheduler map to interfaces so-0/1/0 and so-0/1/1.

According to customary wildcard rules, the so-0/1/0 configuration overrides the so-0/1/* configuration, implying that the chassis scheduler map MAP1 is not applied to so-0/1/0. However, the wildcard rule is not obeyed in this case; the chassis scheduler map applies to both interfaces so-0/1/0 and so-0/1/1.

To configure the chassis queues to derive their scheduling from the associated logical interfaces:

  1. Specify the logical interfaces from which to derive the scheduling configuration.
    content_copy zoom_out_map
    [edit class-of-service]
    user@host# set interfaces so-0/1/0 unit 0 classifiers inet-precedence default
    
  2. Using a wildcard rule, specify that the scheduler configuration is derived from the logical interfaces on so-0/1*.
    content_copy zoom_out_map
    [edit class-of-service]
    user@host# set interfaces so-0/1/* scheduler-map-chassis derived
    
  3. Review the configuration.
    content_copy zoom_out_map
    [edit]
    
    user@host# show
    class-of-service {
      interfaces {
        so-0/1/0 {
          unit 0 {
            classifiers {
              inet-precedence default;
            }
          }
        }
        so-0/1/* {
          scheduler-map-chassis derived;
        }
      }
    }
  4. Save the configuration.
    content_copy zoom_out_map
    [edit]
    user@host# commit
    

Not Recommended: Using a Wildcard for Gigabit Ethernet IQ Interfaces When Applying a Chassis Scheduler Map

On a Gigabit Ethernet IQ PIC, you can apply the chassis scheduler map at both the specific interface level and the wildcard level. We do not recommend this because the wildcard chassis scheduler map takes precedence, which might not be the desired effect. For example, if you want to apply the chassis scheduler map MAP1 to port 0 and MAP2 to port 1, we do not recommend the following:

content_copy zoom_out_map
[edit class-of-service]
user@host# set interfaces ge-0/1/0 scheduler-map-chassis MAP1
user@host# set interfaces ge-0/1/* scheduler-map-chassis MAP2
content_copy zoom_out_map
[edit class-of-service]

user@host# show
interfaces {
  ge-0/1/0 {
    scheduler-map-chassis MAP1;
  }
  ge-0/1/* {
    scheduler-map-chassis MAP2;
  }
}

Recommended: Identifying Gigabit Ethernet IQ Interfaces Individually When Applying a Chassis Scheduler Map

Instead, we recommend this configuration:

content_copy zoom_out_map
[edit class-of-service]
user@host# set interfaces ge-0/1/0 scheduler-map-chassis MAP1
user@host# set interfaces ge-0/1/1 scheduler-map-chassis MAP2
content_copy zoom_out_map
[edit class-of-service]
user@host# show
interfaces {
  ge-0/1/0 {
    scheduler-map-chassis MAP1;
  }
  ge-0/1/1 {
    scheduler-map-chassis MAP2;
  }
}

Example: Configuring Two T3 Interfaces on a Channelized DS3 IQ PIC

To configure two T3 interfaces on a channelized DS3 IQ PIC:

  1. Configure the first channelized DS3 IQ interface.
    1. Specify the name of the interface.

      content_copy zoom_out_map
      [edit]
      user@host# edit interfaces ct3-3/0/0
      
    2. Configure the interface as unpartitioned, clear channel.

      content_copy zoom_out_map
      [edit interfaces ct3-3/0/0]
      user@host# set no-partition interface-type t3 
      
  2. Configure the second channelized DS3 IQ interface.
    1. Specify the name of the interface.

      content_copy zoom_out_map
      [edit]
      user@host# edit interfaces ct3-3/0/1
      
    2. Configure the interface as unpartitioned, clear channel.

      content_copy zoom_out_map
      [edit interfaces ct3-3/0/1]
      user@host# set no-partition interface-type t3 
      
  3. Configure the first T3 channel.
    1. Specify the name of the T3 interface on the DS3 IQ PIC.

      content_copy zoom_out_map
      [edit]
      user@host# edit t3-3/0/0 unit 0
      
    2. Specify the protocol family and address of the interface.

      content_copy zoom_out_map
      [edit t3-3/0/0 unit 0]
      user@host# set family inet address 10.0.100.1/30
      
  4. Configure the second T3 channel.
    1. Specify the name of the T3 interface on the DS3 IQ PIC.

      content_copy zoom_out_map
      [edit]
      user@host# edit t3-3/0/1 unit 0
      
    2. Specify the protocol family and address of the interface.

      content_copy zoom_out_map
      [edit t3-3/0/0 unit 0]
      user@host# set family inet address 10.0.101.1/30
      
  5. Review the configuration.
    content_copy zoom_out_map
    [edit interfaces]
    
    user@host# show
    ct3-3/0/0 {
      no-partition interface-type t3; # use entire port 0 as T3
    }
    ct3-3/0/1 {
      no-partition interface-type t3; # use entire port 1 as T3
    }
    t3-3/0/0 {
      unit 0 {
        family inet {
          address 10.0.100.1/30;
        }
      }
    }
    t3-3/0/1 {
      unit 0 {
        family inet {
          address 10.0.101.1/30;
        }
      }
    }
  6. Save the configuration.
    content_copy zoom_out_map
    [edit]
    user@host# commit
    

Example: Applying Normal Schedulers to Two T3 Interfaces

Configure a scheduler for the aggregated traffic transmitted into both T3 interfaces.

  1. Specify the names of the scheduler maps for each interface.
    content_copy zoom_out_map
    [edit]
    user@host# set class-of-service interfaces t3-3/0/0 scheduler-map sched-qct3-0 
    user@host# set class-of-service interfaces t3-3/0/1 scheduler-map sched-qct3-1
    
  2. Specify the CoS parameters assigned to each forwarding class.
    content_copy zoom_out_map
    [edit]
    user@host# set class-of-service scheduler-maps sched-qct3-0 forwarding-class best-effort scheduler be-qct3-0 
    user@host# set class-of-service scheduler-maps sched-qct3-0 forwarding-class expedited-forwarding scheduler ef-qct3-0 
    user@host# set class-of-service scheduler-maps sched-qct3-0 forwarding-class assured-forwarding scheduler as-qct3-0 
    user@host# set class-of-service scheduler-maps sched-qct3-0 forwarding-class network-control scheduler nc-qct3-0 
    user@host# set class-of-service scheduler-maps sched-qct3-1 forwarding-class best-effort scheduler be-qct3-1 
    user@host# set class-of-service scheduler-maps sched-qct3-1 forwarding-class expedited-forwarding scheduler ef-qct3-1 
    user@host# set class-of-service scheduler-maps sched-qct3-1 forwarding-class assured-forwarding scheduler as-qct3-1 
    user@host# set class-of-service scheduler-maps sched-qct3-1 forwarding-class network-control scheduler nc-qct3-1 
    user@host# set class-of-service scheduler-maps sched-chassis-to-q forwarding-class best-effort scheduler be-chassis 
    user@host# set class-of-service scheduler-maps sched-chassis-to-q forwarding-class expedited-forwarding scheduler ef-chassis 
    user@host# set class-of-service scheduler-maps sched-chassis-to-q forwarding-class assured-forwarding scheduler as-chassis 
    user@host# set class-of-service scheduler-maps sched-chassis-to-q forwarding-class network-control scheduler nc-chassis
    
  3. Specify each scheduler name and the associated transmit rate..
    content_copy zoom_out_map
    user@host# set class-of-service schedulers be-qct3-0 transmit-rate percent 40 
    user@host# set class-of-service schedulers ef-qct3-0 transmit-rate percent 30 
    user@host# set class-of-service schedulers as-qct3-0 transmit-rate percent 20 
    user@host# set class-of-service schedulers nc-qct3-0 transmit-rate percent 10
    
  4. Review the configuration.
    content_copy zoom_out_map
    [edit class-of-service]
    
    user@host# show
    
    interfaces {
      t3-3/0/0 {
        scheduler-map sched-qct3-0;
      }
      t3-3/0/1 {
        scheduler-map sched-qct3-1;
      }
    }
    scheduler-maps {
      sched-qct3-0 {
        forwarding-class best-effort scheduler be-qct3-0;
        forwarding-class expedited-forwarding scheduler ef-qct3-0;
        forwarding-class assured-forwarding scheduler as-qct3-0;
        forwarding-class network-control scheduler nc-qct3-0;
      }
      sched-qct3-1 {
        forwarding-class best-effort scheduler be-qct3-1;
        forwarding-class expedited-forwarding scheduler ef-qct3-1;
        forwarding-class assured-forwarding scheduler as-qct3-1;
        forwarding-class network-control scheduler nc-qct3-1;
      }
      sched-chassis-to-q {
        forwarding-class best-effort scheduler be-chassis;
        forwarding-class expedited-forwarding scheduler ef-chassis;
        forwarding-class assured-forwarding scheduler as-chassis;
        forwarding-class network-control scheduler nc-chassis;
      }
    }
    schedulers {
      be-qct3-0 {
        transmit-rate percent 40;
      }
      ef-qct3-0 {
        transmit-rate percent 30;
      }
      as-qct3-0 {
        transmit-rate percent 20;
      }
      nc-qct3-0 {
    transmit-rate percent 10;
      }
    }
    
  5. Save the configuration.
    content_copy zoom_out_map
    [edit]
    user@host# commit
    

Example: Applying a Chassis Scheduler to Two T3 Interfaces

Bind a scheduler to the aggregated traffic transmitted into the entire PIC. The chassis scheduler controls the traffic from the packet forwarding components feeding the interface t3-3/0/*:

  1. Using a wildcard rule, specify that the scheduler configuration is derived from the logical interfaces on t3-3/0/*.
    content_copy zoom_out_map
    user@host# set class-of-service interfaces t3-3/0/* scheduler-map-chassis derived
    
  2. Review the configuration.
    content_copy zoom_out_map
    [edit class-of-service]
    user@host# show
    
    interfaces {
      t3-3/0/* {
        scheduler-map-chassis derived;
      }
    }
  3. Save the configuration.
    content_copy zoom_out_map
    [edit]
    user@host# commit
    

Not Recommended: Using a Wildcard for Logical Interfaces When Applying a Scheduler

Do not apply a scheduler to a logical interface using a wildcard. For example, if you configure a logical interface (unit) with one parameter, and apply a scheduler map to the interface using a wildcard, the logical interface will not apply the scheduler. The following configuration will commit correctly but will not apply the scheduler map to interface so-3/0/0.0:

content_copy zoom_out_map
[edit]
user@host# set class-of-service interfaces so-3/0/* unit 0 scheduler-map MY_SCHED_MAP 
user@host# set class-of-service interfaces so-3/0/0 unit 0 shaping-rate 100m
content_copy zoom_out_map
[edit class of service]
user@host# show
interfaces {
  so-3/0/* {
    unit 0 {
      scheduler-map MY_SCHED_MAP;
    }
  }
  so-3/0/0 {
    unit 0 {
      shaping-rate 100m;
    }
  }
}

Recommended: Identifying Logical Interfaces Individually When Applying a Scheduler

Always apply the scheduler to a logical interface without the wildcard:

content_copy zoom_out_map
[edit]
user@host# set class-of-service interfaces so-3/0/0 unit 0 scheduler-map MY_SCHED_MAP 
user@host# set class-of-service interfaces so-3/0/0 unit 0 shaping-rate 100m
content_copy zoom_out_map
[edit class of service]
user@host# show
interfaces {
  so-3/0/0 {
    unit 0 {
      scheduler-map MY_SCHED_MAP;
      shaping-rate 100m;
    }
  }
}
Note:

This same wildcard behavior applies to classifiers and rewrites as well as schedulers.

footer-navigation