VOQ statistics collection

The qos interfaces interface voq-statistics command allows you to explicitly configure VOQ statistics collection on an interface (Ethernet or LAG). When voq-statistics is set to true for an interface, qos_mgr attempts to allocate VOQ statistics collection resources from the global VOQ statistics resource pool to that interface. This feature allows you to prevent VOQ statistics resource exhaustion by allocating VOQ statistics resources to those interfaces that require them most.

Note: Exhaustion of VOQ statistics resources is typically only a concern for 7250 IXR platforms that support a higher number of slots, such as the 7250 IXR-18e.

If voq-statistics is not explicitly configured, the implicit default setting is true.

Failure to allocate resources

If an interface has VOQ statistics enabled, but qos_mgr cannot successfully allocate statistics resources due to resource exhaustion, the qos interfaces interface voq-statistics-allocation-status state command for the interface displays a status of none. In addition, the statistics under the following state paths reset to zero and do not increment:

  • qos interfaces interface output queues queue queue-statistics aggregate-statistics virtual-output-queue <x>-drop-probability *
  • qos interfaces interface output queues queue queue-statistics per-lag-member-statistics member-interface virtual-output-queue <x>-drop-probability *

If the interfaces are members of a LAG, each member interface behaves as described above. However, for the parent LAG, as long as one member interface has statistics resources allocated, the VOQ statistics related to the LAG do not reset. Instead, the statistics continue to increment based on the member interfaces that have VOQ statistics resources allocated.

If only a subset of the LAG member interfaces are allocated resources, the qos interfaces interface voq-statistics-allocation-status state command for the LAG displays a status of partial. If no member interfaces are allocated resources, the qos interfaces interface voq-statistics-allocation-status state command displays a status of none, and the VOQ statistics for the LAG reset to zero and do not increment.

Dropped traffic statistics

When qos interfaces interface voq-statistics-allocation-status displays as none, the following statistics in the qos interfaces interface output queues queue queue-statistics context do not reflect VOQ drops:
  • aggregate-statistics dropped-packets
  • per-lag-member-statistics member-interface dropped-packets
  • aggregate-statistics dropped-octets
  • per-lag-member-statistics member-interface dropped-octets

Retry

If voq-statistics-allocation-status for an interface is none or partial, you can free up resources in the global pool by deallocating resources from other QoS interfaces or unconfiguring some QoS interfaces altogether. In this case, to trigger a retry of VoQ statistics resource allocation on the desired interface, do the following:

  1. Disable VOQ statistics on the interface (voq-statistics false)
  2. Reenable VOQ statistics either explicitly (voq-statistics true), or implicitly by deleting the configuration altogether (delete voq-statistics).

No retry of failed resource allocation is triggered by configuring voq-statistics from true (implicit or explicit) to false.

Configuring VOQ statistics collection per interface

To enable VOQ statistics collection on an ethernet interface, use the voq-statistics command. When voq-statistics is set to true, qos_mgr attempts to allocate VOQ statistics collection resources to that interface from the global pool.

If voq-statistics is explicitly set to false, qos_mgr deallocates any assigned resources for that port and returns the resources to the global pool.

Configure VOQ statistics collection for an interface

--{ candidate shared default }--[  ]--
# info with-context qos interfaces interface ethernet-1/2 voq-statistics
    qos {
        interfaces {
            interface ethernet-1/2 {
                voq-statistics true
            }
        }
    }

Display VOQ statistics allocation status for an interface

To confirm whether VOQ statistics collection resources are allocated to the interface, use the voq-statistics-allocation-status state command. If the allocation of VOQ statistics to the interface is successful, the status is shown as complete. If the allocation is not successful (as a result of resource exhaustion), the status is shown as none.

--{ candidate shared default }--[  ]--
# info with-context from state qos interfaces interface ethernet-1/2 voq-statistics-allocation-status
    qos {
        interfaces {
            interface ethernet-1/2 {
                voq-statistics-allocation-status complete
            }
        }
    }

Configuring VOQ statistics collection per LAG

To enable VOQ statistics collection on a LAG, use the voq-statistics command. When voq-statistics is set to true, qos_mgr attempts to allocate VOQ statistics collection resources to all member interfaces of the LAG from a global pool.

If voq-statistics is explicitly set to false, qos_mgr deallocates any assigned resources for all member ports of the LAG, and returns the resources to the global pool.

Configure VOQ statistics collection for a LAG

--{ candidate shared default }--[  ]--
# info with-context qos interfaces interface lag1 voq-statistics
    qos {
        interfaces {
            interface lag1 {
                voq-statistics true
            }
        }
    }

Display VOQ statistics allocation status on a LAG

To confirm whether VOQ statistics collection resources are allocated to the LAG, use the voq-statistics-allocation-status state command. The status displayed is dependent on the status of the LAG's member interfaces. If all member interfaces are successfully assigned VOQ statistics resources, the LAG status is shown as complete. If no member interfaces are successfully assigned VOQ statistics resources, the status is shown as none. If there is a mix of successful and unsuccessful allocation across the member interfaces, then the status for the LAG is partial.

--{ candidate shared default }--[  ]--
# info with-context from state qos interfaces interface lag1 voq-statistics-allocation-status
    qos {
        interfaces {
            interface lag1 {
                voq-statistics-allocation-status partial
            }
        }
    }

Display VOQ statistics allocation status for LAG members

To identify which of the member interfaces have successful allocation of VOQ statistics resources, enter the voq-statistics-allocation-status state command for the member interfaces.

--{ + candidate shared default }--[ ]--
# info with-context from state interface ethernet-1/{1..3} voq-statistics-allocation-status
    qos {
        interfaces {
            interface ethernet-1/1 {
                voq-statistics-allocation-status complete
            }
            interface ethernet-1/2 {
                voq-statistics-allocation-status none
            }
            interface ethernet-1/3 {
                voq-statistics-allocation-status complete
            }
        }
    }