Maximum number of MAC addresses: 64
Maximum number of MAC addresses of hash filtering: 0
VLAN offload:
- strip on
- filter on
- qinq(extend) off
+ strip on, filter on, extend off, qinq strip off
Redirection table size: 512
Supported flow types:
ipv4-frag
testpmd> show (rxq|txq) info (port_id) (queue_id)
+show desc status(rxq|txq)
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Display information for a given port's RX/TX descriptor status::
+
+ testpmd> show port (port_id) (rxq|txq) (queue_id) desc (desc_id) status
+
+
show config
~~~~~~~~~~~
testpmd> show port (port_id) tx_metadata
+show port supported ptypes
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Show ptypes supported for a specific port::
+
+ testpmd> show port (port_id) ptypes
+
+set port supported ptypes
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+set packet types classification for a specific port::
+
+ testpmd> set port (port_id) ptypes_mask (mask)
+
+show device info
+~~~~~~~~~~~~~~~~
+
+Show general information about devices probed::
+
+ testpmd> show device info (<identifier>|all)
+
+For example:
+
+.. code-block:: console
+
+ testpmd> show device info net_pcap0
+
+ ********************* Infos for device net_pcap0 *********************
+ Bus name: vdev
+ Driver name: net_pcap
+ Devargs: iface=enP2p6s0,phy_mac=1
+ Connect to socket: -1
+
+ Port id: 2
+ MAC address: 1E:37:93:28:04:B8
+ Device name: net_pcap0
+
dump physmem
~~~~~~~~~~~~
testpmd> dump_log_types
+show (raw_encap|raw_decap)
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Display content of raw_encap/raw_decap buffers in hex::
+
+ testpmd> show <raw_encap|raw_decap> <index>
+ testpmd> show <raw_encap|raw_decap> all
+
+For example::
+
+ testpmd> show raw_encap 6
+
+ index: 6 at [0x1c565b0], len=50
+ 00000000: 00 00 00 00 00 00 16 26 36 46 56 66 08 00 45 00 | .......&6FVf..E.
+ 00000010: 00 00 00 00 00 00 00 11 00 00 C0 A8 01 06 C0 A8 | ................
+ 00000020: 03 06 00 00 00 FA 00 00 00 00 08 00 00 00 00 00 | ................
+ 00000030: 06 00 | ..
+
+
Configuration Functions
-----------------------
testpmd> set vf broadcast (port_id) (vf_id) (on|off)
-vlan set strip
-~~~~~~~~~~~~~~
-
-Set the VLAN strip on a port::
-
- testpmd> vlan set strip (on|off) (port_id)
-
vlan set stripq
~~~~~~~~~~~~~~~
testpmd> set vf vlan antispoof (port_id) (vf_id) (on|off)
-vlan set filter
-~~~~~~~~~~~~~~~
-
-Set the VLAN filter on a port::
-
- testpmd> vlan set filter (on|off) (port_id)
-
-vlan set qinq
-~~~~~~~~~~~~~
-
-Set the VLAN QinQ (extended queue in queue) on for a port::
+vlan set (strip|filter|qinq_strip|extend)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Set the VLAN strip/filter/QinQ strip/extend on for a port::
- testpmd> vlan set qinq (on|off) (port_id)
+ testpmd> vlan set (strip|filter|qinq_strip|extend) (on|off) (port_id)
vlan set tpid
~~~~~~~~~~~~~
vlan_strip, ipv4_cksum, udp_cksum, tcp_cksum, tcp_lro,
qinq_strip, outer_ipv4_cksum, macsec_strip,
header_split, vlan_filter, vlan_extend, jumbo_frame,
- crc_strip, scatter, timestamp, security, keep_crc
+ scatter, timestamp, security, keep_crc, rss_hash
This command should be run when the port is stopped, or else it will fail.
vlan_strip, ipv4_cksum, udp_cksum, tcp_cksum, tcp_lro,
qinq_strip, outer_ipv4_cksum, macsec_strip,
header_split, vlan_filter, vlan_extend, jumbo_frame,
- crc_strip, scatter, timestamp, security, keep_crc
+ scatter, timestamp, security, keep_crc
This command should be run when the port is stopped, or else it will fail.
To have a different decapsulation header, one of those commands must be called
before the flow rule creation.
+Config Raw Encapsulation
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Configure the raw data to be used when encapsulating a packet by
+rte_flow_action_raw_encap::
+
+ set raw_encap {index} {item} [/ {item} [...]] / end_set
+
+There are multiple global buffers for ``raw_encap``, this command will set one
+internal buffer index by ``{index}``.
+If there is no ``{index}`` specified::
+
+ set raw_encap {item} [/ {item} [...]] / end_set
+
+the default index ``0`` is used.
+In order to use different encapsulating header, ``index`` must be specified
+during the flow rule creation::
+
+ testpmd> flow create 0 egress pattern eth / ipv4 / end actions
+ raw_encap index 2 / end
+
+Otherwise the default index ``0`` is used.
+
+Config Raw Decapsulation
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+Configure the raw data to be used when decapsulating a packet by
+rte_flow_action_raw_decap::
+
+ set raw_decap {index} {item} [/ {item} [...]] / end_set
+
+There are multiple global buffers for ``raw_decap``, this command will set
+one internal buffer index by ``{index}``.
+If there is no ``{index}`` specified::
+
+ set raw_decap {item} [/ {item} [...]] / end_set
+
+the default index ``0`` is used.
+In order to use different decapsulating header, ``index`` must be specified
+during the flow rule creation::
+
+ testpmd> flow create 0 egress pattern eth / ipv4 / end actions
+ raw_encap index 3 / end
+
+Otherwise the default index ``0`` is used.
+
Port Functions
--------------
testpmd> port close (port_id|all)
+port reset
+~~~~~~~~~~
+
+Reset all ports or a specific port::
+
+ testpmd> port reset (port_id|all)
+
+User should stop port(s) before resetting and (re-)start after reset.
+
port config - queue ring size
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This is equivalent to the ``--max-pkt-len`` command-line option.
-port config - CRC Strip
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Set hardware CRC stripping on or off for all ports::
-
- testpmd> port config all crc-strip (on|off)
-
-CRC stripping is on by default.
-
-The ``off`` option is equivalent to the ``--disable-crc-strip`` command-line option.
-
-port config - scatter
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Set RX scatter mode on or off for all ports::
-
- testpmd> port config all scatter (on|off)
-
-RX scatter mode is off by default.
-
-The ``on`` option is equivalent to the ``--enable-scatter`` command-line option.
-
-port config - RX Checksum
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set hardware RX checksum offload to on or off for all ports::
-
- testpmd> port config all rx-cksum (on|off)
-
-Checksum offload is off by default.
-
-The ``on`` option is equivalent to the ``--enable-rx-cksum`` command-line option.
-
-port config - VLAN
-~~~~~~~~~~~~~~~~~~
-
-Set hardware VLAN on or off for all ports::
-
- testpmd> port config all hw-vlan (on|off)
-
-Hardware VLAN is off by default.
-
-The ``on`` option is equivalent to the ``--enable-hw-vlan`` command-line option.
-
-port config - VLAN filter
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set hardware VLAN filter on or off for all ports::
-
- testpmd> port config all hw-vlan-filter (on|off)
-
-Hardware VLAN filter is off by default.
-
-The ``on`` option is equivalent to the ``--enable-hw-vlan-filter`` command-line option.
-
-port config - VLAN strip
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set hardware VLAN strip on or off for all ports::
-
- testpmd> port config all hw-vlan-strip (on|off)
-
-Hardware VLAN strip is off by default.
-
-The ``on`` option is equivalent to the ``--enable-hw-vlan-strip`` command-line option.
-
-port config - VLAN extend
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Set hardware VLAN extend on or off for all ports::
-
- testpmd> port config all hw-vlan-extend (on|off)
-
-Hardware VLAN extend is off by default.
-
-The ``on`` option is equivalent to the ``--enable-hw-vlan-extend`` command-line option.
-
port config - Drop Packets
~~~~~~~~~~~~~~~~~~~~~~~~~~
-Set packet drop for packets with no descriptors on or off for all ports::
+Enable or disable packet drop on all RX queues of all ports when no receive buffers available::
testpmd> port config all drop-en (on|off)
-Packet dropping for packets with no descriptors is off by default.
+Packet dropping when no receive buffers available is off by default.
The ``on`` option is equivalent to the ``--enable-drop-en`` command-line option.
ipv6-udp-ex <string of hex digits \
(variable length, NIC dependent)>)
+Device Functions
+----------------
+
+The following sections show functions for device operations.
+
+device detach
+~~~~~~~~~~~~~
+
+Detach a device specified by pci address or virtual device args::
+
+ testpmd> device detach (identifier)
+
+Before detaching a device associated with ports, the ports should be stopped and closed.
+
+For example, to detach a pci device whose address is 0002:03:00.0.
+
+.. code-block:: console
+
+ testpmd> device detach 0002:03:00.0
+ Removing a device...
+ Port 1 is now closed
+ EAL: Releasing pci mapped resource for 0002:03:00.0
+ EAL: Calling pci_unmap_resource for 0002:03:00.0 at 0x218a050000
+ EAL: Calling pci_unmap_resource for 0002:03:00.0 at 0x218c050000
+ Device 0002:03:00.0 is detached
+ Now total ports is 1
+
+For example, to detach a port created by pcap PMD.
+
+.. code-block:: console
+
+ testpmd> device detach net_pcap0
+ Removing a device...
+ Port 0 is now closed
+ Device net_pcap0 is detached
+ Now total ports is 0
+ Done
+
+In this case, identifier is ``net_pcap0``.
+This identifier format is the same as ``--vdev`` format of DPDK applications.
+
Link Bonding Functions
----------------------
Set the global configurations of hash filters::
- set_hash_global_config (port_id) (toeplitz|simple_xor|default) \
+ set_hash_global_config (port_id) (toeplitz|simple_xor|symmetric_toeplitz|default) \
(ipv4|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|ipv4-other|ipv6|ipv6-frag| \
ipv6-tcp|ipv6-udp|ipv6-sctp|ipv6-other|l2_payload|<flow_id>) \
(enable|disable)
- ``protocol {unsigned}``: protocol type.
+- ``gre_key``: match GRE optional key field.
+
+ - ``value {unsigned}``: key value.
+
- ``fuzzy``: fuzzy pattern match, expect faster than default.
- ``thresh {unsigned}``: accuracy threshold.
- ``data {unsigned}``: metadata value.
+- ``gtp_psc``: match GTP PDU extension header with type 0x85.
+
+ - ``pdu_type {unsigned}``: PDU type.
+ - ``qfi {unsigned}``: QoS flow identifier.
+
+- ``pppoes``, ``pppoed``: match PPPoE header.
+
+ - ``session_id {unsigned}``: session identifier.
+
+- ``pppoe_proto_id``: match PPPoE session protocol identifier.
+
+ - ``proto_id {unsigned}``: PPP protocol identifier.
+
Actions list
^^^^^^^^^^^^
Before creating QinQ rule(s) the following commands should be issued to enable QinQ::
testpmd> port stop 0
- testpmd> vlan set qinq on 0
+ testpmd> vlan set qinq_strip on 0
The above command sets the inner and outer TPID's to 0x8100.
testpmd> flow create 0 ingress pattern eth / vlan / ipv6 / udp / mpls / end
actions mplsoudp_decap / l2_encap / end
+Sample Raw encapsulation rule
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Raw encapsulation configuration can be set by the following commands
+
+Eecapsulating VxLAN::
+
+ testpmd> set raw_encap 4 eth src is 10:11:22:33:44:55 / vlan tci is 1
+ inner_type is 0x0800 / ipv4 / udp dst is 4789 / vxlan vni
+ is 2 / end_set
+ testpmd> flow create 0 egress pattern eth / ipv4 / end actions
+ raw_encap index 4 / end
+
+Sample Raw decapsulation rule
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Raw decapsulation configuration can be set by the following commands
+
+Decapsulating VxLAN::
+
+ testpmd> set raw_decap eth / ipv4 / udp / vxlan / end_set
+ testpmd> flow create 0 ingress pattern eth / ipv4 / udp / vxlan / eth / ipv4 /
+ end actions raw_decap / queue index 0 / end
+
BPF Functions
--------------