Message ID | 20200714073458.1939574-7-horatiu.vultur@microchip.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | bridge: mrp: Add support for interconnect ring | expand |
On 14/07/2020 10:34, Horatiu Vultur wrote: > This function notifies the userspace when the node lost the continuity > of MRP_InTest frames. > > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> > --- > net/bridge/br_mrp_netlink.c | 22 ++++++++++++++++++++++ > net/bridge/br_private_mrp.h | 1 + > 2 files changed, 23 insertions(+) > Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> > diff --git a/net/bridge/br_mrp_netlink.c b/net/bridge/br_mrp_netlink.c > index acce300c0cc29..4bf7aaeb29152 100644 > --- a/net/bridge/br_mrp_netlink.c > +++ b/net/bridge/br_mrp_netlink.c > @@ -389,3 +389,25 @@ int br_mrp_ring_port_open(struct net_device *dev, u8 loc) > out: > return err; > } > + > +int br_mrp_in_port_open(struct net_device *dev, u8 loc) > +{ > + struct net_bridge_port *p; > + int err = 0; > + > + p = br_port_get_rcu(dev); > + if (!p) { > + err = -EINVAL; > + goto out; > + } > + > + if (loc) > + p->flags |= BR_MRP_LOST_IN_CONT; > + else > + p->flags &= ~BR_MRP_LOST_IN_CONT; > + > + br_ifinfo_notify(RTM_NEWLINK, NULL, p); > + > +out: > + return err; > +} > diff --git a/net/bridge/br_private_mrp.h b/net/bridge/br_private_mrp.h > index e93c8f9d4df58..23da2f956ad0e 100644 > --- a/net/bridge/br_private_mrp.h > +++ b/net/bridge/br_private_mrp.h > @@ -75,5 +75,6 @@ int br_mrp_port_switchdev_set_role(struct net_bridge_port *p, > > /* br_mrp_netlink.c */ > int br_mrp_ring_port_open(struct net_device *dev, u8 loc); > +int br_mrp_in_port_open(struct net_device *dev, u8 loc); > > #endif /* _BR_PRIVATE_MRP_H */ >
diff --git a/net/bridge/br_mrp_netlink.c b/net/bridge/br_mrp_netlink.c index acce300c0cc29..4bf7aaeb29152 100644 --- a/net/bridge/br_mrp_netlink.c +++ b/net/bridge/br_mrp_netlink.c @@ -389,3 +389,25 @@ int br_mrp_ring_port_open(struct net_device *dev, u8 loc) out: return err; } + +int br_mrp_in_port_open(struct net_device *dev, u8 loc) +{ + struct net_bridge_port *p; + int err = 0; + + p = br_port_get_rcu(dev); + if (!p) { + err = -EINVAL; + goto out; + } + + if (loc) + p->flags |= BR_MRP_LOST_IN_CONT; + else + p->flags &= ~BR_MRP_LOST_IN_CONT; + + br_ifinfo_notify(RTM_NEWLINK, NULL, p); + +out: + return err; +} diff --git a/net/bridge/br_private_mrp.h b/net/bridge/br_private_mrp.h index e93c8f9d4df58..23da2f956ad0e 100644 --- a/net/bridge/br_private_mrp.h +++ b/net/bridge/br_private_mrp.h @@ -75,5 +75,6 @@ int br_mrp_port_switchdev_set_role(struct net_bridge_port *p, /* br_mrp_netlink.c */ int br_mrp_ring_port_open(struct net_device *dev, u8 loc); +int br_mrp_in_port_open(struct net_device *dev, u8 loc); #endif /* _BR_PRIVATE_MRP_H */
This function notifies the userspace when the node lost the continuity of MRP_InTest frames. Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> --- net/bridge/br_mrp_netlink.c | 22 ++++++++++++++++++++++ net/bridge/br_private_mrp.h | 1 + 2 files changed, 23 insertions(+)