On 27/03/2020 11:21, Horatiu Vultur wrote: > Media Redundancy Protocol is a data network protocol standardized by > International Electrotechnical Commission as IEC 62439-2. It allows rings of > Ethernet switches to overcome any single failure with recovery time faster than > STP. It is primarily used in Industrial Ethernet applications. > > Based on the previous RFC[1][2][3], the MRP state machine and all the timers > were moved to userspace, except for the timers used to generate MRP Test frames. > In this way the userspace doesn't know and should not know if the HW or the > kernel will generate the MRP Test frames. The following changes were added to > the bridge to support the MRP: > - the existing netlink interface was extended with MRP support, > - allow to detect when a MRP frame was received on a MRP ring port > - allow MRP instance to forward/terminate MRP frames > - generate MRP Test frames in case the HW doesn't have support for this > > To be able to offload MRP support to HW, the switchdev API was extend. > > With these changes the userspace doesn't do the following because already the > kernel/HW will do: > - doesn't need to forward/terminate MRP frames > - doesn't need to generate MRP Test frames > - doesn't need to detect when the ring is open/closed. > > The userspace application that is using the new netlink can be found here[4]. > Hi Horatiu, One issue in general - some functions are used before they're defined (the switchdev API integration ones) patch 4 vs 7 which doesn't make sense. Also I see that the BRIDGE_MRP is used (ifdef) before it's added to the Kconfig which doesn't make much sense either. I think you should rearrange the patches and maybe combine some of them. Thanks, Nik