ArpaRouter.mesa
Copyright Ó 1986, 1991 by Xerox Corporation. All rights reserved.
Demers, August 20, 1987 11:39:16 pm PDT
Arpa routing using RIP.
DIRECTORY
Arpa USING [Address];
ArpaRouter: CEDAR DEFINITIONS
~ {
Routing
Hops: TYPE ~ CARD;
maxHops: Hops ~ 15;
unreachable: Hops ~ maxHops + 1;
Anything more than maxHops away is unreachable.
RoutingTableEntry: TYPE ~ RECORD [
hops: Hops, -- 0 => directly connected
immediate: Arpa.Address,
time: CARDINAL ];
GetHops: PROC [Arpa.Address] RETURNS [Hops];
GetRouting: PROC [Arpa.Address] RETURNS [RoutingTableEntry];
Enumerate: PROC [
low: Hops ¬ 0, high: Hops ¬ unreachable,
proc: PROC [Arpa.Address, RoutingTableEntry] ];
Enumerate routine table entries with delay between low and high, inclusive, calling proc on each of them. Client may abort the enumeration by raising an exception in proc and catching it in the caller of Enumerate. It's okay for proc to send/receive packets.
Fast: PROC [Arpa.Address] RETURNS [yes: BOOL];
Phone lines aren't fast. Directly connected ethernets are.
}.