From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org C212F81303 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 5E1A181286 MIME-Version: 1.0 Date: Sun, 28 Aug 2022 12:23:30 +0200 From: netdev@kapio-technology.com In-Reply-To: References: <20220826114538.705433-1-netdev@kapio-technology.com> <20220826114538.705433-2-netdev@kapio-technology.com> Message-ID: Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Bridge] [PATCH v5 net-next 1/6] net: bridge: add locked entry fdb flag to extend locked port feature List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ido Schimmel Cc: Andrew Lunn , Alexandre Belloni , Nikolay Aleksandrov , Kurt Kanzenbach , Eric Dumazet , linux-kselftest@vger.kernel.org, Shuah Khan , Ivan Vecera , Florian Fainelli , Daniel Borkmann , bridge@lists.linux-foundation.org, linux-arm-kernel@lists.infradead.org, Roopa Prabhu , kuba@kernel.org, Paolo Abeni , Vivien Didelot , Woojung Huh , Landen Chao , Jiri Pirko , Christian Marangi , Hauke Mehrtens , Sean Wang , DENG Qingfang , Claudiu Manoil , linux-mediatek@lists.infradead.org, Matthias Brugger , Yuwei Wang , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, UNGLinuxDriver@microchip.com, Vladimir Oltean , davem@davemloft.net On 2022-08-27 17:19, Ido Schimmel wrote: > On Fri, Aug 26, 2022 at 01:45:33PM +0200, Hans Schultz wrote: >> >> nbp_switchdev_frame_mark(p, skb); >> @@ -943,6 +946,10 @@ static int br_setport(struct net_bridge_port *p, >> struct nlattr *tb[], >> br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_SUPPRESS, >> BR_NEIGH_SUPPRESS); >> br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED); >> br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED); >> + br_set_port_flag(p, tb, IFLA_BRPORT_MAB, BR_PORT_MAB); >> + >> + if (!(p->flags & BR_PORT_LOCKED)) >> + p->flags &= ~BR_PORT_MAB; The reason for this is that I wanted it to be so that if you have MAB enabled (and locked of course) and unlock the port, it will automatically clear both flags instead of having to first disable MAB and then unlock the port. > > Any reason not to emit an error if MAB is enabled while the port is > unlocked? Something like this (untested): > > diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c > index 5aeb3646e74c..18353a4c29e1 100644 > --- a/net/bridge/br_netlink.c > +++ b/net/bridge/br_netlink.c > @@ -944,6 +944,12 @@ static int br_setport(struct net_bridge_port *p, > struct nlattr *tb[], > br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED); > br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED); > > + if (!(p->flags & BR_PORT_LOCKED) && (p->flags & BR_PORT_MAB)) { > + NL_SET_ERR_MSG(extack, "MAB cannot be enabled when > port is unlocked"); > + p->flags = old_flags; > + return -EINVAL; > + } > + > changed_mask = old_flags ^ p->flags; > > err = br_switchdev_set_port_flag(p, p->flags, changed_mask, > extack); >