[chatter] r11791 - in trunk/libraries/network/ip-stack/layers: media-access/ethernet network/arp

hannes at mccarthy.opendylan.org hannes at mccarthy.opendylan.org
Wed Apr 30 03:34:04 CEST 2008


Author: hannes
Date: Wed Apr 30 03:34:03 2008
New Revision: 11791

Modified:
   trunk/libraries/network/ip-stack/layers/media-access/ethernet/ethernet.dylan
   trunk/libraries/network/ip-stack/layers/network/arp/arp.dylan
Log:
Job: 7299
minor fixes


Modified: trunk/libraries/network/ip-stack/layers/media-access/ethernet/ethernet.dylan
==============================================================================
--- trunk/libraries/network/ip-stack/layers/media-access/ethernet/ethernet.dylan	(original)
+++ trunk/libraries/network/ip-stack/layers/media-access/ethernet/ethernet.dylan	Wed Apr 30 03:34:03 2008
@@ -62,6 +62,13 @@
     check-socket-arguments?(lower, type: <ethernet-frame>);
 end;
 
+define method check-socket-arguments? (lower :: <ethernet-layer>,
+				       #rest rest, #key type, #all-keys)
+ => (valid-arguments? :: <boolean>)
+  //XXX: if (valid-type?)
+  #t;
+end;
+
 define method register-lower-layer (upper :: <ethernet-layer>, lower :: <layer>)
   upper. at running-state := #"up";
 end;

Modified: trunk/libraries/network/ip-stack/layers/network/arp/arp.dylan
==============================================================================
--- trunk/libraries/network/ip-stack/layers/network/arp/arp.dylan	(original)
+++ trunk/libraries/network/ip-stack/layers/network/arp/arp.dylan	Wed Apr 30 03:34:03 2008
@@ -3,9 +3,16 @@
 author: 
 copyright: 
 
+define class <arp-handler> (<filter>)
+  constant slot arp-table :: <vector-table> = make(<vector-table>);
+  constant slot table-lock :: <lock> = make(<lock>);
+  slot send-socket :: <socket>;
+end;
+
+
 define layer arp (<layer>)
   system property running-state :: <symbol> = #"down";
-  slot arp-handler :: <arp-handler> = make(<arp-handler>);
+  slot arp-flow-node :: <arp-handler> = make(<arp-handler>);
 end;
 
 define method check-upper-layer? (lower :: <arp-layer>, upper :: <layer>) => (allowed? :: <boolean>);
@@ -19,38 +26,32 @@
 
 define method register-lower-layer (upper :: <arp-layer>, lower :: <layer>)
   let socket = create-socket(lower, filter-string: "arp");
-  upper.arp-handler.send-socket := socket;
-  connect(socket, upper.arp-handler);
+  upper.arp-flow-node.send-socket := socket;
+  connect(socket, upper.arp-flow-node);
   upper. at running-state := #"up";
 end;
 
 define method deregister-lower-layer (upper :: <arp-layer>, lower :: <layer>)
   for (arp-entry in choose(rcurry(instance?, <outstanding-arp-request>),
-                           upper.arp-handler.arp-table))
+                           upper.arp-flow-node.arp-table))
     cancel(arp-entry.timer);
-    remove!(upper.arp-handler.arp-table, arp-entry);
+    remove!(upper.arp-flow-node.arp-table, arp-entry);
   end;
   upper. at running-state := #"down";
 end;
 
 
-define class <arp-handler> (<filter>)
-  constant slot arp-table :: <vector-table> = make(<vector-table>);
-  constant slot table-lock :: <lock> = make(<lock>);
-  slot send-socket :: <socket>;
-end;
-
 define constant $broadcast-ethernet-address = mac-address("ff:ff:ff:ff:ff:ff");
 
 define function arp-resolve (arp :: <arp-layer>, destination :: <ipv4-address>, clos :: <function>) => ();
   if (arp. at running-state == #"down")
     error("arp layer down!");
   end;
-  let arp-entry = element(arp.arp-handler.arp-table, destination, default: #f);
+  let arp-entry = element(arp.arp-flow-node.arp-table, destination, default: #f);
   if (instance?(arp-entry, <known-arp-entry>))
     clos(arp-entry.arp-mac-address);
   else
-    let arp-handler = arp.arp-handler;
+    let arp-handler = arp.arp-flow-node;
     with-lock(arp-handler.table-lock)
       if (arp-entry)
         arp-entry.outstanding-closures := add!(arp-entry.outstanding-closures, clos);


More information about the chatter mailing list