[Gd-chatter] r10998 - in trunk/libraries: gui-sniffer layer libopengl-dylan packetizer protocols sniffer

andreas at gwydiondylan.org andreas at gwydiondylan.org
Tue Nov 28 23:21:22 CET 2006


Author: andreas
Date: Tue Nov 28 23:21:17 2006
New Revision: 10998

Modified:
   trunk/libraries/gui-sniffer/gui-sniffer.dylan
   trunk/libraries/layer/cidr.dylan
   trunk/libraries/layer/udp.dylan
   trunk/libraries/libopengl-dylan/opengl-glut.intr
   trunk/libraries/packetizer/fields.dylan
   trunk/libraries/packetizer/leaf-frames.dylan
   trunk/libraries/packetizer/module.dylan
   trunk/libraries/packetizer/protocol-definer-macro.dylan
   trunk/libraries/protocols/ethernet.dylan
   trunk/libraries/protocols/ieee80211.dylan
   trunk/libraries/sniffer/simple-sniffer.dylan
Log:
job: 7299

802.1q

Modified: trunk/libraries/gui-sniffer/gui-sniffer.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/gui-sniffer.dylan	(original)
+++ trunk/libraries/gui-sniffer/gui-sniffer.dylan	Tue Nov 28 23:21:17 2006
@@ -398,8 +398,8 @@
   method(#rest args)
     block()
       apply(func, args)
-    exception (e :: <error>)
-      "broken"
+//    exception (e :: <error>)
+//      "broken"
     end
   end
 end;

Modified: trunk/libraries/layer/cidr.dylan
==============================================================================
--- trunk/libraries/layer/cidr.dylan	(original)
+++ trunk/libraries/layer/cidr.dylan	Tue Nov 28 23:21:17 2006
@@ -1,9 +1,6 @@
 module: layer
 
 
-define open generic cidr-network-address (cidr :: <cidr>) => (res :: <ipv4-address>);
-define open generic cidr-netmask (cidr :: <cidr>) => (res :: <integer>);
-
 define class <cidr> (<object>)
   constant slot cidr-network-address :: <ipv4-address>,
     required-init-keyword: network-address:;

Modified: trunk/libraries/layer/udp.dylan
==============================================================================
--- trunk/libraries/layer/udp.dylan	(original)
+++ trunk/libraries/layer/udp.dylan	Tue Nov 28 23:21:17 2006
@@ -34,7 +34,23 @@
 define method send (socket :: <udp-socket>, destination :: <ipv4-address>, payload :: <container-frame>);
 end;                                  
 
-define function udp-begin()
+define method a-query(name :: <string>)
+  make(<dns-question>,
+       question-type:  1, // A
+       question-class: 1, // THE INTERNET
+       domainname: as(<domain-name>, name))
+end;
+
+begin
+  let string = "";
+  for(i from 0 below 3)
+    string := concatenate(string, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.");
+  end;
+  string := concatenate(string, "foo.andreas.org");
+  let s1 = a-query(concatenate("a.", string));
+  let s2 = a-query(concatenate("b.", string));
+  let s3 = a-query(concatenate("c.", string));
+
   let ip-layer = init-ethernet();
   let udp = make(<udp-layer>, ip-layer: ip-layer);
   let socket = create-socket(udp, 53);
@@ -43,10 +59,7 @@
        ipv4-address("141.1.1.1"),
        make(<udp-frame>, source-port: 53, destination-port: 53,
             payload: make(<dns-frame>,
-                          questions: vector(make(<dns-question>,
-                                                 question-type:  1, // A
-                                                 question-class: 1, // THE INTERNET
-                                                 domainname: as(<domain-name>, "www.ccc.de"))))));
+                          questions: vector(s1, s2, s3))));
   sleep(10000);
 /*
   let tcp = make(<tcp-layer>, ip-layer: ip-layer, default-ip-address: ip-layer.default-ip-address);
@@ -72,5 +85,3 @@
   sleep(1000);
 */
 end;
-
-udp-begin();

Modified: trunk/libraries/libopengl-dylan/opengl-glut.intr
==============================================================================
--- trunk/libraries/libopengl-dylan/opengl-glut.intr	(original)
+++ trunk/libraries/libopengl-dylan/opengl-glut.intr	Tue Nov 28 23:21:17 2006
@@ -4,7 +4,7 @@
 copyright: (C) Jefferson Dubrule.  See COPYING.LIB for license details.
 
 define interface
-  #include "GL/glut.h",
+  #include "gl/glut.h",
   name-mapper: minimal-name-mapping,    
   exclude-file: {"GL/gl.h", "GL/glu.h"},
   import: all-recursive,

Modified: trunk/libraries/packetizer/fields.dylan
==============================================================================
--- trunk/libraries/packetizer/fields.dylan	(original)
+++ trunk/libraries/packetizer/fields.dylan	Tue Nov 28 23:21:17 2006
@@ -124,6 +124,12 @@
   slot count, required-init-keyword: count:;
 end;
 
+/* one day I want to have this... 
+define class <externally-delimited-repeated-field> (<self-delimited-repeated-field>)
+  keyword reached-end?:, init-value: always(#f);
+end;
+*/
+
 define method make(class == <repeated-field>,
                    #rest rest, 
                    #key count, reached-end?,
@@ -135,7 +141,7 @@
         elseif(reached-end?)
           <self-delimited-repeated-field>
         else
-          error("unsupported repeated field")
+          error("unknown repeated field type encountered");
         end,
         count: count,
         reached-end?: reached-end?,

Modified: trunk/libraries/packetizer/leaf-frames.dylan
==============================================================================
--- trunk/libraries/packetizer/leaf-frames.dylan	(original)
+++ trunk/libraries/packetizer/leaf-frames.dylan	Tue Nov 28 23:21:17 2006
@@ -106,6 +106,10 @@
 define n-bit-unsigned-integer(<5bit-unsigned-integer>; 5) end;
 define n-bit-unsigned-integer(<6bit-unsigned-integer>; 6) end;
 define n-bit-unsigned-integer(<7bit-unsigned-integer>; 7) end;
+define n-bit-unsigned-integer(<9bit-unsigned-integer>; 9) end;
+define n-bit-unsigned-integer(<10bit-unsigned-integer>; 10) end;
+define n-bit-unsigned-integer(<11bit-unsigned-integer>; 11) end;
+define n-bit-unsigned-integer(<12bit-unsigned-integer>; 12) end;
 define n-bit-unsigned-integer(<13bit-unsigned-integer>; 13) end;
 define n-bit-unsigned-integer(<14bit-unsigned-integer>; 14) end;
 

Modified: trunk/libraries/packetizer/module.dylan
==============================================================================
--- trunk/libraries/packetizer/module.dylan	(original)
+++ trunk/libraries/packetizer/module.dylan	Tue Nov 28 23:21:17 2006
@@ -34,10 +34,11 @@
     <3byte-big-endian-unsigned-integer>,
     <2byte-big-endian-unsigned-integer>, <2byte-little-endian-unsigned-integer>,
     <3byte-little-endian-unsigned-integer>,
-    <1bit-unsigned-integer>, <6bit-unsigned-integer>, <3bit-unsigned-integer>,
-    <4bit-unsigned-integer>, <5bit-unsigned-integer>,
-    <7bit-unsigned-integer>, <13bit-unsigned-integer>,
-    <2bit-unsigned-integer>, <14bit-unsigned-integer>;
+    <1bit-unsigned-integer>, <2bit-unsigned-integer>, <3bit-unsigned-integer>,
+    <4bit-unsigned-integer>, <5bit-unsigned-integer>, <6bit-unsigned-integer>,
+    <7bit-unsigned-integer>, <9bit-unsigned-integer>, <10bit-unsigned-integer>,
+    <11bit-unsigned-integer>, <12bit-unsigned-integer>, <13bit-unsigned-integer>,
+    <14bit-unsigned-integer>, <15bit-unsigned-integer>;
 
   export <variable-size-byte-vector>, <externally-delimited-string>,
     <raw-frame>;

Modified: trunk/libraries/packetizer/protocol-definer-macro.dylan
==============================================================================
--- trunk/libraries/packetizer/protocol-definer-macro.dylan	(original)
+++ trunk/libraries/packetizer/protocol-definer-macro.dylan	Tue Nov 28 23:21:17 2006
@@ -303,7 +303,7 @@
         end-of-field := real-end;
       else
         error("This shouldn't happen... in %s, start %d end %d (%d bits), used %d\n",
-              frame-field.field.field-name, start, end-of-field, end-of-field - start, length - bit-offset(start));
+              frame-field.field.field-name, start, end-of-field, end-of-field - start, length);
       end;
     end;
   else

Modified: trunk/libraries/protocols/ethernet.dylan
==============================================================================
--- trunk/libraries/protocols/ethernet.dylan	(original)
+++ trunk/libraries/protocols/ethernet.dylan	Tue Nov 28 23:21:17 2006
@@ -68,6 +68,17 @@
     type-function: element(<ethernet-frame>.layer, frame.type-code, default: <raw-frame>);
 end;
 
+define protocol vlan-tag (header-frame)
+  over <ethernet-frame> #x8100;
+  summary "VLAN: %=", vlan-id;
+  field priority :: <3bit-unsigned-integer>;
+  field canonical-format-indicatior :: <1bit-unsigned-integer>;
+  field vlan-id :: <12bit-unsigned-integer>;
+  layering field type-code :: <2byte-big-endian-unsigned-integer>;
+  variably-typed-field payload,
+    type-function: element(<ethernet-frame>.layer, frame.type-code, default: <raw-frame>);
+end;
+
 define protocol stp-identifier (container-frame)
   summary "%=/%=", bridge-priority, bridge-address;
   field bridge-priority :: <2byte-big-endian-unsigned-integer>;
@@ -133,7 +144,8 @@
                      #x000a => <cdp-vtp-native-vlan-id>;
                      #x000b => <cdp-duplex>;
                      #x000e => <cdp-ata-186-voip-vlan-request>;
-                     #x0010 => <cdp-ata-186-voip-vlan-assignment>;
+                     #x000f => <cdp-ata-186-voip-vlan-assignment>;
+                     #x0010 => <cdp-power>;
                      #x0011 => <cdp-mtu>;
                      #x0012 => <cdp-avvid-trust-bitmap>;
                      #x0013 => <cdp-avvid-untrusted-port-CoS>;
@@ -233,6 +245,10 @@
   summary "ATA 186 VoIP VLAN Assignment";
 end;
 
+define protocol cdp-power (cdp-unknown-record)
+  summary "Power: %=", cdp-value;
+end;
+
 define protocol cdp-mtu (cdp-record)
   summary "MTU: %=", cdp-mtu;
   field cdp-mtu :: <big-endian-unsigned-integer-4byte>;

Modified: trunk/libraries/protocols/ieee80211.dylan
==============================================================================
--- trunk/libraries/protocols/ieee80211.dylan	(original)
+++ trunk/libraries/protocols/ieee80211.dylan	Tue Nov 28 23:21:17 2006
@@ -52,8 +52,6 @@
 define constant $information-element-challenge-text = 16;
 
 define n-byte-vector(timestamp, 8) end;
-define n-bit-unsigned-integer(<11bit-unsigned-integer>; 11) end;
-define n-bit-unsigned-integer(<12bit-unsigned-integer>; 12) end;
 
 define protocol ieee80211-sequence-control (container-frame)
   field sequence-number :: <12bit-unsigned-integer>;

Modified: trunk/libraries/sniffer/simple-sniffer.dylan
==============================================================================
--- trunk/libraries/sniffer/simple-sniffer.dylan	(original)
+++ trunk/libraries/sniffer/simple-sniffer.dylan	Tue Nov 28 23:21:17 2006
@@ -3,6 +3,7 @@
 Copyright: (C) 2005, 2006,  All rights reserved. Free for non-commercial use.
 
 begin
+  let source = make(<ethernet-interface>, name: "NetXtreme");
   let source = make(<ethernet-interface>, name: "Intel");
   connect(source, make(<summary-printer>, stream: *standard-output*));
   toplevel(source);



More information about the chatter mailing list