Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Nov 2004 20:49:19 -0500
From:      James <haesu@towardex.com>
To:        Martin Eugen <martin.eugen@gmail.com>, freebsd-net@freebsd.org, freebsd-hackers@freebsd.org
Subject:   Re: resolving routes externally
Message-ID:  <20041124014919.GA9396@scylla.towardex.com>
In-Reply-To: <20041123183646.GB733@empiric.icir.org>
References:  <966ba91e04112301052fed8d6b@mail.gmail.com> <20041123183646.GB733@empiric.icir.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 23, 2004 at 10:36:46AM -0800, Bruce M Simpson wrote:
[ snip ]
> 
> If I understand correctly, you want the kernel to queue packets until
> layer 2 address resolution is complete. Right now we don't do this. If
> there is no route to a destination, packets will be dropped.

The KAME ipv6 code does this for v6 neighbor discovery (which is not
arp yes..). Martin, nd6_output() in netinet6/nd6.c should be helpful
if you want to look. RFC requires routers to queue packets up during
layer 2 resolution process (which is why in IPv6 when destination
host is down you see !A with huge latency -- i.e. 3400ms due to
queueing by the router[1]).

If you are queueing however, make sure you use locking or check for
any safety mechanisms as you may corrupt mbuf's that are flooding
inbound.

BTW Martin,, what is the purpose of this intent? Just curiousity of
mine.


[1]: Some hardware/ASIC based routers violate the RFC unfortunately.
It's a little harder to implement there (see J vendor)

-J

-- 
James Jun                                            TowardEX Technologies, Inc.
Technical Lead                      Boston IPv4/IPv6 Web Hosting, Colocation and
james@towardex.com            Network design/consulting & configuration services
cell: 1(978)-394-2867           web: http://www.towardex.com , noc: www.twdx.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041124014919.GA9396>