[comp.protocols.tcp-ip] Replies to "Rarp under 4.3 BSD"

bbanerje@sjuvax.UUCP (B. Banerjee) (09/02/87)

Hi,

Some  time  ago,  I  posted   an  article  enquiring  as  to  the
availability of  RARP under  4.3 BSD  to this  newsgroup. Several
people were  kind enough to respond.  In the event that  you were
waiting with bated breath (unlikely!), here's what I learned.

a. 	4.3 BSD doesn't support RARP, in any way shape or form.
b. 	Sun Unix 3.x ( Lim x->4) does support RARP.  In order to
	turn this on, you have  to fiddle with  /etc/ethers, reconfigure
	the  kernel to include the NIT code , and start an rarpd from
	rc.local.
c. 	Rarp can be added to 4.3 BSD.

Now, as the prospect of writing  a rarp daemon doesn't excite me,
I'm going to  go with the path of least  resistance -- running it
on the Sun.

If,  on the  other hand,  you are  in a  similar dilemna  without
recourse to a Sun;  all is not lost. You can  write a rarp daemon
with the aid  of the 'enet' ethernet packet  filter software that
was part of the ``user contributed software '' that came with 4.3
BSD. This essentially  gives you access to  ethernet packets that
haven't been snarfed up by IP or ICMP in the kernel. You can then
handle the 'rarp' packets yourself.

I personally  believe that it makes  the most sense to  place the
rarp handling  stuff along with  the 'arp' handling stuff  in the
kernel (netinet/if_ether.c). Consider the following facts:

	i)  The  internet-address  to  ethernet-address  mappings
	already exist in the kernel.
	ii) Proxy arp is supported.

Now suppose that a RARP packet  is received. The code could check
it's tables to see if it  was a 'published' entry, performing the
rarp service if  it was. The table could be  updated via 'arp -s'
as with proxy arp.

If  you want  to write  a RARP  daemon, but  don't know  where to
start; I  recommend Doug Comer's excellent  book "Internetworking
with Xinu". He has some code in there that you could almost steal
verbatim.

I would like to thank the following people for taking the time to
respond  to  my  query;  and answering  questions  or  giving  me
pointers on where to look.

bzs@bu-cs.bu.edu (Barry Shein)
karels%okeeffe@berkeley.edu (Mike Karels)
raj@purdue.edu  (Raju Yavatkar)
sun!guy  (Guy  Harris)
milazzo@rice.edu   (Paul Milazzo)
emory!tony  (Tony Vincent)
matt@oddjob.uchicago.edu   (Matt Crawford)
narten@purdue.edu (Thomas Narten)
sdcsvax!brian (Brian Kantor)

If you sent me mail and I haven't mentioned your name -- my apologies.
The first few letters were read, replied to and then deleted
before I realized that I would receive so many replies.  Thanks again
to anyone who helped with this one.

Regards,

		Binayak Banerjee
	{allegra | astrovax | bpa | burdvax}!sjuvax!bbanerje
		bbanerje%sjuvax.sju.edu@relay.cs.net

SATZ@MATHOM.CISCO.COM (Greg Satz) (09/04/87)

A rarp daemon exists for 4.3BSD using the enet packet filter. It was
developed and used extensively at Stanford. The enet device code should
just "drop in" to the distributed 4.3BSD system. The only major change
would be to the ethernet driver to insert the hooks to pass the packet
off to the enet code instead of just pitching it.

If you are interested in the daemon, drop me a note and I will give
you the name of people within Stanford who may be able to help. Note
that I cannot provide code since I am not affiliated with Stanford.
-------