aboutsummaryrefslogtreecommitdiffstats
path: root/src/vpp/api/types.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vpp/api/types.c')
-rw-r--r--src/vpp/api/types.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/vpp/api/types.c b/src/vpp/api/types.c
index 427e9f0da3a..97dadbd4778 100644
--- a/src/vpp/api/types.c
+++ b/src/vpp/api/types.c
@@ -20,6 +20,19 @@
#include <vat/vat.h>
u8 *
+format_vl_api_address_family (u8 * s, va_list * args)
+{
+ vl_api_address_family_t af = va_arg (*args, vl_api_address_family_t);
+
+ if (ADDRESS_IP6 == clib_net_to_host_u32 (af))
+ s = format (s, "ip4");
+ else
+ s = format (s, "ip6");
+
+ return s;
+}
+
+u8 *
format_vl_api_address (u8 * s, va_list * args)
{
const vl_api_address_t *addr = va_arg (*args, vl_api_address_t *);
@@ -110,6 +123,22 @@ unformat_vl_api_address (unformat_input_t * input, va_list * args)
}
uword
+unformat_vl_api_address_family (unformat_input_t * input,
+ va_list * args)
+{
+ vl_api_address_family_t *af = va_arg (*args, vl_api_address_family_t *);
+
+ if (unformat (input, "ip4") || unformat (input, "ipv4"))
+ *af = clib_host_to_net_u32(ADDRESS_IP4);
+ else if (unformat (input, "ip6") || unformat (input, "ipv6"))
+ *af = clib_host_to_net_u32(ADDRESS_IP6);
+ else
+ return (0);
+
+ return (1);
+}
+
+uword
unformat_vl_api_ip4_address (unformat_input_t * input, va_list * args)
{
vl_api_ip4_address_t *ip = va_arg (*args, vl_api_ip4_address_t *);