Router Configuration

Each router in the GÉANT network contains certain QoS building blocks in order to configure Per Hop Behaviors (PHB). The configuration shown here is taken from a Juniper M160 router with JUNOS 5.7 and with E-FPC (enhanced FPCs) and SDH interfaces.

Care should be taken when configuring QoS on interfaces with multiple ports (typically more than four) or multiple logical sub-interfaces because each physical interface contains four queues regardless of the number of logical interfaces. The configuration on other types of FPC is very similar (but they have a different functionality).

Classifiers, schedulers and rewrite rules can be associated to each interface. In GÉANT two types of interface configurations are used for QoS. These are for a backbone interface and for an access interface (i.e. the interface where the traffic from an NREN is entering GÉANT). Both configurations are shown below.

Backbone interface
so-7/0/0 {
    scheduler-map MAP-BASIC;
    unit 0 {
        classifiers {
            dscp backbone-classifier;
        }
        rewrite-rules {
            dscp basic-rewrite-rules;
        }
    }
}

Access interface
so-0/2/3 {
    scheduler-map MAP-BASIC;
    unit 0 {
        classifiers {
            dscp access-classifier;
        }
        rewrite-rules {
            dscp basic-rewrite-rules;
        }
    }
}

In addition, the access interface may contain filters in order to classify and police Premium IP traffic.

The following configurations apply to all (access and backbone) interfaces.

Drop profiles
Drop profile define the parameters used by the Random Early Detection (RED) mechanism that MAY be used in a queue.

dws-drop-profile {
    fill-level 35 drop-probability 10;
    fill-level 40 drop-probability 100;
}
be-drop-profile {
    fill-level 15 drop-probability 30;
    fill-level 19 drop-probability 50;
    fill-level 24 drop-probability 70;
    fill-level 30 drop-probability 100;
}
less-than-be-drop-profile {
    fill-level 25 drop-probability 30;
    fill-level 30 drop-probability 50;
    fill-level 40 drop-probability 70;
    fill-level 50 drop-probability 100;
}

Queues and schedulers
Juniper routers support Weighted Round Robin (WRR) scheduling in order to achieve service differentiation. Each queue is assigned a certain weight indicating the amount of guaranteed capacity. WRR will serve the different queues according to these weights. The high priority packets are served before any low priority packets. The queues and the WRR scheduler are configured as follows.

1. Associate a name with each queue. A queue is sometimes also called a forwarding class.

forwarding-classes {
   queue 0 best-effort;
   queue 1 expedited-forwarding;
   queue 2 less-than-best-effort;
   queue 3 network-control;
}

The Premium IP traffic is classified into the expedited-forwarding queue. The naming of the queues is performed once and applies to all interfaces of the router.

2. Define scheduler configurations (scheduler weight, queue size and priority)

For each queue the following parameters are set:

  • 'transmit-rate percent x' assigns x% of the port capacity to the queue.
  • 'buffer size percent x' assigns x% of the total buffer to the queue.
  • 'queue priority' may take three values: low, high or strict-high. Note the difference between queue priority and the drop priority that is set by the classifier.
  • 'drop-profile-map' associates a certain RED profile to the queue.

The configuration below shows how the scheduling parameters are set at the GÉANT router for each queue.

sch-best-effort {
    transmit-rate percent 90;
    buffer-size percent 50;
    priority low;
}
sch-expedited-forwarding {
    buffer-size percent 15;
    priority strict-high;
}
sch-less-than-best-effort {
    transmit-rate percent 5;
    buffer-size percent 30;
    priority low;
    drop-profile-map loss-priority low protocol any drop-profile less-than-be-drop-profile;
    drop-profile-map loss-priority high protocol any drop-profile be-drop-profile;
}
sch-network-ctrl {
    transmit-rate percent 5;
    buffer-size percent 5;
    priority high;
}

3. Associate a scheduler with a queue (forwarding-class)

The main advantage of the scheduler-map is that it can be applied to more than one interface.

MAP-BASIC {
    forwarding-class best-effort scheduler sch-best-effort;
    forwarding-class expedited-forwarding scheduler sch-expedited-forwarding;
    forwarding-class less-than-best-effort scheduler sch-less-than-best-effort;
    forwarding-class network-control scheduler sch-network-ctrl;
}

Classification

The classifier is a functional block located at the input interface that sets three internal bits for each IP packet: 

  • Two bits that select the output-queue. There are four output queues, also called forwarding-classes, per port. 
  • One bit to indicate the loss-priority, the packets classified in an output-queue can have two different values of loss-priority (low or high).

Note that it is also possible to classify packets by means of an input filter. This is used for classifying Premium IP traffic. Best Effort (BE) and Less than Best Effort (LBE) traffic is classified by the classifier rules as shown below.

dscp backbone-classifier {
    import default;
    forwarding-class best-effort {
        loss-priority low code-points [ af11 af12 af13 ];
        loss-priority high code-points cs4;
    }
    forwarding-class less-than-best-effort {
        loss-priority low code-points cs1;
    }
}

dscp access-classifier {
    import default;
    forwarding-class best-effort {
        loss-priority low code-points [ af11 af12 af13 ];
    }
    forwarding-class less-than-best-effort {
        loss-priority low code-points cs1;
        loss-priority high code-points [ ef cs4 ];
    }
}

Marking

The marking of packets with a DSCP value is the last QoS action performed before the transmission of the packet. Juniper M-series routers can only mark packets at the output interface. Indeed, there are no markers at the input interface. Hence, keep this in mind when configuring firewall filters based on DSCP values; the DSCP value is re-written after the firewall filter evaluation (firewall filters actions are performed by the Internet Processor II that is located between the input and the output FPCs).

The marker for each forwarding-class (queue) is configured as follows.

dscp basic-rewrite-rules {
    forwarding-class best-effort {
        loss-priority high code-point cs4;
    }
    forwarding-class expedited-forwarding {
        loss-priority low code-point ef;
    }
    forwarding-class network-control {
        loss-priority low code-point nc1;
        loss-priority high code-point nc2;
    }
    forwarding-class less-than-best-effort {
        loss-priority high code-point be;
        loss-priority low code-point cs1;
    }
}

DSCP

Not all routers are able to recognize the full DSCP field. Here is an overview:

  • The Juniper M160 routers (with E-FPC) can interpret the full DSCP field.

  • The Juniper M40 routers that are reused from TEN-155 contain an old FPC, which only takes the precedence values (i.e. first three bits of the DSCP field) into account. This however does not pose a problem since the services on GÉANT can be uniquely identified by the PREC values. The last three bits of the DSCP values are not modified by the router.

  • The Cisco 7500 series with VIP2-50 re-used from TEN-155 use the ToS value. QoS, however, is not supported on these routers because the VIP is not powerful enough.

 

Glossary