ip6_address_and_mask_t *am = va_arg (*args, ip6_address_and_mask_t *);
ip6_address_t addr, mask;
- memset (&addr, 0, sizeof (ip6_address_t));
- memset (&mask, 0, sizeof (ip6_address_t));
+ clib_memset (&addr, 0, sizeof (ip6_address_t));
+ clib_memset (&mask, 0, sizeof (ip6_address_t));
if (unformat (input, "any"))
;
ip = p;
}
- memset (ip, 0, sizeof (ip[0]));
+ clib_memset (ip, 0, sizeof (ip[0]));
ip->ip_version_traffic_class_and_flow_label =
clib_host_to_net_u32 (6 << 28);
format (s, "%U", format_ip6_address, &ip46->ip6);
}
+u8 *
+format_ip6_frag_hdr (u8 * s, va_list * args)
+{
+ ip6_frag_hdr_t *h = va_arg (*args, ip6_frag_hdr_t *);
+ u32 max_header_bytes = va_arg (*args, u32);
+ u32 header_bytes;
+
+ header_bytes = sizeof (h[0]);
+ if (max_header_bytes != 0 && header_bytes > max_header_bytes)
+ return format (s, "ipv6 frag header truncated");
+
+ s =
+ format (s,
+ "IPV6_FRAG_HDR: next_hdr: %u, rsv: %u, frag_offset_and_more: %u, id: %u",
+ h->next_hdr, h->rsv, h->fragment_offset_and_more,
+ clib_net_to_host_u32 (h->identification));
+ return s;
+}
+
/*
* fd.io coding-style-patch-verification: ON
*