aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc
diff options
context:
space:
mode:
authorAlberto Compagno <acompagn+fdio@cisco.com>2019-02-18 10:56:49 +0000
committerGerrit Code Review <gerrit@fd.io>2019-02-18 10:56:49 +0000
commit2fd90aea1831942cda49d6635e95c86d8e494966 (patch)
treed7182493aa06976f252a0bdce34228e39ee8d050 /libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc
parent7465d7ee3fbae80d24342930ad78682a6e674bb9 (diff)
parent79e0d4f89c4d532189aae06cc5dfbc14e3269703 (diff)
Merge "[HICN-50] Added udp application connector."
Diffstat (limited to 'libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc')
-rw-r--r--libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc32
1 files changed, 18 insertions, 14 deletions
diff --git a/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc b/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc
index 69b18c0d9..8dc607295 100644
--- a/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc
+++ b/libtransport/src/hicn/transport/core/vpp_forwarder_interface.cc
@@ -47,20 +47,7 @@ VPPForwarderInterface::VPPForwarderInterface(MemifConnector &connector)
sw_if_index_(~0),
face_id_(~0) {}
-VPPForwarderInterface::~VPPForwarderInterface() {
- if (sw_if_index_ != uint32_t(~0) && VPPForwarderInterface::memif_api_) {
- int ret = memif_binary_api_delete_memif(VPPForwarderInterface::memif_api_,
- sw_if_index_);
-
- if (ret < 0) {
- TRANSPORT_LOGE("Error deleting memif with sw idx %u.", sw_if_index_);
- }
- }
-
- if (VPPForwarderInterface::api_) {
- vpp_binary_api_destroy(VPPForwarderInterface::api_);
- }
-}
+VPPForwarderInterface::~VPPForwarderInterface() {}
/**
* @brief Create a memif interface in the local VPP forwarder.
@@ -220,6 +207,23 @@ void VPPForwarderInterface::registerRoute(Prefix &prefix) {
}
}
+void VPPForwarderInterface::closeConnection() {
+ if (sw_if_index_ != uint32_t(~0) && VPPForwarderInterface::memif_api_) {
+ int ret = memif_binary_api_delete_memif(VPPForwarderInterface::memif_api_,
+ sw_if_index_);
+
+ if (ret < 0) {
+ TRANSPORT_LOGE("Error deleting memif with sw idx %u.", sw_if_index_);
+ }
+ }
+
+ if (VPPForwarderInterface::api_) {
+ vpp_binary_api_destroy(VPPForwarderInterface::api_);
+ }
+
+ connector_.close();
+}
+
} // namespace core
} // namespace transport