Gerald Combs wrote:
Could someone take a look at bug #68? I'm having a hard time tracking
it down:
http://bugs.ethereal.com/bugzilla/show_bug.cgi?id=68
_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev
Apart from the patches provided by didier and Cvetan, I found another
bug in packet-isl. The dissector decodes the Destination address field
as type FT_ETHER using 6 bytes. The destination address is however a
40-bit value (5 bytes).
Furthermore, the user field (4 bits) was missing interpretation for
values 4-7.
My patch changes the decoding of the Destination address to conform with
the spec found at
http://www.cisco.com/univercd/cc/td/doc/product/lan/trsrb/frames.htm#xtocid75
and adds decoding of user field values 4-7 while updating the
description of user field values 0-3 according to IEEE 802.1D-2004, annex G.
Unfortunately I am unable to send the patch as a zipped attachment since
the mail-server handling messages to ethereal-dev reports:
550 Error: Attachment type not allowed. File "packet-isl-patch.zip" has
the unacceptable extension "zip"
/ Peter
Index: I:/ethereal-win32-libs/epan/dissectors/packet-isl.c
===================================================================
--- I:/ethereal-win32-libs/epan/dissectors/packet-isl.c (revision 14129)
+++ I:/ethereal-win32-libs/epan/dissectors/packet-isl.c (working copy)
@@ -122,10 +122,15 @@
};
static const value_string ether_user_vals[] = {
- {0x0, "Normal priority"},
- {0x1, "Priority 1"},
- {0x2, "Priority 2"},
- {0x3, "Highest priority"},
+ /* User values are defined by IEEE 802.1D-2004, annex G */
+ {0x0, "Best effort (default priority)"},
+ {0x1, "Background"},
+ {0x2, "[spare priority]"},
+ {0x3, "Excellent effort"},
+ {0x4, "Controlled load"},
+ {0x5, "\"Video\", < 100ms latency and jitter"},
+ {0x6, "\"Voice\", < 10ms latency and jitter"},
+ {0x7, "Network control"},
{0, NULL}
};
@@ -163,7 +168,7 @@
ti = proto_tree_add_protocol_format(tree, proto_isl, tvb, 0, ISL_HEADER_SIZE,
"ISL");
fh_tree = proto_item_add_subtree(ti, ett_isl);
- proto_tree_add_item(fh_tree, hf_isl_dst, tvb, 0, 6, FALSE);
+ proto_tree_add_item(fh_tree, hf_isl_dst, tvb, 0, 5, FALSE);
proto_tree_add_item_hidden(fh_tree, hf_isl_addr, tvb, 0, 6, FALSE);
proto_tree_add_item(fh_tree, hf_isl_type, tvb, 5, 1, FALSE);
switch (type) {
@@ -324,7 +329,7 @@
{
static hf_register_info hf[] = {
{ &hf_isl_dst,
- { "Destination", "isl.dst", FT_ETHER, BASE_NONE, NULL, 0x0,
+ { "Destination", "isl.dst", FT_BYTES, BASE_HEX, NULL, 0x0,
"Destination Address", HFILL }},
{ &hf_isl_type,
{ "Type", "isl.type", FT_UINT8, BASE_DEC,