Queue Compensation
The size of packets transmitted may vary from the size of packets queued in ingress and egress queues. Contributing factors are:
1. Ethernet Overhead
Fixed size, typically 20-bytes
2. Internal DRAM CRC
Fixed size, 2-byte CRC
3. Packet editing resulting from Packet Processing
Size may vary per queue or per packet
Network header termination (i.e., Layer-3 link layer termination from routing, MPLS/IP tunnel termination, VLAN Tag removal)
Network header encapsulation (i.e., Layer-3 link layer encapsulation, MPLS/IP tunnel initiation, Vlan tag addition)
These bytes need to be adjusted to achieve the proper egress rate. Hence, compensation is used to adjust this byte difference in order to achieve the expected egress rate.
The default compensation for all queues is set to -22 internally (Ethernet overhead + internal CRC). This is as per the internal headers in the packet pipeline.
When an attachment-circuit is created on a port the compensation is updated as shown in
Table 19-12.
Table 19-12: Compensation updates
AC ingress operation | Compensation |
---|
POP | -38 |
NONE/Translate | -42 (defaults) |
PUSH | -46 |
Note: It is the operator's responsibility to update the compensation if required per application.
The user can configure compensation on the class-maps matching services for service queues, and class-map for “class-default-q” for port queues.
CLI: compensation <-64-64>
For example:
class-map type queuing data
match queue 0
!
class-map type queuing service1
match service-template ETH-2016
!
class-map type queuing service2
match service-template ETH-2017
!
class-map type queuing signal
match queue 3
!
class-map type queuing voice
match queue 1
!
policy-map type queuing configPolicy1
class type queuing class-default-q
exit
class type queuing data
exit
class type queuing signal
exit
class type queuing voice
exit
!
policy-map type queuing customer1
class type queuing service1
compensation -20
service-policy configPolicy1
class type queuing class-default-q
compensation -20
exit
!
interface xe11
service-policy type queuing output customer1