- :ref:`Extended stats <extstats>`
- RX flow control
- Scattered TX frames
-- :ref:`QoS <qossupport>`
+- :ref:`QoS <extconf>`
- :ref:`Flow API <flowapi>`
- :ref:`Traffic metering and policing <mtrapi>`
- :ref:`Traffic Management API <tmapi>`
- ``tx_errors``: number of TX MAC errors
-.. _qossupport:
+.. _extconf:
-QoS Configuration
------------------
+External Configuration
+----------------------
-QoS configuration is done through external configuration file. Path to the
+Several driver configuration (e.g. QoS) can be done through external configuration file. Path to the
file must be given as `cfg` in driver's vdev parameter list.
Configuration syntax
ebs = <ebs>
cbs = <cbs>
+ [parser udf <udf_id>]
+ proto = <proto>
+ field = <field>
+ key = <key>
+ mask = <mask>
+ offset = <offset>
+
[port <portnum> default]
+ start_hdr = <start_hdr>
+ forward_bad_frames = <forward_bad_frames>
+ fill_bpool_buffs = <fill_bpool_buffs>
default_tc = <default_tc>
mapping_priority = <mapping_priority>
Where:
+- ``<udf_id>``: Logical UDF id.
+
+- ``<proto>``: Indicate the preceding hdr before the UDF header (`eth` or `udp`).
+
+- ``<field>``: Indicate the field of the <proto> hdr (`type` (eth) or `dport` (udp).
+
+- ``<key>``: UDF key in string format starting with '0x'.
+
+- ``<mask>``: UDF mask in string format starting with '0x'.
+
+- ``<offset>``: Starting UDF offset from the <proto> hdr.
+
- ``<portnum>``: DPDK Port number (0..n).
+- ``<start_hdr>``: Indicate what is the start header mode (`none` (eth), `dsa`, `ext_dsa` or `custom`).
+
+- ``<forward_bad_frames>``: Indicate whether to forward or drop l2 bad packets (0 or 1).
+
+- ``<fill_bpool_buffs>``: Control the amount of refill buffers (default is 64).
+
- ``<default_tc>``: Default traffic class (e.g. 0)
- ``<mapping_priority>``: QoS priority for mapping (`ip`, `vlan`, `ip/vlan` or `vlan/ip`).
rate_limit = 10000
burst_size = 2000
+Configuration file example with UDF
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. code-block:: console
+
+ [parser udf 0]
+ proto = eth
+ field = type
+ key = 0x8842
+ mask = 0xffff
+ offset = 6
+
Usage example
^^^^^^^^^^^^^
* DROP
* QUEUE
+* METER
Supported flow items
~~~~~~~~~~~~~~~~~~~~
For an additional description please refer to DPDK :doc:`Traffic Metering and Policing API <../prog_guide/traffic_metering_and_policing>`.
-The policer objects defined by this feature can work with the default policer defined via config file as described in :ref:`QoS Support <qossupport>`.
+The policer objects defined by this feature can work with the default policer defined via config file as described in :ref:`QoS Support <extconf>`.
Limitations
~~~~~~~~~~~