All of lore.kernel.org
 help / color / mirror / Atom feed
From: Parav Pandit <parav@mellanox.com>
To: Jakub Kicinski <jakub.kicinski@netronome.com>,
	Jiri Pirko <jiri@resnulli.us>
Cc: "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: Thu, 14 Mar 2019 22:35:36 +0000	[thread overview]
Message-ID: <VI1PR0501MB22715238200B34CB23F67BE5D14B0@VI1PR0501MB2271.eurprd05.prod.outlook.com> (raw)
In-Reply-To: <20190314150945.031d1b08@cakuba.netronome.com>

Hi Jakub,

> -----Original Message-----
> From: netdev-owner@vger.kernel.org <netdev-owner@vger.kernel.org> On
> Behalf Of Jakub Kicinski
> Sent: Thursday, March 14, 2019 5:10 PM
> To: Jiri Pirko <jiri@resnulli.us>
> Cc: 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 Thu, 14 Mar 2019 08:38:40 +0100, Jiri Pirko wrote:
> > Wed, Mar 13, 2019 at 05:55:55PM CET, jakub.kicinski@netronome.com
> wrote:
> > >On Wed, 13 Mar 2019 17:22:43 +0100, Jiri Pirko wrote:
> > >> Wed, Mar 13, 2019 at 05:17:31PM CET, jakub.kicinski@netronome.com
> wrote:
> > >> >On Wed, 13 Mar 2019 07:07:01 +0100, Jiri Pirko wrote:
> > >> >> Tue, Mar 12, 2019 at 09:56:28PM CET,
> jakub.kicinski@netronome.com wrote:
> > >> >> >On Tue, 12 Mar 2019 15:02:39 +0100, Jiri Pirko wrote:
> > >> >> >> Tue, Mar 12, 2019 at 03:10:54AM CET, wrote:
> > >> >> >> >On Mon, 11 Mar 2019 09:52:04 +0100, Jiri Pirko wrote:
> > >> >> >> >> Fri, Mar 08, 2019 at 08:09:43PM CET, wrote:
> > >> >> >> >> >If the switchport is in the hypervisor then only the hypervisor
> can
> > >> >> >> >> >control switching/forwarding, correct?
> > >> >> >> >>
> > >> >> >> >> Correct.
> > >> >> >> >>
> > >> >> >> >> >The primary use case for partitioning within a VM (of a VF)
> would be
> > >> >> >> >> >containers (and DPDK)?
> > >> >> >> >>
> > >> >> >> >> Makes sense.
> > >> >> >> >>
> > >> >> >> >> >SR-IOV makes things harder.  Splitting a PF is reasonably easy
> to grasp.
> > >> >> >> >> >I'm trying to get a sense of is how would we control an SR-IOV
> > >> >> >> >> >environment as a whole.
> > >> >> >> >>
> > >> >> >> >> You mean orchestration?
> > >> >> >> >
> > >> >> >> >Right, orchestration.
> > >> >> >> >
> > >> >> >> >To be clear on where I'm going with this - if we want to
> > >> >> >> >allow VFs to partition themselves then they have to control what
> is effectively
> > >> >> >> >a "nested" switch.  A per-VF set of rules which would the get
> > >> >> >>
> > >> >> >> Wait. If you allow to make VF subports (I believe that is
> > >> >> >> what you ment by VFs partition themselves), that does not mean
> they will have a
> > >> >> >> separate nested switch. They would still belong under the same
> one.
> > >> >> >
> > >> >> >But that existing switch is administered by the hypervisor, how
> would
> > >> >> >the VF owners install forwarding rules in a switch they don't
> control?
> > >> >>
> > >> >> They won't.
> > >> >
> > >> >Argh.  So how is forwarding configured if there are no rules?  Are
> > >> >you going to assume its switching on MACs?  We're supposed to
> > >> >offload software constructs.  If its a software port it needs to
> > >> >be explicitly switched.  If it's not explicitly switched - we already have
> macvlan
> > >> >offload.
> > >>
> > >> Wait a second. You configure the switch. And for that, you have the
> > >> switchports (representors). What we are talking about are VF (VF
> > >> subport) host legs. Am I missing something?
> > >
> > >Hm :)  So when VM gets a new port, how is it connected?  Are we
> > >assuming all ports of a VM are plugged into one big L2 switch?
> > >The use case for those sub ports is a little murky, sorry about the
> > >endless confusion :)
> >
> > Np. When user John (on baremetal, or whenever the devlink instance
> > with switch port is) creates VF of VF subport by:
> > $ devlink dev port add pci/0000:05:00.0 flavour pci_vf pf 0 or by:
> > $ devlink dev port add pci/0000:05:00.0 flavour pci_vf pf 0 vf 0
> >
> > Then instances of flavour pci_vf are going to appear in the same
> > devlink instance. Those are the switch ports:
> > pci/0000:05:00.0/10002: type eth netdev enp5s0npf0pf0s0
> >                         flavour pci_vf pf 0 vf 0
> >                         switch_id 00154d130d2f peer pci/0000:05:10.1/0
> > pci/0000:05:00.0/10003: type eth netdev enp5s0npf0pf0s0
> >                         flavour pci_vf pf 0 vf 0 subport 1
> >                         switch_id 00154d130d2f peer pci/0000:05:10.1/1
> >
> > With that, peers are going to appear too, and those are the actual
> > VF/VF
> > subport:
> > pci/0000:05:10.1/0: type eth netdev ??? flavour pci_vf_host
> >                     peer pci/0000:05:00.0/10002
> > pci/0000:05:10.1/1: type eth netdev ??? flavour pci_vf_host
> >                     peer pci/0000:05:00.0/10003
> >
> > Later you can push this VF along with all subports to VM. So in VM,
> > you are going to see the VF like this:
> > $ devlink dev
> > pci/0000:00:08.0
> > $ devlink port
> > pci/0000:00:08.0/0: type eth netdev ??? flavour pci_vf_host
> > pci/0000:00:08.0/1: type eth netdev ??? flavour pci_vf_host
> >
> > And back to your question of how are they connected in eswitch.
> > That is totally up to the original user John who did the creation.
> > He is in charge of the eswitch on baremetal, he would configure the
> > forwarding however he likes.
> 
> Ack, so I think you're saying VM has to communicate to the cloud
> environment to have this provisioned using some service API, not a kernel
> API.  That's what I wanted to confirm.
> 
> I don't see any benefit to having the "host ports" under devlink, as such I
> think it's a matter of preference. 
We need 'host ports' to configure parameters of this 
host port which is not exposed by the rep-netdev.
Such as mac address.

> I'll try to describe the two options to
> Netronome's FAEs and see which one they find more intuitive.
> 
> Makes sense?

  reply	other threads:[~2019-03-14 22:35 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 [this message]
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
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=VI1PR0501MB22715238200B34CB23F67BE5D14B0@VI1PR0501MB2271.eurprd05.prod.outlook.com \
    --to=parav@mellanox.com \
    --cc=davem@davemloft.net \
    --cc=jakub.kicinski@netronome.com \
    --cc=jiri@resnulli.us \
    --cc=netdev@vger.kernel.org \
    --cc=oss-drivers@netronome.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.