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

Bruce M Simpson bms at
Mon May 15 01:51:39 PDT 2006

[Cc: to Pavlin]

On Sun, May 14, 2006 at 02:22:49PM +0000, Bruce M Simpson wrote:
>   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.

I've just realized this change is incomplete with respect to
options MROUTING, when reviewing it for impact on the ABI.

What needs to be done in ip_mroute.c is for a temporary vector to be
spoofed up in tbf_send_packet() before it enters ip_output(), when vif
tunneling is not in use, and which then needs to be freed once
ip_output() is done, as the ip_moptions struct there is allocated
on the stack.

I believe this is the right fix but would appreciate feedback from folks
who know the MROUTING code.

Given the low number of dynamic consumers (ip_mroute and if_carp, besides
netinet itself) I would be inclined to MFC this to RELENG_6 if people are
happy with the change overall and the fact that this breaks the ABI for
those modules, though I wouldn't plan to do this for another 2 weeks.


More information about the cvs-src mailing list