diff options
author | Sebastien Tandel <sebastien@tandel.be> | 2007-04-12 17:34:30 +0000 |
---|---|---|
committer | Sebastien Tandel <sebastien@tandel.be> | 2007-04-12 17:34:30 +0000 |
commit | d99d6ccba5275f9d5cd32562c6e11d885ca60a21 (patch) | |
tree | ca9c45f94bc741f85649c3260e1ecb3532ff5abf /epan/dissectors/packet-ipv6.h | |
parent | 4b18fbc8a54be4b541c3f9d1bb36a9a9e1db56e8 (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.h | 55 |
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 */ |