diff options
author | Jordan Augé <jordan.auge+fdio@cisco.com> | 2019-11-07 16:42:01 +0100 |
---|---|---|
committer | Jordan Augé <jordan.auge+fdio@cisco.com> | 2019-11-08 01:36:45 +0100 |
commit | 1bf749aa3e4b0ccc40057b2587af5211926a1431 (patch) | |
tree | 1e59105d64e7dc13f4f1cd4ae8437bb8bb932292 /libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc | |
parent | a30d495f6e91f3bed0420bf76c19315fe0de8801 (diff) |
[HICN-385] fix route removal in hicnctrl, code uniformization in hicn-light control api
Change-Id: Id097368dcde993775f206623195cc5aa57b4fe12
Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com>
Diffstat (limited to 'libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc')
-rw-r--r-- | libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc b/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc index 598b692c9..17239b8fb 100644 --- a/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc +++ b/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc @@ -102,9 +102,9 @@ void VPPForwarderInterface::consumerConnection() { throw errors::RuntimeException(hicn_binary_api_get_error_string(ret)); } - std::memcpy(inet_address_.v4.as_u8, output.src4->as_u8, IPV4_ADDR_LEN); + std::memcpy(inet_address_.v4.as_u8, output.src4->v4.as_u8, IPV4_ADDR_LEN); - std::memcpy(inet6_address_.v6.as_u8, output.src6->as_u8, IPV6_ADDR_LEN); + std::memcpy(inet6_address_.v6.as_u8, output.src6->v6.as_u8, IPV6_ADDR_LEN); } void VPPForwarderInterface::producerConnection() { @@ -156,9 +156,8 @@ void VPPForwarderInterface::registerRoute(Prefix &prefix) { // memif_id, since this function should be called after the // memif creation. input.swif = sw_if_index_; - input.prefix->address.as_u64[0] = addr.address.as_u64[0]; - input.prefix->address.as_u64[1] = addr.address.as_u64[1]; - input.prefix->family = addr.family == AF_INET6 ? AF_INET6 : AF_INET; + input.prefix->address = addr.address; + input.prefix->family = addr.family; input.prefix->len = addr.len; input.cs_reserved = content_store_reserved_; @@ -169,22 +168,14 @@ void VPPForwarderInterface::registerRoute(Prefix &prefix) { throw errors::RuntimeException(hicn_binary_api_get_error_string(ret)); } - if (addr.family == AF_INET6) { - inet6_address_.v6.as_u64[0] = output.prod_addr->v6.as_u64[0]; - inet6_address_.v6.as_u64[1] = output.prod_addr->v6.as_u64[1]; - } else { - // The ipv4 is written in the last 4 bytes of the ipv6 address, so we need - // to copy from the byte 12 - inet_address_.v4.as_u32 = output.prod_addr->v4.as_u32; - } + inet6_address_ = *output.prod_addr; face_id_ = output.face_id; } else { hicn_producer_set_route_params params; params.prefix = &producer_prefix; - params.prefix->address.as_u64[0] = addr.address.as_u64[0]; - params.prefix->address.as_u64[1] = addr.address.as_u64[1]; - params.prefix->family = addr.family == AF_INET6 ? AF_INET6 : AF_INET; + params.prefix->address = addr.address; + params.prefix->family = addr.family; params.prefix->len = addr.len; params.face_id = face_id_; |