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 00127A0A03; Tue, 19 Jan 2021 09:00:54 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D4871140D26; Tue, 19 Jan 2021 09:00:54 +0100 (CET) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 31D7B140D1E for ; Tue, 19 Jan 2021 09:00:54 +0100 (CET) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id DBC7C7F5B8; Tue, 19 Jan 2021 11:00:53 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru DBC7C7F5B8 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1611043253; bh=eVMdDPjnvvBRYQnip18fN+UvAPS/RnmU99rcA2j8N5Q=; h=Subject:To:Cc:References:From:Date:In-Reply-To; b=m5dfiltimpkv1tco1fsbqlISNqErDyPVclzYMVOVncxbDErV4nYyQCi5I+XXLKnPm 5Qrhy0YTPhx5HNFlNaD36FQBxsdxhm71cCHUCIwPUhh6mnbafHhda0YUbwZgGTG4sT LzhQIwNHnxSu3TODjZnDUOsrINr5pTVdFrwRF+E4= To: Xueming Li Cc: dev@dpdk.org, Viacheslav Ovsiienko , Asaf Penso , Thomas Monjalon , Ferruh Yigit References: <1611040501-11666-1-git-send-email-xuemingl@nvidia.com> <1611040501-11666-5-git-send-email-xuemingl@nvidia.com> From: Andrew Rybchenko Organization: OKTET Labs Message-ID: <5462d23b-40e3-4a22-d1ae-e84b28af83f5@oktetlabs.ru> Date: Tue, 19 Jan 2021 11:00:53 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <1611040501-11666-5-git-send-email-xuemingl@nvidia.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v5 5/9] ethdev: support PF index in representor 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" On 1/19/21 10:14 AM, Xueming Li wrote: > With Kernel bonding, multiple underlying PFs are bonded, VFs come > from different PF, need to identify representor of VFs unambiguously by > adding PF index. > > This patch introduces optional 'pf' section to representor devargs > syntax, examples: > representor=pf0vf0 - single VF representor > representor=pf[0-1]sf[0-1023] - SF representors from 2 PFs Don't we need representor=pf3 i.e. without VF or sub-function? > > > Signed-off-by: Xueming Li > Acked-by: Viacheslav Ovsiienko > Acked-by: Thomas Monjalon > --- > doc/guides/prog_guide/poll_mode_drv.rst | 2 ++ > lib/librte_ethdev/ethdev_private.c | 13 +++++++++++-- > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/doc/guides/prog_guide/poll_mode_drv.rst b/doc/guides/prog_guide/poll_mode_drv.rst > index 86e5867f1b..b2147aad30 100644 > --- a/doc/guides/prog_guide/poll_mode_drv.rst > +++ b/doc/guides/prog_guide/poll_mode_drv.rst > @@ -382,6 +382,8 @@ parameters to those ports. > -a DBDF,representor=sf[1,3,5] > -a DBDF,representor=sf[0-1023] > -a DBDF,representor=sf[0,2-4,7,9-11] > + -a DBDF,representor=pf1vf0 > + -a DBDF,representor=pf[0-1]sf[0-127] > > Note: PMDs are not required to support the standard device arguments and users > should consult the relevant PMD documentation to see support devargs. > diff --git a/lib/librte_ethdev/ethdev_private.c b/lib/librte_ethdev/ethdev_private.c > index d513f035d0..b9fdbd0f72 100644 > --- a/lib/librte_ethdev/ethdev_private.c > +++ b/lib/librte_ethdev/ethdev_private.c > @@ -120,8 +120,8 @@ rte_eth_devargs_process_list(char *str, uint16_t *list, uint16_t *len_list, > * > * Representor format: > * #: range or single number of VF representor - legacy > - * vf#: VF port representor/s > - * sf#: SF port representor/s > + * [pf#]vf#: VF port representor/s > + * [pf#]sf#: SF port representor/s > * > * Examples of #: > * 2 - single > @@ -133,6 +133,14 @@ rte_eth_devargs_parse_representor_ports(char *str, void *data) > { > struct rte_eth_devargs *eth_da = data; > > + if (str[0] == 'p' && str[1] == 'f') { > + eth_da->type = RTE_ETH_REPRESENTOR_PF; > + str += 2; > + str = rte_eth_devargs_process_list(str, eth_da->ports, > + ð_da->nb_ports, RTE_MAX_ETHPORTS); May be RTE_MAX_ETHPORTS -> RTE_DIM(eth_da->ports) ? > + if (str == NULL) > + goto err; Below we should not allow legacy VF syntax without "vf" prefix. > + } > if (str[0] == 'v' && str[1] == 'f') { > eth_da->type = RTE_ETH_REPRESENTOR_VF; > str += 2; > @@ -144,6 +152,7 @@ rte_eth_devargs_parse_representor_ports(char *str, void *data) > } > str = rte_eth_devargs_process_list(str, eth_da->representor_ports, > ð_da->nb_representor_ports, RTE_MAX_ETHPORTS); > +err: > if (str == NULL) > RTE_LOG(ERR, EAL, "wrong representor format: %s\n", str); > return str == NULL ? -1 : 0; >