Overview

Fast Path QoS Basic is a fast path trTCM which helps implementing QoS on your network.

Fast Path QoS Basic marks packets as either Green, Yellow, or Red. You can then process packets accordingly (by dropping red packets, for example).

../../../_images/traffic.svg

Fast Path QoS Basic operates in Color-Aware Mode (in which packets may have been previously colored) or in In Color-Blind Mode (in which are not precolored).

Features

  • RFC 4115 trTCM

  • Color-aware and color-blind support

  • Per packets or per bytes accounting

  • FPN-SDK traffic conditioner API

  • Exception Rate Limiting to control the rate of packets sent as exceptions from fast path to Linux

The implementation is based on RFC 4115. The operation of the marker is described by two token generation rates, CIR and EIR, and two token bucket sizes, CBS and EBS.

Token bucket generation rate

Token bucket size

CIR

CBS

EIR

EBS

../../../_images/buckets.svg

The number or token buckets is:

  • incremented periodically, and,

  • decremented whenever a packet meets a bucket’s criteria (i.e., if its size in less than or equal to the size corresponding to the number or tokens).

The rate at which the counter is decremented determines the average bandwidth. The value of the threshold determines the burstiness (intermittent increases and decreases in frequency of packet transmission).

The buckets status evolves over time, as illustrated in the table below:

Time

Committed Traffic Token Bucket

Excess Traffic Token Bucket

0

Full

Full

t

As long as the token count is lower than the CBS, it is incremented by one CIR times per second.

As long as the token count is lower than the EBS, it is incremented by one EIR times per second.

In the simplest case (green packet in color-aware mode), packets are processed as follows:

  • If a green packet meets the Committed Traffic Token Bucket’s criteria, it remains marked as green.

  • If a green packet does not meet the Committed Traffic Token Bucket’s criteria, but does meet the Excess Traffic Token Buckets criteria, it is marked as orange.

  • If a green packet does not meet the Committed Traffic Token Bucket’s criteria, nor the Excess Traffic Token Buckets criteria, it is marked as red.

In addition to the RFC units, the API proposes to count either per-bytes or per-packets, and to rely or not on current packet color (color-aware or color-blind).

Algorithm

The algorithm is as follows, with Tc(t) and Te(t) the current number of tokens for the Committed Traffic Token Bucket and Excess Traffic Token Bucket respectively:

  • When a green packet of size B (B = 1 in case of per-packets counting) arrives at time t, then

    • if Tc(t) - B > 0, the packet is marked green, and Tc(t) is decremented by B

    • else if Te(t) - B > 0, the packet is marked yellow, and Te(t) is decremented by B

    • else the packet is marked red.

  • When a yellow packet of size B arrives at time t, then

    • if Te(t) - B > 0, the packet is marked yellow, and Te(t) is decremented by B

    • else the packet is marked red.

  • In color-blind operation, the algorithm assumes that the packet is marked green.

Features implemented in the fast path using the traffic conditioner API:

  • Rate limiting of exceptions packets (MCORE_TC_ERL option)

  • Rate limiting of packets received(/sent) on(/from) the specified interface (both physical and virtual interfaces)

Dependencies

6WINDGate modules