Re: [RFC net-next v3 09/10] net: bridge: mrp: Integrate MRP into the bridge
From: Horatiu Vultur
Date: Sun Jan 26 2020 - 07:49:22 EST
The 01/25/2020 16:42, Andrew Lunn wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> On Fri, Jan 24, 2020 at 05:18:27PM +0100, Horatiu Vultur wrote:
> > To integrate MRP into the bridge, the bridge needs to do the following:
> > - initialized and destroy the generic netlink used by MRP
> > - detect if the MRP frame was received on a port that is part of a MRP ring. In
> > case it was not, then forward the frame as usual, otherwise redirect the frame
> > to the upper layer.
> >
> > Signed-off-by: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx>
> > ---
> > net/bridge/br.c | 11 +++++++++++
> > net/bridge/br_device.c | 3 +++
> > net/bridge/br_if.c | 6 ++++++
> > net/bridge/br_input.c | 14 ++++++++++++++
> > net/bridge/br_private.h | 14 ++++++++++++++
> > 5 files changed, 48 insertions(+)
> >
> > diff --git a/net/bridge/br.c b/net/bridge/br.c
> > index b6fe30e3768f..d5e556eed4ba 100644
> > --- a/net/bridge/br.c
> > +++ b/net/bridge/br.c
> > @@ -344,6 +344,12 @@ static int __init br_init(void)
> > if (err)
> > goto err_out5;
> >
> > +#ifdef CONFIG_BRIDGE_MRP
> > + err = br_mrp_netlink_init();
> > + if (err)
> > + goto err_out6;
> > +#endif
>
> Please try to avoid #ifdef's like this in C code. Add a stub function
> to br_private_mrp.h.
>
> If you really cannot avoid #ifdef, please use #if IS_ENABLED(CONFIG_BRIDGE_MRP).
> That expands to
>
> if (0) {
>
> }
>
> So the compiler will compile it and then optimize it out. That gives
> us added benefit of build testing, we don't suddenly find the code no
> longer compiles when we enable the option.
>
> > --- a/net/bridge/br_input.c
> > +++ b/net/bridge/br_input.c
> > @@ -21,6 +21,9 @@
> > #include <linux/rculist.h>
> > #include "br_private.h"
> > #include "br_private_tunnel.h"
> > +#ifdef CONFIG_BRIDGE_MRP
> > +#include "br_private_mrp.h"
> > +#endif
>
> It should always be safe to include a header file.
>
> Andrew
Thanks for pointing out these mistakes. I will try to avoid all these
#ifdef's in the next patch series.
--
/Horatiu