start tx_first
~~~~~~~~~~~~~~
-Start packet forwarding with current configuration after sending one burst of packets::
+Start packet forwarding with current configuration after sending specified number of bursts of packets::
- testpmd> start tx_first
+ testpmd> start tx_first (""|burst_num)
+
+The default burst number is 1 when ``burst_num`` not presented.
stop
~~~~
ipv6-sctp
ipv6-other
l2_payload
+ port
+ vxlan
+ geneve
+ nvgre
show port rss reta
~~~~~~~~~~~~~~~~~~
Set the packet forwarding mode::
- testpmd> set fwd (io|mac|mac_retry|macswap|flowgen| \
- rxonly|txonly|csum|icmpecho)
+ testpmd> set fwd (io|mac|macswap|flowgen| \
+ rxonly|txonly|csum|icmpecho) (""|retry)
+
+``retry`` can be specified for forwarding engines except ``rx_only``.
The available information categories are:
* ``mac``: Changes the source and the destination Ethernet addresses of packets before forwarding them.
-* ``mac_retry``: Same as "mac" forwarding mode, but includes retries if the destination queue is full.
-
* ``macswap``: MAC swap forwarding mode.
Swaps the source and the destination Ethernet addresses of packets before forwarding them.
This is equivalent to the ``--burst command-line`` option.
-In ``mac_retry`` forwarding mode, the transmit delay time and number of retries can also be set::
+When retry is enabled, the transmit delay time and number of retries can also be set::
- testpmd> set burst tx delay (micrseconds) retry (num)
+ testpmd> set burst tx delay (microseconds) retry (num)
set txpkts
~~~~~~~~~~
port attach
~~~~~~~~~~~
-Attach a port specified by pci address or virtual device args.
+Attach a port specified by pci address or virtual device args::
+
+ testpmd> port attach (identifier)
To attach a new pci device, the device should be recognized by kernel first.
Then it should be moved under DPDK management.
.. code-block:: console
# Check the status of the available devices.
- ./tools/dpdk_nic_bind.py --status
+ ./tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
# Bind the device to igb_uio.
- sudo ./tools/dpdk_nic_bind.py -b igb_uio 0000:0a:00.0
+ sudo ./tools/dpdk-devbind.py -b igb_uio 0000:0a:00.0
# Recheck the status of the devices.
- ./tools/dpdk_nic_bind.py --status
+ ./tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
0000:0a:00.0 '82599ES 10-Gigabit' drv=igb_uio unused=
To attach a port created by virtual device, above steps are not needed.
-port attach (identifier)
-
For example, to attach a port whose pci address is 0000:0a:00.0.
.. code-block:: console
.. code-block:: console
- testpmd> port attach eth_pcap0
+ testpmd> port attach net_pcap0
Attaching a new port...
- PMD: Initializing pmd_pcap for eth_pcap0
+ PMD: Initializing pmd_pcap for net_pcap0
PMD: Creating pcap-backed ethdev on numa socket 0
Port 0 is attached. Now total ports is 1
Done
-In this case, identifier is ``eth_pcap0``.
+In this case, identifier is ``net_pcap0``.
This identifier format is the same as ``--vdev`` format of DPDK applications.
For example, to re-attach a bonded port which has been previously detached,
.. code-block:: console
- testpmd> port attach eth_bond_0,mode=0,slave=1
+ testpmd> port attach net_bond_0,mode=0,slave=1
Attaching a new port...
- EAL: Initializing pmd_bond for eth_bond_0
- EAL: Create bonded device eth_bond_0 on port 0 in mode 0 on socket 0.
+ EAL: Initializing pmd_bond for net_bond_0
+ EAL: Create bonded device net_bond_0 on port 0 in mode 0 on socket 0.
Port 0 is attached. Now total ports is 1
Done
port detach
~~~~~~~~~~~
-Detach a specific port.
-
-Before detaching a port, the port should be closed::
+Detach a specific port::
testpmd> port detach (port_id)
+Before detaching a port, the port should be stopped and closed.
+
For example, to detach a pci device port 0.
.. code-block:: console
+ testpmd> port stop 0
+ Stopping ports...
+ Done
testpmd> port close 0
Closing ports...
Done
.. code-block:: console
+ testpmd> port stop 0
+ Stopping ports...
+ Done
testpmd> port close 0
Closing ports...
Done
testpmd> port detach 0
Detaching a port...
PMD: Closing pcap ethdev on numa socket 0
- Port 'eth_pcap0' is detached. Now total ports is 0
+ Port 'net_pcap0' is detached. Now total ports is 0
Done
To remove a pci device completely from the system, first detach the port from testpmd.
.. code-block:: console
- sudo ./tools/dpdk_nic_bind.py -b ixgbe 0000:0a:00.0
+ sudo ./tools/dpdk-devbind.py -b ixgbe 0000:0a:00.0
- ./tools/dpdk_nic_bind.py --status
+ ./tools/dpdk-devbind.py --status
Network devices using DPDK-compatible driver
============================================
Set the RSS (Receive Side Scaling) mode on or off::
- testpmd> port config all rss (all|ip|tcp|udp|sctp|ether|none)
+ testpmd> port config all rss (all|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|none)
RSS is on by default.
For example, to add an ipv4-udp flow type filter::
- testpmd> flow_director_filter 0 add flow ipv4-udp src 2.2.2.3 32 \
+ testpmd> flow_director_filter 0 mode IP add flow ipv4-udp src 2.2.2.3 32 \
dst 2.2.2.5 33 tos 2 ttl 40 vlan 0x1 flexbytes (0x88,0x48) \
fwd pf queue 1 fd_id 1
For example, add an ipv4-other flow type filter::
- testpmd> flow_director_filter 0 add flow ipv4-other src 2.2.2.3 \
+ testpmd> flow_director_filter 0 mode IP add flow ipv4-other src 2.2.2.3 \
dst 2.2.2.5 tos 2 proto 20 ttl 40 vlan 0x1 \
flexbytes (0x88,0x48) fwd pf queue 1 fd_id 1
Example, to set flow director mask on port 0::
- testpmd> flow_director_mask 0 vlan 0xefff \
+ testpmd> flow_director_mask 0 mode IP vlan 0xefff \
src_mask 255.255.255.255 \
FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 0xFFFF \
dst_mask 255.255.255.255 \