All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <jakub.kicinski@netronome.com>
To: Parav Pandit <parav@mellanox.com>
Cc: Jiri Pirko <jiri@resnulli.us>,
	"Samudrala, Sridhar" <sridhar.samudrala@intel.com>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"oss-drivers@netronome.com" <oss-drivers@netronome.com>
Subject: Re: [PATCH net-next v2 4/7] devlink: allow subports on devlink PCI ports
Date: Mon, 18 Mar 2019 12:29:47 -0700	[thread overview]
Message-ID: <20190318122947.66754e4b@cakuba.netronome.com> (raw)
In-Reply-To: <VI1PR0501MB22712659E87910ECF0573CBFD1470@VI1PR0501MB2271.eurprd05.prod.outlook.com>

On Mon, 18 Mar 2019 15:43:20 +0000, Parav Pandit wrote:
> > -----Original Message-----
> > From: Jakub Kicinski <jakub.kicinski@netronome.com>
> > Sent: Friday, March 15, 2019 8:16 PM
> > To: Parav Pandit <parav@mellanox.com>
> > Cc: Jiri Pirko <jiri@resnulli.us>; Samudrala, Sridhar
> > <sridhar.samudrala@intel.com>; davem@davemloft.net;
> > netdev@vger.kernel.org; oss-drivers@netronome.com
> > Subject: Re: [PATCH net-next v2 4/7] devlink: allow subports on devlink PCI
> > ports
> > 
> > On Fri, 15 Mar 2019 22:12:13 +0000, Parav Pandit wrote:  
> > > > On Fri, 15 Mar 2019 21:08:14 +0100, Jiri Pirko wrote:  
> > > > > >> IIUC, Jiri/Jakub are proposing creation of 2 devlink objects
> > > > > >> for each port - host facing ports and switch facing ports. This
> > > > > >> is in addition to the netdevs that are created today.  
> > > >
> > > > To be clear I'm not in favour of the dual-object proposal.
> > > >  
> > > > > >I am not proposing any different.
> > > > > >I am proposing only two changes.
> > > > > >1. control hostport params via referring hostport (not via
> > > > > >indirect
> > > > > >peer)  
> > > > >
> > > > > Not really possible. If you passthrough VF into VM, the hostport
> > > > > goes along with it.
> > > > >  
> > > > > >2. flavour should not be vf/pf, flavour should be hostport, switchport.
> > > > > >Because switch is flat and agnostic of pf/vf/mdev.  
> > > > >
> > > > > Not sure. It's good to have this kind of visibility.  
> > > >
> > > > Yes, this subthread honestly makes me go from 60% sure to 95% sure
> > > > we shouldn't do the dual object thing :(  Seems like Parav is
> > > > already confused by it and suggests host port can exist without
> > > > switch port :(
> > > >  
> > > I am almost sure that I am not confused.
> > > I am clear that hostports should be configured by devlink instance
> > > which has the capability to program it.  
> > 
> > Right now a devlink port is something that the datapath of an ASIC can
> > address.  All flavours we have presently are basically various MACs - physical
> > (front panel ports), DSA - for ASIC interconnects on a multi-ASIC board, CPU -
> > for connecting to a MAC of a NIC.
> >   
> Devlink port implementation in commit doesn't say that it is for ASIC datapath or limited to ASIC datapath id.
> It is not right to say that 'whole datapath' object should be represented with just single object 'port'.
> Datapath involves various stages in ASIC each does different processing.
> These datapath objects are interconnected, i.e. hostport is connected to switchport.
> Commit [1] says devlink port is physical port. However we already have 3 flavours of port.
> 
> > Jiri's flavour proposal was strictly extending the same logic to SR-IOV.  Each
> > object addressable within the datapath gets a port.
> > The datapath's ID can be used as port_index.
> >   
> And as I said, it is already restrictive.
> Port is a port, it can be labeled for vf/pf, but flavour is not really vf/pf.
> Also label applies more on the hostport side vs switchport.
> 
> > I just reimplemented his patches here and added the subports which I think
> > he wasn't aware of as they are a quirk of old NFP ASICs.
> > 
> > Having 3 objects for the same datapath ID is a significant departure from the
> > existing devlink port semantics.
> >   
> It is really not same datapath ID.
> Because if that is the case, we should be programming mac address on the rep-netdev itself.
> But we are not doing that because rep-netdev represents only 'eswitch port'.

Okay, I explained the history to you here, you can write your own if
you want.

> > > When hostport is in VF, that VF usually won't have privilege to
> > > program it and won't have visibility to eswitch either.  
> > 
> > If VM has no visibility into the eswitch and no permission to configure
> > things, what use does the object serve?
> >   
> To view device properties, health, RO registers, more importantly its port details.

Device != port.

> Yonatan is working on grouping these devlink ports and those are control through devlink APIs.
> Jiri is actively internally reviewing those patches since last 3+ weeks, not finished yet.
> So this visibility is needed anyway.

No idea what "grouping devlink ports" may refer to, but I'd be
surprised if it's relevant to VMs.

> > > Why would you like to start with restrictive model of peer view only?  
> > 
> > "Restrictive model" is one way of putting it.  I'd rather say that we are not
> > adding objects which:
> >  (a) do not adhere to current semantics;
> >  (b) have no distinct function.
> >   
> hostport certainly has distinct function than switchport.
> i.e. to program host side parameters. (eth.mac, rdma.port_guid and more in future).

Yeah, Ethernet or IB address, and so many other things (we just can't
happen to think about any right now)...

> > We can make the "add MAC address" command not use the word peer:
> > 
> > devlink port addr_pool add pci/0000:05:00.0/10003 type eth
> > 00:11:22:33:44:55 devlink port addr_pool del pci/0000:05:00.0/10003 type
> > eth 00:11:22:33:44:55
> > 
> > if the "peer" doesn't sit right.
> >   
> > > Hostports exist for infiniband HCA without switchport.
> > > We should be able to manage hostport objects without creating fake  
> > eswitch sw object.
> > 
> > It sounds like the RDMA subsystem is lacking a model to represent all its
> > objects, but that's RDMA's problem to solve..
> >   
> devlink framework is not limited to Ethernet, it operates on bus/device notion.
> So for Ethernet vendors program mac address.
> For rdma vendor programs port_guid (which is equivalent of mac address).
> 
> devlink also publishes rdma device info today.
> net/core/devlink.c has very well established IB device info exposed via devlink_nl_port_fill() for more than 3 years now in commit [2].
> It is not fair to say create, solve it somewhere else.
> 
> > In netdev world we have netdevs for ports which a used for bulk of the
> > configuration, most importantly - forwarding.
> >   
> > > Jakub,
> > > Can you please point to some example other than veth-pair where you
> > > configure host param (such as mac address) through a switch?  
> > 
> > Existing "legacy" SR-IOV NDOs.
> >   
> That is perfect example of programming hostport parameters, without a eswitch..
> At high level, I was looking where you open switch GUI/cli or something equivalent that program's host's mac address..
> So far we don't have such equivalent good example yet..
> 
> > > An existing example will help me to map it to devlink eswitch proposal.
> > > If we go peer programming route, what are your thoughts on how should
> > > we program infiniband hostports which doesn't have peer ports?  
> > 
> > Again, you may be trying to fix RDMA's lack of control objects, which may be
> > better fixed elsewhere..  
> 
> devlink port is link agnostic control object.
> 
> [1] bfcd3a46617209454cfc0947ab093e37fd1e84ef
> [2] commit id bfcd3a466


  reply	other threads:[~2019-03-18 19:29 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-01 18:04 [PATCH net-next v2 0/7] devlink: expose PF and VF representors as ports Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 1/7] nfp: split devlink port init from registration Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 2/7] devlink: add PF and VF port flavours Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 3/7] nfp: register devlink ports of all reprs Jakub Kicinski
2019-03-02  8:43   ` Jiri Pirko
2019-03-02 19:07     ` Jakub Kicinski
2019-03-04  7:36       ` Jiri Pirko
2019-03-04 23:32         ` Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 4/7] devlink: allow subports on devlink PCI ports Jakub Kicinski
2019-03-02  9:41   ` Jiri Pirko
2019-03-02 19:48     ` Jakub Kicinski
2019-03-04  7:56       ` Jiri Pirko
2019-03-05  0:33         ` Jakub Kicinski
2019-03-05 11:06           ` Jiri Pirko
2019-03-05 17:15             ` Jakub Kicinski
2019-03-05 19:59               ` Parav Pandit
2019-03-06 12:20               ` Jiri Pirko
2019-03-06 17:56                 ` Jakub Kicinski
2019-03-07  3:56                   ` Parav Pandit
2019-03-07  9:48                   ` Jiri Pirko
2019-03-08  2:52                     ` Jakub Kicinski
2019-03-08 14:54                       ` Jiri Pirko
2019-03-08 19:09                         ` Jakub Kicinski
2019-03-11  8:52                           ` Jiri Pirko
2019-03-12  2:10                             ` Jakub Kicinski
2019-03-12 14:02                               ` Jiri Pirko
2019-03-12 20:56                                 ` Jakub Kicinski
2019-03-13  6:07                                   ` Jiri Pirko
2019-03-13 16:17                                     ` Jakub Kicinski
2019-03-13 16:22                                       ` Jiri Pirko
2019-03-13 16:55                                         ` Jakub Kicinski
2019-03-14  7:38                                           ` Jiri Pirko
2019-03-14 22:09                                             ` Jakub Kicinski
2019-03-14 22:35                                               ` Parav Pandit
2019-03-14 23:39                                                 ` Jakub Kicinski
2019-03-15  1:28                                                   ` Parav Pandit
2019-03-15  1:31                                                     ` Parav Pandit
2019-03-15  2:15                                                     ` Samudrala, Sridhar
2019-03-15  2:40                                                       ` Parav Pandit
     [not found]                                                         ` <ae938b4f-5fa9-3c33-8ae6-eab2d3d9f1ec@intel.com>
2019-03-15 15:32                                                           ` Parav Pandit
2019-03-15 20:08                                                             ` Jiri Pirko
2019-03-15 20:44                                                               ` Jakub Kicinski
2019-03-15 22:12                                                                 ` Parav Pandit
2019-03-16  1:16                                                                   ` Jakub Kicinski
2019-03-18 15:43                                                                     ` Parav Pandit
2019-03-18 19:29                                                                       ` Jakub Kicinski [this message]
2019-03-18 12:11                                                                 ` Jiri Pirko
2019-03-18 19:16                                                                   ` Jakub Kicinski
2019-03-21  8:45                                                                     ` Jiri Pirko
2019-03-21 15:14                                                                       ` Parav Pandit
2019-03-21 16:14                                                                         ` Jiri Pirko
2019-03-21 16:52                                                                           ` Parav Pandit
2019-03-21 17:20                                                                             ` Jiri Pirko
2019-03-21 17:34                                                                               ` Parav Pandit
2019-03-22 16:27                                                                                 ` Jiri Pirko
2019-03-23  0:37                                                                                   ` Parav Pandit
2019-03-15 21:59                                                               ` Parav Pandit
2019-03-18 12:21                                                                 ` Jiri Pirko
2019-03-18 15:56                                                                   ` Parav Pandit
2019-03-18 16:22                                                                     ` Parav Pandit
2019-03-18 19:36                                                                       ` Jakub Kicinski
2019-03-18 19:44                                                                         ` Parav Pandit
2019-03-18 19:59                                                                           ` Jakub Kicinski
2019-03-18 20:35                                                                             ` Parav Pandit
2019-03-18 21:29                                                                               ` Jakub Kicinski
2019-03-18 22:11                                                                                 ` Parav Pandit
2019-03-20 18:24                                                                                   ` Parav Pandit
2019-03-20 20:22                                                                                     ` Jakub Kicinski
2019-03-20 23:39                                                                                       ` Parav Pandit
2019-03-21  9:08                                                                                       ` Jiri Pirko
2019-03-21 15:03                                                                                         ` Parav Pandit
2019-03-21 16:16                                                                                           ` Jiri Pirko
2019-03-21 16:50                                                                                             ` Parav Pandit
2019-03-21 17:23                                                                                               ` Jiri Pirko
2019-03-21 17:42                                                                                                 ` Parav Pandit
2019-03-22 13:32                                                                                                   ` Jiri Pirko
2019-03-23  0:40                                                                                                     ` Parav Pandit
2019-03-25 20:34                                                                                                       ` Parav Pandit
2019-03-18 19:19                                                                   ` Jakub Kicinski
2019-03-18 19:38                                                                     ` Parav Pandit
2019-03-21  9:09                                                                     ` Jiri Pirko
2019-03-15  7:00                                               ` Jiri Pirko
     [not found]                                 ` <7227d58e-ac58-d549-b921-ca0a0dd3f4b0@intel.com>
2019-03-13  7:37                                   ` Jiri Pirko
2019-03-13 16:03                                     ` Samudrala, Sridhar
2019-03-13 16:24                                       ` Jiri Pirko
2019-03-04 11:19       ` Jiri Pirko
2019-03-05  0:40         ` Jakub Kicinski
2019-03-05 11:07           ` Jiri Pirko
2019-03-04 11:08   ` Jiri Pirko
2019-03-05  0:51     ` Jakub Kicinski
2019-03-05 11:09       ` Jiri Pirko
2019-03-01 18:04 ` [PATCH net-next v2 5/7] nfp: switch to devlink_port_get_phys_port_name() Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 6/7] devlink: introduce port's peer netdevs Jakub Kicinski
2019-03-01 18:04 ` [PATCH net-next v2 7/7] nfp: expose PF " Jakub Kicinski
2019-03-02 10:13 ` [PATCH net-next v2 0/7] devlink: expose PF and VF representors as ports Jiri Pirko
2019-03-02 19:49   ` [oss-drivers] " Jakub Kicinski
2019-03-04  5:12   ` Parav Pandit
2019-03-04 18:22 ` David Miller
2019-03-20 20:25 ` Jakub Kicinski
2019-03-21  9:11   ` Jiri Pirko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190318122947.66754e4b@cakuba.netronome.com \
    --to=jakub.kicinski@netronome.com \
    --cc=davem@davemloft.net \
    --cc=jiri@resnulli.us \
    --cc=netdev@vger.kernel.org \
    --cc=oss-drivers@netronome.com \
    --cc=parav@mellanox.com \
    --cc=sridhar.samudrala@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.