Ethereal-dev: Re: [Ethereal-dev] How can I submit a modified file?
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "SHINGO HORISAWA" <name4n5@xxxxxxxxxxx>
Date: Sun, 21 Nov 2004 18:29:51 +0900
I made a patch. Changes are as follows: o added D & U flags to RREQ. o fixed a bug about "Unreachable Destination" in RERR. o changed a tree about AODV information. (AODV was displayed in the same level as root tree now.)The patch Bart Braem submitted before me may be the same as my patch about D & U flags...
Regards. ------------------ Shingo HORISAWA _________________________________________________________________Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ --- ethereal-0.10.7/epan/dissectors/packet-aodv.c 2004-10-21 07:35:00.000000000 +0900 +++ ethereal-0.10.7/epan/dissectors/packet-aodv.c 2004-11-21 17:52:59.288037112 +0900
@@ -73,6 +73,8 @@
#define RREQ_GRAT	0x20
#define RREQ_REP	0x40
#define RREQ_JOIN	0x80
+#define RREQ_DESTONLY 0x10
+#define RREQ_UNKNOWN 0x08
#define RREP_ACK_REQ	0x40
#define RREP_REP	0x80
@@ -80,15 +82,15 @@
#define RERR_NODEL	0x80
static const value_string type_vals[] = {
-    { RREQ,                 "Route Request" },
-    { RREP,                 "Route Reply" },
-    { RERR,                 "Route Error" },
-    { RREP_ACK,             "Route Reply Acknowledgment"},
-    { DRAFT_01_V6_RREQ,     "draft-perkins-aodv6-01 Route Request"},
-    { DRAFT_01_V6_RREP,     "draft-perkins-aodv6-01 Route Reply"},
-    { DRAFT_01_V6_RERR,     "draft-perkins-aodv6-01 Route Error"},
-    { DRAFT_01_V6_RREP_ACK, "draft-perkins-aodv6-01 Route Reply 
Acknowledgment"},
-    { 0,                    NULL }
+    { RREQ,			"Route Request" },
+    { RREP,			"Route Reply" },
+    { RERR,			"Route Error" },
+    { RREP_ACK,		"Route Reply Acknowledgment"},
+    { DRAFT_01_V6_RREQ,		"IPv6 Route Request"},
+    { DRAFT_01_V6_RREP,		"IPv6 Route Reply"},
+    { DRAFT_01_V6_RERR,		"IPv6 Route Error"},
+    { DRAFT_01_V6_RREP_ACK,	"IPv6 Route Reply Acknowledgment"},
+    { 0,			NULL }
};
static const value_string exttype_vals[] = {
@@ -124,6 +126,8 @@
static int hf_aodv_flags_rreq_join = -1;
static int hf_aodv_flags_rreq_repair = -1;
static int hf_aodv_flags_rreq_gratuitous = -1;
+static int hf_aodv_flags_rreq_destonly = -1;
+static int hf_aodv_flags_rreq_unknown = -1;
static int hf_aodv_flags_rrep_repair = -1;
static int hf_aodv_flags_rrep_ack = -1;
static int hf_aodv_flags_rerr_nodelete = -1;
@@ -227,12 +231,20 @@
			       tvb, offset, 1, flags);
	proto_tree_add_boolean(aodv_flags_tree, hf_aodv_flags_rreq_gratuitous,
			       tvb, offset, 1, flags);
+	proto_tree_add_boolean(aodv_flags_tree, hf_aodv_flags_rreq_destonly,
+			       tvb, offset, 1, flags);
+	proto_tree_add_boolean(aodv_flags_tree, hf_aodv_flags_rreq_unknown,
+			       tvb, offset, 1, flags);
	if (flags & RREQ_JOIN)
	    proto_item_append_text(tj, " J");
	if (flags & RREQ_REP)
	    proto_item_append_text(tj, " R");
	if (flags & RREQ_GRAT)
	    proto_item_append_text(tj, " G");
+	if (flags & RREQ_DESTONLY)
+	    proto_item_append_text(tj, " D");
+	if (flags & RREQ_UNKNOWN)
+	    proto_item_append_text(tj, " U");
    }
    offset += 2;	/* skip reserved byte */
@@ -500,9 +512,10 @@
	for (i = 0; i < dest_count; i++) {
	    proto_tree_add_item(aodv_unreach_dest_tree, hf_aodv_unreach_dest_ip,
				tvb, offset, 4, FALSE);
+	    offset += 4;
	    proto_tree_add_item(aodv_unreach_dest_tree, hf_aodv_dest_seqno,
				tvb, offset, 4, FALSE);
-	    offset += 4 + 4;
+	    offset += 4;
	}
    }
}
@@ -533,12 +546,20 @@
			       tvb, offset, 1, flags);
	proto_tree_add_boolean(aodv_flags_tree, hf_aodv_flags_rreq_gratuitous,
			       tvb, offset, 1, flags);
+	proto_tree_add_boolean(aodv_flags_tree, hf_aodv_flags_rreq_destonly,
+			       tvb, offset, 1, flags);
+	proto_tree_add_boolean(aodv_flags_tree, hf_aodv_flags_rreq_unknown,
+			       tvb, offset, 1, flags);
	if (flags & RREQ_JOIN)
	    proto_item_append_text(tj, " J");
	if (flags & RREQ_REP)
	    proto_item_append_text(tj, " R");
	if (flags & RREQ_GRAT)
	    proto_item_append_text(tj, " G");
+	if (flags & RREQ_DESTONLY)
+	    proto_item_append_text(tj, " D");
+	if (flags & RREQ_UNKNOWN)
+	    proto_item_append_text(tj, " U");
    }
    offset += 2;	/* skip reserved byte */
@@ -633,7 +654,7 @@
    }
    offset += 1;
-    prefix_sz = tvb_get_guint8(tvb, offset) & 0x1F;
+    prefix_sz = tvb_get_guint8(tvb, offset) & 0x7F;
    if (aodv_tree)
	proto_tree_add_uint(aodv_tree, hf_aodv_prefix_sz, tvb, offset, 1,
			    prefix_sz);
@@ -667,11 +688,11 @@
    if (aodv_tree) {
	proto_tree_add_ipv6(aodv_tree, hf_aodv_orig_ipv6, tvb, offset,
			    INET6_ADDRLEN, (guint8 *)&orig_addr_v6);
-	proto_item_append_text(ti, ", Dest IP: %s",
+	proto_item_append_text(ti, ", Orig IP: %s",
			       ip6_to_str(&orig_addr_v6));
    }
    if (check_col(pinfo->cinfo, COL_INFO))
-	col_append_fstr(pinfo->cinfo, COL_INFO, ", D: %s",
+	col_append_fstr(pinfo->cinfo, COL_INFO, ", O: %s",
			ip6_to_str(&orig_addr_v6));
    offset += INET6_ADDRLEN;
@@ -734,10 +755,11 @@
    for (i = 0; i < dest_count; i++) {
	proto_tree_add_item(aodv_unreach_dest_tree, hf_aodv_dest_seqno,
			    tvb, offset, 4, FALSE);
+	offset += 4;
	proto_tree_add_item(aodv_unreach_dest_tree,
			    hf_aodv_unreach_dest_ipv6,
			    tvb, offset, INET6_ADDRLEN, FALSE);
-	offset += 4 + INET6_ADDRLEN;
+	offset += INET6_ADDRLEN;
    }
}
@@ -783,24 +805,24 @@
    switch (type) {
    case RREQ:
-	dissect_aodv_rreq(tvb, pinfo, tree, ti, is_ipv6);
+	dissect_aodv_rreq(tvb, pinfo, aodv_tree, ti, is_ipv6);
	break;
    case RREP:
-	dissect_aodv_rrep(tvb, pinfo, tree, ti, is_ipv6);
+	dissect_aodv_rrep(tvb, pinfo, aodv_tree, ti, is_ipv6);
	break;
    case RERR:
-	dissect_aodv_rerr(tvb, pinfo, tree, is_ipv6);
+	dissect_aodv_rerr(tvb, pinfo, aodv_tree, is_ipv6);
	break;
    case RREP_ACK:
	break;
    case DRAFT_01_V6_RREQ:
-	dissect_aodv_draft_01_v6_rreq(tvb, pinfo, tree, ti);
+	dissect_aodv_draft_01_v6_rreq(tvb, pinfo, aodv_tree, ti);
	break;
    case DRAFT_01_V6_RREP:
-	dissect_aodv_draft_01_v6_rrep(tvb, pinfo, tree, ti);
+	dissect_aodv_draft_01_v6_rrep(tvb, pinfo, aodv_tree, ti);
	break;
    case DRAFT_01_V6_RERR:
-	dissect_aodv_draft_01_v6_rerr(tvb, pinfo, tree);
+	dissect_aodv_draft_01_v6_rerr(tvb, pinfo, aodv_tree);
	break;
    case DRAFT_01_V6_RREP_ACK:
	break;
@@ -843,6 +865,16 @@
	    FT_BOOLEAN, 8, TFS(&flags_set_truth), RREQ_GRAT,
	    "", HFILL }
	},
+	{ &hf_aodv_flags_rreq_destonly,
+	  { "RREQ Destination Only", "aodv.flags.rreq_destonly",
+	    FT_BOOLEAN, 8, TFS(&flags_set_truth), RREQ_DESTONLY,
+	    "", HFILL }
+	},
+	{ &hf_aodv_flags_rreq_unknown,
+	  { "RREQ Unknown Sequence Number", "aodv.flags.rreq_unknown",
+	    FT_BOOLEAN, 8, TFS(&flags_set_truth), RREQ_UNKNOWN,
+	    "", HFILL }
+	},
	{ &hf_aodv_flags_rrep_repair,
	  { "RREP Repair", "aodv.flags.rrep_repair",
	    FT_BOOLEAN, 8, TFS(&flags_set_truth), RREP_REP,
- Follow-Ups:
- Re: [Ethereal-dev] How can I submit a modified file?
- From: Guy Harris
 
 
 - Re: [Ethereal-dev] How can I submit a modified file?
 
- Prev by Date: Re: [Ethereal-dev] x509ce - CertificateExtensions.asn: iPAddress(7)
 - Next by Date: [Ethereal-dev] packet-dns.c patch - GSSAPI in TKEY can also be NTLMSSP data
 - Previous by thread: Re: [Ethereal-dev] How can I submit a modified file?
 - Next by thread: Re: [Ethereal-dev] How can I submit a modified file?
 - Index(es):