The IFL shaping granularity level changes depending on the configured and base rate of the IQ2 PIC. The shaping rate (CIR and PIR values) must be a multiple of the base rate. The base rate for the Level 3 service on the IQ2 is 2000 bytes/sec.
Traffic drop is reported by a customer connected on interface xe-7/3/0.9 (1x10GE (LAN/WAN) IQ2).
Customer has a video stream running at ~1M and then downloads a file (ftp/scp) and traffic reaches 160M+ when downloading (default). The packet loss is happening on the video stream (CLASS_B_OUTPUT) at times when the 100M Ethernet circuit is congested, but the amount of video traffic being sent is well below contracted values.
While we expect to see packet loss during congestion, we also expect that Layer 3 QoS will protect video traffic up to the contracted bandwidth level whether the link is congested or not.
IFL shaper applied on xe-7/3/0.9 is 100M. The following are the scheduler attributes for this IFL:
Forwarding-Class Priority Tx-Rate Buffer-Size
CLASS_B_OUTPUT Low Rem 30
DEFAULT Low 27 30
CLASS_C_OUTPUT Low 27 30
CONTROL Low 5 5
REALTIME High 10 5
View the following:
iq2(vty)# show npez 0 tm 0 shaping-params
TMa Shaping params:
Structure version is: EZapiDriver_Version_4_8
L0 shaping enabled: true
L0 base rate: 20000
L1 shaping enabled: true
L1 base rate: 20000
L2 shaping enabled: true
L2 base rate: 10000
L3 shaping enabled: true
L3 base rate: 2000
When the shaping rate is configured, the actual rate that is being used would be an adjusted version of it.
We see the following for 100M shaping rate configured:
Profile shaping rate is (bps) : 99000000
Profile adjusted shaping rate is (bps) : 102400000 <<<<
The adjusted shaping rate/base rate multiplier has to be as follows:
0-256 in multiples of 1
256-1K in multiples of 4
1K -4K in multiples of 16
>4K in multiples of 256
If you configure 100 Mbps, the multiple in terms of 2000 bytes/sec is:
100* 10^6/(8*2000) = 6250
6250 is in the > 4K range so it has to be a multiple of 256 (adj_rate_mult).
We always round to the next higher value, so the multiplier is chosen to be 6400. This will correspond to the configured rate of 100 Mbps.
First, we have to round it up to the multiple of base rate. So, it becomes:
Roundup(100Mbps / 8 / level3_base_rate) = 6250
Since it is in the [255*16,255*256] range, the adj_rate_mult becomes:[ 6250 + 150 ] / 256 * 256 = 6400
So, the adjusted_rate becomes:
6400 * 2000 * 8 = 102400000 bps
and that’s what the IQ2 tries to shape the logical interface to.
The minimum shaping rate we support on the IQ2 is 2000 * 8 = 16,000 bps and the maximum shaping rate we support on the NP2 is 1,044,480,000 bps.