Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!linus!genrad!mit-eddie!mit-vax!eagle!mhuxt!mhuxi!mhuxa!houxm!ihnp4!zehntel!zinfandel!billn
From: billn@zinfandel.UUCP
Newsgroups: net.unix-wizards
Subject: Re: 4.1c Ether Addressing Problem - (nf)
Message-ID: <1098@zehntel.UUCP>
Date: Sat, 2-Jul-83 01:19:43 EDT
Article-I.D.: zehntel.1098
Posted: Sat Jul  2 01:19:43 1983
Date-Received: Thu, 7-Jul-83 12:16:27 EDT
Lines: 41

#R:sequel:-18800:zinfandel:12400031:000:1819
zinfandel!billn    Jul  1 07:56:00 1983

The description of the problem is correct, ie, on any bsd system,
the ethernet driver puts it's "own" 3 high-order ethernet address
bytes into outgoing packets.  So, the way the code is now,
any incomming packets from "other" manufacturers will get responded
to as if they were from "our" manufacturer.  Bsd currently supports
Interlan and 3com.  

Sri, I think, put in a hack to test the high bit of the high byte of
the lowest 3 bytes  of the internet address on interlan boards, and
if it was 1, send to 3com, else send to interlan.  Sigh.

The ideal solution is to do what Jim Kulp (Mr. control-Z) did in chaosnet.
In his system, chaosnet addressesa -- which can correspond to
internet addresses in bsd -- are logical only.  When the driver
gets an internet address to send to, it broadcasts to the net to see
who out there admits to being that logical address.  Either it gets
no reply or someone replys, obviously with his own specific ethernet
address.  Then the original sender stashes that address away in a table,
and uses it hence forth.  Eventually all of the hosts the current host
is talking to are known to the driver.  

The good thing is that address resolution is totally handled by the driver.
the upper level knows or cares nothing about it.  

Jim said he might push for release of this code for 4.2.  I dont know
the status, though.

In the meantime, I am implimenting a scheme where I can ioctl in
the correct ethernet address to the drivers by hand; ie, a non-automatic
version of Kulp's method.  The advantage is that it's easy and
doesnt screw up the upper levels.  The disadvantage is you have to
run around to all the hosts and change their tables when hardware moves,
and you have to have additional tables.  (/etc/etheraddrs ?).

/bill
ucbvax!unisoft!billn
zehntel!billn
northlich@sri-csl