PAPI: Add MACAddress object wrapper for vl_api_mac_address_t
[vpp.git] / extras / vom / vom / api_types.cpp
index 1bde8be..53cd047 100644 (file)
@@ -28,6 +28,11 @@ to_api(const ip_address_t& a, vapi_type_address& v)
     memcpy(v.un.ip6, a.to_v6().to_bytes().data(), 16);
   }
 }
+void
+to_api(const boost::asio::ip::address& a, vapi_type_ip4_address& v)
+{
+  memcpy(v, a.to_v4().to_bytes().data(), 4);
+}
 
 ip_address_t
 from_api(const vapi_type_address& v)
@@ -49,20 +54,16 @@ from_api(const vapi_type_address& v)
   return addr;
 }
 
-vapi_type_mac_address
-to_api(const mac_address_t& a)
+void
+to_api(const mac_address_t& a, vapi_type_mac_address& v)
 {
-  vapi_type_mac_address v;
-
-  std::copy(std::begin(a.bytes), std::end(a.bytes), v.bytes);
-
-  return (v);
+  std::copy(std::begin(a.bytes), std::end(a.bytes), v);
 }
 
 mac_address_t
 from_api(const vapi_type_mac_address& v)
 {
-  return mac_address_t(v.bytes);
+  return mac_address_t(v);
 }
 
 route::prefix_t
@@ -71,11 +72,13 @@ from_api(const vapi_type_prefix& v)
   return route::prefix_t(from_api(v.address), v.address_length);
 }
 
-void
-to_api(const route::prefix_t& p, vapi_type_prefix& v)
+vapi_type_prefix
+to_api(const route::prefix_t& p)
 {
+  vapi_type_prefix v;
   to_api(p.address(), v.address);
   v.address_length = p.mask_width();
+  return v;
 }
 };