[Fwd: Panic: if_freemulti: protospec not NULL]

Bruce M. Simpson bms at FreeBSD.org
Tue Mar 27 16:19:36 UTC 2007


Patch for this condition is attached.

This particular bug is irritating: the IPv4 stack joins 224.0.0.1 once 
for every IPv4 unicast address configured in the stack. This is 
incorrect behaviour. The implementation of refcounting has exposed this 
bug. The fix is not particularly elegant.

It is most likely a left-over from the FreeBSD 2.x/3.x era when IPv4 
'aliases' were first introduced. At that point in time the IGMP code in 
FreeBSD would allow groups to be joined on a per-IPv4-address basis, 
which is inconsistent with the IGMPv2/v3 specified behaviour (and indeed 
that addressed in future multicast RFCs).

It seems that there are other situations where the stack is not 
adequately equipped to deal with interfaces going away unexpectedly. We 
can't afford to be complacent about multicast code on the basis of 'it's 
not the critical path', because it is an integral component of IPv6, and 
many ideas which people are trying to implement in IPv4 also require 
that the multicast code is fit for purpose.

We would do well to have more people available to help on reviewing and 
possibly rewriting parts of the network stack from a perspective of 
correctness, not just performance. If this interests you please consider 
signing up to the Wiki and updating the page at 
http://wiki.freebsd.org/NetworkRFCCompliance.

Regards,
BMS
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ifa_detach.diff
Type: text/x-patch
Size: 4010 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20070327/b1d63641/ifa_detach.bin
-------------- next part --------------
An embedded message was scrubbed...
From: Andre Oppermann <andre at freebsd.org>
Subject: Panic: if_freemulti: protospec not NULL
Date: Tue, 27 Mar 2007 13:40:14 +0200
Size: 11119
Url: http://lists.freebsd.org/pipermail/freebsd-current/attachments/20070327/b1d63641/protospecnotNULL.eml


More information about the freebsd-current mailing list