Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 03 Mar 1997 21:32:13 -0800
From:      Julian Elischer <julian@whistle.com>
To:        Bakul Shah <bakul@chai.plexuscom.com>
Cc:        hackers@freebsd.org
Subject:   Re: [FUN/WORK] BSD Networking virtual meeting.
Message-ID:  <331BB3DD.41C67EA6@whistle.com>
References:  <199703040432.XAA28477@chai.plexuscom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Bakul Shah wrote:
> 
> May be a networking mailing list should also be set up.
> hackers/current/stable have way too much traffic.
yes for sure.. (I'm not sure there isn't one..)
just looked.. No, not that I could see.


> 
> > and I'm struggling with making routes and ifaddrs go away at
> > the right time.
> 
> A prior public discussion of this may be useful.

well I have a basic set of patches..
here's the theory:
ifaddrs are linked off an ifnet.

each ifaddr has a reference count, so that when nothing needs it
any more, it can be freed. so far this is what SHOULD happen.
unfortunatly, there's a hitch..

If you invalidate and ifaddr, the routes that were set up
do not notice, because they have both a pointer to the ifaddr,
and a pointer to the ifnet. This is bogus..
they should notice that the ifaddr has been invalidated
and free their own reference to it, and get rid of their 
pointer to the ifnet.

If you remove an address from an interface, packets routed using that
address should not continue to use that route (now bogus)
but should re-evaluate the route. As they (one by one)
check the route, the old ifaddr should have less and less
references to it, until eventually it reaches 0 and
the ifaddr is freed.

The other part of the equation is to be proactive about it
and whenever an ifaddr is removed, clean out any affected routes
in the routing table.

This is where I'm hitting problems.
at the moment, ARP entries are being removed from the table,
but not from the ARP list, (llinfo is not being taken out of the)
llinfo list when they are removed due to a change in ifaddr.

eventually the llinfo times out (18 minutes arp timeout)
and the  code suddenly discovers that the rest of that route
was freed ages ago, and falls off a random pointer.


> 
> > is there anyone else who'd be intersted?
> 
> I am interested but no mbone access :-(
maybe we could use a chat room..

> 
> > Certainly this idea comes from my own frustration
> > in not being able to get my mind around the damn
> > routing code.. there's always some !@#$ gotcha that makes anything
> > I want to do non-trivial.
> 
> Is this related to your `new' networking framework or are you trying
> to make route.c & friends do something unusual?
teh framework led to me wanting to make interfaces go away,
but this is allin the existing portion of the code,
not the new part.

> 
> > Certainly if we can once work out the technology for this we should
> > be able to use it to great effect!
> 
> :=)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?331BB3DD.41C67EA6>