From 5ee5664d629fd9538a36a2bedbc87b846568e0b2 Mon Sep 17 00:00:00 2001 From: Markus Amend Date: Tue, 24 Apr 2012 14:47:02 +0200 Subject: [PATCH] proto_icmpv6.h: intermediate state --- src/proto_icmpv6.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/proto_icmpv6.h b/src/proto_icmpv6.h index e0ef94ab..24a05c2c 100644 --- a/src/proto_icmpv6.h +++ b/src/proto_icmpv6.h @@ -132,6 +132,15 @@ struct icmpv6_neighb_disc_ops_type_5 { } __packed; /* end Neighbor Discovery msg */ +struct icmpv6_type_138 { + uint16_t chks; + uint32_t seq_nr; + uint8_t seg_nr; + uint8_t flags; + uint16_t maxdelay; + uint32_t res; +} __packed; + static inline void print_ipv6_addr_list(struct pkt_buff *pkt, uint8_t nr_addr) { char address[INET6_ADDRSTRLEN]; @@ -538,6 +547,34 @@ static inline void dissect_icmpv6_type137(struct pkt_buff *pkt) dissect_neighb_disc_ops(pkt); } +static inline void dissect_icmpv6_rr_body(struct pkt_buff *pkt) +{ + /* + * Upgrade Dissector for Message Body + * from http://tools.ietf.org/html/rfc2894#section-3.2 + */ +} + +static char *icmpv6_type_138_codes[] = { + "Router Renumbering Command", + "Router Renumbering Result", + "Sequence Number Reset", +}; + +static inline void dissect_icmpv6_type138(struct pkt_buff *pkt) +{ + struct icmpv6_type_138 *icmp_138; + + icmp_138 = (struct icmpv6_type_138 *) + pkt_pull(pkt,sizeof(*icmp_138)); + if (icmp_138 == NULL) + return; + + tprintf(", Chks (0x%x)",icmp_138->chks); + + dissect_icmpv6_rr_body(pkt); +} + static inline void icmpv6_process(struct icmpv6_general_hdr *icmp, char **type, char **code, void (**optional)(struct pkt_buff *pkt)) -- 2.11.4.GIT