[Gd-chatter] r11000 - in trunk/libraries: packetizer protocols
andreas at gwydiondylan.org
andreas at gwydiondylan.org
Tue Nov 28 23:28:00 CET 2006
Author: andreas
Date: Tue Nov 28 23:27:57 2006
New Revision: 11000
Modified:
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
Log:
job: 7299
802.1q (this time for real).
Modified: trunk/libraries/packetizer/fields.dylan
==============================================================================
--- trunk/libraries/packetizer/fields.dylan (original)
+++ trunk/libraries/packetizer/fields.dylan Tue Nov 28 23:27:57 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:27:57 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:27:57 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:27:57 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:27:57 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:27:57 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>;
More information about the chatter
mailing list