bridge: mrp: Extend bridge interface

To integrate MRP into the bridge, first the bridge needs to be aware of ports
that are part of an MRP ring and which rings are on the bridge.
Therefore extend bridge interface with the following:
- add new flag(BR_MPP_AWARE) to the net bridge ports, this bit will be
  set when the port is added to an MRP instance. In this way it knows if
  the frame was received on MRP ring port
- add new flag(BR_MRP_LOST_CONT) to the net bridge ports, this bit will be set
  when the port lost the continuity of MRP Test frames.
- add a list of MRP instances

Reviewed-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Horatiu Vultur 2020-04-26 15:22:00 +02:00 committed by David S. Miller
parent 2cc974f83f
commit 4b8d7d4c59
2 changed files with 6 additions and 0 deletions

View File

@ -47,6 +47,8 @@ struct br_ip_list {
#define BR_BCAST_FLOOD BIT(14) #define BR_BCAST_FLOOD BIT(14)
#define BR_NEIGH_SUPPRESS BIT(15) #define BR_NEIGH_SUPPRESS BIT(15)
#define BR_ISOLATED BIT(16) #define BR_ISOLATED BIT(16)
#define BR_MRP_AWARE BIT(17)
#define BR_MRP_LOST_CONT BIT(18)
#define BR_DEFAULT_AGEING_TIME (300 * HZ) #define BR_DEFAULT_AGEING_TIME (300 * HZ)

View File

@ -428,6 +428,10 @@ struct net_bridge {
int offload_fwd_mark; int offload_fwd_mark;
#endif #endif
struct hlist_head fdb_list; struct hlist_head fdb_list;
#if IS_ENABLED(CONFIG_BRIDGE_MRP)
struct list_head __rcu mrp_list;
#endif
}; };
struct br_input_skb_cb { struct br_input_skb_cb {