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 C90F343249; Sun, 5 Nov 2023 06:57:54 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B68FB4029E; Sun, 5 Nov 2023 06:57:54 +0100 (CET) Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by mails.dpdk.org (Postfix) with ESMTP id 8AC6A40278 for ; Sun, 5 Nov 2023 06:57:52 +0100 (CET) Received: from dggpeml100024.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4SNNvV5gZVzPndR; Sun, 5 Nov 2023 13:53:42 +0800 (CST) Received: from [10.67.121.161] (10.67.121.161) by dggpeml100024.china.huawei.com (7.185.36.115) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Sun, 5 Nov 2023 13:57:50 +0800 Subject: Re: [PATCH v3 4/5] net/tap: use new API to parse kvargs To: Ferruh Yigit , CC: , References: <20230314124813.39521-1-fengchengwen@huawei.com> <20231103073811.13196-1-fengchengwen@huawei.com> <20231103073811.13196-5-fengchengwen@huawei.com> <28b3a404-bdc5-4beb-bcaf-50b94475726f@amd.com> From: fengchengwen Message-ID: Date: Sun, 5 Nov 2023 13:57:50 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 MIME-Version: 1.0 In-Reply-To: <28b3a404-bdc5-4beb-bcaf-50b94475726f@amd.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.67.121.161] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpeml100024.china.huawei.com (7.185.36.115) 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 Ferruh, Thanks for deepin, both fix in v4. On 2023/11/3 21:34, Ferruh Yigit wrote: > On 11/3/2023 7:38 AM, Chengwen Feng wrote: >> This driver could handles both key=value and only-key kvargs, so it >> should use rte_kvargs_process_opt() instead of rte_kvargs_process() to >> parse. >> >> Signed-off-by: Chengwen Feng >> --- >> drivers/net/tap/rte_eth_tap.c | 26 +++++++++++++------------- >> 1 file changed, 13 insertions(+), 13 deletions(-) >> >> diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c >> index b25a52655f..8b35de0a7a 100644 >> --- a/drivers/net/tap/rte_eth_tap.c >> +++ b/drivers/net/tap/rte_eth_tap.c >> @@ -2342,7 +2342,7 @@ rte_pmd_tun_probe(struct rte_vdev_device *dev) >> kvlist = rte_kvargs_parse(params, valid_arguments); >> if (kvlist) { >> if (rte_kvargs_count(kvlist, ETH_TAP_IFACE_ARG) == 1) { >> - ret = rte_kvargs_process(kvlist, >> + ret = rte_kvargs_process_opt(kvlist, >> ETH_TAP_IFACE_ARG, >> &set_interface_name, >> tun_name); >> @@ -2546,28 +2546,28 @@ rte_pmd_tap_probe(struct rte_vdev_device *dev) >> kvlist = rte_kvargs_parse(params, valid_arguments); >> if (kvlist) { >> if (rte_kvargs_count(kvlist, ETH_TAP_IFACE_ARG) == 1) { >> - ret = rte_kvargs_process(kvlist, >> - ETH_TAP_IFACE_ARG, >> - &set_interface_name, >> - tap_name); >> + ret = rte_kvargs_process_opt(kvlist, >> + ETH_TAP_IFACE_ARG, >> + &set_interface_name, >> + tap_name); >> if (ret == -1) >> goto leave; >> } >> >> if (rte_kvargs_count(kvlist, ETH_TAP_REMOTE_ARG) == 1) { >> - ret = rte_kvargs_process(kvlist, >> - ETH_TAP_REMOTE_ARG, >> - &set_remote_iface, >> - remote_iface); >> + ret = rte_kvargs_process_opt(kvlist, >> + ETH_TAP_REMOTE_ARG, >> + &set_remote_iface, >> + remote_iface); >> > > As far as I can see, "remote" arg without value is not valid, but driver > handles this case as if "remote" arg is not provided at all. I think it > is reasonable to keep using 'rte_kvargs_process()', and fail if 'value' > is not provided. > > >> if (ret == -1) >> goto leave; >> } >> >> if (rte_kvargs_count(kvlist, ETH_TAP_MAC_ARG) == 1) { >> - ret = rte_kvargs_process(kvlist, >> - ETH_TAP_MAC_ARG, >> - &set_mac_type, >> - &user_mac); >> + ret = rte_kvargs_process_opt(kvlist, >> + ETH_TAP_MAC_ARG, >> + &set_mac_type, >> + &user_mac); > > same here, 'rte_kvargs_process()' can be used, there is no point to give > "mac" keyword without value, that is same as not providing "mac" keyword > at all, so this can fail to notify user either provide a mac or remove > the argument. > > I think current logic is to handle "value==null" case, otherwise this is > not a valid usecase. > >> if (ret == -1) >> goto leave; >> } > > . >