From: Scott Feldman <sfeldma@gmail.com>
To: "Arad, Ronen" <ronen.arad@intel.com>
Cc: Jiri Pirko <jiri@resnulli.us>, Netdev <netdev@vger.kernel.org>,
roopa <roopa@cumulusnetworks.com>,
Guenter Roeck <linux@roeck-us.net>,
Florian Fainelli <f.fainelli@gmail.com>
Subject: Re: [PATCH net-next 11/18] switchdev: remove old netdev_switch_port_bridge_setlink
Date: Tue, 31 Mar 2015 19:38:09 -0700 [thread overview]
Message-ID: <CAE4R7bCeRxP2Kg_4jg4v6m6S+3NFpMcxO4vC-WeDG48GPkCtuw@mail.gmail.com> (raw)
In-Reply-To: <E4CD12F19ABA0C4D8729E087A761DC35067FB536@ORSMSX101.amr.corp.intel.com>
On Tue, Mar 31, 2015 at 4:32 PM, Arad, Ronen <ronen.arad@intel.com> wrote:
>
>
>>-----Original Message-----
>>From: Jiri Pirko [mailto:jiri@resnulli.us]
>>Sent: Tuesday, March 31, 2015 2:53 PM
>>To: Arad, Ronen
>>Cc: Scott Feldman; Netdev; roopa; Guenter Roeck; Florian Fainelli
>>Subject: Re: [PATCH net-next 11/18] switchdev: remove old
>>netdev_switch_port_bridge_setlink
>>
>>Tue, Mar 31, 2015 at 09:15:35PM CEST, ronen.arad@intel.com wrote:
>>>
>>>
>>>>-----Original Message-----
>>>>From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org] On
>>>>Behalf Of Jiri Pirko
>>>>Sent: Monday, March 30, 2015 10:53 PM
>>>>To: Arad, Ronen
>>>>Cc: Scott Feldman; Netdev; roopa; Guenter Roeck; Florian Fainelli
>>>>Subject: Re: [PATCH net-next 11/18] switchdev: remove old
>>>>netdev_switch_port_bridge_setlink
>>>>
>>>>Tue, Mar 31, 2015 at 02:08:34AM CEST, ronen.arad@intel.com wrote:
>>>>>
> [cut]
>>>>>
>>>>>It could be beneficial to build extensibility into swdev_attr.
>>>>>An experimenter attribute designed to carry arbitrary data could allow
>>>>>for passing new attributes and implementation specific attributes
>>>>>without affecting any existing switchdev driver:
>>>>
>>>>Warning sign...
>>>>
>>>>I believe that we don't want this. It is very easy to add attribute for
>>>>anything. Having this "universal attribuute" only allows wild things...
>>>>
>>>>Thanks.
>>>>
>>>>Jiri
>>>>
>>>Let's say a switch device has some behavior that is not common to all
>>>switch devices. Defining an explicit attribute might not be desirable
>>>in that case. For example let's say SOMEswitch device implements VLAN
>>>priority markdown using a table. It could be represented as a table of
>>>8 bytes. To support this feature, there is a need to allow a user-space
>>>tool to program such table in SOMEswitch device. What mechanisms are
>>>available for that?
>>
>>If you want to expose feature X that's ok, just do it. I see no problem
>>in that. Please, just do not introduce kernel bypass.
>
> This is not a kernel bypass as long as the target device is an in-tree
> device driver open for the community scrutiny.
>
> That simply won't
>>fly...
>
> Let's say vendor X wants to expose features X1, X2, ...Xm,
> vendor Y wants to expose features Y1, Y2, ...Yn, etc.
> How this would be visible to the users via iproute2?
> We'll need keywords Kx1..Kxm, Ky1..Kn, etc. There is scalability issue here.
> The user has to figure out the keyword Kxj goes with feature Xj etc.
> There must be a better way.
>
> What I have in mind is a way for switchdevX driver to define the its options
> and the keywords that the user could use to control them in a generic way.
> The kernel will provide the mechanism to export that to user space such that
> A tool like iproute2 could present user-friendly interface which is context
> aware.
>
> It is important to allow for a generic interface that will not require a new
> patch to the user-space tool or to the kernel net core (or switchdev) infrastructure, whenever any such new feature is being exposed.
> Only the switchdev driver which exposes a new feature need a patch.
>
> The kernel could have sufficient information about the information that
> switchdevX is expecting such that it could validate size and type and could
> reject information that is not supported by the device.
>
> This is very similar to the options interface the team driver exposes.
> Team driver provides the mechanism for user-space to configure options in the
> kernel. Team driver does not understand or interpret the options that are
> intended for team modes. It only provides the mechanism to communicate them
> over generic netlink and process them in the kernel and user-space.
> Those options do not show up in any header file. You don't need a new kernel
> version to introduce a new team option for a new or existing team mode.
> All you need is to register the option (identified by a string) with team
> driver and set/get it from the teamd or any other user-space tool over
> generic netlink.
> The team protocol is stable and does not require changes for this level of
> extensibility.
>
> The same level of extensibility is needed for switchdev port or device
> attributes.
It sounds like vendor extensions need to be supported someway,
someday. Maybe let's table vendor extensions for the time being and
continue our focus on shared infrastructure: the things we know are
common for all vendors. We still have a lot of work just getting the
common bits working. Then we can take additional features one at a
time and see if they're shared or vendor-specific. In the meantime,
there are always back doors such as genl for vendor to use; there is
nothing preventing that.
-scott
next prev parent reply other threads:[~2015-04-01 2:38 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-30 8:40 [PATCH net-next 00/18] switchdev: spring cleanup sfeldma
2015-03-30 8:40 ` [PATCH net-next 01/18] switchdev: introduce get/set attrs ops sfeldma
2015-03-30 8:40 ` [PATCH net-next 02/18] switchdev: flesh out get/set attr ops sfeldma
2015-03-30 11:55 ` Jiri Pirko
2015-03-30 18:32 ` Arad, Ronen
2015-03-30 20:46 ` Jiri Pirko
2015-03-30 21:00 ` Scott Feldman
2015-03-31 0:22 ` Arad, Ronen
2015-03-31 0:38 ` Scott Feldman
2015-03-31 15:37 ` roopa
[not found] ` <CAJieiUh0Svt3LZsgoi7RaV8Be0eFyRvoJU3BmW7v3fEvwfXiHg@mail.gmail.com>
2015-03-31 16:05 ` Scott Feldman
2015-03-30 8:40 ` [PATCH net-next 03/18] switchdev: convert parent_id_get to swdev attr get sfeldma
2015-03-30 8:40 ` [PATCH net-next 04/18] switchdev: convert STP update to swdev attr set sfeldma
2015-03-30 11:54 ` Jiri Pirko
2015-03-30 13:47 ` roopa
2015-03-30 8:40 ` [PATCH net-next 05/18] switchdev: add bridge port flags attr sfeldma
2015-03-30 8:40 ` [PATCH net-next 06/18] rocker: use swdev get/set attr for bridge port flags sfeldma
2015-03-30 12:01 ` Jiri Pirko
2015-03-30 8:40 ` [PATCH net-next 07/18] switchdev: add new swdev bridge setlink sfeldma
2015-03-30 12:31 ` Jiri Pirko
2015-03-30 8:40 ` [PATCH net-next 08/18] rocker: cut over to new swdev_port_bridge_setlink sfeldma
2015-03-30 8:40 ` [PATCH net-next 09/18] bonding: " sfeldma
2015-03-30 8:40 ` [PATCH net-next 10/18] team: " sfeldma
2015-03-30 8:40 ` [PATCH net-next 11/18] switchdev: remove old netdev_switch_port_bridge_setlink sfeldma
2015-03-30 13:23 ` roopa
2015-03-30 20:20 ` Scott Feldman
2015-03-30 20:46 ` Arad, Ronen
2015-03-30 21:27 ` Scott Feldman
2015-03-31 0:08 ` Arad, Ronen
2015-03-31 0:44 ` Scott Feldman
2015-03-31 5:52 ` Jiri Pirko
2015-03-31 19:15 ` Arad, Ronen
2015-03-31 21:52 ` Jiri Pirko
2015-03-31 23:32 ` Arad, Ronen
2015-04-01 2:38 ` Scott Feldman [this message]
2015-04-01 12:03 ` Jamal Hadi Salim
2015-04-01 17:56 ` Scott Feldman
2015-04-02 1:01 ` Florian Fainelli
2015-03-30 8:40 ` [PATCH net-next 12/18] switchdev: remove unused netdev_switch_port_bridge_dellink sfeldma
2015-03-30 13:23 ` roopa
2015-03-30 8:40 ` [PATCH net-next 13/18] switchdev: remove unused NETIF_F_HW_SWITCH_OFFLOAD sfeldma
2015-03-30 13:38 ` roopa
2015-03-30 20:48 ` Samudrala, Sridhar
2015-03-30 21:20 ` Scott Feldman
2015-03-31 15:34 ` roopa
[not found] ` <CAJieiUiL4QRQAC30=bkYadYD2L2cOcn7mNLV98uH3Go0exMO+A@mail.gmail.com>
2015-03-31 16:03 ` Scott Feldman
2015-03-30 8:40 ` [PATCH net-next 14/18] switchdev: add new swdev_port_bridge_getlink sfeldma
2015-03-30 8:40 ` [PATCH net-next 15/18] rocker: cut over to " sfeldma
2015-03-30 8:40 ` [PATCH net-next 16/18] switchdev: rename netdev_switch_fib_* to swdev_fib_* sfeldma
2015-03-30 8:40 ` [PATCH net-next 17/18] switchdev: rename netdev_switch_notifier_* to swdev_notifier_* sfeldma
2015-03-30 8:40 ` [PATCH net-next 18/18] switchdev: bring documentation up-to-date sfeldma
2015-03-30 12:00 ` [PATCH net-next 00/18] switchdev: spring cleanup Jiri Pirko
2015-03-30 13:11 ` Andy Gospodarek
2015-03-30 15:00 ` roopa
2015-03-30 16:11 ` Or Gerlitz
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=CAE4R7bCeRxP2Kg_4jg4v6m6S+3NFpMcxO4vC-WeDG48GPkCtuw@mail.gmail.com \
--to=sfeldma@gmail.com \
--cc=f.fainelli@gmail.com \
--cc=jiri@resnulli.us \
--cc=linux@roeck-us.net \
--cc=netdev@vger.kernel.org \
--cc=ronen.arad@intel.com \
--cc=roopa@cumulusnetworks.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 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).