}
else
{
+ mask->as_u64[0] = 0xffffffffffffffffL;
mask->as_u64[1] =
clib_host_to_net_u64 (0xffffffffffffffffL << (128 - pref_len));
}
return 64 - first0;
}
+u8 *
+format_ip_address_family (u8 * s, va_list * args)
+{
+ ip_address_family_t af = va_arg (*args, ip_address_family_t);
+
+ switch (af)
+ {
+ case AF_IP4:
+ return (format (s, "ip4"));
+ case AF_IP6:
+ return (format (s, "ip6"));
+ }
+
+ return (format (s, "unknown"));
+}
+
+u8 *
+format_ip_dscp (u8 * s, va_list * va)
+{
+ ip_dscp_t dscp = va_arg (*va, u32); // int promotion of u8
+
+ switch (dscp)
+ {
+#define _(n,v) \
+ case IP_DSCP_##v: \
+ return (format (s, "%s", #v));
+ foreach_ip_dscp
+#undef _
+ }
+
+ return (format (s, "unknown"));
+}
+
+u8 *
+format_ip_ecn (u8 * s, va_list * va)
+{
+ ip_ecn_t ecn = va_arg (*va, u32); // int promotion of u8
+
+ switch (ecn)
+ {
+#define _(n,v) \
+ case IP_ECN_##v: \
+ return (format (s, "%s", #v));
+ foreach_ip_ecn
+#undef _
+ }
+
+ return (format (s, "unknown"));
+}
+
/*
* fd.io coding-style-patch-verification: ON
*