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):





