9fans archive / 1998 / 07 / 19 /    prev next

From: Eric Dorman edorman@tan...
Subject: [9fans] 100base ether card
Date: Mon, 13 Jul 1998 10:08:58 -0700

On Fri, Jul 10, 1998 at 08:02:35PM -0500, G. David Butler wrote:
> From: Eric Dorman <edorman@tan...>
> 
> >while having a IP-capable 'backbone' for fs<>cpu communication.
> >Unfortunately the current fs has no plumbing for IP routing so
> huh?  il runs over ip...

just because one runs il over ip doesn't mean the plumbing 
is there to support all the bells and whistles of multihoming.
as the fs code stands now it assigns the same ip address to all 
interfaces (same ipmask and ipgw as well) which isin't what I
want (been there, done that :) ).  perhaps i'm wrong but
it seems to me that these need to be different.  I had to 
construct tables expanding the sysip, ipgw and ipmask variables 
to support these variables for all installed interfaces.

the syntax i've used here is sort-of silly, since i'm not
precisely sure yet what is known when the config table is 
evaluated.
i say to the fs:
  ip 128.54.16.3
  ipmask 255.255.0.0
  ipgw 128.54.16.1
which sets up ether0..
succeeding blocks of ip/ipmask/ipgw set up ether1, etc.

i'd rather like to say 
  ip 128.54.16.3 0
  ipmask 255.255.0.0 0
  ipgw 128.54.16.1 0
  ip 128.55.16.3 1
  ipmask 255.255.0.0 1
  ip 128.56.16.3 2
  ipmask 255.255.0.0 2

or somesuch to explicitly name the interface when setting
the ipa, but i'm trying to modify fs as little as possible on
the first swipe.  option #2 is uglier though.  sigh.

the routing stuff is in fact there; i was incorrect about that.
there's just no way to tell fs which ipnet is which.

> >all that glop will have to be written plus multiple interface
> >stuff and config syntax to match.
> huh?  multiple interfaces are already in fs and my multiple 
> interface cpu stuff will be provided Real Soon Now...

one can't set the ipa on ether2 independently of ether0
in the fs, that I can see.  ether everything calls getipa(Ifc *)
which always assigns the interfaces' ip addr to sysip.

on the cpu/terminal side, i numbered ethers /net/ether0 
/net/ether1 ... which caused some changes to some network 
programs:
 arpd   (always got ip from "ether")
 snoopy (always assumed "ether")
 ipconfig  (to find undocumented -s option) 
           (don't think I had to change anything..)

i also changed sparc to generate /net/ether0 vice /net/ether
for its single interface to make the scripts/programs more
general (i have some sparcs).  unfortunately i can't test 
the other architectures.

i have a modified devether (based on jmk's brazil stuff kindly
provided) that supports these interfaces so i can now bootp 
terminals on any interface, ftp into the cpuserver, etc.  only 
thing missing is the fs part so fs can straddle two networks.

one thing i haven't figured out yet is how cpus act as gateways.
to gateway it seems to me that arp on the cpu/gw should respond
to ip's on the 'other side' network with its own mac address..
i haven't dredged into the rest of the arp code to make sure.
OTOH setting ipgw=cpu/gw for the 'this side' network may be
sufficient?

it shall be enlightening to compare notes!
 
> David Butler
> gdb@dbS...

Regards,

Eric Dorman
edorman@ucs...