On Fri, 2020-09-04 at 09:15 +0000, Henrik Bjoernlund wrote:
> 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>
> ---
>  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 a9232db03108..d12f5626a4b1 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_LIST_HEAD(&br->ftype_list);
>  #if IS_ENABLED(CONFIG_BRIDGE_MRP)
>       INIT_LIST_HEAD(&br->mrp_list);
> +#endif
> +#if IS_ENABLED(CONFIG_BRIDGE_CFM)
> +     INIT_LIST_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 e67c6d9e8bea..6294a3e51a33 100644
> --- a/net/bridge/br_private.h
> +++ b/net/bridge/br_private.h
> @@ -445,6 +445,9 @@ struct net_bridge {
>  #if IS_ENABLED(CONFIG_BRIDGE_MRP)
>       struct list_head                mrp_list;
>  #endif
> +#if IS_ENABLED(CONFIG_BRIDGE_CFM)
> +     struct list_head                mep_list;
> +#endif
>  };
>  
>  struct br_input_skb_cb {

Looks good, perhaps also can use hlist to reduce the head size in net_bridge.

Reply via email to