netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Kicinski <jakub.kicinski@netronome.com>
To: "Keller, Jacob E" <jacob.e.keller@intel.com>
Cc: "saeedm@mellanox.com" <saeedm@mellanox.com>,
	"sbrivio@redhat.com" <sbrivio@redhat.com>,
	"nikolay@cumulusnetworks.com" <nikolay@cumulusnetworks.com>,
	"dsahern@gmail.com" <dsahern@gmail.com>,
	"sd@queasysnail.net" <sd@queasysnail.net>,
	"jiri@mellanox.com" <jiri@mellanox.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"stephen@networkplumber.org" <stephen@networkplumber.org>,
	"lariel@mellanox.com" <lariel@mellanox.com>
Subject: Re: [PATCH net-next v2 0/3] VGT+ support
Date: Wed, 13 Nov 2019 18:25:46 -0800	[thread overview]
Message-ID: <20191113182546.4db77a51@cakuba> (raw)
In-Reply-To: <fa3c4cfe6ed4db31bcdaff739ccad70fa1ec4a5e.camel@intel.com>

On Wed, 13 Nov 2019 22:55:16 +0000, Keller, Jacob E wrote:
> Hi Jakub,
> 
> On Tue, 2019-11-05 at 17:38 -0800, Jakub Kicinski wrote:
> > In the upstream community, however, we care about the technical
> > aspects.
> >   
> > > and we all know that it could take years before we can sit back and
> > > relax that we got our L2 switching ..   
> > 
> > Let's not be dramatic. It shouldn't take years to implement basic L2
> > switching offload.  
> 
> I had meant to send something earlier in this thread, but never got
> around to it. I wanted to ask your opinion and get some feedback.
> 
> We (Intel) have recently been investigating use of port representors
> for enabling introspection and control of VFs in the host system after
> they've been assigned to a virtual machine.

Cool!

> I had originally been thinking of adding these port representor netdevs
> before we fully implement switchdev with the e-switch offloads. The
> idea was to migrate to using port representors in either case.
> 
> However, from what it looks like on this thread, you'd rather propose
> that we implement switchdev with basic L2 offload?
> 
> I'm not too familiar with switchdev, (trying to read and learn about so
> that we can begin actually implementing it in our network drivers).

So switchdev mode for SR-IOV NICs basically means that all ports are
represented by a netdev and no implicit switching happens in HW, if
packet is received on a port, be it VF or uplink - it's sent up to the
representor. That's pretty much it. Then you can install rules to
forward internally in the device.

Perhaps an obvious suggestion but did you consider converting
Documentation/networking/switchdev.txt to ReST and updating it as you
explore the code? ;)

> Based on your comments and feedback in this thread, it sounds like our
> original idea to have a "legacy with port representors" mode is not
> really something you'd like, because it would continue to encourage
> avoiding migrating from legacy stack to switchdev model.

Not at this point, no. 

I think this was all discussed before with Alex still strongly in the
netdev loops at Intel. I was initially accommodating to some partial
implementations like what you mention, since it'd had been good to have
Intel come on board with switchdev, and Fortville reportedly couldn't
disable leaking the packets which missed filters to the uplink.

IIRC at that point Or Gerlitz strongly drew the line at preserving
switchdev behaviour as described above - default to everything falls
back to host.

Today since many months have passed I don't think we should walk back
on that decision.

> But, instead of trying to go fully towards implementing switchdev with
> complicated OvS offloads, we could do a simpler approach that only
> supports L2 offloads initially, and from these comments it seems this
> is the direction you'd rather upstream persue?

Yes, I think simple L2 offload that supports common cases would be a
pretty cool starting point for a new switchdev implementation.

> > I had given switchdev L2 some thought. IDK what you'd call serious, 
> > I don't have code. We are doing some ridiculously complex OvS
> > offloads
> > while most customers just need L2 plus maybe VXLAN encap and basic
> > ACLs. Which switchdev can do very nicely thanks to Cumulus folks.  
> 
> Based on this, it sounds like the switchdev API can do this L2
> offloading and drivers simply need to enable it. If I understand
> correctly, it  requires the system administrator to place the VF devies
> into a bridge, rather than simply having the bridging hidden inside the
> device.

Yup. You may want to support only offloading of certain configuration
of the bridge to simplify your life, e.g. disable learning and flood
only to uplink..

      reply	other threads:[~2019-11-14  2:25 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-31 19:47 [PATCH net-next v2 0/3] VGT+ support Ariel Levkovich
2019-10-31 19:47 ` [PATCH net-next v2 1/3] net: Support querying specific VF properties Ariel Levkovich
2019-10-31 19:47 ` [PATCH net-next v2 2/3] net: Add SRIOV VGT+ support Ariel Levkovich
2019-10-31 19:47 ` [PATCH net-next v2 3/3] net/mlx5: " Ariel Levkovich
2019-10-31 20:31 ` [PATCH net-next v2 0/3] " David Miller
2019-10-31 22:20   ` Ariel Levkovich
2019-10-31 22:58     ` David Miller
2019-11-01 14:55       ` Ariel Levkovich
2019-11-01  0:23 ` Jakub Kicinski
     [not found]   ` <8d7db56c-376a-d809-4a65-bfc2baf3254f@mellanox.com>
2019-11-01 21:28     ` Saeed Mahameed
2019-11-02  0:21       ` Jakub Kicinski
2019-11-05  1:38         ` Saeed Mahameed
2019-11-05  1:47           ` David Ahern
2019-11-05  2:35             ` Jakub Kicinski
2019-11-05 20:10               ` Saeed Mahameed
2019-11-05 21:55                 ` Jakub Kicinski
2019-11-05 22:52                   ` Saeed Mahameed
2019-11-05 23:10                     ` Jakub Kicinski
2019-11-05 23:48                       ` Saeed Mahameed
2019-11-06  1:38                         ` Jakub Kicinski
2019-11-06 22:21                           ` Saeed Mahameed
2019-11-07 10:24                             ` Jiri Pirko
2019-11-13 22:55                           ` Keller, Jacob E
2019-11-14  2:25                             ` Jakub Kicinski [this message]

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=20191113182546.4db77a51@cakuba \
    --to=jakub.kicinski@netronome.com \
    --cc=dsahern@gmail.com \
    --cc=jacob.e.keller@intel.com \
    --cc=jiri@mellanox.com \
    --cc=lariel@mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=nikolay@cumulusnetworks.com \
    --cc=saeedm@mellanox.com \
    --cc=sbrivio@redhat.com \
    --cc=sd@queasysnail.net \
    --cc=stephen@networkplumber.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).