Subject: Re: SO_DONTROUTE clashes with arpresolve(9)
To: None <email@example.com>
From: David Young <firstname.lastname@example.org>
Date: 11/21/2002 00:47:24
On Tue, Nov 19, 2002 at 09:39:18PM -0600, David Young wrote:
> arpresolve(9) negates the effect I expect from SO_DONTROUTE when I try
> to send a packet to a host with a non-local route. E.g.,
Is this an acceptable solution?
1 Add a new mbuf flag, M_DONTROUTE.
2 In ip_output, set flag M_DONTROUTE on every mbuf sent with option
3 In arplookup, if its mbuf argument is flagged M_DONTROUTE, the
nexthop route is an IPv4 gateway, and RTF_LLINFO is not set, then
set the route's RTF_LLINFO flag. Create a special llinfo_arp with a
sockaddr at its end. Attach the llinfo_arp to the route, and return
4 In arplookup, if the mbuf is flagged M_DONTROUTE, and its nexthop
is an IPv4 route with both RTF_GATEWAY and RTF_LLINFO set, then return
the llinfo_arp attached to it.
5 In arpresolve, if both flags RTF_GATEWAY and RTF_LLINFO are set,
then examine the sockaddr in rt_llinfo instead of the sockaddr
rt_gateway for ARP info.
Because Token Ring users have heretofore not been affected by this bug,
I guess, I will not address Token Ring in my fix. Ok?
David Young OJC Technologies
email@example.com Engineering from the Right Brain
Urbana, IL * (217) 278-3933