From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Ivan Vecera" <ivecera@redhat.com>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Andrew Lunn" <andrew@lunn.ch>,
Networking <netdev@vger.kernel.org>,
"Grygorii Strashko" <grygorii.strashko@ti.com>,
ivan.khoronzhuk@linaro.org, "Sekhar Nori" <nsekhar@ti.com>,
"Jiří Pírko" <jiri@resnulli.us>,
"Francois Ozog" <francois.ozog@linaro.org>,
yogeshs@ti.com, spatton@ti.com, Jose.Abreu@synopsys.com
Subject: Re: [RFC v2, net-next, PATCH 4/4] net/cpsw_switchdev: add switchdev mode of operation on cpsw driver
Date: Fri, 22 Jun 2018 10:45:32 +0300 [thread overview]
Message-ID: <20180622074532.GA27414@apalos> (raw)
In-Reply-To: <CAK8P3a0wAE+8kvyuF-y3oaz+3Req3Jrv3jr-x2c0LWZ39ztVXg@mail.gmail.com>
On Thu, Jun 21, 2018 at 05:31:31PM +0200, Arnd Bergmann wrote:
> On Thu, Jun 21, 2018 at 2:45 PM, Ilias Apalodimas
> <ilias.apalodimas@linaro.org> wrote:
> > On Thu, Jun 21, 2018 at 02:19:55PM +0200, Ivan Vecera wrote:
>
> > The driver is currently widely used and that's the reason we tried to avoid
> > rewriting it. The current driver uses a DTS option to distinguish between two
> > existing modes. This patch just adds a third one. So to my understanding we
> > have the following options:
> > 1. The driver already uses DTS to configure the hardware mode. Although this is
> > techincally wrong, we can add a third mode on DTS called 'switchdev;', get rid
> > of the .config option and keep the configuration method common (although not
> > optimal).
> > 2. Keep the .config option which overrides the 2 existing modes.
> > 3. Introduce a devlink option. If this is applied for all 3 modes, it will break
> > backwards compatibility, so it's not an option. If it's introduced for
> > configuring 'switchdev' mode only, we fall into the same pitfall as option 2),
> > we have something that overrides our current config, slightly better though
> > since it's not a compile time option.
> > 4. rewrite the driver
>
> As I understand it, the switchdev support can also be added without
> becoming incompatible with the existing behavior, this is how I would
> suggest it gets added in a way that keeps the existing DT binding and
> user view while adding switchdev:
>
> * In non-"dual-emac" mode, show only one network device that is
> configured as a transparent switch as today. Any users that today
> add TI's third-party ioctl interface with a non-upstreamable patch
> can keep using this mode and try to forward-port that patch.
Correct
> * In "dual-emac" mode (as selected through DT), the hardware is
> configured to be viewed as two separate network devices as before,
> regardless of kernel configuration. Users can add the two device
> to a bridge device as before, and enabling switchdev support in
> the kernel configuration (based on your patch series) would change
> nothing else than using hardware support in the background to
> reconfigure the HW VLAN settings.
>
> This does not require using devlink, adding a third mode, or changing
> the DT binding or the user-visible behavior when switchdev is enabled,
> but should get all the features you want.
>
Correct again. This is doable and the changes on the current patchset are
somewhat trivial (detecting a bridge and making the configuration changes
on the fly).
> > If it was a brand new driver, i'd definitely pick 4. Since it's a pre-existing
> > driver though i can't rule out the rest of the options.
>
> I think the suggestion was to have a new driver with a new binding
> so that the DT could choose between the two drivers, one with
> somewhat obscure behavior and the other with proper behavior.
>
> However, from what I can tell, the only requirement to get a somewhat
> reasonable behavior is that you enable "dual-emac" mode in DT
> to get switchdev support. It would be trivial to add a new compatible
> value that only allows that mode along with supporting switchdev,
> but I don't think that's necessary here.
>
> Writing a new driver might also be a good idea (depending on the
> quality of the existing one, I haven't looked in detail), but again
> I would see no reason for the new driver to be incompatible with
> the existing binding, so a gradual cleanup seems like a better
> approach.
Agree
>
> Arnd
If people like this idea, i can send a V3 with these changes.
Thanks
Ilias
next prev parent reply other threads:[~2018-06-22 7:45 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-14 11:11 [RFC v2, net-next, PATCH 0/4] Add switchdev on TI-CPSW Ilias Apalodimas
2018-06-14 11:11 ` [RFC v2, net-next, PATCH 1/4] net/cpsw: move common headers definitions to cpsw_priv.h Ilias Apalodimas
2018-06-14 11:11 ` [RFC v2, net-next, PATCH 2/4] net/cpsw_ale: add functions to modify VLANs/MDBs Ilias Apalodimas
2018-06-14 11:11 ` [RFC v2, net-next, PATCH 3/4] net/cpsw: prepare cpsw for switchdev support Ilias Apalodimas
2018-06-14 11:11 ` [RFC v2, net-next, PATCH 4/4] net/cpsw_switchdev: add switchdev mode of operation on cpsw driver Ilias Apalodimas
2018-06-14 11:23 ` Jiri Pirko
2018-06-14 11:32 ` Ilias Apalodimas
2018-06-14 11:30 ` Jiri Pirko
2018-06-14 11:34 ` Ilias Apalodimas
2018-06-14 11:39 ` Jiri Pirko
2018-06-14 11:43 ` Ilias Apalodimas
2018-06-18 23:19 ` Grygorii Strashko
2018-06-20 7:08 ` Jiri Pirko
2018-06-20 12:53 ` Ivan Vecera
2018-06-20 12:59 ` Ilias Apalodimas
2018-06-20 13:54 ` Ivan Vecera
2018-06-18 16:16 ` Andrew Lunn
2018-06-18 20:19 ` Ilias Apalodimas
2018-06-18 23:20 ` Grygorii Strashko
2018-06-20 12:56 ` Ivan Vecera
2018-06-20 17:51 ` Ilias Apalodimas
2018-06-20 17:57 ` Andrew Lunn
2018-06-20 17:58 ` Florian Fainelli
2018-06-20 18:03 ` Ilias Apalodimas
2018-06-21 12:19 ` Ivan Vecera
2018-06-21 12:45 ` Ilias Apalodimas
2018-06-21 15:31 ` Arnd Bergmann
2018-06-22 7:45 ` Ilias Apalodimas [this message]
2018-06-27 19:18 ` Grygorii Strashko
2018-06-27 20:40 ` Arnd Bergmann
2018-06-27 23:03 ` Grygorii Strashko
2018-06-28 7:53 ` Arnd Bergmann
2018-06-18 15:04 ` [RFC v2, net-next, PATCH 0/4] Add switchdev on TI-CPSW Andrew Lunn
2018-06-18 16:04 ` Ilias Apalodimas
2018-06-18 16:28 ` Andrew Lunn
2018-06-18 16:46 ` Ilias Apalodimas
2018-06-18 17:30 ` Andrew Lunn
2018-06-18 17:49 ` Ilias Apalodimas
2018-06-27 21:05 ` Grygorii Strashko
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=20180622074532.GA27414@apalos \
--to=ilias.apalodimas@linaro.org \
--cc=Jose.Abreu@synopsys.com \
--cc=andrew@lunn.ch \
--cc=arnd@arndb.de \
--cc=f.fainelli@gmail.com \
--cc=francois.ozog@linaro.org \
--cc=grygorii.strashko@ti.com \
--cc=ivan.khoronzhuk@linaro.org \
--cc=ivecera@redhat.com \
--cc=jiri@resnulli.us \
--cc=netdev@vger.kernel.org \
--cc=nsekhar@ti.com \
--cc=spatton@ti.com \
--cc=yogeshs@ti.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