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. -------