[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