On 14/07/2020 10:34, Horatiu Vultur wrote: > 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: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> > --- > net/bridge/br_private_mrp.h | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > Acked-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxxxxxxxxxxx> > diff --git a/net/bridge/br_private_mrp.h b/net/bridge/br_private_mrp.h > index 315eb37d89f0f..8841ba847fb29 100644 > --- a/net/bridge/br_private_mrp.h > +++ b/net/bridge/br_private_mrp.h > @@ -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; >