Technical Documentation

Example: Configuring Dynamic Hierarchical Scheduling and Queuing for Subscriber Access

In this example, subscribers are provided with a data and voice service defined in an access profile when they initially log in. The RADIUS administrator supplies the initial values on the RADIUS server, and the service activation is performed at subscriber login.

After the initial login, the subscriber adds an assured forwarding service that is not defined in the original access profile. A service profile is used to configure the schedulers and a RADIUS CoA activates the service. The queues defined for the schedulers in the initial scheduler map and the new scheduler map are merged.

In addition, the values for the initial data and voice service are upgraded by the RADIUS administrator through a separate RADIUS CoA message.

To configure the initial service and enable the activation through a RADIUS CoA:

  1. Configure the access profile for the service activation.
    1. Configure the VLAN interface for the access profile.
      [edit]dynamic-profiles access-profile {interfaces {$junos-interface-ifd-name {unit $junos-underlying-interface-unit {family inet;}}}}
    2. Configure the class of service parameters in the access profile. In this example, you configure JUNOS predefined variables that provide the initial scheduler name and scheduler parameters obtained from the RADIUS authentication server when the subscriber logs in.

      Include the configurations for the interfaces, schedulers, and the scheduler maps.

      [edit]dynamic-profiles access-profile {class-of-service {traffic-control-profiles {tcp1 {scheduler-map $junos-cos-scheduler-map;shaping-rate $junos-cos-shaping-rate;guaranteed-rate $junos-cos-guaranteed-rate;delay-buffer-rate $junos-cos-delay-buffer-rate;}}interfaces {$junos-interface-ifd-name {unit "$junos-underlying-interface-unit" {classifiers {ieee-802.1 l2_classifier;}rewrite-rules {ieee-802.1 l2_rewrite;}output-traffic-control-profile tcp1;}}}schedulers {$junos-cos-scheduler {buffer-size percent $junos-cos-scheduler-bs;priority $junos-cos-scheduler-pri;transmit-rate percent $junos-cos-scheduler-tx;drop-profile-map loss-priority low protocol any $junos-cos-scheduler-low;drop-profile-map loss-priority medium-low protocol any $junos-cos-scheduler-medium-low;drop-profile-map loss-priority medium-high protocol any $junos-cos-scheduler-medium-high;drop-profile-map loss-priority high protocol any $junos-cos-scheduler-high;}}scheduler-maps {data_voice_smap {forwarding-class be scheduler be_sch;forwarding-class ef scheduler ef_sch;}}}}

      Table 1 lists the initial values defined by the RADIUS administrator for the scheduler map and shaping rates.

      Table 1: Initial Scheduler Map and Shaping Values at Subscriber Login

      Predefined Variable

      RADIUS Tag

      Value

      $junos-cos-scheduler-map

      T01

      data_voice_smap

      $junos-cos-shaping-rate

      T02

      6m

      $junos-cos-guaranteed-rate

      T03

      4m

      $junos-cos-delay-buffer-rate

      T04

      4m

      Table 2 lists the initial values defined by the RADIUS administrator for the voice (expedited forwarding) scheduler.

      Table 2: Initial CoS Values for the Voice Scheduler at Subscriber Login

      Predefined Variable

      Tag

      Value

      $junos-cos-scheduler

      ef_sch

      $junos-cos-scheduler-tx

      T01

      10

      $junos-cos-scheduler-bs

      T02

      10

      $junos-cos-scheduler-pri

      T03

      medium-high

      $junos-cos-scheduler-dropfile-low

      T04

      d3

      $junos-cos-scheduler-dropfile-medium-low

      T05

      d2

      $junos-cos-scheduler-dropfile-medium-high

      T06

      d1

      $junos-cos-scheduler-dropfile-high

      T07

      d0

      Table 3 lists the initial values defined by the RADIUS administrator for the data (best effort) scheduler.

      Table 3: Initial CoS Values for the Data Scheduler at Subscriber Login

      Predefined Variable

      Tag

      Value

      $junos-cos-scheduler

      be_sch

      $junos-cos-scheduler-tx

      T01

      10

      $junos-cos-scheduler-bs

      T02

      10

      $junos-cos-scheduler-pri

      T03

      low

      $junos-cos-scheduler-dropfile-low

      T04

      d0

      $junos-cos-scheduler-dropfile-medium-low

      T05

      d1

      $junos-cos-scheduler-dropfile-medium-high

      T06

      d2

      $junos-cos-scheduler-dropfile-high

      T07

      d3

  2. Configure the classifiers, drop profiles, forwarding classes, and rewrite rules in the static [edit class-of-service] hierarchy.
    [edit]class-of-service {classifiers {dscp dscp_classifier {forwarding-class be {loss-priority low code-points 000000;}forwarding-class af {loss-priority medium-low code-points 000001;}}ieee-802.1 l2_classifier {forwarding-class be {loss-priority medium-low code-points 000;}forwarding-class ef {loss-priority medium-low code-points 100;}forwarding-class af {loss-priority medium-low code-points 010;}}}drop-profiles {d0 {fill-level 25 drop-probability 100;fill-level 0 drop-probability 0;}d1 {fill-level 50 drop-probability 100;fill-level 0 drop-probability 0;}d2 {fill-level 75 drop-probability 100;fill-level 0 drop-probability 0;}d3 {fill-level 0 drop-probability 0;fill-level 100 drop-probability 100;}}forwarding-classes {queue 0 be;queue 1 ef;queue 2 af;queue 3 nc;}interfaces {ge-1/2/9 {shaping-rate 100m;}}rewrite-rules {ieee-802.1 l2_rewrite {forwarding-class be {loss-priority medium-low code-point 000;}forwarding-class ef {loss-priority medium-low code-point 001;}forwarding-class af {loss-priority medium-low code-point 100;}dscp l2_rewrite {forwarding-class be {loss-priority medium-low code-points 000;}forwarding-class ef {loss-priority medium-low code-points 001;}forwarding-class af {loss-priority medium-low code-points 001;}}}
  3. Configure the service profile enable RADIUS to activate the video service after login. The video service corresponds to assured forwarding PHB.

    In this example, you configure JUNOS predefined variables that provide the initial scheduler name and scheduler parameters obtained from the RADIUS authentication server when the subscriber logs in.

    [edit]dynamic-profiles service-af {variables {af_fc default-value video;af_sch default-value af_sch;sch-drop-any default-value all;sch-pri-2 default-value strict-high;sch-bs-2 default-value 40;sch-tx-2 default-value 3m;smap default-value any}class-of-service {scheduler-maps {"$smap" {forwarding-class “$af_fc” scheduler “$af_sch”;}}schedulers {"$af_sch" {transmit-rate percent "$sch-tx-2";buffer-size percent "$sch-bs-2";priority "$sch-pri-2";drop-profile-map loss-priority any protocol any drop-profile “$sch-drop-any”;}}}}

After the three services are activated, subscribers receive upgraded values for the data and voice service when RADIUS sends a change of authorization (CoA). In this case, the CoS parameters are replaced, because multiple subscribers were not enabled on the logical interface.

Table 4 lists the upgraded values defined by the RADIUS administrator.

Table 4: Upgraded CoS Values for the Video Service

Variable

RADIUS Tag

Value

junos-cos-scheduler-map

T01

data_voice_smap

junos-cos-shaping-rate

T02

14m

junos-cos-guaranteed-rate

T03

13m

junos-cos-delay-buffer-rate

T04

12m

Table 5 lists the values defined by the RADIUS administrator for the video (assured forwarding) scheduler.

Table 5: Upgraded CoS Values for the Video Scheduler

Predefined Variable

Tag

Value

$junos-cos-scheduler

af_sch

$junos-cos-scheduler-tx

T01

10

$junos-cos-scheduler-bs

T02

10

$junos-cos-scheduler-pri

T03

medium

$junos-cos-scheduler-dropfile-low

T04

d3

$junos-cos-scheduler-dropfile-medium-low

T05

d2

$junos-cos-scheduler-dropfile-medium-high

T06

d1

$junos-cos-scheduler-dropfile-high

T07

d0

Table 6 lists the values defined by the RADIUS administrator for the expedited forwarding scheduler in the CoA message. The values are the same as the initial service.

Table 6: Initial CoS Values for the Expedited Forwarding Scheduler at Subscriber Login

Predefined Variable

Tag

Value

$junos-cos-scheduler

ef_sch

$junos-cos-scheduler-tx

T01

10

$junos-cos-scheduler-bs

T02

10

$junos-cos-scheduler-pri

T03

medium-high

$junos-cos-scheduler-dropfile-low

T04

d3

$junos-cos-scheduler-dropfile-medium-low

T05

d2

$junos-cos-scheduler-dropfile-medium-high

T06

d1

$junos-cos-scheduler-dropfile-high

T07

d0

Table 7 lists the values defined by the RADIUS administrator for the best effort scheduler in the CoA message. The values are the same as the initial service.

Table 7: Initial CoS Values for the Best Effort Scheduler at Subscriber Login

Predefined Variable

Tag

Value

$junos-cos-scheduler

be_sch

$junos-cos-scheduler-tx

T01

10

$junos-cos-scheduler-bs

T02

10

$junos-cos-scheduler-pri

T03

low

$junos-cos-scheduler-dropfile-low

T04

d0

$junos-cos-scheduler-dropfile-medium-low

T05

d1

$junos-cos-scheduler-dropfile-medium-high

T06

d2

$junos-cos-scheduler-dropfile-high

T07

d3


Published: 2010-04-15