app/testpmd: add flow director for L2 payload
[dpdk.git] / doc / guides / testpmd_app_ug / testpmd_funcs.rst
index b3abe9c..1d040cb 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
 ~~~~~~~~~~~~~~~~~~
@@ -487,14 +503,24 @@ rx_vxlan_port rm (udp_port) (port_id)
 tx_vlan set
 ~~~~~~~~~~~
 
-Set hardware insertion of VLAN ID in packets sent on a port:
+Set hardware insertion of VLAN IDs in packets sent on a port:
 
-tx_vlan set (vlan_id) (port_id)
+tx_vlan set (port_id) vlan_id[, vlan_id_outer]
+
+.. code-block:: console
+
+    Set a single VLAN ID (5) insertion on port 0.
+
+    tx_vlan set 0 5
+
+    Set double VLAN ID (inner: 2, outer: 3) insertion on port 1.
+
+    tx_vlan set 1 2 3
 
 tx_vlan set pvid
 ~~~~~~~~~~~~~~~~
 
-Set port based hardware insertion of VLAN ID in pacekts sent on a port:
+Set port based hardware insertion of VLAN ID in packets sent on a port:
 
 tx_vlan set pvid (port_id) (vlan_id) (on|off)
 
@@ -756,9 +782,13 @@ set port (port_id) vf (vf_id) rate (rate_value) queue_mask (queue_mask)
 set port - mirror rule
 ~~~~~~~~~~~~~~~~~~~~~~
 
-Set port or vlan type mirror rule for a port.
+Set pool or vlan type mirror rule for a port:
 
-set port (port_id) mirror-rule (rule_id) (pool-mirror|vlan-mirror) (poolmask|vlanid[,vlanid]*) dst-pool (pool_id) (on|off)
+set port (port_id) mirror-rule (rule_id) (pool-mirror-up|pool-mirror-down|vlan-mirror) (poolmask|vlanid[,vlanid]*) dst-pool (pool_id) (on|off)
+
+Set link mirror rule for a port:
+
+set port (port_id) mirror-rule (rule_id) (uplink-mirror|downlink-mirror) dst-pool (pool_id) (on|off)
 
 For example to enable mirror traffic with vlan 0,1 to pool 0:
 
@@ -1036,7 +1066,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.
 
@@ -1198,7 +1228,7 @@ For example, set a Link Bonding device (port 10) to use a balance policy of laye
 set bonding mon_period
 ~~~~~~~~~~~~~~~~~~~~~~
 
-Set the link status monitoring polling period in milliseconds for a bonding devicie.
+Set the link status monitoring polling period in milliseconds for a bonding device.
 
 This adds support for PMD slave devices which do not support link status interrupts.
 When the mon_period is set to a value greater than 0 then all PMD's which do not support
@@ -1521,6 +1551,9 @@ 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)
 
+flow_director_filter (port_id) (add|del|update) flow l2_payload
+ether (ethertype) flexbytes (flexbytes_value) (drop|fwd) queue (queue_id) fd_id (fd_id_value)
+
 For example, to add an ipv4-udp flow type filter:
 
 .. code-block:: console
@@ -1566,7 +1599,7 @@ flow_director_flex_mask
 set masks of flow director's flexible payload based on certain flow type:
 
 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)
+ipv6-other|ipv6-frag|ipv6-tcp|ipv6-udp|ipv6-sctp|l2_payload|all) (mask)
 
 Example, to set flow director's flex mask for all flow type on port 0:
 
@@ -1587,3 +1620,57 @@ For example, to select the first 16 bytes from the offset 4 (bytes) of packet's
 .. 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