resolving routes externally

James haesu at
Wed Nov 24 08:34:03 PST 2004

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

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

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


James Jun                                            TowardEX Technologies, Inc.
Technical Lead                      Boston IPv4/IPv6 Web Hosting, Colocation and
james at            Network design/consulting & configuration services
cell: 1(978)-394-2867           web: , noc:
freebsd-hackers at mailing list
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at"

More information about the freebsd-net mailing list