[Gd-chatter] r10868 - in trunk/libraries: gui-sniffer packetizer

hannes at gwydiondylan.org hannes at gwydiondylan.org
Thu Aug 31 02:26:39 CEST 2006


Author: hannes
Date: Thu Aug 31 02:26:37 2006
New Revision: 10868

Modified:
   trunk/libraries/gui-sniffer/gui-sniffer.dylan
   trunk/libraries/packetizer/ieee80211.dylan
   trunk/libraries/packetizer/packetizer.dylan
Log:
Bug: 7299
*add support for prism2 frames in gui-sniffer (return 0 on compute-absolute-offset)
*add support for supported rates in 802.11

Modified: trunk/libraries/gui-sniffer/gui-sniffer.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/gui-sniffer.dylan	(original)
+++ trunk/libraries/gui-sniffer/gui-sniffer.dylan	Thu Aug 31 02:26:37 2006
@@ -256,6 +256,10 @@
  => (res :: <integer>)
   0
 end;
+define method compute-absolute-offset (frame :: <prism2-frame>)
+ => (res :: <integer>)
+  0
+end;
 
 define method find-frame-field (frame :: <container-frame>, search :: <container-frame>)
  => (res :: false-or(type-union(<frame-field>, <rep-frame-field>)))
@@ -575,3 +579,4 @@
 end;
 
 
+

Modified: trunk/libraries/packetizer/ieee80211.dylan
==============================================================================
--- trunk/libraries/packetizer/ieee80211.dylan	(original)
+++ trunk/libraries/packetizer/ieee80211.dylan	Thu Aug 31 02:26:37 2006
@@ -102,7 +102,62 @@
 define protocol ieee80211-challenge-text (ieee80211-raw-information-field)
 end;
 
-define protocol ieee80211-supported-rates (ieee80211-raw-information-field)
+define protocol ieee80211-supported-rates (ieee80211-information-field)
+  repeated field supported-rate :: <rate>,
+    reached-end?: method(x) #f end,
+    length: frame.length * 8;
+end;
+
+define method summary (frame :: <rate>) => (res :: <string>)
+  as(<string>, frame);
+end;
+
+define protocol rate (container-frame)
+  field bss-basic-set? :: <1bit-unsigned-integer>;
+  field real-rate :: <7bit-unsigned-integer>;
+end;
+
+define protocol basic-set-rate (rate)
+end;
+
+define method as (class == <string>, frame :: <basic-set-rate>) => (res :: <string>)
+  concatenate("CCK ",
+              select (frame.real-rate)
+                2 => "1";
+                4 => "2";
+                #xb => "5";
+                #x16 => "11";
+                otherwise => "Unknown rate";
+              end,
+              "Mbit");
+end;
+
+define protocol extended-rate (rate)
+end;
+
+define method as (class == <string>, frame :: <extended-rate>) => (res :: <string>)
+  concatenate("OFDM ",
+              select (frame.real-rate)
+                #xc => "6";
+                #x12 => "9";
+                #x18 => "12";
+                #x24 => "18";
+                #x30 => "24";
+                #x48 => "36";
+                #x60 => "48";
+                #x6c => "54";
+                otherwise => "Unknown";
+              end,
+              "Mbit");
+end;
+
+define method parse-frame (frame == <rate>, packet :: <byte-sequence>, #key start = 0)
+  let f = make(unparsed-class(frame), packet: packet);
+  let type = select (f.bss-basic-set?)
+               0 => <extended-rate>;
+               1 => <basic-set-rate>;
+             end;
+  parse-frame(type, packet, start: start);
 end;
 
 define protocol ieee80211-reserved-field (ieee80211-raw-information-field)
@@ -324,3 +379,4 @@
       end select;
 end;
 
+

Modified: trunk/libraries/packetizer/packetizer.dylan
==============================================================================
--- trunk/libraries/packetizer/packetizer.dylan	(original)
+++ trunk/libraries/packetizer/packetizer.dylan	Thu Aug 31 02:26:37 2006
@@ -782,6 +782,7 @@
 define n-bit-unsigned-integer(<4bit-unsigned-integer>; 4) end;
 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(<13bit-unsigned-integer>; 13) end;
 define n-bit-unsigned-integer(<14bit-unsigned-integer>; 14) end;
 
@@ -1196,3 +1197,4 @@
        data: copy-sequence(string));
 end;
 
+



More information about the chatter mailing list