Commit 78c1b4fb authored by Horatiu Vultur's avatar Horatiu Vultur Committed by David S. Miller
Browse files

bridge: mrp: Extend br_mrp for MRP interconnect



This patch extends the 'struct br_mrp' to contain information regarding
the MRP interconnect. It contains the following:
- the interconnect port 'i_port', which is NULL if the node doesn't have
  a interconnect role
- the interconnect id, which is similar with the ring id, but this field
  is also part of the MRP_InTest frames.
- the interconnect role, which can be MIM or MIC.
- the interconnect state, which can be open or closed.
- the interconnect delayed_work for sending MRP_InTest frames and check
  for lost of continuity.

Signed-off-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
Acked-by: default avatarNikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 43364ef1
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -12,8 +12,10 @@ struct br_mrp {

	struct net_bridge_port __rcu	*p_port;
	struct net_bridge_port __rcu	*s_port;
	struct net_bridge_port __rcu	*i_port;

	u32				ring_id;
	u16				in_id;
	u16				prio;

	enum br_mrp_ring_role_type	ring_role;
@@ -21,6 +23,11 @@ struct br_mrp {
	enum br_mrp_ring_state_type	ring_state;
	u32				ring_transitions;

	enum br_mrp_in_role_type	in_role;
	u8				in_role_offloaded;
	enum br_mrp_in_state_type	in_state;
	u32				in_transitions;

	struct delayed_work		test_work;
	u32				test_interval;
	unsigned long			test_end;
@@ -28,6 +35,12 @@ struct br_mrp {
	u32				test_max_miss;
	bool				test_monitor;

	struct delayed_work		in_test_work;
	u32				in_test_interval;
	unsigned long			in_test_end;
	u32				in_test_count_miss;
	u32				in_test_max_miss;

	u32				seq_id;

	struct rcu_head			rcu;