Hi all,

Attached patch fixes the TODO in packet-icmpv6.c.
- show all Home Agent Addresses of DHAAD Reply
- show ICMP options of Mobile Prefix Advertisement

Please review and check in.

Thanks.

--
Shusaku Ueda ([EMAIL PROTECTED])
--- packet-icmpv6.c.org Mon Jan 19 17:53:43 2004
+++ packet-icmpv6.c     Tue Jan 20 09:22:51 2004
@@ -75,6 +75,7 @@
 static int hf_icmpv6_code = -1;
 static int hf_icmpv6_checksum = -1;
 static int hf_icmpv6_checksum_bad = -1;
+static int hf_icmpv6_haad_ha_addrs = -1;
 
 static gint ett_icmpv6 = -1;
 static gint ett_icmpv6opt = -1;
@@ -1414,7 +1415,18 @@
            proto_tree_add_text(icmp6_tree, tvb,
                offset + 6, 2, "Reserved: %d",
                tvb_get_ntohs(tvb, offset + 6));
-           /* TODO Show all Home Agent Addresses */
+           /* Show all Home Agent Addresses */
+           {
+               int i, suboffset;
+               int ha_num = (length - 8)/16;
+
+               for (i = 0; i < ha_num; i++) {
+                   suboffset = 16 * i;
+                   proto_tree_add_ipv6(icmp6_tree, hf_icmpv6_haad_ha_addrs,
+                       tvb, offset + 8 + suboffset, 16,
+                       tvb_get_ptr(tvb, offset + 8 + suboffset, 16));
+               }
+           }
            break;
        case ICMP6_MIP6_MPS:
            proto_tree_add_text(icmp6_tree, tvb,
@@ -1431,18 +1443,22 @@
                tvb_get_ntohs(tvb, offset + 4),
                tvb_get_ntohs(tvb, offset + 4));
            proto_tree_add_text(icmp6_tree, tvb,
-               offset + 6, 2,
+               offset + 6, 1,
                decode_boolean_bitfield(tvb_get_guint8(tvb, offset + 6),
-                   0x8000, 16,
+                   0x80, 8,
                    "Managed Address Configuration",
                    "No Managed Address Configuration"));
            proto_tree_add_text(icmp6_tree, tvb,
-               offset + 6, 2,
+               offset + 6, 1,
                decode_boolean_bitfield(tvb_get_guint8(tvb, offset + 6),
-                   0x4000, 16,
+                   0x40, 8,
                    "Other Stateful Configuration",
                    "No Other Stateful Configuration"));
-           /* TODO Show all options */
+           proto_tree_add_text(icmp6_tree, tvb,
+               offset + 7, 1, "Reserved: %d",
+               tvb_get_guint8(tvb, offset + 7));
+           /* Show all options */
+           dissect_icmpv6opt(tvb, offset + 8, pinfo, icmp6_tree);
            break;
        default:
            next_tvb = tvb_new_subset(tvb, offset + sizeof(*dp), -1, -1);
@@ -1468,6 +1484,10 @@
     { &hf_icmpv6_checksum_bad,
       { "Bad Checksum",   "icmpv6.checksum_bad", FT_BOOLEAN, BASE_NONE,        NULL, 
0x0,
        "", HFILL }},
+    { &hf_icmpv6_haad_ha_addrs,
+      { "Home Agent Addresses", "icmpv6.haad.ha_addrs",
+       FT_IPv6, BASE_HEX, NULL, 0x0,
+       "", HFILL }},
   };
   static gint *ett[] = {
     &ett_icmpv6,
_______________________________________________
Ethereal-dev mailing list
[EMAIL PROTECTED]
http://www.ethereal.com/mailman/listinfo/ethereal-dev

Reply via email to