Subject: Re: Are net/quagga and net/zebra still maintained ?
To: Richard Braun <syn@sceen.net>
From: Greg Troxel <gdt@ir.bbn.com>
List: tech-pkg
Date: 02/23/2005 09:35:00
Richard Braun <syn@sceen.net> writes:

> Has anyone tested ospfd on NetBSD 1.6 branch on gif tunnels ?
> It seems there are problems with multicast (I got this message) :
> OSPF: can't setsockopt IP_ADD_MEMBERSHIP (AllSPFRouters): No buffer space available

There are two known problems.  One is that quagga does multicast joins
by address, not ifindex, so if you are reusing addresses it can do the
wrong thing.  The other is that at least some points along the 1.6
branch required root privs for multicast join/leave.  See
src/sys/net/if_gif.c:gif_ioctl, and remove the suser test.

I have also seen ENOBUFS, and I think there may be issues with group
membership handling when an interface goes down.  It's not clear to me
what the right behavior is.  What happens now is:

  interface comes up
  zebra gets rtsock message, tells ospfd
  ospfd joins groups
  [interface is used]
  interface goes down
  zebra gets rtsock messages, tells ospfd
  ospfd tries to leave groups [fails because down, I think]

So, it seems to me that either:

  a) group membership on sockets goes away when interfaces go down

or

  b) one can still call leave without error on down interfaces or
  for addresses that are no longer configured

The above sort of cleanup as done by quagga seems reasonable.  option
a seems bad, since there's no clean way for the user-space program to
know what has happened.


-- 
        Greg Troxel <gdt@ir.bbn.com>