[dpdk-dev] [PATCH] app/testpmd: fix commands to config some offload

Peng, Yuan yuan.peng at intel.com
Fri Jul 20 05:20:51 CEST 2018


Tested-by: Peng, Yuan <yuan.peng at intel.com>

- DPDK version: 18.08-rc1 commit c27dbc300eee78c2eb33e84181617fdd7cbaaae4
- OS: 4.5.5-300.fc24.x86_64
- Compiler: gcc (GCC) 5.3.1 20151207 (Red Hat 5.3.1-2)
- Hardware platform: BDE-EP
- NIC Intel Corporation Device Fortville [8086:1583]
- driver: i40e
- version: 2.4.3
- firmware-version: 6.01 0x80003205 1.1691.0
- CPU: Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
- Default x86_64-native-linuxapp-gcc configuration
- Prerequisites:
- Total 2 cases, 2 passed, 0 failed

Test1:
 ./usertools/dpdk-devbind.py -b igb_uio 05:00.0 05:00.1
1../x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 - -i --rxq=4 --txq=4
 testpmd> show port 0 rx_offload capabilities
 Rx Offloading Capabilities of port 0 :
 Per Queue :
 Per Port : VLAN_STRIP IPV4_CKSUM UDP_CKSUM TCP_CKSUM QINQ_STRIP OUTER_IPV4_CKSUM VLAN_FILTER VLAN_EXTEND JUMBO_FRAME CRC_STRIP KEEP_CRC

testpmd> show port 0 rx_offload configuration
 Rx Offloading Configuration of port 0 :
 Port : 
 Queue[ 0] :
 Queue[ 1] :
 Queue[ 2] :
 Queue[ 3] :

Testpmd> port stop 0
testpmd> port config 0 rx_offload keep_crc on
testpmd> port start 0

The port can be started normally.

Test2:
1. Start testpmd and get the tx_offload capability and configuration::

    ./testpmd -c f -n 4 -- -i --rxq=4 --txq=4
    testpmd> show port 0 tx_offload capabilities
    Tx Offloading Capabilities of port 0 :
      Per Queue : MBUF_FAST_FREE
      Per Port  : VLAN_INSERT IPV4_CKSUM UDP_CKSUM TCP_CKSUM SCTP_CKSUM TCP_TSO OUTER_IPV4_CKSUM QINQ_INSERT VXLAN_TNL_TSO GRE_TNL_TSO IPIP_TNL_TSO GENEVE_TNL_TSO MULTI_SEGS
    testpmd> show port 0 tx_offload configuration
    Tx Offloading Configuration of port 0 :
      Port : MBUF_FAST_FREE
      Queue[ 0] :
      Queue[ 1] :
      Queue[ 2] :
      Queue[ 3] :

2. Disable mbuf_fast_free per_port::

    testpmd> port stop 0
    testpmd> port config 0 tx_offload mbuf_fast_free off
    testpmd> port start 0
    testpmd> show port 0 tx_offload configuration
    Tx Offloading Configuration of port 0 :
      Port :
      Queue[ 0] :
      Queue[ 1] :
      Queue[ 2] :
      Queue[ 3] :

3. Enable mbuf_fast_free per_queue::

    testpmd> port 0 txq 0 tx_offload mbuf_fast_free on
    testpmd> port 0 txq 1 tx_offload mbuf_fast_free on
    testpmd> port 0 txq 2 tx_offload mbuf_fast_free on
    testpmd> port 0 txq 3 tx_offload mbuf_fast_free on
    testpmd> port start 0
    testpmd> show port 0 tx_offload configuration
    Tx Offloading Configuration of port 0 :
      Port :
      Queue[ 0] : MBUF_FAST_FREE
      Queue[ 1] : MBUF_FAST_FREE
      Queue[ 2] : MBUF_FAST_FREE
      Queue[ 3] : MBUF_FAST_FREE

4. Disable mbuf_fast_free per_queue::

    testpmd> port 0 txq 0 tx_offload mbuf_fast_free off
    testpmd> port 0 txq 1 tx_offload mbuf_fast_free off
    testpmd> port 0 txq 2 tx_offload mbuf_fast_free off
    testpmd> port 0 txq 3 tx_offload mbuf_fast_free off
    testpmd> port start 0
    testpmd> show port 0 tx_offload configuration
    Tx Offloading Configuration of port 0 :
      Port :
      Queue[ 0] :
      Queue[ 1] :
      Queue[ 2] :
      Queue[ 3] :
The mbuf_fast_free per_queue can be set normally.

-----Original Message-----
From: Dai, Wei 
Sent: Friday, July 20, 2018 10:43 AM
To: Wu, Jingjing <jingjing.wu at intel.com>; Peng, Yuan <yuan.peng at intel.com>
Cc: dev at dpdk.org; Dai, Wei <wei.dai at intel.com>; stable at dpdk.org
Subject: [PATCH] app/testpmd: fix commands to config some offload

Without this patch, testpmd command to config Rx offload keep_crc would fail and report "Bad argument".
This patch aslo fix the command to config the Tx offload mbuf_fast_free.

Fixes: 70815c9ecadd ("ethdev: add new offload flag to keep CRC")
Fixes: c73a9071877a ("app/testpmd: add commands to test new offload API")
Cc: stable at dpdk.org

Signed-off-by: Wei Dai <wei.dai at intel.com>
---
 app/test-pmd/cmdline.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 5885289..a0ed3a0 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -16665,7 +16665,7 @@ struct cmd_config_per_port_rx_offload_result {
 		 offload, "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");
+			   "crc_strip#scatter#timestamp#security#keep_crc");
 cmdline_parse_token_string_t cmd_config_per_port_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_rx_offload_result,
@@ -16744,7 +16744,7 @@ struct cmd_config_per_port_rx_offload_result {
 	.help_str = "port config <port_id> rx_offload 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 "
+		    "jumbo_frame|crc_strip|scatter|timestamp|security|keep_crc "
 		    "on|off",
 	.tokens = {
 		(void *)&cmd_config_per_port_rx_offload_result_port,
@@ -16794,7 +16794,7 @@ struct cmd_config_per_queue_rx_offload_result {
 		 offload, "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");
+			   "crc_strip#scatter#timestamp#security#keep_crc");
 cmdline_parse_token_string_t cmd_config_per_queue_rx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_rx_offload_result,
@@ -16846,7 +16846,7 @@ struct cmd_config_per_queue_rx_offload_result {
 		    "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 "
+		    "jumbo_frame|crc_strip|scatter|timestamp|security|keep_crc "
 		    "on|off",
 	.tokens = {
 		(void *)&cmd_config_per_queue_rx_offload_result_port,
@@ -17063,7 +17063,7 @@ struct cmd_config_per_port_tx_offload_result {
 			  "sctp_cksum#tcp_tso#udp_tso#outer_ipv4_cksum#"
 			  "qinq_insert#vxlan_tnl_tso#gre_tnl_tso#"
 			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
-			  "mt_lockfree#multi_segs#fast_free#security");
+			  "mt_lockfree#multi_segs#mbuf_fast_free#security");
 cmdline_parse_token_string_t cmd_config_per_port_tx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_port_tx_offload_result,
@@ -17144,7 +17144,7 @@ struct cmd_config_per_port_tx_offload_result {
 		    "sctp_cksum|tcp_tso|udp_tso|outer_ipv4_cksum|"
 		    "qinq_insert|vxlan_tnl_tso|gre_tnl_tso|"
 		    "ipip_tnl_tso|geneve_tnl_tso|macsec_insert|"
-		    "mt_lockfree|multi_segs|fast_free|security "
+		    "mt_lockfree|multi_segs|mbuf_fast_free|security "
 		    "on|off",
 	.tokens = {
 		(void *)&cmd_config_per_port_tx_offload_result_port,
@@ -17195,7 +17195,7 @@ struct cmd_config_per_queue_tx_offload_result {
 			  "sctp_cksum#tcp_tso#udp_tso#outer_ipv4_cksum#"
 			  "qinq_insert#vxlan_tnl_tso#gre_tnl_tso#"
 			  "ipip_tnl_tso#geneve_tnl_tso#macsec_insert#"
-			  "mt_lockfree#multi_segs#fast_free#security");
+			  "mt_lockfree#multi_segs#mbuf_fast_free#security");
 cmdline_parse_token_string_t cmd_config_per_queue_tx_offload_result_on_off =
 	TOKEN_STRING_INITIALIZER
 		(struct cmd_config_per_queue_tx_offload_result,
@@ -17248,7 +17248,7 @@ struct cmd_config_per_queue_tx_offload_result {
 		    "sctp_cksum|tcp_tso|udp_tso|outer_ipv4_cksum|"
 		    "qinq_insert|vxlan_tnl_tso|gre_tnl_tso|"
 		    "ipip_tnl_tso|geneve_tnl_tso|macsec_insert|"
-		    "mt_lockfree|multi_segs|fast_free|security "
+		    "mt_lockfree|multi_segs|mbuf_fast_free|security "
 		    "on|off",
 	.tokens = {
 		(void *)&cmd_config_per_queue_tx_offload_result_port,
--
1.8.3.1



More information about the dev mailing list