From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 65B51432F9; Sat, 11 Nov 2023 02:17:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3ABA1402A6; Sat, 11 Nov 2023 02:17:57 +0100 (CET) Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by mails.dpdk.org (Postfix) with ESMTP id A7C224025C for ; Sat, 11 Nov 2023 02:17:55 +0100 (CET) Received: from kwepemm000004.china.huawei.com (unknown [172.30.72.55]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4SRyP94cH7zMmXg; Sat, 11 Nov 2023 09:13:17 +0800 (CST) Received: from [10.67.121.59] (10.67.121.59) by kwepemm000004.china.huawei.com (7.193.23.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Sat, 11 Nov 2023 09:17:48 +0800 Message-ID: <75d6ecbb-42b6-e591-754f-a70d1aa29fc5@huawei.com> Date: Sat, 11 Nov 2023 09:17:47 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 Subject: Re: [PATCH v1 1/3] app/testpmd: fix random value to set tunnel TSO To: Ivan Malov CC: , , Aman Singh , Yuying Zhang , Andrew Rybchenko , Bernard Iremonger , Ivan Ilchenko , References: <20231110081925.14142-1-lihuisong@huawei.com> <20231110081925.14142-2-lihuisong@huawei.com> <7046579c-a129-69c2-f72b-94ab2fa5d5fd@arknetworks.am> From: "lihuisong (C)" In-Reply-To: <7046579c-a129-69c2-f72b-94ab2fa5d5fd@arknetworks.am> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.121.59] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemm000004.china.huawei.com (7.193.23.18) X-CFilter-Loop: Reflected 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 Hi, Thanks for your review. 在 2023/11/10 19:42, Ivan Malov 写道: > Hi, > > (minor question below) > > On Fri, 10 Nov 2023, Huisong Li wrote: > >> Currently, testpmd set tunnel TSO offload even if fail to get dev_info. >> In this case, the 'tx_offload_capa' in dev_info is a random value, >> >> Fixes: 6f51deb903b2 ("app/testpmd: check status of getting ethdev info") >> Cc: stable@dpdk.org >> >> Signed-off-by: Huisong Li >> --- >> app/test-pmd/cmdline.c | 29 ++++++++++++++--------------- >> 1 file changed, 14 insertions(+), 15 deletions(-) >> >> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c >> index 05078f8377..25462bdbfc 100644 >> --- a/app/test-pmd/cmdline.c >> +++ b/app/test-pmd/cmdline.c >> @@ -5035,39 +5035,33 @@ struct cmd_tunnel_tso_set_result { >>     portid_t port_id; >> }; >> >> -static struct rte_eth_dev_info >> -check_tunnel_tso_nic_support(portid_t port_id) >> +static void >> +check_tunnel_tso_nic_support(portid_t port_id, uint64_t >> tx_offload_capa) >> { >> -    struct rte_eth_dev_info dev_info; > > Why not just initialise this to zeros? The main purpose of this function is to check which tunnel TSO offload port supports instead of getting dev_info, right? > >> - >> -    if (eth_dev_info_get_print_err(port_id, &dev_info) != 0) >> -        return dev_info; >> - >> -    if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO)) >> +    if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO)) >>         fprintf(stderr, >>             "Warning: VXLAN TUNNEL TSO not supported therefore not >> enabled for port %d\n", >>             port_id); >> -    if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO)) >> +    if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO)) >>         fprintf(stderr, >>             "Warning: GRE TUNNEL TSO not supported therefore not >> enabled for port %d\n", >>             port_id); >> -    if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO)) >> +    if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO)) >>         fprintf(stderr, >>             "Warning: IPIP TUNNEL TSO not supported therefore not >> enabled for port %d\n", >>             port_id); >> -    if (!(dev_info.tx_offload_capa & >> RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO)) >> +    if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO)) >>         fprintf(stderr, >>             "Warning: GENEVE TUNNEL TSO not supported therefore not >> enabled for port %d\n", >>             port_id); >> -    if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO)) >> +    if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO)) >>         fprintf(stderr, >>             "Warning: IP TUNNEL TSO not supported therefore not >> enabled for port %d\n", >>             port_id); >> -    if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO)) >> +    if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO)) >>         fprintf(stderr, >>             "Warning: UDP TUNNEL TSO not supported therefore not >> enabled for port %d\n", >>             port_id); >> -    return dev_info; >> } >> >> static void >> @@ -5077,6 +5071,7 @@ cmd_tunnel_tso_set_parsed(void *parsed_result, >> { >>     struct cmd_tunnel_tso_set_result *res = parsed_result; >>     struct rte_eth_dev_info dev_info; >> +    int ret; >> >>     if (port_id_is_invalid(res->port_id, ENABLED_WARN)) >>         return; >> @@ -5088,7 +5083,11 @@ cmd_tunnel_tso_set_parsed(void *parsed_result, >>     if (!strcmp(res->mode, "set")) >>         ports[res->port_id].tunnel_tso_segsz = res->tso_segsz; >> >> -    dev_info = check_tunnel_tso_nic_support(res->port_id); >> +    ret = eth_dev_info_get_print_err(res->port_id, &dev_info); >> +    if (ret != 0) >> +        return; >> + >> +    check_tunnel_tso_nic_support(res->port_id, >> dev_info.tx_offload_capa); >>     if (ports[res->port_id].tunnel_tso_segsz == 0) { >>         ports[res->port_id].dev_conf.txmode.offloads &= >>             ~(RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | >> -- >> 2.33.0 >> >> > > Thank you. > > .