Ethereal-dev: Re: [Ethereal-dev] Bug 68

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Peter Johansson <Peter.Johansson@xxxxxxxxxxxx>
Date: Tue, 19 Apr 2005 21:20:19 +0200
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,