How to Link Forwarding Classes to Classifiers in Junos

By Walter J. Goralski, Cathy Gadecki, Michael Bushong

The Differentiated Services Code Point (DSCP) values characterize traffic, and the forwarding classes (and corresponding queues) allow you to classify that traffic so that you can treat it appropriately. To pull these two pieces together, you configure behavior aggregate (BA) classifiers, referencing defined forwarding classes:

The logic you’re trying to configure is

If traffic has a dscp value that matches some pattern,
  Then send that traffic to a particular queue and
  assign a particular loss priority

The code you use to configure it is

 [edit class-of-service]
classifiers {
  dscp dscp-classifier {
   forwarding-class cos-voice {
     loss-priority low code-points ef;
   forwarding-class cos-video {
     loss-priority high code-points cs1;
     loss-priority low code-points af31;
   forwarding-class cos-buscrit {
     loss-priority low code-points af41
   forwarding-class cos-noncrit {
     loss-priority high code-points cs5;
     loss-priority low code-points af13;

This configuration creates your match conditions, and it assigns traffic that meets those conditions to one of the specified forwarding classes, which, in turn, maps to a particular outbound queue.

Specifically, this configuration specifies that any traffic that has a DSCP value of ef (corresponding to a bit pattern of 101110) should be given a loss-priortyof low and assigned to the forwarding class called cos-voice. Basically, you’re saying that any traffic that is marked as expedited forwarding is voice traffic, and that traffic shouldn’t be dropped, so you’re giving it a low loss priority.

That traffic is then being assigned to the voice forwarding class, which corresponds to queue 5 on the router. Essentially, you’re dumping all your voice traffic into a single queue with the expectation that you’ll allocate a certain percentage of your total bandwidth to that traffic.

This configuration also classifies video traffic. In the case of video, you want to minimize delay and jitter because it impacts video quality, but the nature of the traffic is such that it’s not as critical to your business as the voice traffic on your network. In this case, you want to assign it to an assured forwarding class.

In fact, your network may have multiple sources of video. Imagine that video streaming from one server is being used to send live stock data to a number of different branches in your company. Because decisions are made based on that data, you want to make sure that stream is uninterrupted.

Meanwhile, another video stream is sending training or other corporate information that is less critical. Although you want that stream to be uninterrupted, if you’re forced to choose between that one and the streaming stock quotes, you want to preserve the stock quotes.

So this configuration sets a loss priority of high on the training video and a low loss priority on the stock quotes. During times of congestion, the training video is more likely to be impacted, thus preserving the higher priority stock quotes.

For these forwarding classes, no scheduler is defined yet. You must explicitly configure a scheduler in the Junos OS before the forwarding classes become useful. Schedulers assign route resources to the forwarding classes; without resources, a forwarding class remains just a concept.