This patch series extends the MRP with the MRA role. A node that has the MRA role can behave as a MRM or as a MRC. In case there are multiple nodes in the topology that has the MRA role then only one node can behave as MRM and all the others need to be have as MRC. The node that has the higher priority(lower value) will behave as MRM. A node that has the MRA role and behaves as MRC, it just needs to forward the MRP_Test frames between the ring ports but also it needs to detect in case it stops receiving MRP_Test frames. In that case it would try to behave as MRM. v2: - add new patch that fixes sparse warnings - fix parsing of prio attribute Horatiu Vultur (3): bridge: mrp: Update MRP frame type bridge: mrp: Set the priority of MRP instance bridge: mrp: Add support for role MRA include/net/switchdev.h | 2 + include/uapi/linux/if_bridge.h | 4 + include/uapi/linux/mrp_bridge.h | 60 ++++++++++++--- net/bridge/br_mrp.c | 128 +++++++++++++++++++++++++++----- net/bridge/br_mrp_netlink.c | 11 +++ net/bridge/br_mrp_switchdev.c | 5 +- net/bridge/br_private_mrp.h | 5 +- 7 files changed, 182 insertions(+), 33 deletions(-) -- 2.26.2