cvs commit: src/sys/netinet in.h ip_output.c ip_var.h

Maxim Konovalov maxim at
Mon Jun 26 22:46:53 UTC 2006

Hi Bruce,

On Sun, 14 May 2006, 14:22-0000, Bruce M Simpson wrote:

> bms         2006-05-14 14:22:49 UTC
>   FreeBSD src repository
>   Modified files:
>     sys/netinet          in.h ip_output.c ip_var.h
>   Log:
>   Fix a long-standing limitation in IPv4 multicast group membership.
>   By making the imo_membership array a dynamically allocated vector,
>   this minimizes disruption to existing IPv4 multicast code. This
>   change breaks the ABI for the kernel module ip_mroute.ko, and may
>   cause a small amount of churn for folks working on the IGMPv3 merge.
>   Previously, sockets were subject to a compile-time limitation on
>   the number of IPv4 group memberships, which was hard-coded to 20.
>   The imo_membership relationship, however, is 1:1 with regards to
>   a tuple of multicast group address and interface address. Users who
>   ran routing protocols such as OSPF ran into this limitation on machines
>   with a large system interface tree.

It seems these changes broke carp(4).  Now ifconfig carp0 <ip address>
panics in ip_carp.c::carp_set_addr() when tries to dereference
imo->imo_membership[0] when imo->imo_membership == NULL.

Maxim Konovalov

More information about the cvs-src mailing list