Re: [PATCH net-next 0/5] Code movement to br_switchdev.c
From: Jiri Pirko <jiri@resnulli.us>
Date: 2021-11-02 13:44:48
Tue, Nov 02, 2021 at 01:02:06PM CET, vladimir.oltean@nxp.com wrote:
On Tue, Nov 02, 2021 at 12:49:53PM +0100, Jiri Pirko wrote:quoted
Tue, Nov 02, 2021 at 12:11:59PM CET, vladimir.oltean@nxp.com wrote:quoted
On Mon, Nov 01, 2021 at 04:05:45PM +0100, Jiri Pirko wrote:quoted
Wed, Oct 27, 2021 at 06:21:14PM CEST, vladimir.oltean@nxp.com wrote:quoted
This is one more refactoring patch set for the Linux bridge, where more logic that is specific to switchdev is moved into br_switchdev.c, which is compiled out when CONFIG_NET_SWITCHDEV is disabled.Looks good. While you are at it, don't you plan to also move switchdev.c into br_switchdev.c and eventually rename to br_offload.c ? Switchdev is about bridge offloading only anyway.You mean I should effectively make switchdev part of the bridge?Yes.Ok, have you actually seen the commit message linked below? Basically it says that there are drivers that depend on switchdev.c being this neutral third party, forwarding events on notifier chains back and forth between the bridge and the drivers. If we make switchdev.c part of the bridge, then drivers can no longer be compiled without bridge support. Currently br_switchdev.c is compiled as follows: bridge-$(CONFIG_NET_SWITCHDEV) += br_switchdev.o whereas switchdev.c is compiled as follows: obj-y += switchdev.o So to rephrase the question: unless you're suggesting that I should build br_switchdev.o as part of obj-$(CONFIG_NET_SWITCHDEV) instead of bridge-$(CONFIG_NET_SWITCHDEV), then what do we do with the drivers that assume that the switchdev functions they call into are present when the bridge is not compiled, or is compiled as module?
It can work similarly as VLAN. It also has "vlan core" which is always in for drivers, however VLAN driver itself does not have to be.
quoted
quoted
See commit 957e2235e526 ("net: make switchdev_bridge_port_{,unoffload} loosely coupled with the bridge").