Quality of Service
This chapter contains a general overview of Quality of Service (QoS) functionality and terminology.
QoS Functionality
QoS can be used to give certain traffic priority over other traffic. Without QoS, all traffic in a network has the same priority and chance of being delivered on time. If congestion occurs, all traffic has the same chance of being dropped. With QoS, specific network traffic can be prioritized to receive preferential treatment. In turn, a network performs more predictably, and utilizes bandwidth more effectively.
QoS is based on DiffServ architecture, which stipulates that individual packets be classified upon entry into a network. Classification information can be carried in the Layer-3 IP packet header or the Layer-2 frame. IP packet headers carry the information using 6-bits from the deprecated IP type of service (TOS) field. Layer-2 802.1Q frames carry the information using a 2-byte Tag Control Information field. All switches and routers accessing the Internet depend on class information to give the same forwarding treatment to packets with the same class information, and give different treatment to packets with different class information. A packet can be assigned class information, as follows:
• End hosts or switches along a path, based on a configured policy
• Detailed packet examination, expected to occur nearer to the network edge, to prevent overloading core switches and routers
• A combination of the above two techniques
Class information can be used by switches and routers along a path to limit the amount of allotted resources per traffic class. Per-hop behavior is an individual device’s behaviour when handling traffic in the DiffServ architecture. An end-to-end QoS solution can be created if all devices along a path have consistent per-hop behavior.
Quality of Service (QoS) provides preferential treatment to specific traffic, possibly at the expense of other traffic. Without QoS, Qumran offers best-effort service to each packet, however, this may cause unpredictable network behavior. Implementing QoS in a network makes performance more predictable and bandwidth utilization more effective.
QoS design in Qumran complies with IETF-DiffServ and IEEE 802.1p standards. A typical QoS model deployment is based on the following elements:
• The packet received on customer edge port will be assigned to a QoS service. The service is assigned based on the packet header information.
• The QoS service defines the packet's internal QoS handling (i.e. traffic class/queue and drop precedence/color) and optionally the packet's external QoS marking, through either the IEEE 802.1p User Priority or the IP header DSCP field.
• Qumran provides end-to-end QoS behavior by providing consistent QoS treatment to the traffic within the network core based on packet's IEEE 802.1 or DSCP marking.
• Qumran can modify the assigned service of the packets if a packet stream exceeds the ingress configured rate by marking drop precedence and remarking packet's IEEE 802.1p or DSCP at the egress.
• Qumran incorporates the required QoS features to implement network-edge, as well as, network-core devices.
• Qumran provides flexible mechanisms to classify packets into different service levels.
• Service application mechanism is based on eight egress priority queues per port.
• The packet Priority fields can be remarked to reflect the QoS assignment on L2 and L3 networks.
Note: Packet priority remarking on an MPLS network is not supported.
Terminology
Following is a brief description of terms and concepts used to describe QoS.
ACL
Access control lists (ACLs) classify traffic with the same characteristics.
CoS Value
Class of Service (CoS) is a 3-bit value used to classify the priority of Layer-2 frames upon entry into a network. QoS classifies frames by assigning priority-indexed CoS values to them, and gives preference to higher-priority traffic.CoS values range from zero to seven, seven being the highest priority.
DSCP Value
DSCP Value Differentiated Services Code Point (DSCP) is a 6-bit value used to classify the priority of Layer-3 packets upon entry into a network. DSCP values range from 0 to 63, 63 being the highest priority, 0 being best-effort traffic.
Classification
Classification distinguishes one kind of traffic from another by examining the fields in the packet. Classification is enabled only if QoS is globally enabled on the switch. By default, QoS is globally disabled, thus, no classification occurs. Classification occurs on an ingress physical port. Classification can be based on QoS ACLs, or class maps and policy maps.
Policing
Policing can occur on ingress interfaces. Policer limits the bandwidth consumed by a traffic flow with the results given to the marker. The two types of policers:
• Individual: QoS applies the bandwidth limits specified in the policer, separately, to each matched traffic class. An individual policer is configured within a policy map.
Marking
Marking determines how to handle a packet when it is out of profile. It assesses the policer and the configuration data to determine the action required for the packet, and then handles the packet using one of the following methods:
• Let the packet through without modification
• Drop the packet
Marking can occur on ingress and egress interfaces.
Queuing
Queuing maps packets to a queue. Each egress port can accommodate up 8 queues, prioritized as 0 lowest and 7 highest. The tagged packet incoming priority can be mapped to one of the 8 queues obtained from the filtering mechanism result. The untagged packet priority is also obtained from the filtering mechanism result. After the packets are mapped to a queue, they are scheduled.
Scheduling
Scheduling forwards or conditions packets using one of the following methods:
• Strict Priority-Based (SP), in which any high-priority packets are first transmitted. Lower-priority packets are transmitted only when the higher-priority queues are empty. A problem may occur when too many lower-priority packets are not transmitted. Strict Priority will be operating on the remaining bandwidth available for the port
• WFQ (Weighted Fair Queuing) weight-based scheduling – In this scheduling, some weight based bandwidth is allocated to all queues. In this scheduling, egress traffic will be served based on the configured weight distribution.
• Combination of WFQ and SP, the Remaining Bandwidth will be scheduled in the strict order for the SP Queues. The Remaining Bandwidth will be scheduled in the WFQ mode for WFQ Queues.
Class Map
A class map names and isolates specific traffic from other traffic. The class map defines the criteria used to match against a specific traffic flow to classify it further. The criteria can include:
• Matching the access group defined by the ACL
• Matching a specific list of CoS, DSCP, Exp and etc.
If there is more than one type of traffic to be classified, another class map can be created under a different name. After a packet is matched against the class-map criteria, it is further classified using a policy map.
Policy Map
A policy map specifies on which traffic class to act. This can be implemented as follows:
• Set a specific CoS or DSCP value in the traffic class.
• Specify the traffic bandwidth limitations for each matched traffic class (policer) and the action to take (marking) when the traffic is out of profile.
Policy maps have the following attributes:
• A policy map can contain Maximum 256 class-map per policy-map, each with different match criteria and policers.
• A separate policy-map class can exist for each type of traffic received through an interface.
• There can be only one policy map per interface per direction. The same policy map can be applied to multiple interfaces and directions.
• Before a policy map can be effective, it must be attached to an interface.
QoS model
This section explains the implementation and configuration details of QoS:
Traffic types
Data — Packets can be network-to-network traffic or traffic from CPU. Network-to-network packets are considered data traffic and QoS parameters can be applied on data traffic.
Control — Packets to and from the CPU are considered as control traffic. Incoming control traffic is prioritized based on ingress map and are sent to their own designated CPU queues. Each CPU queue has a fixed rate limit to guard the CPU. Outgoing control traffic will always be sent on highest priority queue (Q7) on the data port.
Setting packet header QoS fields
The device supports modifying the packets header IEEE 802.1p user priority or IP-DSCP.
Packet QoS Attributes
Every data packet is assigned a set of QoS attributes that can be modified in several stages of the ingress pipeline engine.
The ingress pipeline engine also contains a QoS Remark option for L3 traffic that can modify the initial QoS attributes of the packet.
Color and Drop Precedence relation: Green has the lowest drop precedence, Yellow has a higher drop precedence, and Red has the highest drop precedence. See
Table 1-1.
Table 1-1: Packet QoS attributes
QoS Parameter | Description |
---|
TC (Traffic Class or queue) | This is the priority level assigned to the packet. When the transmission engine queries the packet, it uses this field to select the appropriate priority queue |
DP (Drop Precedence or color) | The transmission engine uses this field for congestion resolution. Packets with higher drop precedence are more likely to be discarded in the event of congestion. By default, packets with red color will be dropped by a Qumran even if there is no congestion. Disabling red packet drop is configurable per device. In case of L2 packet, DEI 0 will be marked to color green and DEI 1 will be marked to color yellow. In case of L3 packet, AFx1 will be marked as green while both AFx2 and AFx3 will be marked as yellow (where x=1,2,3). |