From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id D911AA034F;
	Wed, 31 Mar 2021 07:49:24 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id BDBD14069E;
	Wed, 31 Mar 2021 07:49:24 +0200 (CEST)
Received: from NAM02-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam07on2067.outbound.protection.outlook.com [40.107.95.67])
 by mails.dpdk.org (Postfix) with ESMTP id 8036640141
 for <dev@dpdk.org>; Wed, 31 Mar 2021 07:49:23 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=QqlcV314+PsOH9fYui3mys+FBBtuiesWq8MV/R5xyv066oxfm1BgMTCNoEVwPAa5WajnpgsruodnP/1/uNKUO3WyyscWTwKjrpOd0vk0ScNSSfH+TC8hlec5O4TY38JJg0fRYYpT/aHiK7Hxb+HH1vdQaSWfpR1dIaQVAn9o6BEa7+B+xDRa3/dsgzvhDYwh0F+HavTWrxLsgJjO50ORxPRqDxXCbs1agvR4qbuJUReqHxasPJxJ49esLWZAL3GW2ZJ8zLAcJYwi8HwKaGG4DNULDnvf4du5iYJGOfN03Ovj7/6YGRTPmRmeNpIM/I8mZcRze7W74KpWDZNdLEeByA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=N+iNlStnUHWvdetaJPQLCxVu8j0vv52qNJthxbadwys=;
 b=Zdq4FSZR4lWmVpHqEET6r1F604LcA8XfG1wWhwJymCl0YrRGFy8mxlUSlfcORHeebT9CUvLmpN4h6IcwcOK91qtH8x27tIruiWMZa6OM8Oyl0OK00LJcec0oBMrg3iNTkunjbcyq9OlMu6lWlIs2EhSt6iIQc1UyqLOJsnhDT0rP8zqOP/cRwuO5I72EMPBBQ07R9PI/hN2KwuaLqkiCvp7TZbhJQ9EYXRxCq9TPaCYalXfCud9qrnxhcBm0Ge44USV5jGPK2rVOqLEYadZnDqiSL9oOpY/bsa8k4C1O2kafIB2Dby99FsU7dkUhYYtwILgVKXJFtfO+rZeTr2/PsA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com;
 dkim=pass header.d=nvidia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=N+iNlStnUHWvdetaJPQLCxVu8j0vv52qNJthxbadwys=;
 b=rtxXbcT2aQZJ12w1jcU3gfPNjFtLNAx9+FrmkLZ2Z/9vKCCyHwom+r5wsxGfaWNIQ92Jnbz2l0P61E8QWz8A+gshOPVS5aGoiMEQ7JEO42MqCnB9x3CdI6i2gbNQeHUok+y2yE91EKjbQrRpNoIZtkN+mrk8Y4XJv55FVlF7hfqoJJyUZLxt0bsuPRS9SdFMMUnohhQYDdPZCsB+YIn5KXmxFYo+fU+Mk6jLlMppx6Vw7EO0LFifbGKYoc4raKZOj7lMa7gPNcMvYwma+V2OIIvmsIh9t08HszZoauNnei0mQOAi/wKArPgRyv2WOlDtXpFH67MoB20KwQA5cHNnqw==
Received: from BY5PR12MB4324.namprd12.prod.outlook.com (2603:10b6:a03:209::10)
 by BY5PR12MB3811.namprd12.prod.outlook.com (2603:10b6:a03:1a1::27)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.24; Wed, 31 Mar
 2021 05:49:21 +0000
Received: from BY5PR12MB4324.namprd12.prod.outlook.com
 ([fe80::b919:53f4:6757:331c]) by BY5PR12MB4324.namprd12.prod.outlook.com
 ([fe80::b919:53f4:6757:331c%5]) with mapi id 15.20.3977.033; Wed, 31 Mar 2021
 05:49:21 +0000
From: "Xueming(Steven) Li" <xuemingl@nvidia.com>
To: "Wang, Haiyue" <haiyue.wang@intel.com>, Stephen Hemminger
 <stephen@networkplumber.org>
CC: "dev@dpdk.org" <dev@dpdk.org>, Slava Ovsiienko <viacheslavo@nvidia.com>,
 Asaf Penso <asafp@nvidia.com>
Thread-Topic: [dpdk-dev] [PATCH v6 0/9] ethdev: support SubFunction representor
Thread-Index: AQHXAoCvAbhl2+JarE+9Tv+NEu6dkaplCKWAgAClNACAOC/x4A==
Date: Wed, 31 Mar 2021 05:49:21 +0000
Message-ID: <BY5PR12MB432412A193245BA812193EA1A17C9@BY5PR12MB4324.namprd12.prod.outlook.com>
References: <1608303356-13089-2-git-send-email-xuemingl@nvidia.com>
 <1613272907-22563-1-git-send-email-xuemingl@nvidia.com>
 <20210222175431.05de1f2b@hermes.local>
 <BN8PR11MB379576F03F98813F377A3E19F7809@BN8PR11MB3795.namprd11.prod.outlook.com>
In-Reply-To: <BN8PR11MB379576F03F98813F377A3E19F7809@BN8PR11MB3795.namprd11.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: intel.com; dkim=none (message not signed)
 header.d=none;intel.com; dmarc=none action=none header.from=nvidia.com;
x-originating-ip: [207.244.67.150]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: c6049a93-9680-406b-a645-08d8f408bb58
x-ms-traffictypediagnostic: BY5PR12MB3811:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <BY5PR12MB38115F11D217EDFAFEF5CD0CA17C9@BY5PR12MB3811.namprd12.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:4941;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: u289lGytrNZkabizHK3rajyQCzrKQvaJL2GemFVz6r5wjSoLQuNALSeIEuKrw8nUOI6yHZPhpYlN2qB+jDbJ7t7sDRz37g0Q9cX1BQCCTu2uVCGbudhmmc4e2gwHEsC0IEmHSh+H7i+xCg6fHRmz5BuCfJnWRLWhg1yBK6kyaeSVRkX2/B15TJDV9m7QM7vMeSDvqj1BLgQqoW/2hF5ALhZo8SYIDNPGem3Na51qis55mL1Ad+bJscD1U1zjDmCp0I9xXXTfHOZK91q+V1Amz+hKJvnInvfoLQhBYOml/Hc0yp5t5SEF72oAahqyI3erW04LLcsE4B9SAU7PkbwoKo4OWNmZ+BNUulduDxsp9pSUw137balcsihwmwi1ZrIGdzwy5ZdfkqLAG3J6Y6gR2dSj5uJYcZg1wrjurVqscEfnKM4WDrU9jxY2/EpiZUZ5htPGTKCnNyKOKOtKTTXkiE2oXlpTnsIsW3JGk/8/B0zi0Uz/XABLCKo8uieKilmyyLUrw4+79S4tEAzRSIaLp2jMpQCpdNJJjdTxulYoyzpP5879k0l7pwrZaQ4WgofxKzeR9pQM6tx1+YeRk78moj/a+RvxffesK2M1KXjXNrWZ7+L9p7fvgCHCuG8xrV0R/QqEZkVXotbLR7zAYkSSH6z1Dxb2zdm7wIhsWOqwW0LX7rb5BXlUryqQtlItrMdNacbyKbgeKNNJmGQ7Em35kXF/wOAW1lnmUNJXPA6V5hM=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:BY5PR12MB4324.namprd12.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(4636009)(136003)(376002)(346002)(396003)(39860400002)(366004)(4326008)(5660300002)(71200400001)(478600001)(7696005)(55016002)(86362001)(9686003)(38100700001)(83380400001)(8676002)(55236004)(6506007)(53546011)(8936002)(316002)(76116006)(107886003)(110136005)(66556008)(66476007)(2906002)(66946007)(64756008)(186003)(33656002)(66446008)(26005)(966005)(52536014)(54906003);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?m70fpZHgMg/mQxmdJ0IrENE8tS04TwUhJc/HZ1740FJmDh+QDXIoCszSWBrz?=
 =?us-ascii?Q?Umin/k9ryzBunDSPx75FA1GoqnRSFg/rIkVdk3H2iCe7Rz7/y1Lwt3WTZ3l7?=
 =?us-ascii?Q?n6gMl+k1BrbFCO27yLwBPgi+GPDCDssBJg/7bJnpB1Dn3sUXuGPU09/n4v9e?=
 =?us-ascii?Q?NXbj/K+Zofl2/hHfH9cgrmxpMpIXfVl+ZI2d1na2rSMe6QosM7q1punCSCP4?=
 =?us-ascii?Q?KEiO/0DpiNM2oMLJ+4RqdJGP7zQSseOgbsdjlD3GduC3Ajo7MLBYm85vvFJN?=
 =?us-ascii?Q?Zdo1UrGv8oSdnYNgkeN1Ptat9AfoMJ3ui7pUyD2r4gzgCLpeeTriXrwD0Agl?=
 =?us-ascii?Q?G5mfSlM5qQFe4nzfGVLITqPHhebMLi+doBrIoTs8lorwY0QNvgS8BHfFC4gV?=
 =?us-ascii?Q?apq41szVoyrlPrWxgaUzpqsvzdIezcGRzgExK1DTSa9QPHtX4VIYnIo2sYkM?=
 =?us-ascii?Q?4E/aoYFG5C4KUxI7VuW8Q5l4b+qOSoXgEe42fPFla6XVuSdUo4ZAaCf/XeBg?=
 =?us-ascii?Q?LeUwx5xkDuBskLXxYM2ZNsGI4V/mezt4O+rfdP+kZCyAKLU4cFyGTfLF+0Rb?=
 =?us-ascii?Q?r0+2mwp84gmyWKS6qt3JFP1XeJ2wpFeRic1tNTMNyuwyEOlQnBu2TaLZtmEU?=
 =?us-ascii?Q?IBn7AKzwiwYBL566X4gLZbDklhbC2qBRDqle3CAEWW//487cK8+7lALo0rLI?=
 =?us-ascii?Q?SyCQv1er/23vsHEAZL7B4jdLzLli+L7UvwtMWybYl3yqJpIKKFN918UP4EcO?=
 =?us-ascii?Q?CQ2tGyVjZktImT1LOMFn5X2VXxaCufBbU70J3Qmw3FXvY65awCqv3NRNN5G1?=
 =?us-ascii?Q?eQZd2v2h4Wj5k9lfZ6YQvYvTF+TzJGeXAccuStBlaXVHWMrW3YBZkDedeqGF?=
 =?us-ascii?Q?GgD9XRIvOZeUDhgyx9CxTg+RO/dgvSWABG23ifNU0Z2dDMvEwilhDhWUTB9p?=
 =?us-ascii?Q?tR+bBUpnf3iO19opsIdZmgjl0P3One0hA07EpDa9eYKltyHlkrIeeovzUQLo?=
 =?us-ascii?Q?KQxN4VMWUvAzBSm2KbN7E836svuf4YYlam+zRk3Eojb+B4ukDn1ISAcQKWlR?=
 =?us-ascii?Q?yk+Sh45SK01BRzj7tJvES56+nu6mF3GAfpRHk4F04cffKVv1YlMKSN8LhKKT?=
 =?us-ascii?Q?6liBEVfqp6zNPHWNodF9N7jQQtRqkQpYMZ9bUFEujxAQuhlZBmE80unTnLXf?=
 =?us-ascii?Q?7iY3De7lzHi9D4NR2okZvkj7zdWIG93ghJ4VcsybrBNEA9FKXd/zhY3SVC6F?=
 =?us-ascii?Q?9NMFkHgZixNR/KMztI1qGyoTRXOV6uR6XMaLZpUQavWLsvi7Ce+Nqg+PLASl?=
 =?us-ascii?Q?Ic0f0pSAo15UJ57pc94ew1bn?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BY5PR12MB4324.namprd12.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: c6049a93-9680-406b-a645-08d8f408bb58
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2021 05:49:21.1476 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: XhDt9Lio4PlctQUuQypueUcOwdty6+1ap/FHcrRDAjTarYPOtuHRv7xbNmw2QP6Slf0yDe5Ng3A5aAl8849nXA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB3811
Subject: Re: [dpdk-dev] [PATCH v6 0/9] ethdev: support SubFunction
 representor
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>



>-----Original Message-----
>From: Wang, Haiyue <haiyue.wang@intel.com>
>Sent: Tuesday, February 23, 2021 7:46 PM
>To: Stephen Hemminger <stephen@networkplumber.org>; Xueming(Steven) Li <xu=
emingl@nvidia.com>
>Cc: dev@dpdk.org; Slava Ovsiienko <viacheslavo@nvidia.com>; Asaf Penso <as=
afp@nvidia.com>
>Subject: RE: [dpdk-dev] [PATCH v6 0/9] ethdev: support SubFunction represe=
ntor
>
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Stephen Hemminger
>> Sent: Tuesday, February 23, 2021 09:55
>> To: Xueming Li <xuemingl@nvidia.com>
>> Cc: dev@dpdk.org; Viacheslav Ovsiienko <viacheslavo@nvidia.com>; Asaf
>> Penso <asafp@nvidia.com>
>> Subject: Re: [dpdk-dev] [PATCH v6 0/9] ethdev: support SubFunction
>> representor
>>
>> On Sun, 14 Feb 2021 03:21:30 +0000
>> Xueming Li <xuemingl@nvidia.com> wrote:
>>
>> > SubFunction [1] is a portion of the PCI device, a SF netdev has its
>> > own dedicated queues(txq, rxq). A SF netdev supports E-Switch
>> > representation offload similar to existing PF and VF representors. A
>> > SF shares PCI level resources with other SFs and/or with its parent PC=
I function.
>> >
>> > From SmartNIC perspective, when PCI device is shared for multi-host,
>> > representors for host controller and host PF is required.
>> >
>> > This patch set introduces new representor types in addtion to
>> > existing VF representor. Syntax:
>> >
>> > [[c#]pf#]vf#: VF port representor/s from controller/pf
>> > [[c#]pf#]sf#: SF port representor/s from controller/pf
>> > #: VF representor - for backwards compatibility
>> >
>> > "#" is number instance, list or range, valid examples:
>> >   1, [1,3,5], [0-3], [0,2-4,6]
>> >
>> > For backward compatibility, this patch also introduces new netdev
>> > capability to indicate the capability of supportting SF representor.
>> >
>> > Version history:
>> >  RFC:
>> >  	initial version [2]
>> >  V2:
>> >     - separate patch for represnetor infrastructure, controller, pf an=
d
>> >       sf.
>> >     - replace representor ID macro with functions:
>> >       rte_eth_representor_id_encode()
>> >       rte_eth_representor_id_parse()
>> >     - new patch to allow devargs with same PCI BDF but different
>> >       representors.
>> >     - other minor code updates according to comments, thanks Andrew!
>> >     - update document
>> >  V3:
>> >     - improve probing of allowed devargs with same name.
>> >     - parse single word of kvargs as key.
>> >     - update kvargs test cases.
>> >  V4:
>> >     - split first representor refactor patch into
>> >       1: add representor type
>> >       2: refector representor list parsing
>> >     - push the patch supporting multi-devargs for same device.
>> >  V5:
>> >     - add comments for parsing functions
>> >     - update switch_representation.rst - Thanks Ajit
>> >  V6:
>> >     - split representor types into different patches, move to
>> >       rte_ethdev.h
>> >     - improvements of rte_eth_devargs_process_list() according to
>> >       Andrew's suggestion
>> >     - fixed PF probe failure for Intel i40e
>> >     - replace ethdev SF capability with rte_eth_representor_info_get()
>> >     - add new ethdev ops api to get representor info from PMD
>> >     - replace representor ID encode/decode with conversion from
>> >       representor info
>> >     - change ethdev representor iterator to use new ID encoding
>> >
>> >
>> > Xueming Li (9):
>> >   ethdev: introduce representor type
>> >   ethdev: support representor port list
>> >   ethdev: support new VF representor syntax
>> >   ethdev: support sub function representor
>> >   ethdev: support PF index in representor
>> >   ethdev: support multi-host in representor
>> >   ethdev: new API to get representor info
>> >   ethdev: representor iterator compare complete info
>> >   kvargs: update parser to support lists
>> >
>> >  app/test/test_kvargs.c                        |  46 ++++-
>> >  config/rte_config.h                           |   1 +
>> >  doc/guides/prog_guide/poll_mode_drv.rst       |  13 +-
>> >  .../prog_guide/switch_representation.rst      |  35 +++-
>> >  drivers/net/bnxt/bnxt_ethdev.c                |   7 +
>> >  drivers/net/enic/enic_ethdev.c                |   6 +
>> >  drivers/net/i40e/i40e_ethdev.c                |   7 +
>> >  drivers/net/ixgbe/ixgbe_ethdev.c              |   7 +
>> >  drivers/net/mlx5/linux/mlx5_os.c              |  11 ++
>> >  lib/librte_ethdev/ethdev_driver.h             |  49 ++++-
>> >  lib/librte_ethdev/ethdev_private.c            | 173 ++++++++++++-----=
-
>> >  lib/librte_ethdev/ethdev_private.h            |   3 -
>> >  lib/librte_ethdev/rte_class_eth.c             |  40 ++--
>> >  lib/librte_ethdev/rte_ethdev.c                | 102 ++++++++++-
>> >  lib/librte_ethdev/rte_ethdev.h                |  53 ++++++
>> >  lib/librte_ethdev/version.map                 |   4 +
>> >  lib/librte_kvargs/rte_kvargs.c                | 101 +++++++---
>> >  17 files changed, 535 insertions(+), 123 deletions(-)
>> >
>>
>> A couple of higher level design questions:
>> 1. How does Linux and other OS handle this in their API?
>> 2. This solution seems quite tied into a specific implementation on your=
 hardware.
>>    Is there a PCI standard for this?
>
>> 3. Maybe a more general solution where these were represented as buses w=
ould
>>    allow for other connection methods in the future?
>
>It should be "auxiliary bus", I think. ;-) https://git.kernel.org/pub/scm/=
linux/kernel/git/torvalds/linux.git/tree/drivers/base/auxiliary.c
>
>mlx5 subfunction support
>https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/=
?id=3D24a790da0ac4d9bcce2a9becc8799241716672f6

Hi,

The Auxiliary driver for DPDK posted, welcome to have a look :)
http://patchwork.dpdk.org/project/dpdk/patch/20210311130113.31382-1-xueming=
l@nvidia.com/

Thanks