doc: update testpmd user guide
[dpdk.git] / doc / guides / testpmd_app_ug / testpmd_funcs.rst
index ac66fa6..a08327b 100644 (file)
@@ -138,16 +138,32 @@ For example:
     ********************* Infos for port 0 *********************
 
     MAC address: XX:XX:XX:XX:XX:XX
+    Connect to socket: 0
+    memory allocation on the socket: 0
     Link status: up
-    Link speed: 10000 Mbps
+    Link speed: 40000 Mbps
     Link duplex: full-duplex
     Promiscuous mode: enabled
     Allmulticast mode: disabled
-    Maximum number of MAC addresses: 127
+    Maximum number of MAC addresses: 64
+    Maximum number of MAC addresses of hash filtering: 0
     VLAN offload:
         strip on
         filter on
         qinq(extend) off
+    Redirection table size: 512
+    Supported flow types:
+      ipv4-frag
+      ipv4-tcp
+      ipv4-udp
+      ipv4-sctp
+      ipv4-other
+      ipv6-frag
+      ipv6-tcp
+      ipv6-udp
+      ipv6-sctp
+      ipv6-other
+      l2_payload
 
 show port rss reta
 ~~~~~~~~~~~~~~~~~~
@@ -505,28 +521,60 @@ Disable hardware insertion of a VLAN header in packets sent on a port:
 
 tx_vlan reset (port_id)
 
-tx_checksum set
-~~~~~~~~~~~~~~~
+csum set
+~~~~~~~~
 
 Select hardware or software calculation of the checksum when
 transmitting a packet using the csum forward engine:
 
-tx_cksum set (ip|udp|tcp|sctp|vxlan)
+csum set (ip|udp|tcp|sctp|outer-ip) (hw|sw) (port_id)
 
-ip|udp|tcp|sctp always concern the inner layer.
-vxlan concerns the outer IP and UDP layer (in case the packet
-is recognized as a vxlan packet by the forward engine)
+- ip|udp|tcp|sctp always concern the inner layer.
+
+- outer-ip concerns the outer IP layer in case the packet is recognized
+  as a tunnel packet by the forward engine (vxlan, gre and ipip are
+  supported). See "csum parse-tunnel" command.
 
 .. note::
 
     Check the NIC Datasheet for hardware limits.
 
-tx_checksum show
-~~~~~~~~~~~~~~~~
+csum parse-tunnel
+~~~~~~~~~~~~~~~~~
+
+Define how tunneled packets should be handled by the csum forward
+engine.
+
+csum parse-tunnel (on|off) (tx_port_id)
+
+If enabled, the csum forward engine will try to recognize supported
+tunnel headers (vxlan, gre, ipip).
+
+If disabled, treat tunnel packets as non-tunneled packets (a inner
+header is handled as a packet payload).
+
+.. note::
+
+   The port argument is the TX port like in the "csum set" command.
+
+Example:
+
+Consider a packet as following:
+"eth_out/ipv4_out/udp_out/vxlan/eth_in/ipv4_in/tcp_in"
+
+- If parse-tunnel is enabled, the ip|udp|tcp|sctp parameters of "csum
+  set" command are about inner headers (here ipv4_in and tcp_in), and the
+  outer-ip parameter is about outer headers (here ipv4_out).
+
+- If parse-tunnel is disabled, the ip|udp|tcp|sctp parameters of "csum
+  set" command are about outer headers, here ipv4_out and udp_out.
+
+csum show
+~~~~~~~~~
 
 Display tx checksum offload configuration:
 
-tx_checksum show (port_id)
+csum show (port_id)
 
 tso set
 ~~~~~~~
@@ -536,7 +584,8 @@ Enable TCP Segmentation Offload in csum forward engine:
 tso set (segsize) (port_id)
 
 .. note::
-   Please check the NIC datasheet for HW limits
+
+   Check the NIC datasheet for hardware limits
 
 tso show
 ~~~~~~~~
@@ -1003,7 +1052,7 @@ port config - RSS
 
 Set the RSS (Receive Side Scaling) mode on or off:
 
-port config all rss (ip|udp|none)
+port config all rss (all|ip|tcp|udp|sctp|ether|none)
 
 RSS is on by default.
 
@@ -1476,29 +1525,29 @@ Different NICs may have different capabilities, command show port fdir (port_id)
 
 # Commands to add flow director filters of different flow types.
 
-flow_director_filter (port_id) (add|del|update) flow (ip4|ip4-frag|ip6|ip6-frag)
+flow_director_filter (port_id) (add|del|update) flow (ipv4-other|ipv4-frag|ipv6-other|ipv6-frag)
 src (src_ip_address) dst (dst_ip_address) vlan (vlan_value) flexbytes (flexbytes_value)
 (drop|fwd) queue (queue_id) fd_id (fd_id_value)
 
-flow_director_filter (port_id) (add|del|update) flow (udp4|tcp4|udp6|tcp6)
+flow_director_filter (port_id) (add|del|update) flow (ipv4-tcp|ipv4-udp|ipv6-tcp|ipv6-udp)
 src (src_ip_address) (src_port) dst (dst_ip_address) (dst_port) vlan (vlan_value)
 flexbytes (flexbytes_value) (drop|fwd) queue (queue_id) fd_id (fd_id_value)
 
-flow_director_filter (port_id) (add|del|update) flow (sctp4|sctp6)
+flow_director_filter (port_id) (add|del|update) flow (ipv4-sctp|ipv6-sctp)
 src (src_ip_address) (src_port) dst (dst_ip_address) (dst_port) tag (verification_tag)
 vlan (vlan_value) flexbytes (flexbytes_value) (drop|fwd) queue (queue_id) fd_id (fd_id_value)
 
-For example, to add an udp flow type filter:
+For example, to add an ipv4-udp flow type filter:
 
 .. code-block:: console
 
-    testpmd> flow_director_filter 0 add flow udp4 src 2.2.2.3 32 dst 2.2.2.5 33 vlan 0x1 flexbytes (0x88,0x48) fwd queue 1 fd_id 1
+    testpmd> flow_director_filter 0 add flow ipv4-udp src 2.2.2.3 32 dst 2.2.2.5 33 vlan 0x1 flexbytes (0x88,0x48) fwd queue 1 fd_id 1
 
-For example, add an ip4 flow type filter:
+For example, add an ipv4-other flow type filter:
 
 .. code-block:: console
 
-    testpmd> flow_director_filter 0 add flow ip4 src 2.2.2.3 dst 2.2.2.5 vlan 0x1 flexbytes (0x88,0x48) fwd queue 1 fd_id 1
+    testpmd> flow_director_filter 0 add flow ipv4-other src 2.2.2.3 dst 2.2.2.5 vlan 0x1 flexbytes (0x88,0x48) fwd queue 1 fd_id 1
 
 flush_flow_director
 ~~~~~~~~~~~~~~~~~~~
@@ -1532,9 +1581,10 @@ flow_director_flex_mask
 
 set masks of flow director's flexible payload based on certain flow type:
 
-flow_director_flex_mask (port_id) flow (raw|ip4|ip4-frag|tcp4|udp4|sctp4|ip6|ip6-frag|tcp6|udp6|sctp6|all) (mask)
+flow_director_flex_mask (port_id) flow (none|ipv4-other|ipv4-frag|ipv4-tcp|ipv4-udp|ipv4-sctp|
+ipv6-other|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|all) (mask)
 
-Example, to set flow director's udpv4 flex mask on port 0:
+Example, to set flow director's flex mask for all flow type on port 0:
 
 .. code-block:: console
 
@@ -1548,8 +1598,62 @@ Configure flexible payload selection.
 
 flow_director_flex_payload (port_id) (raw|l2|l3|l4) (config)
 
-For example, to select the first 16 bytes from the offset 4 (bytes) of packets payload as flexible payload.
+For example, to select the first 16 bytes from the offset 4 (bytes) of packet's payload as flexible payload.
 
 .. code-block:: console
 
    testpmd> flow_director_flex_payload 0 l4 (4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19)
+
+get_sym_hash_ena_per_port
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Get symmetric hash enable configuration per port.
+
+get_sym_hash_ena_per_port (port_id)
+
+For example, to get symmetric hash enable configuration of port 1.
+
+.. code-block:: console
+
+    testpmd> get_sym_hash_ena_per_port 1
+
+set_sym_hash_ena_per_port
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Set symmetric hash enable configuration per port to enable or disable.
+
+set_sym_hash_ena_per_port (port_id) (enable|disable)
+
+For example, to set symmetric hash enable configuration of port 1 to enable.
+
+.. code-block:: console
+
+    testpmd> set_sym_hash_ena_per_port 1 enable
+
+get_hash_global_config
+~~~~~~~~~~~~~~~~~~~~~~
+
+Get the global configurations of hash filters.
+
+get_hash_global_config (port_id)
+
+For example, to get the global configurations of hash filters of port 1.
+
+.. code-block:: console
+
+    testpmd> get_hash_global_config 1
+
+set_hash_global_config
+~~~~~~~~~~~~~~~~~~~~~~
+
+Set the global configurations of hash filters.
+
+set_hash_global_config (port_id) (toeplitz|simple_xor|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)
+(enable|disable)
+
+For example, to enable simple_xor for flow type of ipv6 on port 2.
+
+.. code-block:: console
+
+    testpmd> set_hash_global_config 2 simple_xor ipv6 enable