Re: rev. 1.94 of netinet/in.c broke CARP
- From: Gleb Smirnoff <glebius@xxxxxxxxxxx>
- Date: Fri, 26 Jan 2007 00:23:10 +0300
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.
--
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE
_______________________________________________
freebsd-net@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: rev. 1.94 of netinet/in.c broke CARP
- From: Robert Watson
- Re: rev. 1.94 of netinet/in.c broke CARP
- From: Max Laier
- Re: rev. 1.94 of netinet/in.c broke CARP
- References:
- rev. 1.94 of netinet/in.c broke CARP
- From: Gleb Smirnoff
- Re: rev. 1.94 of netinet/in.c broke CARP
- From: Bruce M. Simpson
- Re: rev. 1.94 of netinet/in.c broke CARP
- From: Gleb Smirnoff
- Re: rev. 1.94 of netinet/in.c broke CARP
- From: Robert Watson
- rev. 1.94 of netinet/in.c broke CARP
- Prev by Date: Re: rev. 1.94 of netinet/in.c broke CARP
- Next by Date: Re: rev. 1.94 of netinet/in.c broke CARP
- Previous by thread: Re: rev. 1.94 of netinet/in.c broke CARP
- Next by thread: Re: rev. 1.94 of netinet/in.c broke CARP
- Index(es):
Relevant Pages
- Re: rev. 1.94 of netinet/in.c broke CARP
... The real fix for netinet is to do what netinet6 does; that is, refcount the memberships
and keep them in a list, rather than a vector. ... Unfortunately, due to how CARP works,
two bugs were fixed at the expense of introducing another. ... Call multicast cleanup,
if we are destroying carp interface itself. ... Resource allocation and free for CARP runs along
two separate paths; the case where a member interface is detached cannot be considered the same as when
CARP itself is detaching, ... (freebsd-net) - rev. 1.94 of netinet/in.c broke CARP
... that revision 1.94 of in.c has broke CARP. ... of all multicast instances
and deletes all the instances, ... ifconfig vlan0 destroy ... (freebsd-net) - Re: rev. 1.94 of netinet/in.c broke CARP
... the right fix is that CARP needs to have a handler for ... R> ifnet destruction
that always runs before the multicast address garbage ... CARP will always have released
its multicast address before they ... (freebsd-net) - Re: rev. 1.94 of netinet/in.c broke CARP
... R>>R> ifnet destruction that always runs before the multicast address
garbage ... CARP will always have released its multicast address before ... Is adding
a generic GC function a correct way or was it better to just fix ... (freebsd-net) - Re: rev. 1.94 of netinet/in.c broke CARP
... the right fix is that CARP needs to have a handler ... for R> ifnet destruction
that always runs before the multicast address ... its multicast address before they R>
are forceably removed. ... (freebsd-net)