Digging into this, I noticed that vlan0 has an ifindex of 39, which is
greater than MAXVIFS (32).  This causes the mfc.ttls[iface->ifindex] =
1 line in the IMSG_MFC_ADD clause of rde_dispatch_imsg to overflow the
stack.

I tried bumping MAXVIFS to 64, but it's originally defined in
/usr/include/netinet/ip_mroute.h, so I'm not certain that will
actually work.

On 3/13/08, Matthew Dempsky <[EMAIL PROTECTED]> wrote:
> I have an OpenBSD 4.2-stable machine with the following interfaces
>  (it's gross, I know :():
>
>   * bge1: connected to a OpenBSD 4.3 machine via leased line
>   * em1: connected to network switch
>   * vlan0: vlan on em1
>   * gif0: tunnel to the 4.3 machine
>   * bridge0: bridging vlan0 and gif0
>
>  bge1, em1, and vlan0 are configured with IP addresses.
>
>  If I run dvmrpd on just bge1 and em1, it works fine, and multicast
>  traffic is routed between subnets like I expect.  However, if I also
>  add vlan0, dvmrpd prints this error to /var/log/daemon.log at startup:
>
>     dvmrpd[1888]: mrt_add_vif: error adding VIF: Invalid argument
>
>  and then exits ~72 seconds later after printing:
>
>     dvmrpd[5569]: fatal in dvmrpe: pipe closed
>     dvmrpd[1888]: fatal in parent: pipe closed
>
>  dvmrpd works fine on the 4.3 machine, but its interface setup isn't
>  quite as gross.  It does correctly route multicast traffic from vlans
>  though.
>
>  I'll put together a better bug report this weekend after I can look at
>  dvmrpd's code some more.  I thought I'd mention this briefly in case
>  anyone more experienced could point out something obviously wrong.
>
>  Thanks.

Reply via email to