QoS for Switches

In a congested environment, Quality of Service(QoS) helps with ensuring that latency-sensitive traffic (such as voice) are prioritized over other traffic.

QoS generally involves the following 4 aspects:

  • Classification of Traffic
  • Defining traffic to queue mapping (Forwarding Classes)
  • Defining rules for each queue which help in priority, bandwidth control, providing congestion management etc. of the traffic on each interface (Scheduler and re-write rules)
  • Applying QoS components on the interfaces

At Mist, the above has been abstracted to enable QoS on a per interface basis.

QoS Configuration Example

1. Enabling QoS for Port profile

 

2. Assigning port profile to the respective port(s)

 

Best Practice for enabling QoS

QoS should be enabled for both downstream and upstream profiles in order to obtain optimum results.

 

QoS with Mist

Classification:

At Mist, QoS classification implementation utilizes Behavior Aggregate (BA) Classification, where the classification is driven on the DSCP/CoS values marked by the incoming traffic. The BA classifier maps a CoS value in the packet header to a forwarding class and loss priority.

Traffic Queues:

Enabling QoS for a Port profile and assigning it to a port/range of ports will add DSCP markings based on class and rewrite rules for that interface.  Incoming packets with a DSCP marking will be mapped to one of the 7 forwarding classes and output the queue in an order according to the table below.

Code Point/Loss Priority Forwarding Class Transmit Queue Buffer Size(%) Transmit Rate(%) Priority
be default-app 0 Remainder Remainder Low
af41/Low
af42/High
af43/High
cs4/Low
video 1 8 8 Low
af31/Low
af32/High
af33/High
cs3/Low
bizapp-af3 2 10 10 Low
af21/Low
af22/High
af23/High
bizapp-af2 3 10 10 Low
af11/Low
af12/High
af13/High
net-tools 4 3 3 Low
cs5/Low
ef/Low
voice 5 10 10 Strict-High
nc1/Low
nc2/Low
net-control 7 3 3 Low

As we observe from the table above, in the case of Traffic Congestion on the link, delay/Jitter sensitive traffic (e.g. voice traffic) will be given a higher priority for transmission (assuming the incoming traffic is marked appropriately). Mist also automatically configures re-write rules in order to retain markings as the packets exit out of the switch.

 

Validating QoS setting from API

In the Following example “enable_qos”: true is set for port profiles qos-test and uplink

"port_usages": {
        "qos-test": {
            "name": "qos-test",
            "mode": "access",
            "disabled": false,
            "port_network": "vl10",
            "voip_network": null,
            "stp_edge": false,
            "all_networks": false,
            "networks": [],
            "port_auth": null,
            "speed": "auto",
            "duplex": "auto",
            "mac_limit": 0,
            "poe_disabled": false,
            "enable_qos": true
        },
        "uplink": {
            "mode": "trunk",
            "all_networks": true,
            "stp_edge": false,
            "port_network": "vlan3",
            "voip_network": null,
            "name": "uplink",
            "disabled": false,
            "networks": [],
            "port_auth": null,
            "speed": "auto",
            "duplex": "auto",
            "mac_limit": 0,
            "poe_disabled": false,
            "enable_qos": true
        }
    },

 

To see advanced QoS Verification, see this page: https://www.mist.com/documentation/advanced-qos-verification/