aboutsummaryrefslogtreecommitdiffstats
path: root/packet-vines.c
diff options
context:
space:
mode:
authorguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2003-04-18 17:34:37 +0000
committerguy <guy@f5534014-38df-0310-8fa8-9805f1628bb7>2003-04-18 17:34:37 +0000
commit104fb7480a9dcfe4bd843765e76ada390cfa0ed8 (patch)
tree6b4b8aa427abc0a00c59454123719efffda08933 /packet-vines.c
parentd53246e70e2044bf3ba9a3ae1dc256cb51df47d0 (diff)
0x06 appears to be an opcode for VRTP redirects.
SRTP requests don't look the way the stuff I found appears to say they look. Fix some incorrect uses of "tvb_get_ntohl()" to fetch 16-bit values to use "tvb_get_ntohs()" instead. Fix some strings for flag bits. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@7492 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-vines.c')
-rw-r--r--packet-vines.c70
1 files changed, 15 insertions, 55 deletions
diff --git a/packet-vines.c b/packet-vines.c
index 48bc11734b..256e82bfda 100644
--- a/packet-vines.c
+++ b/packet-vines.c
@@ -1,7 +1,7 @@
/* packet-vines.c
* Routines for Banyan VINES protocol packet disassembly
*
- * $Id: packet-vines.c,v 1.53 2003/04/18 09:31:00 guy Exp $
+ * $Id: packet-vines.c,v 1.54 2003/04/18 17:34:37 guy Exp $
*
* Don Lafontaine <lafont02@cn.ca>
*
@@ -992,12 +992,14 @@ proto_reg_handoff_vines_arp(void)
#define VRTP_OP_UPDATE_RESPONSE 0x02
#define VRTP_OP_REDIRECT 0x03
#define VRTP_OP_REINITIALIZE 0x04
+#define VRTP_OP_REDIRECT2 0x06
static const value_string vines_rtp_operation_type_vals[] = {
{ VRTP_OP_REQUEST, "Request" },
{ VRTP_OP_UPDATE_RESPONSE, "Update/response" },
{ VRTP_OP_REDIRECT, "Redirect" },
{ VRTP_OP_REINITIALIZE, "Reinitialize" },
+ { VRTP_OP_REDIRECT2, "Redirect" },
{ 0, NULL }
};
@@ -1106,10 +1108,11 @@ dissect_vines_rtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
switch (operation_type) {
case VRTP_OP_REDIRECT:
+ case VRTP_OP_REDIRECT2:
proto_tree_add_text(vines_rtp_tree, tvb,
offset, 2,
"Version: 0x%02x",
- tvb_get_ntohl(tvb, offset));
+ tvb_get_ntohs(tvb, offset));
offset += 2;
link_addr_length = tvb_get_guint8(tvb, offset);
proto_tree_add_text(vines_rtp_tree, tvb,
@@ -1197,53 +1200,10 @@ dissect_vines_rtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case VRTP_OP_REQUEST:
requested_info = tvb_get_guint8(tvb, offset);
- ti = proto_tree_add_text(vines_rtp_tree, tvb,
+ proto_tree_add_text(vines_rtp_tree, tvb,
offset, 1,
"Requested Info: 0x%02x",
requested_info);
- subtree = proto_item_add_subtree(ti,
- ett_vines_rtp_req_info);
- proto_tree_add_text(subtree, tvb,
- offset, 1,
- decode_boolean_bitfield(requested_info,
- 0x08, 1*8,
- "Simple response only",
- "Not simple response only"));
- proto_tree_add_text(subtree, tvb,
- offset, 1,
- decode_boolean_bitfield(requested_info,
- 0x04, 1*8,
- "Full topology",
- "Not full topology"));
- proto_tree_add_text(subtree, tvb,
- offset, 1,
- decode_boolean_bitfield(requested_info,
- 0x02, 1*8,
- "Routing information since specified time",
- "Not routing information since specified time"));
- proto_tree_add_text(subtree, tvb,
- offset, 1,
- decode_boolean_bitfield(requested_info,
- 0x01, 1*8,
- "Routing information for specified list",
- "Not routing information for specified list"));
- offset += 1;
- offset += 1; /* reserved */
- if (requested_info & 0x01) {
- while (tvb_reported_length_remaining(tvb, offset) > 0) {
- proto_tree_add_text(vines_rtp_tree, tvb,
- offset, 4,
- "Network Number: 0x%08x",
- tvb_get_ntohl(tvb, offset));
- offset += 4;
- }
- }
- if (requested_info & 0x02) {
- proto_tree_add_text(vines_rtp_tree, tvb,
- offset, 4,
- "Sequence Number: %u",
- tvb_get_ntohl(tvb, offset));
- }
break;
case VRTP_OP_UPDATE_RESPONSE:
@@ -1267,20 +1227,20 @@ dissect_vines_rtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset, 1,
decode_boolean_bitfield(control_flags,
0x10, 1*8,
- "Synchronization update",
- "Not synchronization update"));
+ "Part of routing table synchronization broadcast",
+ "Not part of routing table synchronization broadcast"));
proto_tree_add_text(subtree, tvb,
offset, 1,
decode_boolean_bitfield(control_flags,
0x08, 1*8,
- "Full topology update",
- "Not full topology update"));
+ "Part of full topology update",
+ "Not part of full topology update"));
proto_tree_add_text(subtree, tvb,
offset, 1,
decode_boolean_bitfield(control_flags,
0x04, 1*8,
- "Contains only specifically requested info",
- "Doesn't contain only specifically requested info"));
+ "A response to a specific request",
+ "Not a response to a specific request"));
/* XXX - need reassembly? */
proto_tree_add_text(subtree, tvb,
offset, 1,
@@ -1366,7 +1326,7 @@ dissect_vines_rtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_text(vines_rtp_tree, tvb,
offset, 2,
"Metric to Destination: %u",
- tvb_get_ntohl(tvb, offset));
+ tvb_get_ntohs(tvb, offset));
offset += 2;
node_type = tvb_get_guint8(tvb, offset);
proto_tree_add_text(vines_rtp_tree, tvb,
@@ -1393,7 +1353,7 @@ dissect_vines_rtp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_text(vines_rtp_tree, tvb,
offset, 2,
"Metric to Preferred Gateway: %u",
- tvb_get_ntohl(tvb, offset));
+ tvb_get_ntohs(tvb, offset));
offset += 2;
node_type = tvb_get_guint8(tvb, offset);
proto_tree_add_text(vines_rtp_tree, tvb,
@@ -1493,7 +1453,7 @@ srtp_show_machine_info(proto_tree *tree, tvbuff_t *tvb, int offset, char *tag)
vines_addr_to_str(tvb_get_ptr(tvb, offset, VINES_ADDR_LEN)));
offset += VINES_ADDR_LEN;
proto_tree_add_text(tree, tvb, offset, 2,
- "Metric to %s: %u", tag, tvb_get_ntohl(tvb, offset));
+ "Metric to %s: %u", tag, tvb_get_ntohs(tvb, offset));
offset += 2;
node_type = tvb_get_guint8(tvb, offset);
proto_tree_add_text(tree, tvb, offset, 1,