correct IPv6 router renumbering dissector.

svn path=/trunk/; revision=2591
This commit is contained in:
Jun-ichiro itojun Hagino 2000-11-09 14:09:41 +00:00
parent 01a890cf95
commit 28fbec1fcd
2 changed files with 8 additions and 27 deletions

View File

@ -1,7 +1,7 @@
/* packet-icmpv6.c
* Routines for ICMPv6 packet disassembly
*
* $Id: packet-icmpv6.c,v 1.26 2000/10/12 14:58:02 gram Exp $
* $Id: packet-icmpv6.c,v 1.27 2000/11/09 14:09:41 itojun Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -946,9 +946,9 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
offset + offsetof(struct icmp6_router_renum, rr_segnum), 1,
"Segment number: 0x%02x", rr->rr_segnum);
flagoff = offset + offsetof(struct icmp6_router_renum, rr_segnum) + 1;
tf = proto_tree_add_text(icmp6_tree, NullTVB, flagoff, 4, "Flags: 0x%08x",
pd[flagoff]);
flagoff = offset + offsetof(struct icmp6_router_renum, rr_flags);
tf = proto_tree_add_text(icmp6_tree, NullTVB, flagoff, 1,
"Flags: 0x%02x", pd[flagoff]);
field_tree = proto_item_add_subtree(tf, ett_icmpv6flag);
proto_tree_add_text(field_tree, NullTVB, flagoff, 1, "%s",
decode_boolean_bitfield(pd[flagoff], 0x80, 8,
@ -967,9 +967,10 @@ dissect_icmpv6(const u_char *pd, int offset, frame_data *fd, proto_tree *tree)
"Processed previously", "Complete result"));
proto_tree_add_text(icmp6_tree, NullTVB,
offset + offsetof(struct icmp6_router_renum, rr_segnum), 2,
offset + offsetof(struct icmp6_router_renum, rr_maxdelay), 2,
"Max delay: 0x%04x", pntohs(&rr->rr_maxdelay));
old_dissect_data(pd, offset + sizeof(*rr), fd, tree); /*XXX*/
break;
}
case ICMP6_NI_QUERY:
case ICMP6_NI_REPLY:

View File

@ -1,7 +1,7 @@
/* packet-ipv6.h
* Definitions for IPv6 packet disassembly
*
* $Id: packet-ipv6.h,v 1.13 2000/08/18 12:05:27 itojun Exp $
* $Id: packet-ipv6.h,v 1.14 2000/11/09 14:09:41 itojun Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -460,33 +460,13 @@ struct ni_reply_fqdn {
/*
* Router Renumbering. as router-renum-05.txt
*/
#if BYTE_ORDER == BIG_ENDIAN /* net byte order */
struct icmp6_router_renum { /* router renumbering header */
struct icmp6_hdr rr_hdr;
guint8 rr_segnum;
guint32 rr_test : 1;
guint32 rr_reqresult : 1;
guint32 rr_forceapply : 1;
guint32 rr_specsite : 1;
guint32 rr_prevdone : 1;
guint32 rr_flags_reserved : 3;
guint8 rr_flags;
guint16 rr_maxdelay;
guint32 rr_reserved;
};
#elif BYTE_ORDER == LITTLE_ENDIAN
struct icmp6_router_renum { /* router renumbering header */
struct icmp6_hdr rr_hdr;
guint8 rr_segnum;
guint32 rr_flags_reserved : 3;
guint32 rr_prevdone : 1;
guint32 rr_specsite : 1;
guint32 rr_forceapply : 1;
guint32 rr_reqresult : 1;
guint32 rr_test : 1;
guint16 rr_maxdelay;
guint32 rr_reserved;
};
#endif /* BYTE_ORDER */
#define rr_type rr_hdr.icmp6_type
#define rr_code rr_hdr.icmp6_code