New Network System -- Problems to be solved - Multiple Processors & network interfaces A backplane can have from 1 to 3 Lambda processors. It can also have a 3com board and/or an Excelan board (or neither). Desired Action: A single Lambda system with just an Excelan or just a 3com: works fine already. A single Lambda system with both Excelan and 3com: configures itself to use only the 3com *** Should configure itself to use both if more than one Chaos and/or Internet address is known for this system (gateway functions.) If only one Chaos or Internet address is known, the Lambda is presumably only on one network, and doesn't really need more than one interface. Multiple Lambda system with just a 3com or an Excelan: works fine until ethernet owner crashes. *** One of the other processors should then take over the card. Multiple Lambda system with both Excelan and 3com, the first processor takes the 3com, the second the Excelan, and the third accesses the network through the 3com owner. *** If that processor crashes, should switch to Excelan owner or take over 3com card. - Multiple Processors & share device. There are a few kludges wherein the SHARE device is explicitly known as the interface to other processors on the same bus. arp.lisp: net:processor-without-network-interface determines if a network address is owned by a processor on the same bus with no network interface. Currently looks specifically at ethernet:*3com-owner* and ethernet:*excelan-owner* arp.lisp: net:addr-res-packet-for-me-p uses this to determine if this processor should respond to ARP packets for that address chsncp.lisp: chaos:transmit-int-pkt sends to hardware controller if not this processor ip.lisp: ip:initialize-route-table sets up hardware controller as default gateway - Site Configuration Default gateways must be listed including protocols forwarded by them: (:gateways ("aza" :internet :chaos) ("lad" :internet :chaos)) (:internet 192.1.2.2 192.2.3.12) (:chaos 6.9 7.12) (:internet 192.1.2.6 10.4.0.191) (:chaos 6.5) Thus: if a host knows it is on net 192.1.2.0, it has two gateways to pick from: AZA goes to 192.2.3.0 and LAD goes to 10.0.0.0 The host will initialize its routing tables with this information. Either gateway can be used as a default for other networks; if the default gateway goes down, the other gateway should be used as the default gateway. - Point to point links, serial lines, modems, etc. - IP fixes ip: properly deal with ip-self-address (all zeros in host field). This is needed to make ICMP info request work. - ICMP fixes icmp: update routing-table when receive (net, host) unreachable icmp: log received parameter problem messages - TCP fixes ***Proper window management -- receiver's silly window syndrome fix, better delayed acks, etc. TCP receives destination unreachable, time exceeded, and source quench messages from ICMP. Currently it passes them all to the user. Some of them (Source quench?) should be handled by TCP itself. "It is a bad idea to delay an ACK more than 1/2 median inter-packet-arrival-time" Tuning -- speed up algorithms, minimize packets :write-data has :start and :end keywords - Loopback interface damage, delay, drop, duplicate