From patchwork Fri Mar 5 10:22:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lijun Ou X-Patchwork-Id: 88509 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C060CA00C2; Fri, 5 Mar 2021 11:21:52 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 82FF722A2E7; Fri, 5 Mar 2021 11:21:42 +0100 (CET) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by mails.dpdk.org (Postfix) with ESMTP id 4402C4069B for ; Fri, 5 Mar 2021 11:21:39 +0100 (CET) Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4DsNyf56f9zjWm7; Fri, 5 Mar 2021 18:19:54 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.498.0; Fri, 5 Mar 2021 18:21:36 +0800 From: Lijun Ou To: CC: , , Date: Fri, 5 Mar 2021 18:22:19 +0800 Message-ID: <1614939741-63927-2-git-send-email-oulijun@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1614939741-63927-1-git-send-email-oulijun@huawei.com> References: <1614939741-63927-1-git-send-email-oulijun@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH 1/3] app/testpmd: fix forwarding configuration when DCB test X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Huisong Li Currently, 'nb_fwd_lcores' value are both adjusted based on 'nb_fwd_streams' in rss/simple/icmp_echo_fwd_config_setup. But the operation is lack for dcb_fwd_config_setup, which may lead to a bad events where multiple polling threads operate on the same queue. As a result, various possible exceptions will occur. The procedure is as follows: startup testpmd app as follows: testpmd> port stop all testpmd> set nbcore 8 testpmd> port config 0 dcb vt off 4 pfc on testpmd> port config all rxq 16 testpmd> port config all txq 16 testpmd> port start all testpmd> set fwd mac Logical Core 1 (socket 0) forwards packets on 4 streams: RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=1 (socket 0) -> TX P=0/Q=1 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=2 (socket 0) -> TX P=0/Q=2 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=3 (socket 0) -> TX P=0/Q=3 (socket 0) peer=02:00:00:00:00:00 Logical Core 2 (socket 0) forwards packets on 4 streams: RX P=0/Q=4 (socket 0) -> TX P=0/Q=4 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=5 (socket 0) -> TX P=0/Q=5 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=6 (socket 0) -> TX P=0/Q=6 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=7 (socket 0) -> TX P=0/Q=7 (socket 0) peer=02:00:00:00:00:00 Logical Core 3 (socket 0) forwards packets on 4 streams: RX P=0/Q=8 (socket 0) -> TX P=0/Q=8 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=9 (socket 0) -> TX P=0/Q=9 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=10 (socket 0) -> TX P=0/Q=10 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=11 (socket 0) -> TX P=0/Q=11 (socket 0) peer=02:00:00:00:00:00 Logical Core 4 (socket 0) forwards packets on 4 streams: RX P=0/Q=12 (socket 0) -> TX P=0/Q=12 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=13 (socket 0) -> TX P=0/Q=13 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=14 (socket 0) -> TX P=0/Q=14 (socket 0) peer=02:00:00:00:00:00 RX P=0/Q=15 (socket 0) -> TX P=0/Q=15 (socket 0) peer=02:00:00:00:00:00 Logical Core 5 (socket 0) forwards packets on 1 streams: RX P=0/Q=4 (socket 0) -> TX P=0/Q=4 (socket 0) peer=02:00:00:00:00:00 Logical Core 6 (socket 0) forwards packets on 1 streams: RX P=0/Q=5 (socket 0) -> TX P=0/Q=5 (socket 0) peer=02:00:00:00:00:00 Logical Core 7 (socket 0) forwards packets on 1 streams: RX P=0/Q=6 (socket 0) -> TX P=0/Q=6 (socket 0) peer=02:00:00:00:00:00 Logical Core 8 (socket 0) forwards packets on 1 streams: RX P=0/Q=7 (socket 0) -> TX P=0/Q=7 (socket 0) peer=02:00:00:00:00:00 Notice: number of rxq and txq in running cmdline are greater than used nb_tc. For the DCB forwarding test, each core is assigned on each traffic class and each core is assigned a multi-stream. Therefore, 'nb_fwd_lcores' value can be adjusted based on 'total_tc_num' in all forwarding ports. In addition, after operation of port stop/port start, forwarding configuration is changed by rss_fwd_config_setup. In "start_port" function, dcb_test is set to 1 based on dcb_config. So it also should be cleared when dcb_config is 0. Fixes: 900550de04a7 ("app/testpmd: add dcb support") Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings") Cc: stable@dpdk.org Signed-off-by: Huisong Li Signed-off-by: Lijun Ou --- app/test-pmd/config.c | 19 +++++++++++++++++++ app/test-pmd/testpmd.c | 12 +++++++----- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 576d5ac..c89f8cd 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -2864,6 +2864,21 @@ rss_fwd_config_setup(void) } } +static uint16_t +get_fwd_port_total_tc_num(void) +{ + struct rte_eth_dcb_info dcb_info; + uint16_t total_tc_num = 0; + unsigned int i; + + for (i = 0; i < nb_fwd_ports; i++) { + (void)rte_eth_dev_get_dcb_info(fwd_ports_ids[i], &dcb_info); + total_tc_num += dcb_info.nb_tcs; + } + + return total_tc_num; +} + /** * For the DCB forwarding test, each core is assigned on each traffic class. * @@ -2883,12 +2898,16 @@ dcb_fwd_config_setup(void) lcoreid_t lc_id; uint16_t nb_rx_queue, nb_tx_queue; uint16_t i, j, k, sm_id = 0; + uint16_t total_tc_num = 0; uint8_t tc = 0; cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores; cur_fwd_config.nb_fwd_ports = nb_fwd_ports; cur_fwd_config.nb_fwd_streams = (streamid_t) (nb_rxq * cur_fwd_config.nb_fwd_ports); + total_tc_num = get_fwd_port_total_tc_num(); + if (cur_fwd_config.nb_fwd_lcores > total_tc_num) + cur_fwd_config.nb_fwd_lcores = total_tc_num; /* reinitialize forwarding streams */ init_fwd_streams(); diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 1a57324..7eb810b 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -2707,14 +2707,16 @@ stop_port(portid_t pid) portid_t peer_pl[RTE_MAX_ETHPORTS]; int peer_pi; - if (dcb_test) { - dcb_test = 0; - dcb_config = 0; - } - if (port_id_is_invalid(pid, ENABLED_WARN)) return; + /* + * In "start_port" function, dcb_test is set to 1 based on dcb_config. + * So it should be cleared when dcb_config is 0. + */ + if (dcb_config == 0) + dcb_test = 0; + printf("Stopping ports...\n"); RTE_ETH_FOREACH_DEV(pi) { From patchwork Fri Mar 5 10:22:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lijun Ou X-Patchwork-Id: 88508 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4546AA00C2; Fri, 5 Mar 2021 11:21:46 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 54F4422A2DE; Fri, 5 Mar 2021 11:21:41 +0100 (CET) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by mails.dpdk.org (Postfix) with ESMTP id 4191240691 for ; Fri, 5 Mar 2021 11:21:39 +0100 (CET) Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4DsNyf5Jc6zjWpD; Fri, 5 Mar 2021 18:19:54 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.498.0; Fri, 5 Mar 2021 18:21:36 +0800 From: Lijun Ou To: CC: , , Date: Fri, 5 Mar 2021 18:22:20 +0800 Message-ID: <1614939741-63927-3-git-send-email-oulijun@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1614939741-63927-1-git-send-email-oulijun@huawei.com> References: <1614939741-63927-1-git-send-email-oulijun@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH 2/3] app/testpmd: remove forwarding config from parsing Rx and Tx X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Huisong Li The "fwd_config_setup()" function does release and apply for memory of forwarding flows, and re-establish these streams when rxq/txq or rxd/txd is changed. The function is also called by "start_packet_forwarding()" when user executes "start" cmd. All changes for rxq/txq or rxd/txd can be updated uniformly when this command is executed. Therefore, it is a little redundant in the "cmd_config_rx_tx_parsed" function. In addition, the forwarding stream under one TC is configured based on number of queues allocated to TC. And number of queues allocated to TC is updated after calling "rte_eth_dev_configure" again. If the number of queues is reduced after configuring the DCB, and then, release and apply for stream memory, and reinitialize the forwarding stream under the DCB mode based on the old TC information. As a result, null pointer may be accessed. Like: set nbcore 4 port stop all port config 0 dcb vt off 4 pfc on port start all port stop all port config all rxq 8 port config all txq 8 At the moment, a segmentation fault occurs. Fixes: ce8d561418d4 ("app/testpmd: add port configuration settings") Cc: stable@dpdk.org Signed-off-by: Huisong Li Signed-off-by: Lijun Ou --- V1->V2: - use stream instead of flow --- app/test-pmd/cmdline.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 4df0c32..e316f5c 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -1837,8 +1837,6 @@ cmd_config_rx_tx_parsed(void *parsed_result, return; } - fwd_config_setup(); - init_port_config(); cmd_reconfig_device_queue(RTE_PORT_ALL, 1, 1); From patchwork Fri Mar 5 10:22:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lijun Ou X-Patchwork-Id: 88510 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 18167A00C2; Fri, 5 Mar 2021 11:21:59 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B622A22A2F4; Fri, 5 Mar 2021 11:21:43 +0100 (CET) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by mails.dpdk.org (Postfix) with ESMTP id 9032122A239 for ; Fri, 5 Mar 2021 11:21:40 +0100 (CET) Received: from DGGEMS414-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4DsNyf4kyxzjWjn; Fri, 5 Mar 2021 18:19:54 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS414-HUB.china.huawei.com (10.3.19.214) with Microsoft SMTP Server id 14.3.498.0; Fri, 5 Mar 2021 18:21:36 +0800 From: Lijun Ou To: CC: , , Date: Fri, 5 Mar 2021 18:22:21 +0800 Message-ID: <1614939741-63927-4-git-send-email-oulijun@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1614939741-63927-1-git-send-email-oulijun@huawei.com> References: <1614939741-63927-1-git-send-email-oulijun@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH 3/3] app/testpmd: use of Rx/Tx in testpmd X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Hongbo Zheng In testpmd, when we input "show config rxtx", we can see like this: 1: testpmd> show config rxtx 2: io packet forwarding packets/burst=32 3: nb forwarding cores=1 - nb forwarding ports=1 4: port 0: RX queue number: 1 Tx queue number: 1 5: Rx offloads=0x0 Tx offloads=0x10000 6: RX queue: 0 7: RX desc=1024 - RX free threshold=32 8: RX threshold registers: pthresh=0 hthresh=0 wthresh=0 9: RX Offloads=0x0 10: TX queue: 0 11: TX desc=1024 - TX free threshold=928 12: TX threshold registers: pthresh=0 hthresh=0 wthresh=0 13: TX offloads=0x10000 - TX RS bit threshold=32 We can see RX/Rx/TX/Tx is mixed used. Also in other places in testpmd, RX/Rx/TX/Tx is mixed used. This patch fix the mixed use of RX/Rx/TX/Tx in testpmd by change to unified use Rx/Tx. Signed-off-by: Hongbo Zheng Signed-off-by: Lijun Ou --- V1->V2: - fix all RX/TX - rename patch title --- app/test-pmd/cmdline.c | 104 ++++++++++++++++++------------------ app/test-pmd/config.c | 128 ++++++++++++++++++++++----------------------- app/test-pmd/csumonly.c | 22 ++++---- app/test-pmd/icmpecho.c | 2 +- app/test-pmd/ieee1588fwd.c | 18 +++---- app/test-pmd/parameters.c | 50 +++++++++--------- app/test-pmd/testpmd.c | 120 +++++++++++++++++++++--------------------- app/test-pmd/testpmd.h | 28 +++++----- app/test-pmd/txonly.c | 2 +- 9 files changed, 237 insertions(+), 237 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index e316f5c..f33fa2f 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -182,16 +182,16 @@ static void cmd_help_long_parsed(void *parsed_result, " Clear information for port_id, or all.\n\n" "show (rxq|txq) info (port_id) (queue_id)\n" - " Display information for configured RX/TX queue.\n\n" + " Display information for configured Rx/Tx queue.\n\n" "show config (rxtx|cores|fwd|rxoffs|rxpkts|txpkts)\n" " Display the given configuration.\n\n" "read rxd (port_id) (queue_id) (rxd_id)\n" - " Display an RX descriptor of a port RX queue.\n\n" + " Display an Rx descriptor of a port Rx queue.\n\n" "read txd (port_id) (queue_id) (txd_id)\n" - " Display a TX descriptor of a port TX queue.\n\n" + " Display a Tx descriptor of a port Tx queue.\n\n" "ddp get list (port_id)\n" " Get ddp profile info list\n\n" @@ -245,7 +245,7 @@ static void cmd_help_long_parsed(void *parsed_result, " Show general information about devices probed.\n\n" "show port (port_id) rxq|txq (queue_id) desc (desc_id) status" - " Show status of rx|tx descriptor.\n\n" + " Show status of Rx|Tx descriptor.\n\n" "show port (port_id) rxq (queue_id) desc used count\n" " Show current number of filled receive" @@ -316,7 +316,7 @@ static void cmd_help_long_parsed(void *parsed_result, " and optionally CSUM packets.\n\n" "set txsplit (off|on|rand)\n" - " Set the split policy for the TX packets." + " Set the split policy for the Tx packets." " Right now only applicable for CSUM and TXONLY" " modes\n\n" @@ -334,7 +334,7 @@ static void cmd_help_long_parsed(void *parsed_result, " Select how attached port is retrieved for setup.\n\n" "set tx loopback (port_id) (on|off)\n" - " Enable or disable tx loopback.\n\n" + " Enable or disable Tx loopback.\n\n" "set all queues drop (port_id) (on|off)\n" " Set drop enable bit for all queues.\n\n" @@ -424,7 +424,7 @@ static void cmd_help_long_parsed(void *parsed_result, "depends on the number of VLAN IDs) in packets sent on a port.\n\n" "tx_vlan set pvid port_id vlan_id (on|off)\n" - " Set port based TX VLAN insertion.\n\n" + " Set port based Tx VLAN insertion.\n\n" "tx_vlan reset (port_id)\n" " Disable hardware insertion of a VLAN header in" @@ -444,11 +444,11 @@ static void cmd_help_long_parsed(void *parsed_result, "csum parse-tunnel (on|off) (tx_port_id)\n" " If disabled, treat tunnel packets as non-tunneled" " packets (treat inner headers as payload). The port\n" - " argument is the port used for TX in csum forward" + " argument is the port used for Tx in csum forward" " engine.\n\n" "csum show (port_id)\n" - " Display tx checksum offload configuration\n\n" + " Display Tx checksum offload configuration\n\n" "tso set (segsize) (portid)\n" " Enable TCP Segmentation Offload in csum forward" @@ -536,7 +536,7 @@ static void cmd_help_long_parsed(void *parsed_result, " port.\n\n" "set stat_qmap (tx|rx) (port_id) (queue_id) (qmapping)\n" - " Set statistics mapping (qmapping 0..15) for RX/TX" + " Set statistics mapping (qmapping 0..15) for Rx/Tx" " queue on port.\n" " e.g., 'set stat_qmap rx 0 2 5' sets rx queue 2" " on port 0 to mapping 5.\n\n" @@ -549,7 +549,7 @@ static void cmd_help_long_parsed(void *parsed_result, " Set the option to enable measurement of CPU cycles.\n" "set record-burst-stats on|off\n" - " Set the option to enable display of RX and TX bursts.\n" + " Set the option to enable display of Rx and Tx bursts.\n" "set port (port_id) vf (vf_id) rx|tx on|off\n" " Enable/Disable a VF receive/tranmit from a port\n\n" @@ -588,7 +588,7 @@ static void cmd_help_long_parsed(void *parsed_result, " Reset a mirror rule.\n\n" "set flush_rx (on|off)\n" - " Flush (default) or don't flush RX streams before" + " Flush (default) or don't flush Rx streams before" " forwarding. Mainly used with PCAP drivers.\n\n" "set bypass mode (normal|bypass|isolate) (port_id)\n" @@ -792,7 +792,7 @@ static void cmd_help_long_parsed(void *parsed_result, " Set the max LRO aggregated packet size.\n\n" "port config all drop-en (on|off)\n" - " Enable or disable packet drop on all RX queues of all ports when no " + " Enable or disable packet drop on all Rx queues of all ports when no " "receive buffers available.\n\n" "port config all rss (all|default|ip|tcp|udp|sctp|" @@ -813,29 +813,29 @@ static void cmd_help_long_parsed(void *parsed_result, "port config all (txpt|txht|txwt|rxpt|rxht|rxwt)" " (value)\n" " Set the ring prefetch/host/writeback threshold" - " for tx/rx queue.\n\n" + " for Tx/Rx queue.\n\n" "port config all (txfreet|txrst|rxfreet) (value)\n" - " Set free threshold for rx/tx, or set" - " tx rs bit threshold.\n\n" + " Set free threshold for Rx/Tx, or set" + " Tx rs bit threshold.\n\n" "port config mtu X value\n" " Set the MTU of port X to a given value\n\n" "port config (port_id) (rxq|txq) (queue_id) ring_size (value)\n" - " Set a rx/tx queue's ring size configuration, the new" + " Set a Rx/Tx queue's ring size configuration, the new" " value will take effect after command that (re-)start the port" " or command that setup the specific queue\n\n" "port (port_id) (rxq|txq) (queue_id) (start|stop)\n" - " Start/stop a rx/tx queue of port X. Only take effect" + " Start/stop a Rx/Tx queue of port X. Only take effect" " when port X is started\n\n" "port (port_id) (rxq|txq) (queue_id) deferred_start (on|off)\n" - " Switch on/off a deferred start of port X rx/tx queue. Only" + " Switch on/off a deferred start of port X Rx/Tx queue. Only" " take effect when port X is stopped.\n\n" "port (port_id) (rxq|txq) (queue_id) setup\n" - " Setup a rx/tx queue of port X.\n\n" + " Setup a Rx/Tx queue of port X.\n\n" "port config (port_id) pctype mapping reset\n" " Reset flow type to pctype mapping on a port\n\n" @@ -892,11 +892,11 @@ static void cmd_help_long_parsed(void *parsed_result, "bpf-load rx|tx (port) (queue) (J|M|B) (file_name)\n" " Load an eBPF program as a callback" - " for particular RX/TX queue\n\n" + " for particular Rx/Tx queue\n\n" "bpf-unload rx|tx (port) (queue)\n" " Unload previously loaded eBPF program" - " for particular RX/TX queue\n\n" + " for particular Rx/Tx queue\n\n" "port config (port_id) tx_metadata (value)\n" " Set Tx metadata value per port. Testpmd will add this value" @@ -1807,7 +1807,7 @@ cmd_config_rx_tx_parsed(void *parsed_result, } if (!strcmp(res->name, "rxq")) { if (!res->value && !nb_txq) { - printf("Warning: Either rx or tx queues should be non zero\n"); + printf("Warning: Either Rx or Tx queues should be non zero\n"); return; } if (check_nb_rxq(res->value) != 0) @@ -1816,7 +1816,7 @@ cmd_config_rx_tx_parsed(void *parsed_result, } else if (!strcmp(res->name, "txq")) { if (!res->value && !nb_rxq) { - printf("Warning: Either rx or tx queues should be non zero\n"); + printf("Warning: Either Rx or Tx queues should be non zero\n"); return; } if (check_nb_txq(res->value) != 0) @@ -2082,7 +2082,7 @@ cmdline_parse_inst_t cmd_config_mtu = { }, }; -/* *** configure rx mode *** */ +/* *** configure Rx mode *** */ struct cmd_config_rx_mode_flag { cmdline_fixed_string_t port; cmdline_fixed_string_t keyword; @@ -2496,7 +2496,7 @@ cmd_config_rxtx_ring_size_parsed(void *parsed_result, return; if (isrx && res->size != 0 && res->size <= rx_free_thresh) { - printf("Invalid rx ring_size, must > rx_free_thresh: %d\n", + printf("Invalid Rx ring_size, must > rx_free_thresh: %d\n", rx_free_thresh); return; } @@ -2779,10 +2779,10 @@ cmd_setup_rxtx_queue_parsed( } if (isrx && rx_queue_id_is_invalid(res->qid)) { - printf("Invalid rx queue\n"); + printf("Invalid Rx queue\n"); return; } else if (!isrx && tx_queue_id_is_invalid(res->qid)) { - printf("Invalid tx queue\n"); + printf("Invalid Tx queue\n"); return; } @@ -2794,7 +2794,7 @@ cmd_setup_rxtx_queue_parsed( mp = mbuf_pool_find(socket_id, 0); if (mp == NULL) { - printf("Failed to setup RX queue: " + printf("Failed to setup Rx queue: " "No mempool allocation" " on the socket %d\n", rxring_numa[res->portid]); @@ -2807,7 +2807,7 @@ cmd_setup_rxtx_queue_parsed( &port->rx_conf[res->qid], mp); if (ret) - printf("Failed to setup RX queue\n"); + printf("Failed to setup Rx queue\n"); } else { socket_id = txring_numa[res->portid]; if (!numa_support || socket_id == NUMA_NO_CONFIG) @@ -2819,7 +2819,7 @@ cmd_setup_rxtx_queue_parsed( socket_id, &port->tx_conf[res->qid]); if (ret) - printf("Failed to setup TX queue\n"); + printf("Failed to setup Tx queue\n"); } } @@ -3343,7 +3343,7 @@ cmdline_parse_inst_t cmd_config_burst = { }, }; -/* *** configure rx/tx queues *** */ +/* *** configure Rx/Tx queues *** */ struct cmd_config_thresh { cmdline_fixed_string_t port; cmdline_fixed_string_t keyword; @@ -4144,7 +4144,7 @@ cmdline_parse_inst_t cmd_vlan_offload = { .data = NULL, .help_str = "vlan set strip|filter|qinq_strip|extend|stripq on|off " ": " - "Strip/Filter/QinQ for rx side Extend for both rx/tx sides", + "Strip/Filter/QinQ for Rx side Extend for both Rx/Tx sides", .tokens = { (void *)&cmd_vlan_offload_vlan, (void *)&cmd_vlan_offload_set, @@ -4568,7 +4568,7 @@ cmd_config_queue_tx_offloads(struct rte_port *port) { int k; - /* Apply queue tx offloads configuration */ + /* Apply queue Tx offloads configuration */ for (k = 0; k < port->dev_info.max_rx_queues; k++) port->tx_conf[k].offloads = port->dev_conf.txmode.offloads; @@ -5369,7 +5369,7 @@ cmdline_parse_token_string_t cmd_setflushrx_mode = cmdline_parse_inst_t cmd_set_flush_rx = { .f = cmd_set_flush_rx_parsed, - .help_str = "set flush_rx on|off: Enable/Disable flush on rx streams", + .help_str = "set flush_rx on|off: Enable/Disable flush on Rx streams", .data = NULL, .tokens = { (void *)&cmd_setflushrx_set, @@ -6978,7 +6978,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_rx = { .f = cmd_link_flow_ctrl_set_parsed, .data = (void *)&cmd_link_flow_control_set_rx, .help_str = "set flow_ctrl rx on|off : " - "Change rx flow control parameter", + "Change Rx flow control parameter", .tokens = { (void *)&cmd_lfc_set_set, (void *)&cmd_lfc_set_flow_ctrl, @@ -6993,7 +6993,7 @@ cmdline_parse_inst_t cmd_link_flow_control_set_tx = { .f = cmd_link_flow_ctrl_set_parsed, .data = (void *)&cmd_link_flow_control_set_tx, .help_str = "set flow_ctrl tx on|off : " - "Change tx flow control parameter", + "Change Tx flow control parameter", .tokens = { (void *)&cmd_lfc_set_set, (void *)&cmd_lfc_set_flow_ctrl, @@ -7107,9 +7107,9 @@ cmd_link_flow_ctrl_set_parsed(void *parsed_result, int ret; /* - * Rx on/off, flow control is enabled/disabled on RX side. This can indicate + * Rx on/off, flow control is enabled/disabled on Rx side. This can indicate * the RTE_FC_TX_PAUSE, Transmit pause frame at the Rx side. - * Tx on/off, flow control is enabled/disabled on TX side. This can indicate + * Tx on/off, flow control is enabled/disabled on Tx side. This can indicate * the RTE_FC_RX_PAUSE, Respond to the pause frame at the Tx side. */ static enum rte_eth_fc_mode rx_tx_onoff_2_lfc_mode[2][2] = { @@ -7194,9 +7194,9 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result, int ret; /* - * Rx on/off, flow control is enabled/disabled on RX side. This can indicate + * Rx on/off, flow control is enabled/disabled on Rx side. This can indicate * the RTE_FC_TX_PAUSE, Transmit pause frame at the Rx side. - * Tx on/off, flow control is enabled/disabled on TX side. This can indicate + * Tx on/off, flow control is enabled/disabled on Tx side. This can indicate * the RTE_FC_RX_PAUSE, Respond to the pause frame at the Tx side. */ static enum rte_eth_fc_mode rx_tx_onoff_2_pfc_mode[2][2] = { @@ -8366,7 +8366,7 @@ cmdline_parse_inst_t cmd_set_qmap = { .f = cmd_set_qmap_parsed, .data = NULL, .help_str = "set stat_qmap rx|tx : " - "Set statistics mapping value on tx|rx queue_id of port_id", + "Set statistics mapping value on Tx|Rx queue_id of port_id", .tokens = { (void *)&cmd_setqmap_set, (void *)&cmd_setqmap_qmap, @@ -11109,9 +11109,9 @@ cmdline_parse_inst_t cmd_set_vf_vlan_insert = { }, }; -/* tx loopback configuration */ +/* Tx loopback configuration */ -/* Common result structure for tx loopback */ +/* Common result structure for Tx loopback */ struct cmd_tx_loopback_result { cmdline_fixed_string_t set; cmdline_fixed_string_t tx; @@ -11120,7 +11120,7 @@ struct cmd_tx_loopback_result { cmdline_fixed_string_t on_off; }; -/* Common CLI fields for tx loopback enable disable */ +/* Common CLI fields for Tx loopback enable disable */ cmdline_parse_token_string_t cmd_tx_loopback_set = TOKEN_STRING_INITIALIZER (struct cmd_tx_loopback_result, @@ -11216,7 +11216,7 @@ struct cmd_all_queues_drop_en_result { cmdline_fixed_string_t on_off; }; -/* Common CLI fields for tx loopback enable disable */ +/* Common CLI fields for Tx loopback enable disable */ cmdline_parse_token_string_t cmd_all_queues_drop_en_set = TOKEN_STRING_INITIALIZER (struct cmd_all_queues_drop_en_result, @@ -12281,7 +12281,7 @@ cmdline_parse_inst_t cmd_set_vf_vlan_tag = { }, }; -/* Common definition of VF and TC TX bandwidth configuration */ +/* Common definition of VF and TC Tx bandwidth configuration */ struct cmd_vf_tc_bw_result { cmdline_fixed_string_t set; cmdline_fixed_string_t vf; @@ -14439,13 +14439,13 @@ cmd_show_vf_stats_parsed( printf("\n %s NIC statistics for port %-2d vf %-2d %s\n", nic_stats_border, res->port_id, res->vf_id, nic_stats_border); - printf(" RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes: " + printf(" Rx-packets: %-10"PRIu64" Rx-missed: %-10"PRIu64" Rx-bytes: " "%-"PRIu64"\n", stats.ipackets, stats.imissed, stats.ibytes); - printf(" RX-errors: %-"PRIu64"\n", stats.ierrors); - printf(" RX-nombuf: %-10"PRIu64"\n", + printf(" Rx-errors: %-"PRIu64"\n", stats.ierrors); + printf(" Rx-nombuf: %-10"PRIu64"\n", stats.rx_nombuf); - printf(" TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes: " + printf(" Tx-packets: %-10"PRIu64" Tx-errors: %-10"PRIu64" Tx-bytes: " "%-"PRIu64"\n", stats.opackets, stats.oerrors, stats.obytes); @@ -16602,7 +16602,7 @@ cmdline_parse_inst_t cmd_show_port_supported_ptypes = { }, }; -/* *** display rx/tx descriptor status *** */ +/* *** display Rx/Tx descriptor status *** */ struct cmd_show_rx_tx_desc_status_result { cmdline_fixed_string_t cmd_show; cmdline_fixed_string_t cmd_port; diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index c89f8cd..bc5c989 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -194,11 +194,11 @@ nic_stats_display(portid_t port_id) printf("\n %s NIC statistics for port %-2d %s\n", nic_stats_border, port_id, nic_stats_border); - printf(" RX-packets: %-10"PRIu64" RX-missed: %-10"PRIu64" RX-bytes: " + printf(" Rx-packets: %-10"PRIu64" Rx-missed: %-10"PRIu64" Rx-bytes: " "%-"PRIu64"\n", stats.ipackets, stats.imissed, stats.ibytes); - printf(" RX-errors: %-"PRIu64"\n", stats.ierrors); - printf(" RX-nombuf: %-10"PRIu64"\n", stats.rx_nombuf); - printf(" TX-packets: %-10"PRIu64" TX-errors: %-10"PRIu64" TX-bytes: " + printf(" Rx-errors: %-"PRIu64"\n", stats.ierrors); + printf(" Rx-nombuf: %-10"PRIu64"\n", stats.rx_nombuf); + printf(" Tx-packets: %-10"PRIu64" Tx-errors: %-10"PRIu64" Tx-bytes: " "%-"PRIu64"\n", stats.opackets, stats.oerrors, stats.obytes); diff_ns = 0; @@ -373,27 +373,27 @@ rx_queue_infos_display(portid_t port_id, uint16_t queue_id) rc = rte_eth_rx_queue_info_get(port_id, queue_id, &qinfo); if (rc != 0) { printf("Failed to retrieve information for port: %u, " - "RX queue: %hu\nerror desc: %s(%d)\n", + "Rx queue: %hu\nerror desc: %s(%d)\n", port_id, queue_id, strerror(-rc), rc); return; } - printf("\n%s Infos for port %-2u, RX queue %-2u %s", + printf("\n%s Infos for port %-2u, Rx queue %-2u %s", info_border, port_id, queue_id, info_border); printf("\nMempool: %s", (qinfo.mp == NULL) ? "NULL" : qinfo.mp->name); - printf("\nRX prefetch threshold: %hhu", qinfo.conf.rx_thresh.pthresh); - printf("\nRX host threshold: %hhu", qinfo.conf.rx_thresh.hthresh); - printf("\nRX writeback threshold: %hhu", qinfo.conf.rx_thresh.wthresh); - printf("\nRX free threshold: %hu", qinfo.conf.rx_free_thresh); - printf("\nRX drop packets: %s", + printf("\nRx prefetch threshold: %hhu", qinfo.conf.rx_thresh.pthresh); + printf("\nRx host threshold: %hhu", qinfo.conf.rx_thresh.hthresh); + printf("\nRx writeback threshold: %hhu", qinfo.conf.rx_thresh.wthresh); + printf("\nRx free threshold: %hu", qinfo.conf.rx_free_thresh); + printf("\nRx drop packets: %s", (qinfo.conf.rx_drop_en != 0) ? "on" : "off"); - printf("\nRX deferred start: %s", + printf("\nRx deferred start: %s", (qinfo.conf.rx_deferred_start != 0) ? "on" : "off"); - printf("\nRX scattered packets: %s", + printf("\nRx scattered packets: %s", (qinfo.scattered_rx != 0) ? "on" : "off"); if (qinfo.rx_buf_size != 0) - printf("\nRX buffer size: %hu", qinfo.rx_buf_size); + printf("\nRx buffer size: %hu", qinfo.rx_buf_size); printf("\nNumber of RXDs: %hu", qinfo.nb_desc); if (rte_eth_rx_burst_mode_get(port_id, queue_id, &mode) == 0) @@ -416,20 +416,20 @@ tx_queue_infos_display(portid_t port_id, uint16_t queue_id) rc = rte_eth_tx_queue_info_get(port_id, queue_id, &qinfo); if (rc != 0) { printf("Failed to retrieve information for port: %u, " - "TX queue: %hu\nerror desc: %s(%d)\n", + "Tx queue: %hu\nerror desc: %s(%d)\n", port_id, queue_id, strerror(-rc), rc); return; } - printf("\n%s Infos for port %-2u, TX queue %-2u %s", + printf("\n%s Infos for port %-2u, Tx queue %-2u %s", info_border, port_id, queue_id, info_border); - printf("\nTX prefetch threshold: %hhu", qinfo.conf.tx_thresh.pthresh); - printf("\nTX host threshold: %hhu", qinfo.conf.tx_thresh.hthresh); - printf("\nTX writeback threshold: %hhu", qinfo.conf.tx_thresh.wthresh); - printf("\nTX RS threshold: %hu", qinfo.conf.tx_rs_thresh); - printf("\nTX free threshold: %hu", qinfo.conf.tx_free_thresh); - printf("\nTX deferred start: %s", + printf("\nTx prefetch threshold: %hhu", qinfo.conf.tx_thresh.pthresh); + printf("\nTx host threshold: %hhu", qinfo.conf.tx_thresh.hthresh); + printf("\nTx writeback threshold: %hhu", qinfo.conf.tx_thresh.wthresh); + printf("\nTx RS threshold: %hu", qinfo.conf.tx_rs_thresh); + printf("\nTx free threshold: %hu", qinfo.conf.tx_free_thresh); + printf("\nTx deferred start: %s", (qinfo.conf.tx_deferred_start != 0) ? "on" : "off"); printf("\nNumber of TXDs: %hu", qinfo.nb_desc); @@ -678,8 +678,8 @@ port_infos_display(portid_t port_id) } } - printf("Minimum size of RX buffer: %u\n", dev_info.min_rx_bufsize); - printf("Maximum configurable length of RX packet: %u\n", + printf("Minimum size of Rx buffer: %u\n", dev_info.min_rx_bufsize); + printf("Maximum configurable length of Rx packet: %u\n", dev_info.max_rx_pktlen); printf("Maximum configurable size of LRO aggregated packet: %u\n", dev_info.max_lro_pkt_size); @@ -689,16 +689,16 @@ port_infos_display(portid_t port_id) printf("Maximum number of VMDq pools: %u\n", dev_info.max_vmdq_pools); - printf("Current number of RX queues: %u\n", dev_info.nb_rx_queues); - printf("Max possible RX queues: %u\n", dev_info.max_rx_queues); + printf("Current number of Rx queues: %u\n", dev_info.nb_rx_queues); + printf("Max possible Rx queues: %u\n", dev_info.max_rx_queues); printf("Max possible number of RXDs per queue: %hu\n", dev_info.rx_desc_lim.nb_max); printf("Min possible number of RXDs per queue: %hu\n", dev_info.rx_desc_lim.nb_min); printf("RXDs number alignment: %hu\n", dev_info.rx_desc_lim.nb_align); - printf("Current number of TX queues: %u\n", dev_info.nb_tx_queues); - printf("Max possible TX queues: %u\n", dev_info.max_tx_queues); + printf("Current number of Tx queues: %u\n", dev_info.nb_tx_queues); + printf("Max possible Tx queues: %u\n", dev_info.max_tx_queues); printf("Max possible number of TXDs per queue: %hu\n", dev_info.tx_desc_lim.nb_max); printf("Min possible number of TXDs per queue: %hu\n", @@ -2200,14 +2200,14 @@ port_flow_isolate(portid_t port_id, int set) } /* - * RX/TX ring descriptors display functions. + * Rx/Tx ring descriptors display functions. */ int rx_queue_id_is_invalid(queueid_t rxq_id) { if (rxq_id < nb_rxq) return 0; - printf("Invalid RX queue %d (must be < nb_rxq=%d)\n", rxq_id, nb_rxq); + printf("Invalid Rx queue %d (must be < nb_rxq=%d)\n", rxq_id, nb_rxq); return 1; } @@ -2216,7 +2216,7 @@ tx_queue_id_is_invalid(queueid_t txq_id) { if (txq_id < nb_txq) return 0; - printf("Invalid TX queue %d (must be < nb_txq=%d)\n", txq_id, nb_txq); + printf("Invalid Tx queue %d (must be < nb_txq=%d)\n", txq_id, nb_txq); return 1; } @@ -2297,7 +2297,7 @@ rx_desc_id_is_invalid(portid_t port_id, queueid_t rxq_id, uint16_t rxdesc_id) if (rxdesc_id < ring_size) return 0; - printf("Invalid RX descriptor %u (must be < ring_size=%u)\n", + printf("Invalid Rx descriptor %u (must be < ring_size=%u)\n", rxdesc_id, ring_size); return 1; } @@ -2315,7 +2315,7 @@ tx_desc_id_is_invalid(portid_t port_id, queueid_t txq_id, uint16_t txdesc_id) if (txdesc_id < ring_size) return 0; - printf("Invalid TX descriptor %u (must be < ring_size=%u)\n", + printf("Invalid Tx descriptor %u (must be < ring_size=%u)\n", txdesc_id, ring_size); return 1; } @@ -2388,7 +2388,7 @@ ring_rx_descriptor_display(const struct rte_memzone *ring_mz, return; if (strstr(dev_info.driver_name, "i40e") != NULL) { - /* 32 bytes RX descriptor, i40e only */ + /* 32 bytes Rx descriptor, i40e only */ struct igb_ring_desc_32_bytes *ring = (struct igb_ring_desc_32_bytes *)ring_mz->addr; ring[desc_id].lo_dword.dword = @@ -2407,7 +2407,7 @@ ring_rx_descriptor_display(const struct rte_memzone *ring_mz, return; } #endif - /* 16 bytes RX descriptor */ + /* 16 bytes Rx descriptor */ ring[desc_id].lo_dword.dword = rte_le_to_cpu_64(ring[desc_id].lo_dword.dword); ring_rxd_display_dword(ring[desc_id].lo_dword); @@ -2505,14 +2505,14 @@ rxtx_config_display(void) int32_t rc; /* per port config */ - printf(" port %d: RX queue number: %d Tx queue number: %d\n", + printf(" port %d: Rx queue number: %d Tx queue number: %d\n", (unsigned int)pid, nb_rxq, nb_txq); printf(" Rx offloads=0x%"PRIx64" Tx offloads=0x%"PRIx64"\n", ports[pid].dev_conf.rxmode.offloads, ports[pid].dev_conf.txmode.offloads); - /* per rx queue config only for first queue to be less verbose */ + /* per Rx queue config only for first queue to be less verbose */ for (qid = 0; qid < 1; qid++) { rc = rte_eth_rx_queue_info_get(pid, qid, &rx_qinfo); if (rc) { @@ -2533,16 +2533,16 @@ rxtx_config_display(void) offloads_tmp = rx_qinfo.conf.offloads; } - printf(" RX queue: %d\n", qid); - printf(" RX desc=%d - RX free threshold=%d\n", + printf(" Rx queue: %d\n", qid); + printf(" Rx desc=%d - Rx free threshold=%d\n", nb_rx_desc_tmp, rx_free_thresh_tmp); - printf(" RX threshold registers: pthresh=%d hthresh=%d " + printf(" Rx threshold registers: pthresh=%d hthresh=%d " " wthresh=%d\n", pthresh_tmp, hthresh_tmp, wthresh_tmp); - printf(" RX Offloads=0x%"PRIx64"\n", offloads_tmp); + printf(" Rx Offloads=0x%"PRIx64"\n", offloads_tmp); } - /* per tx queue config only for first queue to be less verbose */ + /* per Tx queue config only for first queue to be less verbose */ for (qid = 0; qid < 1; qid++) { rc = rte_eth_tx_queue_info_get(pid, qid, &tx_qinfo); if (rc) { @@ -2565,13 +2565,13 @@ rxtx_config_display(void) tx_rs_thresh_tmp = tx_qinfo.conf.tx_rs_thresh; } - printf(" TX queue: %d\n", qid); - printf(" TX desc=%d - TX free threshold=%d\n", + printf(" Tx queue: %d\n", qid); + printf(" Tx desc=%d - Tx free threshold=%d\n", nb_tx_desc_tmp, tx_free_thresh_tmp); - printf(" TX threshold registers: pthresh=%d hthresh=%d " + printf(" Tx threshold registers: pthresh=%d hthresh=%d " " wthresh=%d\n", pthresh_tmp, hthresh_tmp, wthresh_tmp); - printf(" TX offloads=0x%"PRIx64" - TX RS bit threshold=%d\n", + printf(" Tx offloads=0x%"PRIx64" - Tx RS bit threshold=%d\n", offloads_tmp, tx_rs_thresh_tmp); } } @@ -2816,8 +2816,8 @@ simple_fwd_config_setup(void) /** * For the RSS forwarding test all streams distributed over lcores. Each stream - * being composed of a RX queue to poll on a RX port for input messages, - * associated with a TX queue of a TX port where to send forwarded packets. + * being composed of a Rx queue to poll on a Rx port for input messages, + * associated with a Tx queue of a Tx port where to send forwarded packets. */ static void rss_fwd_config_setup(void) @@ -2883,9 +2883,9 @@ get_fwd_port_total_tc_num(void) * For the DCB forwarding test, each core is assigned on each traffic class. * * Each core is assigned a multi-stream, each stream being composed of - * a RX queue to poll on a RX port for input messages, associated with - * a TX queue of a TX port where to send forwarded packets. All RX and - * TX queues are mapping to the same traffic class. + * a Rx queue to poll on a Rx port for input messages, associated with + * a Tx queue of a Tx port where to send forwarded packets. All Rx and + * Tx queues are mapping to the same traffic class. * If VMDQ and DCB co-exist, each traffic class on different POOLs share * the same core */ @@ -2913,7 +2913,7 @@ dcb_fwd_config_setup(void) init_fwd_streams(); sm_id = 0; txp = 1; - /* get the dcb info on the first RX and TX ports */ + /* get the dcb info on the first Rx and Tx ports */ (void)rte_eth_dev_get_dcb_info(fwd_ports_ids[rxp], &rxp_dcb_info); (void)rte_eth_dev_get_dcb_info(fwd_ports_ids[txp], &txp_dcb_info); @@ -2951,7 +2951,7 @@ dcb_fwd_config_setup(void) tc++; if (tc < rxp_dcb_info.nb_tcs) continue; - /* Restart from TC 0 on next RX port */ + /* Restart from TC 0 on next Rx port */ tc = 0; if (numa_support && (nb_fwd_ports <= (nb_ports >> 1))) rxp = (portid_t) @@ -2960,7 +2960,7 @@ dcb_fwd_config_setup(void) rxp++; if (rxp >= nb_fwd_ports) return; - /* get the dcb information on next RX and TX ports */ + /* get the dcb information on next Rx and Tx ports */ if ((rxp & 0x1) == 0) txp = (portid_t) (rxp + 1); else @@ -3080,7 +3080,7 @@ pkt_fwd_config_display(struct fwd_config *cfg) mp_alloc_to_str(mp_alloc_type)); if (retry_enabled) - printf("TX retry num: %u, delay between TX retries: %uus\n", + printf("Tx retry num: %u, delay between Tx retries: %uus\n", burst_tx_retry_num, burst_tx_delay_time); for (lc_id = 0; lc_id < cfg->nb_fwd_lcores; lc_id++) { printf("Logical Core %u (socket %u) forwards packets on " @@ -3090,7 +3090,7 @@ pkt_fwd_config_display(struct fwd_config *cfg) fwd_lcores[lc_id]->stream_nb); for (sm_id = 0; sm_id < fwd_lcores[lc_id]->stream_nb; sm_id++) { fs = fwd_streams[fwd_lcores[lc_id]->stream_idx + sm_id]; - printf("\n RX P=%d/Q=%d (socket %u) -> TX " + printf("\n Rx P=%d/Q=%d (socket %u) -> Tx " "P=%d/Q=%d (socket %u) ", fs->rx_port, fs->rx_queue, ports[fs->rx_port].socket_id, @@ -3477,7 +3477,7 @@ set_rx_pkt_offsets(unsigned int *seg_offsets, unsigned int nb_offs) unsigned int i; if (nb_offs >= MAX_SEGS_BUFFER_SPLIT) { - printf("nb segments per RX packets=%u >= " + printf("nb segments per Rx packets=%u >= " "MAX_SEGS_BUFFER_SPLIT - ignored\n", nb_offs); return; } @@ -3521,7 +3521,7 @@ set_rx_pkt_segments(unsigned int *seg_lengths, unsigned int nb_segs) unsigned int i; if (nb_segs >= MAX_SEGS_BUFFER_SPLIT) { - printf("nb segments per RX packets=%u >= " + printf("nb segments per Rx packets=%u >= " "MAX_SEGS_BUFFER_SPLIT - ignored\n", nb_segs); return; } @@ -3577,8 +3577,8 @@ nb_segs_is_invalid(unsigned int nb_segs) return true; if (ring_size < nb_segs) { - printf("nb segments per TX packets=%u >= " - "TX queue(%u) ring_size=%u - ignored\n", + printf("nb segments per Tx packets=%u >= " + "Tx queue(%u) ring_size=%u - ignored\n", nb_segs, queue_id, ring_size); return true; } @@ -4204,18 +4204,18 @@ set_qmap(portid_t port_id, uint8_t is_rx, uint16_t queue_id, uint8_t map_value) return; } - if (!is_rx) { /* tx */ + if (!is_rx) { /* Tx */ ret = rte_eth_dev_set_tx_queue_stats_mapping(port_id, queue_id, map_value); if (ret) { - printf("failed to set tx queue stats mapping.\n"); + printf("failed to set Tx queue stats mapping.\n"); return; } - } else { /* rx */ + } else { /* Rx */ ret = rte_eth_dev_set_rx_queue_stats_mapping(port_id, queue_id, map_value); if (ret) { - printf("failed to set rx queue stats mapping.\n"); + printf("failed to set Rx queue stats mapping.\n"); return; } } diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c index 6b4df33..eadfcd9 100644 --- a/app/test-pmd/csumonly.c +++ b/app/test-pmd/csumonly.c @@ -258,7 +258,7 @@ parse_vxlan(struct rte_udp_hdr *udp_hdr, struct rte_ether_hdr *eth_hdr; /* check udp destination port, RTE_VXLAN_DEFAULT_PORT (4789) is the - * default vxlan port (rfc7348) or that the rx offload flag is set + * default vxlan port (rfc7348) or that the Rx offload flag is set * (i40e only currently) */ if (udp_hdr->dst_port != _htons(RTE_VXLAN_DEFAULT_PORT) && @@ -1008,26 +1008,26 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) printf("-----------------\n"); printf("port=%u, mbuf=%p, pkt_len=%u, nb_segs=%u:\n", fs->rx_port, m, m->pkt_len, m->nb_segs); - /* dump rx parsed packet info */ + /* dump Rx parsed packet info */ rte_get_rx_ol_flag_list(rx_ol_flags, buf, sizeof(buf)); - printf("rx: l2_len=%d ethertype=%x l3_len=%d " + printf("Rx: l2_len=%d ethertype=%x l3_len=%d " "l4_proto=%d l4_len=%d flags=%s\n", info.l2_len, rte_be_to_cpu_16(info.ethertype), info.l3_len, info.l4_proto, info.l4_len, buf); if (rx_ol_flags & PKT_RX_LRO) - printf("rx: m->lro_segsz=%u\n", m->tso_segsz); + printf("Rx: m->lro_segsz=%u\n", m->tso_segsz); if (info.is_tunnel == 1) - printf("rx: outer_l2_len=%d outer_ethertype=%x " + printf("Rx: outer_l2_len=%d outer_ethertype=%x " "outer_l3_len=%d\n", info.outer_l2_len, rte_be_to_cpu_16(info.outer_ethertype), info.outer_l3_len); - /* dump tx packet info */ + /* dump Tx packet info */ if ((tx_offloads & (DEV_TX_OFFLOAD_IPV4_CKSUM | DEV_TX_OFFLOAD_UDP_CKSUM | DEV_TX_OFFLOAD_TCP_CKSUM | DEV_TX_OFFLOAD_SCTP_CKSUM)) || info.tso_segsz != 0) - printf("tx: m->l2_len=%d m->l3_len=%d " + printf("Tx: m->l2_len=%d m->l3_len=%d " "m->l4_len=%d\n", m->l2_len, m->l3_len, m->l4_len); if (info.is_tunnel == 1) { @@ -1036,19 +1036,19 @@ pkt_burst_checksum_forward(struct fwd_stream *fs) (tx_offloads & DEV_TX_OFFLOAD_OUTER_UDP_CKSUM) || (tx_ol_flags & PKT_TX_OUTER_IPV6)) - printf("tx: m->outer_l2_len=%d " + printf("Tx: m->outer_l2_len=%d " "m->outer_l3_len=%d\n", m->outer_l2_len, m->outer_l3_len); if (info.tunnel_tso_segsz != 0 && (m->ol_flags & PKT_TX_TCP_SEG)) - printf("tx: m->tso_segsz=%d\n", + printf("Tx: m->tso_segsz=%d\n", m->tso_segsz); } else if (info.tso_segsz != 0 && (m->ol_flags & PKT_TX_TCP_SEG)) - printf("tx: m->tso_segsz=%d\n", m->tso_segsz); + printf("Tx: m->tso_segsz=%d\n", m->tso_segsz); rte_get_tx_ol_flag_list(m->ol_flags, buf, sizeof(buf)); - printf("tx: flags=%s", buf); + printf("Tx: flags=%s", buf); printf("\n"); } } diff --git a/app/test-pmd/icmpecho.c b/app/test-pmd/icmpecho.c index af6f7e7..ddcb0b5 100644 --- a/app/test-pmd/icmpecho.c +++ b/app/test-pmd/icmpecho.c @@ -386,7 +386,7 @@ reply_to_icmp_echo_rqsts(struct fwd_stream *fs) /* Use source MAC address as destination MAC address. */ rte_ether_addr_copy(ð_h->s_addr, ð_h->d_addr); - /* Set source MAC address with MAC address of TX port */ + /* Set source MAC address with MAC address of Tx port */ rte_ether_addr_copy(&ports[fs->tx_port].eth_addr, ð_h->s_addr); diff --git a/app/test-pmd/ieee1588fwd.c b/app/test-pmd/ieee1588fwd.c index e3b98e3..2fe5a5b 100644 --- a/app/test-pmd/ieee1588fwd.c +++ b/app/test-pmd/ieee1588fwd.c @@ -42,12 +42,12 @@ struct ptpv2_msg { * Check that each received packet is a IEEE1588 PTP V2 packet of type * PTP_SYNC_MESSAGE, and that it has been identified and timestamped * by the hardware. - * Check that the value of the last RX timestamp recorded by the controller + * Check that the value of the last Rx timestamp recorded by the controller * is greater than the previous one. * * If everything is OK, send the received packet back on the same port, * requesting for it to be timestamped by the hardware. - * Check that the value of the last TX timestamp recorded by the controller + * Check that the value of the last Tx timestamp recorded by the controller * is greater than the previous one. */ @@ -57,10 +57,10 @@ port_ieee1588_rx_timestamp_check(portid_t pi, uint32_t index) struct timespec timestamp = {0, 0}; if (rte_eth_timesync_read_rx_timestamp(pi, ×tamp, index) < 0) { - printf("Port %u RX timestamp registers not valid\n", pi); + printf("Port %u Rx timestamp registers not valid\n", pi); return; } - printf("Port %u RX timestamp value %lu s %lu ns\n", + printf("Port %u Rx timestamp value %lu s %lu ns\n", pi, timestamp.tv_sec, timestamp.tv_nsec); } @@ -78,12 +78,12 @@ port_ieee1588_tx_timestamp_check(portid_t pi) wait_us++; } if (wait_us >= MAX_TX_TMST_WAIT_MICROSECS) { - printf("Port %u TX timestamp registers not valid after " + printf("Port %u Tx timestamp registers not valid after " "%u micro-seconds\n", pi, MAX_TX_TMST_WAIT_MICROSECS); return; } - printf("Port %u TX timestamp value %lu s %lu ns validated after " + printf("Port %u Tx timestamp value %lu s %lu ns validated after " "%u micro-second%s\n", pi, timestamp.tv_sec, timestamp.tv_nsec, wait_us, (wait_us == 1) ? "" : "s"); @@ -174,7 +174,7 @@ ieee1588_packet_fwd(struct fwd_stream *fs) /* For i40e we need the timesync register index. It is ignored for the * other PMDs. */ timesync_index = mb->timesync & 0x3; - /* Read and check the RX timestamp. */ + /* Read and check the Rx timestamp. */ port_ieee1588_rx_timestamp_check(fs->rx_port, timesync_index); /* Swap dest and src mac addresses. */ @@ -182,7 +182,7 @@ ieee1588_packet_fwd(struct fwd_stream *fs) rte_ether_addr_copy(ð_hdr->s_addr, ð_hdr->d_addr); rte_ether_addr_copy(&addr, ð_hdr->s_addr); - /* Forward PTP packet with hardware TX timestamp */ + /* Forward PTP packet with hardware Tx timestamp */ mb->ol_flags |= PKT_TX_IEEE1588_TMST; fs->tx_packets += 1; if (rte_eth_tx_burst(fs->rx_port, fs->tx_queue, &mb, 1) == 0) { @@ -193,7 +193,7 @@ ieee1588_packet_fwd(struct fwd_stream *fs) } /* - * Check the TX timestamp. + * Check the Tx timestamp. */ port_ieee1588_tx_timestamp_check(fs->rx_port); } diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index c8acd5d..53c0717 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -95,15 +95,15 @@ usage(char* progname) printf(" --portmask=PORTMASK: hexadecimal bitmask of ports used " "by the packet forwarding test.\n"); printf(" --portlist=PORTLIST: list of forwarding ports\n"); - printf(" --numa: enable NUMA-aware allocation of RX/TX rings and of " - "RX memory buffers (mbufs).\n"); + printf(" --numa: enable NUMA-aware allocation of Rx/Tx rings and of " + "Rx memory buffers (mbufs).\n"); printf(" --port-numa-config=(port,socket)[,(port,socket)]: " "specify the socket on which the memory pool " "used by the port will be allocated.\n"); printf(" --ring-numa-config=(port,flag,socket)[,(port,flag,socket)]: " - "specify the socket on which the TX/RX rings for " + "specify the socket on which the Tx/Rx rings for " "the port will be allocated " - "(flag: 1 for RX; 2 for TX; 3 for RX and TX).\n"); + "(flag: 1 for Rx; 2 for Tx; 3 for Rx and Tx).\n"); printf(" --socket-num=N: set socket from which all memory is allocated " "in NUMA mode.\n"); printf(" --mbuf-size=N,[N1[,..Nn]: set the data size of mbuf to " @@ -156,32 +156,32 @@ usage(char* progname) printf(" --rss-udp: set RSS functions to IPv4/IPv6 + UDP.\n"); printf(" --rss-level-inner: set RSS hash level to innermost\n"); printf(" --rss-level-outer: set RSS hash level to outermost\n"); - printf(" --rxq=N: set the number of RX queues per port to N.\n"); - printf(" --rxd=N: set the number of descriptors in RX rings to N.\n"); - printf(" --txq=N: set the number of TX queues per port to N.\n"); - printf(" --txd=N: set the number of descriptors in TX rings to N.\n"); + printf(" --rxq=N: set the number of Rx queues per port to N.\n"); + printf(" --rxd=N: set the number of descriptors in Rx rings to N.\n"); + printf(" --txq=N: set the number of Tx queues per port to N.\n"); + printf(" --txd=N: set the number of descriptors in Tx rings to N.\n"); printf(" --hairpinq=N: set the number of hairpin queues per port to " "N.\n"); printf(" --burst=N: set the number of packets per burst to N.\n"); printf(" --flowgen-clones=N: set the number of single packet clones to send in flowgen mode. Should be less than burst value.\n"); printf(" --mbcache=N: set the cache of mbuf memory pool to N.\n"); - printf(" --rxpt=N: set prefetch threshold register of RX rings to N.\n"); - printf(" --rxht=N: set the host threshold register of RX rings to N.\n"); - printf(" --rxfreet=N: set the free threshold of RX descriptors to N " + printf(" --rxpt=N: set prefetch threshold register of Rx rings to N.\n"); + printf(" --rxht=N: set the host threshold register of Rx rings to N.\n"); + printf(" --rxfreet=N: set the free threshold of Rx descriptors to N " "(0 <= N < value of rxd).\n"); - printf(" --rxwt=N: set the write-back threshold register of RX rings to N.\n"); - printf(" --txpt=N: set the prefetch threshold register of TX rings to N.\n"); - printf(" --txht=N: set the nhost threshold register of TX rings to N.\n"); - printf(" --txwt=N: set the write-back threshold register of TX rings to N.\n"); - printf(" --txfreet=N: set the transmit free threshold of TX rings to N " + printf(" --rxwt=N: set the write-back threshold register of Rx rings to N.\n"); + printf(" --txpt=N: set the prefetch threshold register of Tx rings to N.\n"); + printf(" --txht=N: set the nhost threshold register of Tx rings to N.\n"); + printf(" --txwt=N: set the write-back threshold register of Tx rings to N.\n"); + printf(" --txfreet=N: set the transmit free threshold of Tx rings to N " "(0 <= N <= value of txd).\n"); - printf(" --txrst=N: set the transmit RS bit threshold of TX rings to N " + printf(" --txrst=N: set the transmit RS bit threshold of Tx rings to N " "(0 <= N <= value of txd).\n"); - printf(" --no-flush-rx: Don't flush RX streams before forwarding." + printf(" --no-flush-rx: Don't flush Rx streams before forwarding." " Used mainly with PCAP drivers.\n"); - printf(" --rxoffs=X[,Y]*: set RX segment offsets for split.\n"); - printf(" --rxpkts=X[,Y]*: set RX segment sizes to split.\n"); - printf(" --txpkts=X[,Y]*: set TX segment sizes" + printf(" --rxoffs=X[,Y]*: set Rx segment offsets for split.\n"); + printf(" --rxpkts=X[,Y]*: set Rx segment sizes to split.\n"); + printf(" --txpkts=X[,Y]*: set Tx segment sizes" " or total packet length.\n"); printf(" --txonly-multi-flow: generate multiple flows in txonly mode\n"); printf(" --disable-link-check: disable check on link status when " @@ -197,8 +197,8 @@ usage(char* progname) "disable print of designated event or all of them.\n"); printf(" --flow-isolate-all: " "requests flow API isolated mode on all ports at initialization time.\n"); - printf(" --tx-offloads=0xXXXXXXXX: hexadecimal bitmask of TX queue offloads\n"); - printf(" --rx-offloads=0xXXXXXXXX: hexadecimal bitmask of RX queue offloads\n"); + printf(" --tx-offloads=0xXXXXXXXX: hexadecimal bitmask of Tx queue offloads\n"); + printf(" --rx-offloads=0xXXXXXXXX: hexadecimal bitmask of Rx queue offloads\n"); printf(" --hot-plug: enable hot plug for device.\n"); printf(" --vxlan-gpe-port=N: UPD port of tunnel VXLAN-GPE\n"); printf(" --geneve-parsed-port=N: UPD port to parse GENEVE tunnel protocol\n"); @@ -217,10 +217,10 @@ usage(char* progname) printf(" --noisy-lkup-num-writes=N: do N random reads and writes per packet\n"); printf(" --no-iova-contig: mempool memory can be IOVA non contiguous. " "valid only with --mp-alloc=anon\n"); - printf(" --rx-mq-mode=0xX: hexadecimal bitmask of RX mq mode can be " + printf(" --rx-mq-mode=0xX: hexadecimal bitmask of Rx mq mode can be " "enabled\n"); printf(" --record-core-cycles: enable measurement of CPU cycles.\n"); - printf(" --record-burst-stats: enable display of RX and TX bursts.\n"); + printf(" --record-burst-stats: enable display of Rx and Tx bursts.\n"); printf(" --hairpin-mode=0xXX: bitmask set the hairpin port mode.\n " " 0x10 - explicit Tx rule, 0x02 - hairpin ports paired\n" " 0x01 - hairpin ports loop, 0x00 - hairpin port self\n"); diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 7eb810b..d83eb8c 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -92,7 +92,7 @@ char cmdline_filename[PATH_MAX] = {0}; /* * NUMA support configuration. * When set, the NUMA support attempts to dispatch the allocation of the - * RX and TX memory rings, and of the DMA memory buffers (mbufs) for the + * Rx and Tx memory rings, and of the DMA memory buffers (mbufs) for the * probed ports among the CPU sockets 0 and 1. * Otherwise, all memory is allocated from CPU socket 0. */ @@ -120,7 +120,7 @@ uint8_t mp_alloc_type = MP_ALLOC_NATIVE; uint8_t port_numa[RTE_MAX_ETHPORTS]; /* - * Store specified sockets on which RX ring to be used by ports + * Store specified sockets on which Rx ring to be used by ports * is allocated. */ uint8_t rxring_numa[RTE_MAX_ETHPORTS]; @@ -163,7 +163,7 @@ portid_t nb_fwd_ports; /**< Number of forwarding ports. */ unsigned int fwd_lcores_cpuids[RTE_MAX_LCORE]; /**< CPU ids configuration. */ portid_t fwd_ports_ids[RTE_MAX_ETHPORTS]; /**< Port ids configuration. */ -struct fwd_stream **fwd_streams; /**< For each RX queue of each port. */ +struct fwd_stream **fwd_streams; /**< For each Rx queue of each port. */ streamid_t nb_fwd_streams; /**< Is equal to (nb_ports * nb_rxq). */ /* @@ -228,7 +228,7 @@ uint16_t tx_pkt_seg_lengths[RTE_MAX_SEGS_PER_PKT] = { uint8_t tx_pkt_nb_segs = 1; /**< Number of segments in TXONLY packets */ enum tx_pkt_split tx_pkt_split = TX_PKT_SPLIT_OFF; -/**< Split policy for packets to TX. */ +/**< Split policy for packets to Tx. */ uint8_t txonly_multi_flow; /**< Whether multiple flows are generated in TXONLY mode. */ @@ -250,24 +250,24 @@ uint8_t dcb_config = 0; uint8_t dcb_test = 0; /* - * Configurable number of RX/TX queues. + * Configurable number of Rx/Tx queues. */ queueid_t nb_hairpinq; /**< Number of hairpin queues per port. */ -queueid_t nb_rxq = 1; /**< Number of RX queues per port. */ -queueid_t nb_txq = 1; /**< Number of TX queues per port. */ +queueid_t nb_rxq = 1; /**< Number of Rx queues per port. */ +queueid_t nb_txq = 1; /**< Number of Tx queues per port. */ /* - * Configurable number of RX/TX ring descriptors. + * Configurable number of Rx/Tx ring descriptors. * Defaults are supplied by drivers via ethdev. */ #define RTE_TEST_RX_DESC_DEFAULT 0 #define RTE_TEST_TX_DESC_DEFAULT 0 -uint16_t nb_rxd = RTE_TEST_RX_DESC_DEFAULT; /**< Number of RX descriptors. */ -uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT; /**< Number of TX descriptors. */ +uint16_t nb_rxd = RTE_TEST_RX_DESC_DEFAULT; /**< Number of Rx descriptors. */ +uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT; /**< Number of Tx descriptors. */ #define RTE_PMD_PARAM_UNSET -1 /* - * Configurable values of RX and TX ring threshold registers. + * Configurable values of Rx and Tx ring threshold registers. */ int8_t rx_pthresh = RTE_PMD_PARAM_UNSET; @@ -279,22 +279,22 @@ int8_t tx_hthresh = RTE_PMD_PARAM_UNSET; int8_t tx_wthresh = RTE_PMD_PARAM_UNSET; /* - * Configurable value of RX free threshold. + * Configurable value of Rx free threshold. */ int16_t rx_free_thresh = RTE_PMD_PARAM_UNSET; /* - * Configurable value of RX drop enable. + * Configurable value of Rx drop enable. */ int8_t rx_drop_en = RTE_PMD_PARAM_UNSET; /* - * Configurable value of TX free threshold. + * Configurable value of Tx free threshold. */ int16_t tx_free_thresh = RTE_PMD_PARAM_UNSET; /* - * Configurable value of TX RS bit threshold. + * Configurable value of Tx RS bit threshold. */ int16_t tx_rs_thresh = RTE_PMD_PARAM_UNSET; @@ -343,7 +343,7 @@ uint64_t rss_hf = ETH_RSS_IP; /* RSS IP by default. */ uint16_t port_topology = PORT_TOPOLOGY_PAIRED; /* Ports are paired by default */ /* - * Avoids to flush all the RX streams before starts forwarding. + * Avoids to flush all the Rx streams before starts forwarding. */ uint8_t no_flush_rx = 0; /* flush by default */ @@ -491,7 +491,7 @@ uint8_t xstats_hide_zero; uint8_t record_core_cycles; /* - * Display of RX and TX bursts disabled by default + * Display of Rx and Tx bursts disabled by default */ uint8_t record_burst_stats; @@ -509,7 +509,7 @@ struct gro_status gro_ports[RTE_MAX_ETHPORTS]; uint8_t gro_flush_cycles = GRO_DEFAULT_FLUSH_CYCLES; /* - * hexadecimal bitmask of RX mq mode can be enabled. + * hexadecimal bitmask of Rx mq mode can be enabled. */ enum rte_eth_rx_mq_mode rx_mq_mode = ETH_MQ_RX_VMDQ_DCB_RSS; @@ -1085,7 +1085,7 @@ check_socket_id(const unsigned int socket_id) } /* - * Get the allowed maximum number of RX queues. + * Get the allowed maximum number of Rx queues. * *pid return the port id which has minimal value of * max_rx_queues in all ports. */ @@ -1113,7 +1113,7 @@ get_allowed_max_nb_rxq(portid_t *pid) /* * Check input rxq is valid or not. * If input rxq is not greater than any of maximum number - * of RX queues of all ports, it is valid. + * of Rx queues of all ports, it is valid. * if valid, return 0, else return -1 */ int @@ -1135,7 +1135,7 @@ check_nb_rxq(queueid_t rxq) } /* - * Get the allowed maximum number of TX queues. + * Get the allowed maximum number of Tx queues. * *pid return the port id which has minimal value of * max_tx_queues in all ports. */ @@ -1163,7 +1163,7 @@ get_allowed_max_nb_txq(portid_t *pid) /* * Check input txq is valid or not. * If input txq is not greater than any of maximum number - * of TX queues of all ports, it is valid. + * of Tx queues of all ports, it is valid. * if valid, return 0, else return -1 */ int @@ -1185,7 +1185,7 @@ check_nb_txq(queueid_t txq) } /* - * Get the allowed maximum number of RXDs of every rx queue. + * Get the allowed maximum number of RXDs of every Rx queue. * *pid return the port id which has minimal value of * max_rxd in all queues of all ports. */ @@ -1209,7 +1209,7 @@ get_allowed_max_nb_rxd(portid_t *pid) } /* - * Get the allowed minimal number of RXDs of every rx queue. + * Get the allowed minimal number of RXDs of every Rx queue. * *pid return the port id which has minimal value of * min_rxd in all queues of all ports. */ @@ -1271,9 +1271,9 @@ check_nb_rxd(queueid_t rxd) } /* - * Get the allowed maximum number of TXDs of every rx queues. + * Get the allowed maximum number of TXDs of every Rx queues. * *pid return the port id which has minimal value of - * max_txd in every tx queue. + * max_txd in every Tx queue. */ static uint16_t get_allowed_max_nb_txd(portid_t *pid) @@ -1295,9 +1295,9 @@ get_allowed_max_nb_txd(portid_t *pid) } /* - * Get the allowed maximum number of TXDs of every tx queues. + * Get the allowed maximum number of TXDs of every Tx queues. * *pid return the port id which has minimal value of - * min_txd in every tx queue. + * min_txd in every Tx queue. */ static uint16_t get_allowed_min_nb_txd(portid_t *pid) @@ -1781,30 +1781,30 @@ fwd_stream_stats_display(streamid_t stream_id) if ((fs->rx_packets == 0) && (fs->tx_packets == 0) && (fs->fwd_dropped == 0)) return; - printf("\n %s Forward Stats for RX Port=%2d/Queue=%2d -> " - "TX Port=%2d/Queue=%2d %s\n", + printf("\n %s Forward Stats for Rx Port=%2d/Queue=%2d -> " + "Tx Port=%2d/Queue=%2d %s\n", fwd_top_stats_border, fs->rx_port, fs->rx_queue, fs->tx_port, fs->tx_queue, fwd_top_stats_border); - printf(" RX-packets: %-14"PRIu64" TX-packets: %-14"PRIu64 - " TX-dropped: %-14"PRIu64, + printf(" Rx-packets: %-14"PRIu64" Tx-packets: %-14"PRIu64 + " Tx-dropped: %-14"PRIu64, fs->rx_packets, fs->tx_packets, fs->fwd_dropped); /* if checksum mode */ if (cur_fwd_eng == &csum_fwd_engine) { - printf(" RX- bad IP checksum: %-14"PRIu64 + printf(" Rx- bad IP checksum: %-14"PRIu64 " Rx- bad L4 checksum: %-14"PRIu64 " Rx- bad outer L4 checksum: %-14"PRIu64"\n", fs->rx_bad_ip_csum, fs->rx_bad_l4_csum, fs->rx_bad_outer_l4_csum); - printf(" RX- bad outer IP checksum: %-14"PRIu64"\n", + printf(" Rx- bad outer IP checksum: %-14"PRIu64"\n", fs->rx_bad_outer_ip_csum); } else { printf("\n"); } if (record_burst_stats) { - pkt_burst_stats_display("RX", &fs->rx_burst_stats); - pkt_burst_stats_display("TX", &fs->tx_burst_stats); + pkt_burst_stats_display("Rx", &fs->rx_burst_stats); + pkt_burst_stats_display("Tx", &fs->tx_burst_stats); } } @@ -1882,8 +1882,8 @@ fwd_stats_display(void) printf("\n %s Forward statistics for port %-2d %s\n", fwd_stats_border, pt_id, fwd_stats_border); - printf(" RX-packets: %-14"PRIu64" RX-dropped: %-14"PRIu64 - "RX-total: %-"PRIu64"\n", stats.ipackets, stats.imissed, + printf(" Rx-packets: %-14"PRIu64" Rx-dropped: %-14"PRIu64 + "Rx-total: %-"PRIu64"\n", stats.ipackets, stats.imissed, stats.ipackets + stats.imissed); if (cur_fwd_eng == &csum_fwd_engine) { @@ -1897,21 +1897,21 @@ fwd_stats_display(void) ports_stats[pt_id].rx_bad_outer_ip_csum); } if (stats.ierrors + stats.rx_nombuf > 0) { - printf(" RX-error: %-"PRIu64"\n", stats.ierrors); - printf(" RX-nombufs: %-14"PRIu64"\n", stats.rx_nombuf); + printf(" Rx-error: %-"PRIu64"\n", stats.ierrors); + printf(" Rx-nombufs: %-14"PRIu64"\n", stats.rx_nombuf); } - printf(" TX-packets: %-14"PRIu64" TX-dropped: %-14"PRIu64 - "TX-total: %-"PRIu64"\n", + printf(" Tx-packets: %-14"PRIu64" Tx-dropped: %-14"PRIu64 + "Tx-total: %-"PRIu64"\n", stats.opackets, ports_stats[pt_id].tx_dropped, stats.opackets + ports_stats[pt_id].tx_dropped); if (record_burst_stats) { if (ports_stats[pt_id].rx_stream) - pkt_burst_stats_display("RX", + pkt_burst_stats_display("Rx", &ports_stats[pt_id].rx_stream->rx_burst_stats); if (ports_stats[pt_id].tx_stream) - pkt_burst_stats_display("TX", + pkt_burst_stats_display("Tx", &ports_stats[pt_id].tx_stream->tx_burst_stats); } @@ -1922,14 +1922,14 @@ fwd_stats_display(void) printf("\n %s Accumulated forward statistics for all ports" "%s\n", acc_stats_border, acc_stats_border); - printf(" RX-packets: %-14"PRIu64" RX-dropped: %-14"PRIu64"RX-total: " + printf(" Rx-packets: %-14"PRIu64" Rx-dropped: %-14"PRIu64"Rx-total: " "%-"PRIu64"\n" - " TX-packets: %-14"PRIu64" TX-dropped: %-14"PRIu64"TX-total: " + " Tx-packets: %-14"PRIu64" Tx-dropped: %-14"PRIu64"Tx-total: " "%-"PRIu64"\n", total_recv, total_rx_dropped, total_recv + total_rx_dropped, total_xmit, total_tx_dropped, total_xmit + total_tx_dropped); if (total_rx_nombuf > 0) - printf(" RX-nombufs: %-14"PRIu64"\n", total_rx_nombuf); + printf(" Rx-nombufs: %-14"PRIu64"\n", total_rx_nombuf); printf(" %s++++++++++++++++++++++++++++++++++++++++++++++" "%s\n", acc_stats_border, acc_stats_border); @@ -2337,7 +2337,7 @@ setup_hairpin_queues(portid_t pi, portid_t p_pi, uint16_t cnt_pi) } else { uint16_t next_pi; - /* Last port will be the peer RX port of the first. */ + /* Last port will be the peer Rx port of the first. */ RTE_ETH_FOREACH_DEV(next_pi) peer_rx_port = next_pi; } @@ -2366,7 +2366,7 @@ setup_hairpin_queues(portid_t pi, portid_t p_pi, uint16_t cnt_pi) if (diag == 0) continue; - /* Fail to setup rx queue, return */ + /* Fail to setup Rx queue, return */ if (rte_atomic16_cmpset(&(port->port_status), RTE_PORT_HANDLING, RTE_PORT_STOPPED) == 0) @@ -2389,7 +2389,7 @@ setup_hairpin_queues(portid_t pi, portid_t p_pi, uint16_t cnt_pi) if (diag == 0) continue; - /* Fail to setup rx queue, return */ + /* Fail to setup Rx queue, return */ if (rte_atomic16_cmpset(&(port->port_status), RTE_PORT_HANDLING, RTE_PORT_STOPPED) == 0) @@ -2536,27 +2536,27 @@ start_port(portid_t pid) if (diag == 0) continue; - /* Fail to setup tx queue, return */ + /* Fail to setup Tx queue, return */ if (rte_atomic16_cmpset(&(port->port_status), RTE_PORT_HANDLING, RTE_PORT_STOPPED) == 0) printf("Port %d can not be set back " "to stopped\n", pi); - printf("Fail to configure port %d tx queues\n", + printf("Fail to configure port %d Tx queues\n", pi); /* try to reconfigure queues next time */ port->need_reconfig_queues = 1; return -1; } for (qi = 0; qi < nb_rxq; qi++) { - /* setup rx queues */ + /* setup Rx queues */ if ((numa_support) && (rxring_numa[pi] != NUMA_NO_CONFIG)) { struct rte_mempool * mp = mbuf_pool_find (rxring_numa[pi], 0); if (mp == NULL) { - printf("Failed to setup RX queue:" + printf("Failed to setup Rx queue:" "No mempool allocation" " on the socket %d\n", rxring_numa[pi]); @@ -2573,7 +2573,7 @@ start_port(portid_t pid) mbuf_pool_find (port->socket_id, 0); if (mp == NULL) { - printf("Failed to setup RX queue:" + printf("Failed to setup Rx queue:" "No mempool allocation" " on the socket %d\n", port->socket_id); @@ -2588,13 +2588,13 @@ start_port(portid_t pid) if (diag == 0) continue; - /* Fail to setup rx queue, return */ + /* Fail to setup Rx queue, return */ if (rte_atomic16_cmpset(&(port->port_status), RTE_PORT_HANDLING, RTE_PORT_STOPPED) == 0) printf("Port %d can not be set back " "to stopped\n", pi); - printf("Fail to configure port %d rx queues\n", + printf("Fail to configure port %d Rx queues\n", pi); /* try to reconfigure queues next time */ port->need_reconfig_queues = 1; @@ -3542,7 +3542,7 @@ get_eth_dcb_conf(portid_t pid, struct rte_eth_conf *eth_conf, struct rte_eth_vmdq_dcb_tx_conf *vmdq_tx_conf = ð_conf->tx_adv_conf.vmdq_dcb_tx_conf; - /* VMDQ+DCB RX and TX configurations */ + /* VMDQ+DCB Rx and Tx configurations */ vmdq_rx_conf->enable_default_pool = 0; vmdq_rx_conf->default_pool = 0; vmdq_rx_conf->nb_queue_pools = @@ -3561,7 +3561,7 @@ get_eth_dcb_conf(portid_t pid, struct rte_eth_conf *eth_conf, vmdq_tx_conf->dcb_tc[i] = i % num_tcs; } - /* set DCB mode of RX and TX of multiple queues */ + /* set DCB mode of Rx and Tx of multiple queues */ eth_conf->rxmode.mq_mode = (enum rte_eth_rx_mq_mode) (rx_mq_mode & ETH_MQ_RX_VMDQ_DCB); @@ -3844,7 +3844,7 @@ main(int argc, char** argv) } if (!nb_rxq && !nb_txq) - printf("Warning: Either rx or tx queues should be non-zero\n"); + printf("Warning: Either Rx or Tx queues should be non-zero\n"); if (nb_rxq > 1 && nb_rxq > nb_txq) printf("Warning: nb_rxq=%d enables RSS configuration, " diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index ce83f31..e5e7392 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -88,7 +88,7 @@ enum { }; /** - * The data structure associated with RX and TX packet burst statistics + * The data structure associated with Rx and Tx packet burst statistics * that are recorded for each forwarding stream. */ struct pkt_burst_stats { @@ -122,9 +122,9 @@ extern char dynf_names[64][RTE_MBUF_DYN_NAMESIZE]; struct fwd_stream { /* "read-only" data */ portid_t rx_port; /**< port to poll for received packets */ - queueid_t rx_queue; /**< RX queue to poll on "rx_port" */ + queueid_t rx_queue; /**< Rx queue to poll on "rx_port" */ portid_t tx_port; /**< forwarding port of received packets */ - queueid_t tx_queue; /**< TX queue to send forwarded packets */ + queueid_t tx_queue; /**< Tx queue to send forwarded packets */ streamid_t peer_addr; /**< index of peer ethernet address of packets */ unsigned int retry_enabled; @@ -140,7 +140,7 @@ struct fwd_stream { uint64_t rx_bad_outer_ip_csum; /**< received packets having bad outer ip checksum */ unsigned int gro_times; /**< GRO operation times */ - uint64_t core_cycles; /**< used for RX and TX processing */ + uint64_t core_cycles; /**< used for Rx and Tx processing */ struct pkt_burst_stats rx_burst_stats; struct pkt_burst_stats tx_burst_stats; }; @@ -214,10 +214,10 @@ struct rte_port { uint8_t need_reconfig_queues; /**< need reconfiguring queues or not */ uint8_t rss_flag; /**< enable rss or not */ uint8_t dcb_flag; /**< enable dcb */ - uint16_t nb_rx_desc[RTE_MAX_QUEUES_PER_PORT+1]; /**< per queue rx desc number */ - uint16_t nb_tx_desc[RTE_MAX_QUEUES_PER_PORT+1]; /**< per queue tx desc number */ - struct rte_eth_rxconf rx_conf[RTE_MAX_QUEUES_PER_PORT+1]; /**< per queue rx configuration */ - struct rte_eth_txconf tx_conf[RTE_MAX_QUEUES_PER_PORT+1]; /**< per queue tx configuration */ + uint16_t nb_rx_desc[RTE_MAX_QUEUES_PER_PORT+1]; /**< per queue Rx desc number */ + uint16_t nb_tx_desc[RTE_MAX_QUEUES_PER_PORT+1]; /**< per queue Tx desc number */ + struct rte_eth_rxconf rx_conf[RTE_MAX_QUEUES_PER_PORT+1]; /**< per queue Rx configuration */ + struct rte_eth_txconf tx_conf[RTE_MAX_QUEUES_PER_PORT+1]; /**< per queue Tx configuration */ struct rte_ether_addr *mc_addr_pool; /**< pool of multicast addrs */ uint32_t mc_addr_nb; /**< nb. of addr. in mc_addr_pool */ uint8_t slave_flag; /**< bonding slave port */ @@ -329,7 +329,7 @@ extern uint8_t xstats_hide_zero; /**< Hide zero values for xstats display */ /* globals used for configuration */ extern uint8_t record_core_cycles; /**< Enables measurement of CPU cycles */ -extern uint8_t record_burst_stats; /**< Enables display of RX and TX bursts */ +extern uint8_t record_burst_stats; /**< Enables display of Rx and Tx bursts */ extern uint16_t verbose_level; /**< Drives messages being displayed, if any. */ extern int testpmd_logtype; /**< Log type for testpmd logs */ extern uint8_t interactive; @@ -365,13 +365,13 @@ extern uint32_t bypass_timeout; /**< Store the NIC bypass watchdog timeout */ extern uint8_t port_numa[RTE_MAX_ETHPORTS]; /* - * Store specified sockets on which RX ring to be used by ports + * Store specified sockets on which Rx ring to be used by ports * is allocated. */ extern uint8_t rxring_numa[RTE_MAX_ETHPORTS]; /* - * Store specified sockets on which TX ring to be used by ports + * Store specified sockets on which Tx ring to be used by ports * is allocated. */ extern uint8_t txring_numa[RTE_MAX_ETHPORTS]; @@ -462,7 +462,7 @@ extern uint8_t rx_pkt_nb_offs; /**< Number of specified offsets */ #define TXONLY_DEF_PACKET_LEN 64 extern uint16_t tx_pkt_length; /**< Length of TXONLY packet */ extern uint16_t tx_pkt_seg_lengths[RTE_MAX_SEGS_PER_PKT]; /**< Seg. lengths */ -extern uint8_t tx_pkt_nb_segs; /**< Number of segments in TX packets */ +extern uint8_t tx_pkt_nb_segs; /**< Number of segments in Tx packets */ extern uint32_t tx_pkt_times_intra; extern uint32_t tx_pkt_times_inter; @@ -504,8 +504,8 @@ extern uint16_t geneve_udp_port; /**< UDP port of tunnel GENEVE. */ extern portid_t nb_peer_eth_addrs; /**< Number of peer ethernet addresses. */ extern struct rte_ether_addr peer_eth_addrs[RTE_MAX_ETHPORTS]; -extern uint32_t burst_tx_delay_time; /**< Burst tx delay time(us) for mac-retry. */ -extern uint32_t burst_tx_retry_num; /**< Burst tx retry number for mac-retry. */ +extern uint32_t burst_tx_delay_time; /**< Burst Tx delay time(us) for mac-retry. */ +extern uint32_t burst_tx_retry_num; /**< Burst Tx retry number for mac-retry. */ #define GRO_DEFAULT_ITEM_NUM_PER_FLOW 32 #define GRO_DEFAULT_FLOW_NUM (RTE_GRO_MAX_BURST_ITEM_NUM / \ diff --git a/app/test-pmd/txonly.c b/app/test-pmd/txonly.c index d55ee7c..f41823f 100644 --- a/app/test-pmd/txonly.c +++ b/app/test-pmd/txonly.c @@ -52,7 +52,7 @@ uint32_t tx_ip_dst_addr = (198U << 24) | (18 << 16) | (0 << 8) | 2; static struct rte_ipv4_hdr pkt_ip_hdr; /**< IP header of transmitted packets. */ RTE_DEFINE_PER_LCORE(uint8_t, _ip_var); /**< IP address variation */ -static struct rte_udp_hdr pkt_udp_hdr; /**< UDP header of tx packets. */ +static struct rte_udp_hdr pkt_udp_hdr; /**< UDP header of Tx packets. */ RTE_DEFINE_PER_LCORE(uint64_t, timestamp_qskew); /**< Timestamp offset per queue */ RTE_DEFINE_PER_LCORE(uint32_t, timestamp_idone); /**< Timestamp init done. */ From patchwork Wed Apr 28 06:40:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "lihuisong (C)" X-Patchwork-Id: 92299 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B9113A0A0E; Wed, 28 Apr 2021 08:40:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E3F41411AA; Wed, 28 Apr 2021 08:40:47 +0200 (CEST) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by mails.dpdk.org (Postfix) with ESMTP id 98C8340691 for ; Wed, 28 Apr 2021 08:40:45 +0200 (CEST) Received: from DGGEMS406-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4FVTTD0WMWzPtxr for ; Wed, 28 Apr 2021 14:37:36 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS406-HUB.china.huawei.com (10.3.19.206) with Microsoft SMTP Server id 14.3.498.0; Wed, 28 Apr 2021 14:40:41 +0800 From: Huisong Li To: CC: , Date: Wed, 28 Apr 2021 14:40:43 +0800 Message-ID: <1619592046-22269-5-git-send-email-lihuisong@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1619592046-22269-1-git-send-email-lihuisong@huawei.com> References: <1614939741-63927-1-git-send-email-oulijun@huawei.com> <1619592046-22269-1-git-send-email-lihuisong@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH V4 4/7] app/testpmd: add check for support of reporting DCB info X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Currently, '.get_dcb_info' must be supported for the port doing DCB test, or all information in 'rte_eth_dcb_info' are zero. It should be prevented when user run cmd "port config 0 dcb vt off 4 pfc off". This patch adds the check for support of reporting dcb info. Signed-off-by: Huisong Li Signed-off-by: Lijun Ou --- app/test-pmd/cmdline.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 5fdcc1c..14750b3 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -3270,6 +3270,7 @@ cmd_config_dcb_parsed(void *parsed_result, __rte_unused void *data) { struct cmd_config_dcb *res = parsed_result; + struct rte_eth_dcb_info dcb_info; portid_t port_id = res->port_id; struct rte_port *port; uint8_t pfc_en; @@ -3292,6 +3293,14 @@ cmd_config_dcb_parsed(void *parsed_result, printf("nb_cores shouldn't be less than number of TCs.\n"); return; } + + /* Check whether the port supports the report of DCB info. */ + ret = rte_eth_dev_get_dcb_info(port_id, &dcb_info); + if (ret == -ENOTSUP) { + printf("The port must support rte_eth_dev_get_dcb_info API, or can't do dcb test.\n"); + return; + } + if (!strncmp(res->pfc_en, "on", 2)) pfc_en = 1; else From patchwork Wed Apr 28 06:40:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "lihuisong (C)" X-Patchwork-Id: 92298 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E1814A0A0E; Wed, 28 Apr 2021 08:40:46 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C084141117; Wed, 28 Apr 2021 08:40:46 +0200 (CEST) Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by mails.dpdk.org (Postfix) with ESMTP id 77BCE40041 for ; Wed, 28 Apr 2021 08:40:45 +0200 (CEST) Received: from DGGEMS406-HUB.china.huawei.com (unknown [172.30.72.60]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4FVTTC6vwLzPtvS for ; Wed, 28 Apr 2021 14:37:35 +0800 (CST) Received: from localhost.localdomain (10.69.192.56) by DGGEMS406-HUB.china.huawei.com (10.3.19.206) with Microsoft SMTP Server id 14.3.498.0; Wed, 28 Apr 2021 14:40:42 +0800 From: Huisong Li To: CC: , Date: Wed, 28 Apr 2021 14:40:46 +0800 Message-ID: <1619592046-22269-8-git-send-email-lihuisong@huawei.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1619592046-22269-1-git-send-email-lihuisong@huawei.com> References: <1614939741-63927-1-git-send-email-oulijun@huawei.com> <1619592046-22269-1-git-send-email-lihuisong@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.69.192.56] X-CFilter-Loop: Reflected Subject: [dpdk-dev] [PATCH V4 7/7] app/testpmd: remove redundant fwd streams initialization X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The fwd_config_setup() is called after init_fwd_streams(). The fwd_config_setup() will reinitialize forwarding streams. This patch removes init_fwd_streams() from init_config(). Signed-off-by: Huisong Li Signed-off-by: Lijun Ou --- app/test-pmd/testpmd.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index abcbdaa..8ed1b97 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -1576,10 +1576,6 @@ init_config(void) fwd_lcores[lc_id]->gso_ctx.flag = 0; } - /* Configuration of packet forwarding streams. */ - if (init_fwd_streams() < 0) - rte_exit(EXIT_FAILURE, "FAIL from init_fwd_streams()\n"); - fwd_config_setup(); /* create a gro context for each lcore */