IP QoS simulation¶
This chapter describes the capabilities of ENP tool for the simulation of different Quality-of-Service (QoS) policies in the IP forwarding of the traffic, e.g. reproducing the behavior of multiple DiffServ QoS flavors.
QoS policies are customary in IP networks, as a form of guaranteeing a prioritized treatment of the traffic of certain critical flows. By doing so, it is possible to keep high service level performances for critical flows without drastic network overprovisionings.
Two elements are involved for QoS assurance:
Traffic of different IP flows, unicast and multicast, should be tagged indicating its QoS class.
IP ports should implement scheduling mechanisms that assign more bandwidth to the flows, according to the flow QoS class tagged.
The form in which both aspects are simulated in ENP is described in the next sections.
Assigning a QoS class to IP demands and multicast flows¶
ENP permits assigning a user-defined QoS class to both IP unicast demands and IP multicast flows.
Defining IP port QoS scheduling parameters¶
IP QoS scheduling parameters are the form in which IP logical ports can define prioritized forms of assigning bandwidth to the outgoing traffic of the transmitted by the port.
In particular, each IP logical port can define, for each user-defined IP traffic QoS class, a separated queue, with the following information:
- QoS class. The QoS class of the queue. Traffic corresponding to demands of this QoS class is handled by the queue. The traffic of two demands with the same QoS is handled in the same form.
- Priority (lower, better). The link bandwidth is assigned first to the traffic in the lower priority queues.
- Maximum BW percentage assignable to the QoS. This is a percentage of the port capacity that can be, at most, assigned to the traffic of this QoS. Excess traffic is tagged as a QoS oversubscription.
The ENP scheduling process in an IP logical port operates as follows:
- The IP demands and IP multicast flows transmitted through the port, with a QoS class with the same priority value, are grouped together. All of them will be treated equally in the bandwidth assignment. IP demands and multicast flows with a QoS type for which a queue has not been defined in the port are grouped in an untagged group, the last to be assigned bandwidth.
- The groups are ordered according to their priority (lower, better). They are processed sequentially. The link bandwidth is assumed to be fractioned in infinitesimal units, which are uniformly distributed to all the demands/multicast flows in the group, until (i) the demand has already received all the required bandwidth, (ii) the demand has received a bandwidth equal to maximum utilization parameter. The process is stopped if all the link bandwidth has been assigned.
- If at this point all the demands have been satisfied, the link is not oversubscribed, and no demand/multicast flow is suffering from QoS oversubscription in this link. Otherwise, for each demand/multicast flow, the pending traffic that has not been assigned link bandwidth is classified as oversubscription traffic.
Note
Note that, eventually, the traffic carried in the IP logical port can be or not be QoS-oversubscribed traffic. Traffic is QoS oversubscribed if it is assigned bandwidth outside the link capacity, or above its per-QoS defined limit.
QoS scheduling in MPLS-TE tunnels¶
MPLS-TE tunnels have their own user-configurable QoS class that overrides any QoS class of the IP demands carried by the tunnel. This modifies the previous link bandwidth assignment process: those demands transmitted through an IP logical port, when carried through an MPLS-TE tunnel, are treated as if they had a QoS class equal to the tunnel QoS class, and not the originally set QoS class for the demand.
Visualization of QoS violations¶
We refer to a QoS violation, as the situation where a link is assigned to at least one demand, bandwidth above its QoS limit, or outside the available bandwidth of the link
This situation can be visually observed in the following tables:
- IP logical ports table. Users can observe the QoS oversubscription column. This column shows the amount of traversing IP traffic that is out-of-contract.
- IP demands table. Users can observe the QoS oversubscription column. This column shows the highest amount of demand traffic that is out-of-contract, among all the traversed IP links of the demand.
- IP multicast flows table. Users can observe the QoS oversubscription column. This column shows the highest amount of demand traffic that is out-of-contract, among all the traversed IP links of the demand.
- MPLS-TE tunnels table. Users can observe the QoS oversubscription column. This column shows the highest amount of tunnel-carried traffic that is out-of-contract, among all the traversed IP links of the tunnel.