[Bridge] RSTP in http://git.kernel.org/?p=linux/kernel/git/shemminger/rstp.git; a=summary problems

Joakim Tjernlund Joakim.Tjernlund at transmode.se
Mon Mar 31 10:54:38 PDT 2008


> -----Original Message-----
> From: Srinivas M.A. [mailto:srinivas.aji at gmail.com]
> Sent: den 31 mars 2008 19:00
> To: joakim.tjernlund at transmode.se
> Cc: Bridge at lists.linux-foundation.org
> Subject: Re: [Bridge] RSTP in http://git.kernel.org/?p=linux/kernel/git/shemminger/rstp.git; a=summary
> problems
> 
> >
> >  So I both get a SEGV and the kernel thinks userspace is running STP, not
> >  ideal.
> 
> Segfault is fixed by this:
> 
> diff --git a/log.h b/log.h
> index ce0d94e..2fcdcfb 100644
> --- a/log.h
> +++ b/log.h
> @@ -63,7 +63,7 @@ extern int log_level;
>  #ifdef NO_DAEMON
> 
>  #define ERROR(_fmt, _args...) \
> -       PRINT(LOG_LEVEL_ERROR, "%s: " _fmt, ##_args)
> +       PRINT(LOG_LEVEL_ERROR, "%s: " _fmt, __PRETTY_FUNCTION__, ##_args)
> 
>  #else
>  #define ERROR(_fmt, _args...) \

Thanks

> 
> 
> >
> >  I really think one should be able to start RSTP with rtspctl too so
> >  one doesn't need /sbin/bridge-stp
> 
> bridge-stp is a way to tell the kernel whether it should run its STP
> or not. This was set up to make it possible for users to run "brctl
> stp <bridge_name> on" without directly being concerned with whether
> kernel STP or userspace STP will be run.
> But that doesn't really happen in practice I guess.
> 
> Unfortunately, bridge-stp is run with the kernel holding the RTNL
> lock, so the set of things it can do without causing a hang is
> limited. With the current kernel infrastructure, my preference would
> be to start rstpd from the network init scripts in the system and use
> bridge-stp just to decide whether to enable RSTP or kernel STP for the
> given bridge, perhaps based on a setting in ifcfg-<bridge_name> (in
> Redhat network config).

I don't like the bridge-stp <bridge> start/stop interface. Why
would bridge-stp know what bridge to run RTSP on? A more natural
way, IMHO, would to extend brctl with a "rstp on" method. Why
is there one rstpctl tool and one brctl tool?

> 
> For more robustness, maybe we need additional kernel infrastructure
> where the daemon can tell the kernel it will handle STP (this can be
> done now by setting stp off and then on when bridge-stp will return
> 0), but where the kernel can also tell (maybe by polling) if the
> daemon quits and fall back to kernel STP in that case.

Yes, something is needed but I don't know the bride interface so I can't
really comment on how to do it.

    Jocke



More information about the Bridge mailing list