Subject: Re: Multipath
To: None <tech-net@NetBSD.org>
From: David Young <firstname.lastname@example.org>
Date: 09/08/2007 20:40:47
On Thu, Aug 23, 2007 at 01:29:05PM +0300, Mihai Chelaru wrote:
> David Young wrote:
> > I see a couple of places where you clear the RNF_ACTIVE bit in
> > rtrequest1(); resist the temptation.
> I avoid there a call to rn_delete1 in order to keep radix node alive and
> RNF_ACTIVE must be cleared for rtfree() afterwards. Isn't it OK ?
> > You also memcpy the radix_nodes.
> This is a must in order to avoid double allocation of netmask. Or isn't it ?
You need to take care to fix up embedded pointers, and pointers to the
radix_nodes, but you have not.
> > Do not touch the radix trie data structures directly, but use the
> > radix_node_head methods, instead. I suggest doing a delete+add with
> > the old and new "head" rtentry.
> Are you talking about rtentry memcpy in rtfree() ? I was thinking that it's
> faster and harmless.
I urge you to wait to optimize for speed and space until after your code
Do not rely on implementation details of the route table, because they
will change. Instead, use the accessor functions the table provides:
rn_delete, rn_addroute, et cetera. (I know that the existing code is not
perfectly consistent about this, but gradually I have been making it so.)
David Young OJC Technologies
email@example.com Urbana, IL * (217) 278-3933 ext 24