On 23/11/2020 14:31, Horatiu Vultur wrote: > The 11/23/2020 14:13, Nikolay Aleksandrov wrote: >> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe >> >> On 23/11/2020 13:14, Horatiu Vultur wrote: >>> Extend MRP to support LC mode(link check) for the interconnect port. >>> This applies only to the interconnect ring. >>> >>> Opposite to RC mode(ring check) the LC mode is using CFM frames to >>> detect when the link goes up or down and based on that the userspace >>> will need to react. >>> One advantage of the LC mode over RC mode is that there will be fewer >>> frames in the normal rings. Because RC mode generates InTest on all >>> ports while LC mode sends CFM frame only on the interconnect port. >>> >>> All 4 nodes part of the interconnect ring needs to have the same mode. >>> And it is not possible to have running LC and RC mode at the same time >>> on a node. >>> >>> Whenever the MIM starts it needs to detect the status of the other 3 >>> nodes in the interconnect ring so it would send a frame called >>> InLinkStatus, on which the clients needs to reply with their link >>> status. >>> >>> This patch adds the frame header for the frame InLinkStatus and >>> extends existing rules on how to forward this frame. >>> >>> Signed-off-by: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> >>> --- >>> include/uapi/linux/mrp_bridge.h | 7 +++++++ >>> net/bridge/br_mrp.c | 18 +++++++++++++++--- >>> 2 files changed, 22 insertions(+), 3 deletions(-) >>> >> >> Hi Horatiu, >> The patch looks good overall, just one question below. > > Hi Nik, > > Thanks for taking time to review the patch. > >> >>> diff --git a/include/uapi/linux/mrp_bridge.h b/include/uapi/linux/mrp_bridge.h >>> index 6aeb13ef0b1e..450f6941a5a1 100644 >>> --- a/include/uapi/linux/mrp_bridge.h >>> +++ b/include/uapi/linux/mrp_bridge.h >>> @@ -61,6 +61,7 @@ enum br_mrp_tlv_header_type { >>> BR_MRP_TLV_HEADER_IN_TOPO = 0x7, >>> BR_MRP_TLV_HEADER_IN_LINK_DOWN = 0x8, >>> BR_MRP_TLV_HEADER_IN_LINK_UP = 0x9, >>> + BR_MRP_TLV_HEADER_IN_LINK_STATUS = 0xa, >>> BR_MRP_TLV_HEADER_OPTION = 0x7f, >>> }; >>> >>> @@ -156,4 +157,10 @@ struct br_mrp_in_link_hdr { >>> __be16 interval; >>> }; >>> >>> +struct br_mrp_in_link_status_hdr { >>> + __u8 sa[ETH_ALEN]; >>> + __be16 port_role; >>> + __be16 id; >>> +}; >>> + >> >> I didn't see this struct used anywhere, am I missing anything? > > Yes, you are right, the struct is not used any. But I put it there as I > put the other frame types for MRP. > I see, we don't usually add unused code. The patch is fine as-is and since this is already the case for other MRP parts I'm not strictly against it, so: Acked-by: Nikolay Aleksandrov <nikolay@xxxxxxxxxx> If Jakub decides to adhere to that rule you can keep my acked-by and just remove the struct for v2. Thanks, Nik