summaryrefslogtreecommitdiffstats
path: root/net/bridge/br_device.c
diff options
context:
space:
mode:
authorHenrik Bjoernlund <henrik.bjoernlund@microchip.com>2020-10-27 11:02:42 +0100
committerJakub Kicinski <kuba@kernel.org>2020-10-30 02:39:43 +0100
commit90c628dd47ff4178f645b34938470bf43d02d123 (patch)
tree80bf540861d85c147f34e617b2e1499c2a7ea934 /net/bridge/br_device.c
parentMerge branch 'vsock-minor-clean-up-of-ioctl-error-handling' (diff)
downloadlinux-90c628dd47ff4178f645b34938470bf43d02d123.tar.xz
linux-90c628dd47ff4178f645b34938470bf43d02d123.zip
net: bridge: extend the process of special frames
This patch extends the processing of frames in the bridge. Currently MRP frames needs special processing and the current implementation doesn't allow a nice way to process different frame types. Therefore try to improve this by adding a list that contains frame types that need special processing. This list is iterated for each input frame and if there is a match based on frame type then these functions will be called and decide what to do with the frame. It can process the frame then the bridge doesn't need to do anything or don't process so then the bridge will do normal forwarding. Signed-off-by: Henrik Bjoernlund <henrik.bjoernlund@microchip.com> Reviewed-by: Horatiu Vultur <horatiu.vultur@microchip.com> Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/bridge/br_device.c')
-rw-r--r--net/bridge/br_device.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index 6f742fee874a..15c6445fa998 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -454,6 +454,7 @@ void br_dev_setup(struct net_device *dev)
spin_lock_init(&br->lock);
INIT_LIST_HEAD(&br->port_list);
INIT_HLIST_HEAD(&br->fdb_list);
+ INIT_HLIST_HEAD(&br->frame_type_list);
#if IS_ENABLED(CONFIG_BRIDGE_MRP)
INIT_LIST_HEAD(&br->mrp_list);
#endif