From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:organization:content-transfer-encoding; bh=5ZYkPwg18yvgYmxef6AHb9YRCv03BOZBd8uaes0yfmU=; b=BImELJqolH8kWQxr9XGv4T5MGYJ1xxUA9DFudLwNIJp/qFidf+f+k0qqn2rvcKldrS dsJBlpE3U7TU5ERAm9ZLuAaiB+2Zt5l3FmFdpTUF+RrO6kj4uyoMu3AIj889D72f6lgd 78Aoo6eeRYZTWfmpsIUU96YRFb00rHhtvwmMk21z5s7RRD5BpGhuhKe/Nm+UHQsl0Swo q/tJNPLf3GQaKWeneh2a8BHH/bwZGyeOvWn1Z+IOULCtPsW4I9fnsei/4qRgid8p0mf9 2KlViLmsHZC5Y4z3tPJykwJWxgP7YBlMD9yribUP7tCj4hwq6tNv3MNQGxzbjSGlmfBX U3qg== From: Hans Schultz Date: Mon, 7 Feb 2022 11:07:40 +0100 Message-Id: <20220207100742.15087-3-schultz.hans+netdev@gmail.com> In-Reply-To: <20220207100742.15087-1-schultz.hans+netdev@gmail.com> References: <20220207100742.15087-1-schultz.hans+netdev@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Bridge] [PATCH net-next 2/4] net: bridge: dsa: Add support for offloading of locked port flag List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: davem@davemloft.net, kuba@kernel.org Cc: Andrew Lunn , Florian Fainelli , netdev@vger.kernel.org, bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Hans Schultz , Nikolay Aleksandrov , Roopa Prabhu , Vladimir Oltean , Vivien Didelot Various switchcores support setting ports in locked mode, so that clients behind locked ports cannot send traffic through the port unless a fdb entry is added with the clients MAC address. Among the switchcores that support this feature is the Marvell mv88e6xxx family. Signed-off-by: Hans Schultz --- net/bridge/br_switchdev.c | 2 +- net/dsa/port.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/net/bridge/br_switchdev.c b/net/bridge/br_switchdev.c index f8fbaaa7c501..bf549fc22556 100644 --- a/net/bridge/br_switchdev.c +++ b/net/bridge/br_switchdev.c @@ -72,7 +72,7 @@ bool nbp_switchdev_allowed_egress(const struct net_bridge_port *p, /* Flags that can be offloaded to hardware */ #define BR_PORT_FLAGS_HW_OFFLOAD (BR_LEARNING | BR_FLOOD | \ - BR_MCAST_FLOOD | BR_BCAST_FLOOD) + BR_MCAST_FLOOD | BR_BCAST_FLOOD | BR_PORT_LOCKED) int br_switchdev_set_port_flag(struct net_bridge_port *p, unsigned long flags, diff --git a/net/dsa/port.c b/net/dsa/port.c index bd78192e0e47..01ed22ed74a1 100644 --- a/net/dsa/port.c +++ b/net/dsa/port.c @@ -176,7 +176,7 @@ static int dsa_port_inherit_brport_flags(struct dsa_port *dp, struct netlink_ext_ack *extack) { const unsigned long mask = BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD | - BR_BCAST_FLOOD; + BR_BCAST_FLOOD | BR_PORT_LOCKED; struct net_device *brport_dev = dsa_port_to_bridge_port(dp); int flag, err; @@ -200,7 +200,7 @@ static void dsa_port_clear_brport_flags(struct dsa_port *dp) { const unsigned long val = BR_FLOOD | BR_MCAST_FLOOD | BR_BCAST_FLOOD; const unsigned long mask = BR_LEARNING | BR_FLOOD | BR_MCAST_FLOOD | - BR_BCAST_FLOOD; + BR_BCAST_FLOOD | BR_PORT_LOCKED; int flag, err; for_each_set_bit(flag, &mask, 32) { -- 2.30.2