aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-ipv6.h
diff options
context:
space:
mode:
authorSebastien Tandel <sebastien@tandel.be>2007-04-12 17:34:30 +0000
committerSebastien Tandel <sebastien@tandel.be>2007-04-12 17:34:30 +0000
commitd99d6ccba5275f9d5cd32562c6e11d885ca60a21 (patch)
treeca9c45f94bc741f85649c3260e1ecb3532ff5abf /epan/dissectors/packet-ipv6.h
parent4b18fbc8a54be4b541c3f9d1bb36a9a9e1db56e8 (diff)
From Matthijs Mekking :
New dissector support, SHIM6 checked in with the following modifications : - use of proto_tree_add_item whenever possible (addition of several hf_items), - use distinct subtree idx for each subtree, - addition of some subtrees, - split shim_opts in several functions, - accurate incrementation of offset in locator preferences (in case of option length > 3) - add true_false_string for critical options and protocol differentiation (hip, shim6) - add ipv6.shim6.checkksum_good, ipv6.shim6.checkksum_bad, cksum expert info section added to AUTHORS svn path=/trunk/; revision=21390
Diffstat (limited to 'epan/dissectors/packet-ipv6.h')
-rw-r--r--epan/dissectors/packet-ipv6.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/epan/dissectors/packet-ipv6.h b/epan/dissectors/packet-ipv6.h
index 276ba1496f..42d8ed3b37 100644
--- a/epan/dissectors/packet-ipv6.h
+++ b/epan/dissectors/packet-ipv6.h
@@ -150,6 +150,61 @@ struct ip6_frag {
guint32 ip6f_ident; /* identification */
};
+/* SHIM6 control message types */
+#define SHIM6_TYPE_I1 0x01 /* 0 000 0001 */
+#define SHIM6_TYPE_R1 0x02 /* 0 000 0010 */
+#define SHIM6_TYPE_I2 0x03 /* 0 000 0011 */
+#define SHIM6_TYPE_R2 0x04 /* 0 000 0100 */
+#define SHIM6_TYPE_R1BIS 0x05 /* 0 000 0101 */
+#define SHIM6_TYPE_I2BIS 0x06 /* 0 000 0110 */
+#define SHIM6_TYPE_UPD_ACK 0x40 /* 0 100 0000 = 64 */
+#define SHIM6_TYPE_UPD_REQ 0x41 /* 0 100 0001 = 65 */
+#define SHIM6_TYPE_KEEPALIVE 0x42 /* 0 100 0010 = 66 */
+#define SHIM6_TYPE_PROBE 0x43 /* 0 100 0011 = 67 */
+
+/* SHIM6 Options */
+#define SHIM6_OPT_RESPVAL 0x01 /* 0 000 0001 */
+#define SHIM6_OPT_LOCLIST 0x02 /* 0 000 0010 */
+#define SHIM6_OPT_LOCPREF 0x03 /* 0 000 0011 */
+#define SHIM6_OPT_CGAPDM 0x04 /* 0 000 0100 */
+#define SHIM6_OPT_CGASIG 0x05 /* 0 000 0101 */
+#define SHIM6_OPT_ULIDPAIR 0x06 /* 0 000 0110 */
+#define SHIM6_OPT_FII 0x07 /* 0 000 0111 */
+
+/* SHIM6 Bitmasks */
+#define SHIM6_BITMASK_P 0x80 /* 1 000 0000 */
+#define SHIM6_BITMASK_TYPE 0x7F /* 0 111 1111 */
+#define SHIM6_BITMASK_PROTOCOL 0x01 /* 0 000 0001 */
+#define SHIM6_BITMASK_SPECIFIC 0xFE /* 1 111 1110 */
+#define SHIM6_BITMASK_R 0x80 /* 1 000 0000 */
+#define SHIM6_BITMASK_CT 0x7F /* 0 111 1111 */
+#define SHIM6_BITMASK_OPT_TYPE 0xFFFE /* 1 111 1111 1 111 1110 */
+#define SHIM6_BITMASK_CRITICAL 0x01 /* 0 000 0001 */
+#define SHIM6_BITMASK_PRECVD 0xF0 /* 1 111 0000 */
+#define SHIM6_BITMASK_PSENT 0x0F /* 0 000 1111 */
+#define SHIM6_BITMASK_STA 0xC0 /* 1 100 0000 */
+
+/* SHIM6 Verification Methods */
+#define SHIM6_VERIF_HBA 0x01 /* 0 000 0001 */
+#define SHIM6_VERIF_CGA 0x02 /* 0 000 0010 */
+
+/* SHIM6 Flags */
+#define SHIM6_FLAG_BROKEN 0x01 /* 0 000 0001 */
+#define SHIM6_FLAG_TEMPORARY 0x02 /* 0 000 0010 */
+
+/* SHIM6 REAP States */
+#define SHIM6_REAP_OPERATIONAL 0x00 /* 0 000 0000 */
+#define SHIM6_REAP_EXPLORING 0x01 /* 0 000 0001 */
+#define SHIM6_REAP_INBOUNDOK 0x02 /* 0 000 0010 */
+
+/* SHIM6 header */
+struct ip6_shim {
+ guint8 ip6s_nxt; /* next header */
+ guint8 ip6s_len; /* header extension length */
+ guint8 ip6s_p; /* P field and first 7 bits of remainder */
+ /* followed by shim6 specific data*/
+};
+
#define IP6F_OFF_MASK 0xfff8 /* mask out offset from _offlg */
#define IP6F_RESERVED_MASK 0x0006 /* reserved bits in ip6f_offlg */
#define IP6F_MORE_FRAG 0x0001 /* more-fragments flag */