Tested-by: Peng, Yuan <yuan.p...@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...@intel.com>; Peng, Yuan <yuan.p...@intel.com> Cc: dev@dpdk.org; Dai, Wei <wei....@intel.com>; sta...@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: sta...@dpdk.org Signed-off-by: Wei Dai <wei....@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