Subject: RE: IFF_NOARP, RTM_RESOLVE ...
To: 'tech-net@netbsd.org' <tech-net@netbsd.org>
From: Sundstrom, Per <Per.Sundstrom@compaq.com>
List: tech-net
Date: 05/04/2000 23:17:25
Hi again all,

It was suggested to me that I should air this suggestion on the "tech-net"
mailing list before going ahead and doing any changes to the kernel in order
to
(hopefully) get the stuff into the distribution and to get as good a
implementation as possible.

Since I have yet not received a single answer I wonder if this is the
correct forum or if I should post my suggestion via some other channel ?

Anyone care to comment ??

Regards,

	/Per


-----Original Message-----
From: Sundstrom, Per 
Sent: den 3 maj 2000 00:20
To: 'tech-net@netbsd.org'
Subject: IFF_NOARP, RTM_RESOLVE ...



Gentlemen,

We have a need for a daemon based arp resolver in a firewall-like
application where we need to have full control over the arp resolution.

The idea is to 
  1) set the interface to 'ifconfig -arp'
  2) set the interface route to XRESOLVE and 
  3) use the routing sockets RTM_RESOLVE messages to
      get notification on misses and finally
  4) use the routing sockets LL address RTM_ADD to set the MAC address
      on the route after the daemon has somehow gotten hold of it.

Now, there are a few things in the networking code that breaks
this idea.

  a) the ifconfig -arp sets the IFF_NOARP flag but this is not honored
      in the code.

  b) there is currently no syncronization between a RTM_RESOLVE
      and a corresponding RTM_ADD resulting in a drop of the first
      packet sent to a specific IP address.

Suggested solution:

  Add checks for the IFF_NOARP in the arp code. 
  Move the generation of RTM_RESOLVE for interface routes to
  if_arp.c
  Use 'llinfo_arp.la_hold' to hold the pending packet and match that
  on a RTM_ADD with a LL address.

What do you think ? Doable, feasable or just plain dumb ?...

Regards,
	/Per