* ``mac``: Changes the source and the destination Ethernet addresses of packets before forwarding them.
Default application behaviour is to set source Ethernet address to that of the transmitting interface, and destination
address to a dummy value (set during init). The user may specify a target destination Ethernet address via the 'eth-peer' or
- 'eth-peer-configfile' command-line options. It is not currently possible to specify a specific source Ethernet address.
+ 'eth-peers-configfile' command-line options. It is not currently possible to specify a specific source Ethernet address.
* ``macswap``: MAC swap forwarding mode.
Swaps the source and the destination Ethernet addresses of packets before forwarding them.
Set rxonly packet forwarding mode
+show fwd
+~~~~~~~~
+
+When running, forwarding engines maintain statistics from the time they have been started.
+Example for the io forwarding engine, with some packet drops on the tx side::
+
+ testpmd> show fwd stats all
+
+ ------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 1/Queue= 0 -------
+ RX-packets: 274293770 TX-packets: 274293642 TX-dropped: 128
+
+ ------- Forward Stats for RX Port= 1/Queue= 0 -> TX Port= 0/Queue= 0 -------
+ RX-packets: 274301850 TX-packets: 274301850 TX-dropped: 0
+
+ ---------------------- Forward statistics for port 0 ----------------------
+ RX-packets: 274293802 RX-dropped: 0 RX-total: 274293802
+ TX-packets: 274301862 TX-dropped: 0 TX-total: 274301862
+ ----------------------------------------------------------------------------
+
+ ---------------------- Forward statistics for port 1 ----------------------
+ RX-packets: 274301894 RX-dropped: 0 RX-total: 274301894
+ TX-packets: 274293706 TX-dropped: 128 TX-total: 274293834
+ ----------------------------------------------------------------------------
+
+ +++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
+ RX-packets: 548595696 RX-dropped: 0 RX-total: 548595696
+ TX-packets: 548595568 TX-dropped: 128 TX-total: 548595696
+ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+clear fwd
+~~~~~~~~~
+
+Clear the forwarding engines statistics::
+
+ testpmd> clear fwd stats all
+
read rxd
~~~~~~~~
* "on"is just an enable function which server for other configuration,
it is for all configuration about queue region from up layer,
- at first will only keep in DPDK softwarestored in driver,
+ at first will only keep in DPDK software stored in driver,
only after "flush on", it commit all configuration to HW.
"off" is just clean all configuration about queue region just now,
and restore all to DPDK i40e driver default config when start up.
Set the forwarding peer address for certain port::
- testpmd> set eth-peer (port_id) (perr_addr)
+ testpmd> set eth-peer (port_id) (peer_addr)
This is equivalent to the ``--eth-peer`` command-line option.
udp-dst (udp-dst) ip-src (ip-src) ip-dst (ip-dst) vlan-tci (vlan-tci) \
eth-src (eth-src) eth-dst (eth-dst)
-Those command will set an internal configuration inside testpmd, any following
+ set vxlan-tos-ttl ip-version (ipv4|ipv6) vni (vni) udp-src (udp-src) \
+ udp-dst (udp-dst) ip-tos (ip-tos) ip-ttl (ip-ttl) ip-src (ip-src) \
+ ip-dst (ip-dst) eth-src (eth-src) eth-dst (eth-dst)
+
+These commands will set an internal configuration inside testpmd, any following
flow rule using the action vxlan_encap will use the last configuration set.
To have a different encapsulation header, one of those commands must be called
before the flow rule creation.
set nvgre-with-vlan ip-version (ipv4|ipv6) tni (tni) ip-src (ip-src) \
ip-dst (ip-dst) vlan-tci (vlan-tci) eth-src (eth-src) eth-dst (eth-dst)
-Those command will set an internal configuration inside testpmd, any following
+These commands will set an internal configuration inside testpmd, any following
flow rule using the action nvgre_encap will use the last configuration set.
To have a different encapsulation header, one of those commands must be called
before the flow rule creation.
ip-src (ip-src) ip-dst (ip-dst) vlan-tci (vlan-tci) \
eth-src (eth-src) eth-dst (eth-dst)
-Those command will set an internal configuration inside testpmd, any following
+These commands will set an internal configuration inside testpmd, any following
flow rule using the action mplsogre_encap will use the last configuration set.
To have a different encapsulation header, one of those commands must be called
before the flow rule creation.
set mplsogre_decap ip-version (ipv4|ipv6)
set mplsogre_decap-with-vlan ip-version (ipv4|ipv6)
-Those command will set an internal configuration inside testpmd, any following
+These commands will set an internal configuration inside testpmd, any following
flow rule using the action mplsogre_decap will use the last configuration set.
To have a different decapsulation header, one of those commands must be called
before the flow rule creation.
udp-src (udp-src) udp-dst (udp-dst) ip-src (ip-src) ip-dst (ip-dst) \
vlan-tci (vlan-tci) eth-src (eth-src) eth-dst (eth-dst)
-Those command will set an internal configuration inside testpmd, any following
+These commands will set an internal configuration inside testpmd, any following
flow rule using the action mplsoudp_encap will use the last configuration set.
To have a different encapsulation header, one of those commands must be called
before the flow rule creation.
set mplsoudp_decap ip-version (ipv4|ipv6)
set mplsoudp_decap-with-vlan ip-version (ipv4|ipv6)
-Those command will set an internal configuration inside testpmd, any following
+These commands will set an internal configuration inside testpmd, any following
flow rule using the action mplsoudp_decap will use the last configuration set.
To have a different decapsulation header, one of those commands must be called
before the flow rule creation.
- ``sla {MAC-48}``: source Ethernet LLA.
-- ``icmp6_nd_opt_sla_eth``: match ICMPv6 neighbor discovery target Ethernet
+- ``icmp6_nd_opt_tla_eth``: match ICMPv6 neighbor discovery target Ethernet
link-layer address option.
- ``tla {MAC-48}``: target Ethernet LLA.
- ``ipv6_addr``: New IPv6 destination address.
-- ``of_set_tp_src``: Set a new source port number in the outermost TCP/UDP
+- ``set_tp_src``: Set a new source port number in the outermost TCP/UDP
header.
- ``port``: New TCP/UDP source port number.
-- ``of_set_tp_dst``: Set a new destination port number in the outermost TCP/UDP
+- ``set_tp_dst``: Set a new destination port number in the outermost TCP/UDP
header.
- ``port``: New TCP/UDP destination port number.
testpmd> flow create 0 ingress pattern end actions vxlan_encap /
queue index 0 / end
+ testpmd> set vxlan-tos-ttl ip-version ipv4 vni 4 udp-src 4 udp-dst 4 ip-tos 0
+ ip-ttl 255 ip-src 127.0.0.1 ip-dst 128.0.0.1 eth-src 11:11:11:11:11:11
+ eth-dst 22:22:22:22:22:22
+ testpmd> flow create 0 ingress pattern end actions vxlan_encap /
+ queue index 0 / end
+
IPv6 VXLAN outer header::
testpmd> set vxlan ip-version ipv6 vni 4 udp-src 4 udp-dst 4 ip-src ::1
testpmd> flow create 0 ingress pattern end actions vxlan_encap /
queue index 0 / end
+ testpmd> set vxlan-tos-ttl ip-version ipv6 vni 4 udp-src 4 udp-dst 4
+ ip-tos 0 ip-ttl 255 ::1 ip-dst ::2222 eth-src 11:11:11:11:11:11
+ eth-dst 22:22:22:22:22:22
+ testpmd> flow create 0 ingress pattern end actions vxlan_encap /
+ queue index 0 / end
+
Sample NVGRE encapsulation rule
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. code-block:: console
- cd test/bpf
+ cd examples/bpf
clang -O2 -target bpf -c t1.c
Then to load (and JIT compile) t1.o at RX queue 0, port 1::
.. code-block:: console
- testpmd> bpf-load rx 1 0 J ./dpdk.org/test/bpf/t1.o
+ testpmd> bpf-load rx 1 0 J ./dpdk.org/examples/bpf/t1.o
To load (not JITed) t1.o at TX queue 0, port 0::
.. code-block:: console
- testpmd> bpf-load tx 0 0 - ./dpdk.org/test/bpf/t1.o
+ testpmd> bpf-load tx 0 0 - ./dpdk.org/examples/bpf/t1.o
bpf-unload
~~~~~~~~~~
.. code-block:: console
- testpmd> bpf-load tx 0 0 - ./dpdk.org/test/bpf/t1.o
+ testpmd> bpf-unload tx 0 0