All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Fastabend <john.fastabend@gmail.com>
To: Jiri Pirko <jiri@resnulli.us>, Scott Feldman <sfeldma@gmail.com>
Cc: Netdev <netdev@vger.kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Ido Schimmel <idosch@mellanox.com>,
	eladr@mellanox.com, Thomas Graf <tgraf@suug.ch>,
	Alexei Starovoitov <ast@plumgrid.com>,
	David Laight <David.Laight@aculab.com>
Subject: Re: [patch net-next v3 06/14] rocker: introduce worlds infrastructure
Date: Wed, 07 Oct 2015 08:46:13 -0700	[thread overview]
Message-ID: <56153E45.2080807@gmail.com> (raw)
In-Reply-To: <20151007061409.GB2152@nanopsycho.orion>

On 15-10-06 11:14 PM, Jiri Pirko wrote:
> Wed, Oct 07, 2015 at 03:50:08AM CEST, sfeldma@gmail.com wrote:
> 
> <snip>
> 
>>
>>> Also I wonder how this works when a pkt ingresses a port in mode A and
>>> egresses a port in mode B? What fib/fdb tables does it cross when this
>>> happens? It seems easier to just have two switch devices not a
>>> hybrid. If this per port implementation maps to some hardware that
>>> would be really interesting though.
>>
>> In retrospect, I regret adding the port mode feature to rocker.  I
>> like the world idea, so we can have a device with different
>> pipeline/resources, but we should have locked all ports on a switch to
>> one mode, or even as you hinted at earlier, use a unique sub-device ID
>> for a switch with all ports in a particular mode.  If you want to
>> ports with different worlds, just instantiate a switch in each world.
>> Instantiating new devices is easy.
>>
>> But, now Jiri has locked on to the dynamic port mode idea with pit
>> bull zeal, to the point of being able to switch a port mode at any
>> time from one mode to another from the host.  I just don't see that as
>> a real-world use-case.  Life is too short and we need to be focusing
>> on switchdev features, not refactoring or adding cool but useless
>> features.
> 
> Can can still change this if you want. We can make
> ROCKER_TLV_CMD_PORT_SETTINGS_MODE read-only in hw (As it is in fact now
> as we have only one world).
> 
> Then we add another property:
> static Property rocker_properties[] = {
> 	    DEFINE_PROP_STRING("name", Rocker, name),
> 	    DEFINE_PROP_STRING("world", Rocker, world),
> 		....
> 
> and we use this value in pci_rocker_init instead of r->world_dflt
> 
> Looks straightforward.
> 
> 

I think that would map better to something real hardware would do. In
this case it looks like you reprogrammed the device or pushed a
microcode update at it and loaded a new world. Reporting the string
in ethtool or something might be a nice touch as well.

Just a couple editorial comments, hopefully I'm not sounding critical
of the multiworld stuff I really want to use this! And two we have
devices that can change characteristics at runtime such as the parser,
table type/sizes/layouts, even supported actions so I do want the
sort of dynamic knobs originally proposed just not as strings. But I
think that is our "worlds" vs "profiles" debate.

Thanks!
John

  reply	other threads:[~2015-10-07 15:46 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-06  7:51 [patch net-next v3 00/14] rocker: add support for multiple worlds Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 01/14] rocker: remove unused rocker_port param from alloc funcs and shorten their names Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 02/14] rocker: rename rocker.h to rocker_hw.h Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 03/14] rocker: rename rocker.c to rocker_main.c Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 04/14] rocker: push tlv processing into separate files Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 05/14] rocker: implement set settings mode command Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 06/14] rocker: introduce worlds infrastructure Jiri Pirko
2015-10-06 16:06   ` Scott Feldman
2015-10-06 16:15     ` Jiri Pirko
2015-10-06 17:03       ` Scott Feldman
2015-10-06 16:19     ` John Fastabend
2015-10-06 17:08       ` Scott Feldman
2015-10-06 21:25         ` John Fastabend
2015-10-07  1:50           ` Scott Feldman
2015-10-07  6:14             ` Jiri Pirko
2015-10-07 15:46               ` John Fastabend [this message]
2015-10-07 17:32               ` Scott Feldman
2015-10-07 17:51                 ` Jiri Pirko
2015-10-06 16:25   ` [Linux Kernel Dev- OSI lvls 2-3 Networking modules] assistance needed in Pacific Northwest US John D Allen, Leveridge Systems INC
2015-10-06  7:51 ` [patch net-next v3 07/14] rocker: introduce OF-DPA world skeleton Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 08/14] rocker: set default world on port probe and clean world on remove Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 09/14] rocker: pass "learning" value as a parameter to rocker_port_set_learning Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 10/14] rocker: pre-allocate wait structures during cmd ring init Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 11/14] rocker: remove trans parameter to rocker_cmd_exec function Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 12/14] rocker: call rocker_cmd_exec function with "nowait" boolean instead of flags Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 13/14] rocker: move OF-DPA stuff into separate file Jiri Pirko
2015-10-06  7:51 ` [patch net-next v3 14/14] rocker: return -EOPNOTSUPP for undefined world ops 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=56153E45.2080807@gmail.com \
    --to=john.fastabend@gmail.com \
    --cc=David.Laight@aculab.com \
    --cc=ast@plumgrid.com \
    --cc=davem@davemloft.net \
    --cc=eladr@mellanox.com \
    --cc=idosch@mellanox.com \
    --cc=jiri@resnulli.us \
    --cc=netdev@vger.kernel.org \
    --cc=sfeldma@gmail.com \
    --cc=tgraf@suug.ch \
    /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.