Markus Oestreicher | 1 Oct 2008 21:29
Picon

[quagga-users 9962] Re: OSPF binding to wrong interface on FreeBSD 7

John Lingate schrieb:
> This bug was reported around the release of FreeBSD 7, but does not seem 
> to have made any progress.
> 
> http://bugzilla.quagga.net/show_bug.cgi?id=420
> 
> Is this because the sockopt.c.diff patch is correct, which isn't 
> entirely clear from the following comments, or is there some other 
> solution to this problem?  Thanks!

Just a question for clarity:

I see that the FreeBSD port contains a small patch from Jan-2008 that adds
three lines to sockopt.c to restore old behaviour:

http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/quagga/files/patch-lib-sockopt.c?rev=1.1

Can anyone confirm that the current quagga port works correctly on RELENG_7?

Thanks!

Markus
Joe Greco | 1 Oct 2008 22:15

[quagga-users 9963] Re: OSPF binding to wrong interface on FreeBSD 7

> John Lingate schrieb:
> > This bug was reported around the release of FreeBSD 7, but does not seem 
> > to have made any progress.
> > 
> > http://bugzilla.quagga.net/show_bug.cgi?id=420
> > 
> > Is this because the sockopt.c.diff patch is correct, which isn't 
> > entirely clear from the following comments, or is there some other 
> > solution to this problem?  Thanks!
> 
> Just a question for clarity:
> 
> I see that the FreeBSD port contains a small patch from Jan-2008 that adds
> three lines to sockopt.c to restore old behaviour:
> 
> http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/quagga/files/patch-lib-sockopt.c?rev=1.1
> 
> Can anyone confirm that the current quagga port works correctly on RELENG_7?

It Does Not.  It looks like it appears to under certain circumstances,
such as if you only have one interface advertising (this is based on
observation, not analysis).  It definitely goes to hell if you use it
in an environment with a bunch of interfaces.  We were using Quagga out
of ports originally when we first saw all this.

The sockopt.c.diff patch appears like it might work, except that we're
still seeing a low incidence of OSPF "events" which we haven't isolated.
There was a response, I believe on the FreeBSD lists, that suggested it
wasn't really a correct solution.  

(Continue reading)

Ian FREISLICH | 11 Oct 2008 15:42
Picon

[quagga-users 9997] Re: OSPF binding to wrong interface on FreeBSD 7

Joe Greco wrote:
> > John Lingate schrieb:
> > > This bug was reported around the release of FreeBSD 7, but does not seem 
> > > to have made any progress.
> > > 
> > > http://bugzilla.quagga.net/show_bug.cgi?id=420
> > > 
> > > Is this because the sockopt.c.diff patch is correct, which isn't 
> > > entirely clear from the following comments, or is there some other 
> > > solution to this problem?  Thanks!
> > 
> > Just a question for clarity:
> > 
> > I see that the FreeBSD port contains a small patch from Jan-2008 that adds
> > three lines to sockopt.c to restore old behaviour:
> > 
> > http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/quagga/files/patch-lib-sock
opt.c?rev=1.1
> > 
> > Can anyone confirm that the current quagga port works correctly on RELENG_7
?
> 
> It Does Not.  It looks like it appears to under certain circumstances,
> such as if you only have one interface advertising (this is based on
> observation, not analysis).  It definitely goes to hell if you use it
> in an environment with a bunch of interfaces.  We were using Quagga out
> of ports originally when we first saw all this.
> 
> The sockopt.c.diff patch appears like it might work, except that we're
> still seeing a low incidence of OSPF "events" which we haven't isolated.
(Continue reading)

Ian FREISLICH | 14 Oct 2008 19:04
Picon

[quagga-users 10005] Re: OSPF binding to wrong interface on FreeBSD 7

 wrote:
> On Sat, Oct 11, 2008 at 03:42:03PM +0200, Ian FREISLICH wrote:
> > The issue relates to bms' reworking of the multicast support.  The
> > code doesn't support the "ifindex hack" any more and the multicast
> > group is joined on the interface that is used by the default route.
> > 
> > I'm using the following patch in net/quagga/files/patch-lib-sockopt.c
> > on 8-CURRENT on my production routers:
> > 
> > --- lib/sockopt.c.orig  2007-08-21 18:32:56.000000000 +0200
> > +++ lib/sockopt.c       2008-08-13 09:07:20.000000000 +0200
> >  <at>  <at>  -231,6 +231,7  <at>  <at> 
> >        else
> >         mreqn.imr_address = if_addr;
> >        
> > +       mreqn.imr_address = if_addr;
> >        ret = setsockopt(sock, IPPROTO_IP, optname,
> >                        (void *)&mreqn, sizeof(mreqn));
> >        if ((ret < 0) && (optname == IP_ADD_MEMBERSHIP) && (errno == EADDRIN
USE))
> 
> So wouldn't it be simpler to just remove the else to run that command
> all the time, rather than running it in the else and all the time (so
> twice in some cases)?

Except that it's clearly not running in the else on my system.
Ever.  I said that this was a private patch.  I spent as much time
on it at 4am one morning as was required to make it work after
installation to get my site up.  You're welcome to make whatever
style or syntax changes you deem fit.
(Continue reading)

Lennart Sorensen | 14 Oct 2008 16:12
Picon
Picon
Favicon

[quagga-users 10002] Re: OSPF binding to wrong interface on FreeBSD 7

On Sat, Oct 11, 2008 at 03:42:03PM +0200, Ian FREISLICH wrote:
> The issue relates to bms' reworking of the multicast support.  The
> code doesn't support the "ifindex hack" any more and the multicast
> group is joined on the interface that is used by the default route.
> 
> I'm using the following patch in net/quagga/files/patch-lib-sockopt.c
> on 8-CURRENT on my production routers:
> 
> --- lib/sockopt.c.orig  2007-08-21 18:32:56.000000000 +0200
> +++ lib/sockopt.c       2008-08-13 09:07:20.000000000 +0200
>  <at>  <at>  -231,6 +231,7  <at>  <at> 
>        else
>         mreqn.imr_address = if_addr;
>        
> +       mreqn.imr_address = if_addr;
>        ret = setsockopt(sock, IPPROTO_IP, optname,
>                        (void *)&mreqn, sizeof(mreqn));
>        if ((ret < 0) && (optname == IP_ADD_MEMBERSHIP) && (errno == EADDRINUSE))

So wouldn't it be simpler to just remove the else to run that command
all the time, rather than running it in the else and all the time (so
twice in some cases)?

I really hate if/else statements without {}s.  So hard to read and so
error prone.

--

-- 
Len Sorensen
Markus Oestreicher | 1 Oct 2008 23:57
Picon

[quagga-users 9964] Re: OSPF binding to wrong interface on FreeBSD 7

Hello Joe,

Joe Greco wrote:
> It Does Not.  It looks like it appears to under certain circumstances,
> such as if you only have one interface advertising (this is based on
> observation, not analysis).  It definitely goes to hell if you use it
> in an environment with a bunch of interfaces.  We were using Quagga out
> of ports originally when we first saw all this.
> 
> The sockopt.c.diff patch appears like it might work, except that we're
> still seeing a low incidence of OSPF "events" which we haven't isolated.
> There was a response, I believe on the FreeBSD lists, that suggested it
> wasn't really a correct solution.

Can you describe the events you saw? Were they service disrupting
or just display errors?

> I've refrained from commenting until now since we didn't have a good
> feeling for how it was behaving in the long run.  In the short run, it
> *appears* to work just like older Quagga on older FreeBSD.

So, did you stay with RELENG_6 or are you running RELENG_7+patch
in production with some minor issues?

I need to upgrade some routers, so I have to decide what to do.

Markus
Joe Greco | 2 Oct 2008 00:11

[quagga-users 9965] Re: OSPF binding to wrong interface on FreeBSD 7

> Hello Joe,
> 
> Joe Greco wrote:
> > It Does Not.  It looks like it appears to under certain circumstances,
> > such as if you only have one interface advertising (this is based on
> > observation, not analysis).  It definitely goes to hell if you use it
> > in an environment with a bunch of interfaces.  We were using Quagga out
> > of ports originally when we first saw all this.
> > 
> > The sockopt.c.diff patch appears like it might work, except that we're
> > still seeing a low incidence of OSPF "events" which we haven't isolated.
> > There was a response, I believe on the FreeBSD lists, that suggested it
> > wasn't really a correct solution.
> 
> Can you describe the events you saw? Were they service disrupting
> or just display errors?

I probably wouldn't care about display errors.  I've previously talked
about various problems.  Let's just say "it seemed capable of taking 
down even Quagga OSPFD's in other areas that were not directly connected
to the area in question."  Look back for a post called "OSPFD gone wild"
and probably any other recent messages from me on the list.

> > I've refrained from commenting until now since we didn't have a good
> > feeling for how it was behaving in the long run.  In the short run, it
> > *appears* to work just like older Quagga on older FreeBSD.
> 
> So, did you stay with RELENG_6 or are you running RELENG_7+patch
> in production with some minor issues?
> 
(Continue reading)


Gmane