SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING,
        SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED,
        SWITCHDEV_ATTR_ID_BRIDGE_MROUTER,
+#if IS_ENABLED(CONFIG_BRIDGE_MRP)
+       SWITCHDEV_ATTR_ID_MRP_PORT_STATE,
+       SWITCHDEV_ATTR_ID_MRP_PORT_ROLE,
+#endif
 };
 
 struct switchdev_attr {
                clock_t ageing_time;                    /* BRIDGE_AGEING_TIME */
                bool vlan_filtering;                    /* BRIDGE_VLAN_FILTERING */
                bool mc_disabled;                       /* MC_DISABLED */
+#if IS_ENABLED(CONFIG_BRIDGE_MRP)
+               u8 mrp_port_state;                      /* MRP_PORT_STATE */
+               u8 mrp_port_role;                       /* MRP_PORT_ROLE */
+               u8 mrp_ring_state;                      /* MRP_RING_STATE */
+#endif
        } u;
 };
 
        SWITCHDEV_OBJ_ID_PORT_VLAN,
        SWITCHDEV_OBJ_ID_PORT_MDB,
        SWITCHDEV_OBJ_ID_HOST_MDB,
+#if IS_ENABLED(CONFIG_BRIDGE_MRP)
+       SWITCHDEV_OBJ_ID_MRP,
+       SWITCHDEV_OBJ_ID_RING_TEST_MRP,
+       SWITCHDEV_OBJ_ID_RING_ROLE_MRP,
+       SWITCHDEV_OBJ_ID_RING_STATE_MRP,
+#endif
 };
 
 struct switchdev_obj {
 #define SWITCHDEV_OBJ_PORT_MDB(OBJ) \
        container_of((OBJ), struct switchdev_obj_port_mdb, obj)
 
+
+#if IS_ENABLED(CONFIG_BRIDGE_MRP)
+/* SWITCHDEV_OBJ_ID_MRP */
+struct switchdev_obj_mrp {
+       struct switchdev_obj obj;
+       struct net_device *p_port;
+       struct net_device *s_port;
+       u32 ring_id;
+};
+
+#define SWITCHDEV_OBJ_MRP(OBJ) \
+       container_of((OBJ), struct switchdev_obj_mrp, obj)
+
+/* SWITCHDEV_OBJ_ID_RING_TEST_MRP */
+struct switchdev_obj_ring_test_mrp {
+       struct switchdev_obj obj;
+       /* The value is in us and a value of 0 represents to stop */
+       u32 interval;
+       u8 max_miss;
+       u32 ring_id;
+       u32 period;
+};
+
+#define SWITCHDEV_OBJ_RING_TEST_MRP(OBJ) \
+       container_of((OBJ), struct switchdev_obj_ring_test_mrp, obj)
+
+/* SWICHDEV_OBJ_ID_RING_ROLE_MRP */
+struct switchdev_obj_ring_role_mrp {
+       struct switchdev_obj obj;
+       u8 ring_role;
+       u32 ring_id;
+};
+
+#define SWITCHDEV_OBJ_RING_ROLE_MRP(OBJ) \
+       container_of((OBJ), struct switchdev_obj_ring_role_mrp, obj)
+
+struct switchdev_obj_ring_state_mrp {
+       struct switchdev_obj obj;
+       u8 ring_state;
+       u32 ring_id;
+};
+
+#define SWITCHDEV_OBJ_RING_STATE_MRP(OBJ) \
+       container_of((OBJ), struct switchdev_obj_ring_state_mrp, obj)
+
+#endif
+
 typedef int switchdev_obj_dump_cb_t(struct switchdev_obj *obj);
 
 enum switchdev_notifier_type {