This makes it possible to include or exclude the CFM
protocol according to 802.1Q section 12.14.

Signed-off-by: Henrik Bjoernlund  <henrik.bjoernl...@microchip.com>
Reviewed-by: Horatiu Vultur  <horatiu.vul...@microchip.com>
Acked-by: Nikolay Aleksandrov <niko...@nvidia.com>
---
 net/bridge/Kconfig      | 11 +++++++++++
 net/bridge/br_device.c  |  3 +++
 net/bridge/br_private.h |  3 +++
 3 files changed, 17 insertions(+)

diff --git a/net/bridge/Kconfig b/net/bridge/Kconfig
index 80879196560c..3c8ded7d3e84 100644
--- a/net/bridge/Kconfig
+++ b/net/bridge/Kconfig
@@ -73,3 +73,14 @@ config BRIDGE_MRP
          Say N to exclude this support and reduce the binary size.
 
          If unsure, say N.
+
+config BRIDGE_CFM
+       bool "CFM protocol"
+       depends on BRIDGE
+       help
+         If you say Y here, then the Ethernet bridge will be able to run CFM
+         protocol according to 802.1Q section 12.14
+
+         Say N to exclude this support and reduce the binary size.
+
+         If unsure, say N.
diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index 206c4ba51cd2..2a3b316f32eb 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -476,6 +476,9 @@ void br_dev_setup(struct net_device *dev)
        INIT_HLIST_HEAD(&br->frame_type_list);
 #if IS_ENABLED(CONFIG_BRIDGE_MRP)
        INIT_LIST_HEAD(&br->mrp_list);
+#endif
+#if IS_ENABLED(CONFIG_BRIDGE_CFM)
+       INIT_HLIST_HEAD(&br->mep_list);
 #endif
        spin_lock_init(&br->hash_lock);
 
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index 2fe8b88d090e..90ead48fa762 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -484,6 +484,9 @@ struct net_bridge {
 #if IS_ENABLED(CONFIG_BRIDGE_MRP)
        struct list_head                mrp_list;
 #endif
+#if IS_ENABLED(CONFIG_BRIDGE_CFM)
+       struct hlist_head               mep_list;
+#endif
 };
 
 struct br_input_skb_cb {
-- 
2.28.0

Reply via email to