Based on the discussion on the first RFC[1], we have created a new RFC showing what we were expecting to offload to HW. This patch series contains the same patches plus another one which adds MRP support to switchdev. MRP can now offload to HW the process of sending and terminating MRP_Test frames. But based on the discussions from the previous version, we decided to try to implement this in user space and extend bridge netlink interface to be able to offload to HW the creation, sending and the termination of the MRP_Test frames. Therefor this patch series is more like a future reference. We were thinking to extend the bridge netlink in such a way to be able to offload to HW using switchdev. We were thinking to extend the families IFLA_BR_ and IFLA_BRPORT to add MRP support. Do you think that would be OK? Or should we create a new family for the MRP? changes from V2: - Extend the patch series with another patch. The new patches extends switchdev interface for MRP. MRP will offload to HW the creating and sending of the MRP_Test frames. [1] https://www.spinics.net/lists/netdev/msg623647.html Horatiu Vultur (4): net: bridge: mrp: Add support for Media Redundancy Protocol net: bridge: mrp: Integrate MRP into the bridge net: bridge: mrp: Add netlink support to configure MRP net: bridge: mrp: switchdev: Add HW offload include/net/switchdev.h | 52 ++ include/uapi/linux/if_bridge.h | 27 + include/uapi/linux/if_ether.h | 1 + include/uapi/linux/rtnetlink.h | 7 + net/bridge/Kconfig | 12 + net/bridge/Makefile | 2 + net/bridge/br.c | 19 + net/bridge/br_device.c | 3 + net/bridge/br_forward.c | 1 + net/bridge/br_if.c | 10 + net/bridge/br_input.c | 22 + net/bridge/br_mrp.c | 1543 ++++++++++++++++++++++++++++++++ net/bridge/br_mrp_switchdev.c | 180 ++++ net/bridge/br_mrp_timer.c | 258 ++++++ net/bridge/br_netlink.c | 9 + net/bridge/br_private.h | 30 + net/bridge/br_private_mrp.h | 224 +++++ security/selinux/nlmsgtab.c | 5 +- 18 files changed, 2404 insertions(+), 1 deletion(-) create mode 100644 net/bridge/br_mrp.c create mode 100644 net/bridge/br_mrp_switchdev.c create mode 100644 net/bridge/br_mrp_timer.c create mode 100644 net/bridge/br_private_mrp.h -- 2.17.1