Message ID | 20210209202112.2545325-1-horatiu.vultur@microchip.com (mailing list archive) |
---|---|
Headers | show |
Series | bridge: mrp: Extend br_mrp_switchdev_* | expand |
Hi Horatiu, On Tue, Feb 09, 2021 at 09:21:07PM +0100, Horatiu Vultur wrote: > This patch series extends MRP switchdev to allow the SW to have a better > understanding if the HW can implement the MRP functionality or it needs > to help the HW to run it. There are 3 cases: > - when HW can't implement at all the functionality. > - when HW can implement a part of the functionality but needs the SW > implement the rest. For example if it can't detect when it stops > receiving MRP Test frames but it can copy the MRP frames to CPU to > allow the SW to determine this. Another example is generating the MRP > Test frames. If HW can't do that then the SW is used as backup. > - when HW can implement completely the functionality. > > So, initially the SW tries to offload the entire functionality in HW, if > that fails it tries offload parts of the functionality in HW and use the > SW as helper and if also this fails then MRP can't run on this HW. > > Also implement the switchdev calls for Ocelot driver. This is an example > where the HW can't run completely the functionality but it can help the SW > to run it, by trapping all MRP frames to CPU. > > v3: > - implement the switchdev calls needed by Ocelot driver. > v2: > - fix typos in comments and in commit messages > - remove some of the comments > - move repeated code in helper function > - fix issue when deleting a node when sw_backup was true > > Horatiu Vultur (5): > switchdev: mrp: Extend ring_role_mrp and in_role_mrp > bridge: mrp: Add 'enum br_mrp_hw_support' > bridge: mrp: Extend br_mrp_switchdev to detect better the errors > bridge: mrp: Update br_mrp to use new return values of > br_mrp_switchdev > net: mscc: ocelot: Add support for MRP > > drivers/net/ethernet/mscc/ocelot_net.c | 154 +++++++++++++++++++ > drivers/net/ethernet/mscc/ocelot_vsc7514.c | 6 + > include/net/switchdev.h | 2 + > include/soc/mscc/ocelot.h | 6 + > net/bridge/br_mrp.c | 43 ++++-- > net/bridge/br_mrp_switchdev.c | 171 +++++++++++++-------- > net/bridge/br_private_mrp.h | 38 +++-- > 7 files changed, 327 insertions(+), 93 deletions(-) > > -- > 2.27.0 > Which net-next commit can these patches be applied to? On the current master I get: Applying: switchdev: mrp: Extend ring_role_mrp and in_role_mrp Applying: bridge: mrp: Add 'enum br_mrp_hw_support' Applying: bridge: mrp: Extend br_mrp_switchdev to detect better the errors error: patch failed: net/bridge/br_mrp_switchdev.c:177 error: net/bridge/br_mrp_switchdev.c: patch does not apply Patch failed at 0004 bridge: mrp: Extend br_mrp_switchdev to detect better the errors hint: Use 'git am --show-current-patch' to see the failed patch When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort".
The 02/10/2021 10:08, Vladimir Oltean wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > Hi Horatiu, > > On Tue, Feb 09, 2021 at 09:21:07PM +0100, Horatiu Vultur wrote: > > This patch series extends MRP switchdev to allow the SW to have a better > > understanding if the HW can implement the MRP functionality or it needs > > to help the HW to run it. There are 3 cases: > > - when HW can't implement at all the functionality. > > - when HW can implement a part of the functionality but needs the SW > > implement the rest. For example if it can't detect when it stops > > receiving MRP Test frames but it can copy the MRP frames to CPU to > > allow the SW to determine this. Another example is generating the MRP > > Test frames. If HW can't do that then the SW is used as backup. > > - when HW can implement completely the functionality. > > > > So, initially the SW tries to offload the entire functionality in HW, if > > that fails it tries offload parts of the functionality in HW and use the > > SW as helper and if also this fails then MRP can't run on this HW. > > > > Also implement the switchdev calls for Ocelot driver. This is an example > > where the HW can't run completely the functionality but it can help the SW > > to run it, by trapping all MRP frames to CPU. > > > > v3: > > - implement the switchdev calls needed by Ocelot driver. > > v2: > > - fix typos in comments and in commit messages > > - remove some of the comments > > - move repeated code in helper function > > - fix issue when deleting a node when sw_backup was true > > > > Horatiu Vultur (5): > > switchdev: mrp: Extend ring_role_mrp and in_role_mrp > > bridge: mrp: Add 'enum br_mrp_hw_support' > > bridge: mrp: Extend br_mrp_switchdev to detect better the errors > > bridge: mrp: Update br_mrp to use new return values of > > br_mrp_switchdev > > net: mscc: ocelot: Add support for MRP > > > > drivers/net/ethernet/mscc/ocelot_net.c | 154 +++++++++++++++++++ > > drivers/net/ethernet/mscc/ocelot_vsc7514.c | 6 + > > include/net/switchdev.h | 2 + > > include/soc/mscc/ocelot.h | 6 + > > net/bridge/br_mrp.c | 43 ++++-- > > net/bridge/br_mrp_switchdev.c | 171 +++++++++++++-------- > > net/bridge/br_private_mrp.h | 38 +++-- > > 7 files changed, 327 insertions(+), 93 deletions(-) > > > > -- > > 2.27.0 > > > Hi Vladimir, > Which net-next commit can these patches be applied to? On the current > master I get: Sorry for this. I had an extra patch when I created these patches. And based on this I have added the patch series. This extra patch was this one: https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=b2bdba1cbc84 Which was already applied to net. And I wanted to have it to be able to do more complete test of this patch series. Next time I should be more careful with this. > > Applying: switchdev: mrp: Extend ring_role_mrp and in_role_mrp > Applying: bridge: mrp: Add 'enum br_mrp_hw_support' > Applying: bridge: mrp: Extend br_mrp_switchdev to detect better the errors > error: patch failed: net/bridge/br_mrp_switchdev.c:177 > error: net/bridge/br_mrp_switchdev.c: patch does not apply > Patch failed at 0004 bridge: mrp: Extend br_mrp_switchdev to detect better the errors > hint: Use 'git am --show-current-patch' to see the failed patch > When you have resolved this problem, run "git am --continue". > If you prefer to skip this patch, run "git am --skip" instead. > To restore the original branch and stop patching, run "git am --abort".