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