Use IP and MAC API types for neighbors
[vpp.git] / src / vnet / ip / ip_types_api.c
index f173c28..b56101c 100644 (file)
 #include <vnet/vnet_all_api_h.h>
 #undef vl_printfun
 
+void
+ip6_address_encode (const ip6_address_t * in, vl_api_ip6_address_t out)
+{
+  clib_memcpy (out, in, sizeof (*in));
+}
+
+void
+ip6_address_decode (const vl_api_ip6_address_t in, ip6_address_t * out)
+{
+  clib_memcpy (out, in, sizeof (*out));
+}
+
+void
+ip4_address_encode (const ip4_address_t * in, vl_api_ip4_address_t out)
+{
+  clib_memcpy (out, in, sizeof (*in));
+}
+
+void
+ip4_address_decode (const vl_api_ip4_address_t in, ip4_address_t * out)
+{
+  clib_memcpy (out, in, sizeof (*out));
+}
+
 static ip46_type_t
 ip_address_union_decode (const vl_api_address_union_t * in,
                         vl_api_address_family_t af, ip46_address_t * out)
@@ -38,7 +62,7 @@ ip_address_union_decode (const vl_api_address_union_t * in,
   switch (clib_net_to_host_u32 (af))
     {
     case ADDRESS_IP4:
-      memset (out, 0, sizeof (*out));
+      clib_memset (out, 0, sizeof (*out));
       clib_memcpy (&out->ip4, &in->ip4, sizeof (out->ip4));
       type = IP46_TYPE_IP4;
       break;
@@ -67,9 +91,9 @@ ip_address_union_encode (const ip46_address_t * in,
                         vl_api_address_union_t * out)
 {
   if (ADDRESS_IP6 == clib_net_to_host_u32 (af))
-    memcpy (out->ip6.address, &in->ip6, sizeof (out->ip6));
+    ip6_address_encode (&in->ip6, out->ip6);
   else
-    memcpy (out->ip4.address, &in->ip4, sizeof (out->ip4));
+    ip4_address_encode (&in->ip4, out->ip4);
 }
 
 void
@@ -107,6 +131,7 @@ ip_prefix_decode (const vl_api_prefix_t * in, fib_prefix_t * out)
       break;
     }
   out->fp_len = in->address_length;
+  out->___fp___pad = 0;
   ip_address_decode (&in->address, &out->fp_addr);
 }
 
@@ -140,45 +165,6 @@ ip_mprefix_decode (const vl_api_mprefix_t * in, mfib_prefix_t * out)
   ip_address_union_decode (&in->src_address, in->af, &out->fp_src_addr);
 }
 
-u8 *
-format_vl_api_address (u8 * s, va_list * args)
-{
-  const vl_api_address_t *addr = va_arg (*args, vl_api_address_t *);
-
-  if (ADDRESS_IP6 == clib_net_to_host_u32 (addr->af))
-    s = format (s, "ip6:%U", format_ip6_address, addr->un.ip6.address);
-  else
-    s = format (s, "ip4:%U", format_ip4_address, addr->un.ip4.address);
-
-  return s;
-}
-
-u8 *
-format_vl_api_address_union (u8 * s, va_list * args)
-{
-  const vl_api_address_union_t *addr =
-    va_arg (*args, vl_api_address_union_t *);
-  vl_api_address_family_t af = va_arg (*args, vl_api_address_family_t);
-
-  if (ADDRESS_IP6 == af)
-    s = format (s, "ip6:%U", format_ip6_address, addr->ip6.address);
-  else
-    s = format (s, "ip4:%U", format_ip4_address, addr->ip4.address);
-
-  return s;
-}
-
-u8 *
-format_vl_api_prefix (u8 * s, va_list * args)
-{
-  const vl_api_prefix_t *pfx = va_arg (*args, vl_api_prefix_t *);
-
-  s = format (s, "%U/%d", format_vl_api_address,
-             &pfx->address, pfx->address_length);
-
-  return s;
-}
-
 /*
  * fd.io coding-style-patch-verification: ON
  *