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.