Re: rev. 1.94 of netinet/in.c broke CARP



On Thursday 25 January 2007 22:23, Gleb Smirnoff wrote:
On Thu, Jan 25, 2007 at 08:40:52PM +0000, Robert Watson wrote:
R> Architecturally, the right fix is that CARP needs to have a handler
for R> ifnet destruction that always runs before the multicast address
garbage R> collection. I'm pretty preoccupied for the next few days due
to an R> impending paper deadline, so can't investigate further
currently, but one R> way or the other that ordering dependency needs
to be expressed. If done R> properly, CARP will always have released
its multicast address before they R> are forceably removed. Having the
reference count is good too, but what I R> describe should be
sufficient regardless of the refcount.

This means removing usage of EVENTHANDLER(9) and going back to
exporting carp_ifdetach() and calling it directly from if_detach().
This is back out revision 1.255 of net/if.c. Not sure what is a right
way...

I am worried about that CARP is not the only subsystem in kernel
that can join a multicast group on an ifnet, and keep a pointer
to the multicast instance.

pfsync might, but from a quick glance at this thread and code it seems
non-related. I'll look more closely later.

--
/"\ Best regards, | mlaier@xxxxxxxxxxx
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier@EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News

Attachment: pgpBV7G2aPCGW.pgp
Description: PGP signature



Relevant Pages