From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <yliu@fridaylinux.org>
Received: from out4-smtp.messagingengine.com (out4-smtp.messagingengine.com
 [66.111.4.28]) by dpdk.org (Postfix) with ESMTP id 99FA02904
 for <dev@dpdk.org>; Wed, 24 Jan 2018 07:43:44 +0100 (CET)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailout.nyi.internal (Postfix) with ESMTP id 11D1E224E0;
 Wed, 24 Jan 2018 01:43:43 -0500 (EST)
Received: from frontend1 ([10.202.2.160])
 by compute1.internal (MEProxy); Wed, 24 Jan 2018 01:43:43 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org;
 h=cc:content-transfer-encoding:content-type:date:from
 :in-reply-to:message-id:mime-version:references:subject:to
 :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=KgFFMf+IOEWriNUyY
 tZWXgcdYl5m1dh71GWpumPq2y8=; b=LD/6LVpVon9WLDGPHAP3r9ieFOgw1ig7/
 aDWax6S0dzolDTuNC9bp/a3AbMkvNHwhRBbv1hUi6c1nbTsGpX3ZQQoJdyIxidcL
 rUX8VqgamvFdO6R52T5wy0AwnMQL24E8ey/DLBntR01H1fuk+nQ3LRzubFqJFJ0z
 ezcqTP1TAygqyqFlBKyaGeGhMfhzAEVLx216xG9kVT6xvXXRFvaCmbwDXZUw6t4u
 DdsC5f4nJHeTKGauXHdosLlLeLAZo01pdJ5J9q49QVUb3hEiL29ESE+KurXS/7/R
 Nfw/tX2ygYme8KOQThcs4Smyo1jAFmlchccLTfXpb4NDanzhAZmpw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-transfer-encoding:content-type
 :date:from:in-reply-to:message-id:mime-version:references
 :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=KgFFMf
 +IOEWriNUyYtZWXgcdYl5m1dh71GWpumPq2y8=; b=OLrZSJT8vkECthb+E1uhjp
 s0M6dla74aOMOpDuAt0K/xgfCbyMu78H0MPdF0yR74KVDVnL/dzZBZzJ0cNDSrSq
 nQIvAry0M5TGoSEXnQ+sTC+86fHm/Yo5s3HTDm2Rf5tQjNlP+cqVry9VLDJoQMrb
 TUmaj90OHg/kAME2sex99JoH7CTZ3mK1OOzQnwELJFfGQD5x0X9oYIIJJk8aNNVc
 2ePBYYBboggaEGR0GIvbhkofOu0j/CLC4+35DYdJ0+5asvkW+AZC6PZq9XW8iuyU
 28IHpxT76Mbtms+UQicidQl5lFerynKxTntPRl/qKiAnVLNy5moh2MMsujTm+yRA
 ==
X-ME-Sender: <xms:HitoWu2y4eY07ppK44OGiTksdYnjESoNIMmGSAeNRLxqoFgGrcf3ng>
Received: from yliu-mob (unknown [115.150.27.206])
 by mail.messagingengine.com (Postfix) with ESMTPA id F25937E1BE;
 Wed, 24 Jan 2018 01:43:41 -0500 (EST)
Date: Wed, 24 Jan 2018 14:43:39 +0800
From: Yuanhan Liu <yliu@fridaylinux.org>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: =?iso-8859-1?Q?Ga=EBtan?= Rivet <gaetan.rivet@6wind.com>,
 Ferruh Yigit <ferruh.yigit@intel.com>, dev@dpdk.org
Message-ID: <20180124064339.GT29540@yliu-mob>
References: <1516114218-21501-1-git-send-email-yliu@fridaylinux.org>
 <20180118094623.gu5ahrfd75b5gcct@bidouze.vm.6wind.com>
 <20180123124602.GS29540@yliu-mob> <17059484.9s6tGoQGou@xps>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <17059484.9s6tGoQGou@xps>
User-Agent: Mutt/1.5.24 (2015-08-30)
Subject: Re: [dpdk-dev] [PATCH] doc: document the new devargs syntax
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Jan 2018 06:43:44 -0000

On Tue, Jan 23, 2018 at 03:29:34PM +0100, Thomas Monjalon wrote:
> 23/01/2018 13:46, Yuanhan Liu:
> > On Thu, Jan 18, 2018 at 10:46:23AM +0100, Gaƫtan Rivet wrote:
> > > On Thu, Jan 18, 2018 at 09:46:29AM +0100, Thomas Monjalon wrote:
> > > > 18/01/2018 08:35, Yuanhan Liu:
> > > > > On Wed, Jan 17, 2018 at 12:34:08PM +0000, Ferruh Yigit wrote:
> > > > > > So does it make sense to separate them logically? Perhaps as "device identifier"
> > > > > > and "device args".
> > > > > 
> > > > > Then I think it returns back to the old issue: how could we identify a
> > > > > port when the bus id (say BDF for PCI bus) is not enough for identifying
> > > > > a port? Such case could happen when a single NIC has 2 ports sharing
> > > > > the same BDF. It could also happen with the VF representors that will
> > > > > be introduced shortly.
> > > > 
> > > > Yes, the device matching syntax must include bus category, class category
> > > > and driver category. So any device can be identified in future.
> > > > 
> > > > But I think Ferruh is talking about separating device matching
> > > > (which is described in this proposal) and device settings
> > > > (which are usually mixed in -w and --vdev options).
> > > > I agree there are different things and may be separate.
> > > > They could share the same syntax (bus/class/driver) but be separate
> > > > with a semicolon:
> > > > 	matching;settings
> > >
> > > Can you give an example?
> > 
> > Let's take port addition in OVS-DPDK as an example. It happens in 2
> > steps:
> > - port lookup (if port is already probed)
> > - dev attachment (if lookup fails)
> > 
> > And also let's assume we need probe a ConnectX-3 port. Note that for
> > ConnectX-3, there are 2 ports sharing the same PCI addr. Thus, PCI
> > BDF is not enough. And let's assume we use another extra property
> > "port".
> > 
> > If the proposal described in this patch is being used, the devarg
> > would look like following:
> > 
> >     bus=pci,id=04:00.0/class=eth,port=0/driver=mlx4,mlx4_arg_A=val,...
> > 
> > Then "bus=pci,id=04:00.0/class=eth,port=0" will be used for lookup,
> > It means we are looking for a port with PCI BDF == 04:00.0 AND
> > port == 0 (the first port of the 2 ports).
> > 
> > Note that in my proposal the driver category is not intended for lookup.
> > If any properties needed be looked in the driver category, they would
> > probably need be elevated to the class category.
> 
> It is not my thought.
> I think we should be able to use bus, class and driver properties for lookup.
> We can imagine doing a lookup on a driver specific id, which is not
> candidate to elevation to the class category.
> 
> > If port not found, then the whole string will be used for dev attachment.
> > It means we are attaching a port with PCI BDF == 04.00.0 AND
> > port == 0 (the 2nd port will not be attached).
> > 
> > 
> > And here is how the devargs would look like if "matching;settings" is
> > being used:
> > 
> >     bus=pci,id=04:00.0/class=eth,port=0;bus=pci,id=04:00.0/class=eth,port=0/driver=mlx4,mlx4_arg_A=val,...
> > 
> > The part before ";" will be used for lookup and the later part will be
> > used for attachment. It should work. It just looks redundant.
> 
> It does not have to be redundant.
> It can be:
> 	bus=pci,id=04:00.0/class=eth,port=0;driver=mlx4,mlx4_arg1=settings1,...

I knew you would make such reply :)
Then there is a contradiction. According your suggestion, the "port=0" belongs
to the matching section, but it also has to be used in the settings section.

> Another example, setting the MAC address:
> 	bus=pci,id=04:00.0/class=eth,port=0;class=eth,mac=00:11:22:33:44:55

What's the scenario it will be used? And who is going to parse it?

	--yliu