summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Sardara <msardara@cisco.com>2022-09-29 15:32:18 +0200
committerMauro Sardara <msardara@cisco.com>2022-09-29 15:32:18 +0200
commitd0c49cbf2887412e3b661d84032077db35c6d236 (patch)
tree752d67f00d9579ddc0fcc7b30c91f60da5f86333
parentfbcfff380dfedac7e7e464e90ecbefd51a78b217 (diff)
refactor(io_modules): remove deprecated loopback module
The loopback io-module is not used and its functionalities are already covered by the forwarder io-module. We should then deprecate it. Ticket: HICN-800 Signed-off-by: Mauro Sardara <msardara@cisco.com> Change-Id: I709b8e27d00c03f009d33846076d65b0fee9a6d8
-rw-r--r--libtransport/src/io_modules/CMakeLists.txt1
-rw-r--r--libtransport/src/io_modules/loopback/CMakeLists.txt30
-rw-r--r--libtransport/src/io_modules/loopback/local_face.cc74
-rw-r--r--libtransport/src/io_modules/loopback/local_face.h53
-rw-r--r--libtransport/src/io_modules/loopback/loopback_module.cc89
-rw-r--r--libtransport/src/io_modules/loopback/loopback_module.h72
6 files changed, 0 insertions, 319 deletions
diff --git a/libtransport/src/io_modules/CMakeLists.txt b/libtransport/src/io_modules/CMakeLists.txt
index fcf69cd42..ce7ec221d 100644
--- a/libtransport/src/io_modules/CMakeLists.txt
+++ b/libtransport/src/io_modules/CMakeLists.txt
@@ -70,7 +70,6 @@ else()
# Compile submodules
##############################################################
add_subdirectory(hicn-light)
- add_subdirectory(loopback)
add_subdirectory(forwarder)
if (__vpp__)
diff --git a/libtransport/src/io_modules/loopback/CMakeLists.txt b/libtransport/src/io_modules/loopback/CMakeLists.txt
deleted file mode 100644
index 817effb3b..000000000
--- a/libtransport/src/io_modules/loopback/CMakeLists.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2021-2022 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-list(APPEND MODULE_HEADER_FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/loopback_module.h
-)
-
-list(APPEND MODULE_SOURCE_FILES
- ${CMAKE_CURRENT_SOURCE_DIR}/loopback_module.cc
-)
-
-build_module(loopback_module
- SOURCES ${MODULE_SOURCE_FILES}
- DEPENDS ${DEPENDENCIES}
- COMPONENT ${LIBTRANSPORT_COMPONENT}
- INCLUDE_DIRS
- PRIVATE ${LIBTRANSPORT_INTERNAL_INCLUDE_DIRS} ${Libhicn_INCLUDE_DIRS}
- DEFINITIONS ${COMPILER_DEFINITIONS}
- COMPILE_OPTIONS ${COMPILER_OPTIONS}
-)
diff --git a/libtransport/src/io_modules/loopback/local_face.cc b/libtransport/src/io_modules/loopback/local_face.cc
deleted file mode 100644
index 30a46c93b..000000000
--- a/libtransport/src/io_modules/loopback/local_face.cc
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (c) 2021-2022 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <glog/logging.h>
-#include <hicn/transport/core/asio_wrapper.h>
-#include <hicn/transport/core/content_object.h>
-#include <hicn/transport/core/interest.h>
-#include <io_modules/loopback/local_face.h>
-
-namespace transport {
-namespace core {
-
-Face::Face(Connector::PacketReceivedCallback &&receive_callback,
- asio::io_service &io_service, const std::string &app_name)
- : receive_callback_(std::move(receive_callback)),
- io_service_(io_service),
- name_(app_name) {}
-
-Face::Face(const Face &other)
- : receive_callback_(other.receive_callback_),
- io_service_(other.io_service_),
- name_(other.name_) {}
-
-Face::Face(Face &&other)
- : receive_callback_(std::move(other.receive_callback_)),
- io_service_(other.io_service_),
- name_(std::move(other.name_)) {}
-
-Face &Face::operator=(const Face &other) {
- receive_callback_ = other.receive_callback_;
- io_service_ = other.io_service_;
- name_ = other.name_;
-
- return *this;
-}
-
-Face &Face::operator=(Face &&other) {
- receive_callback_ = std::move(other.receive_callback_);
- io_service_ = std::move(other.io_service_);
- name_ = std::move(other.name_);
-
- return *this;
-}
-
-void Face::onPacket(const Packet &packet) {
- DLOG_IF(INFO, VLOG_IS_ON(3)) << "Sending content to local socket.";
-
- switch (packet->getFormat()) {
- case HICN_PACKET_FORMAT_INTEREST:
- rescheduleOnIoService<Interest>(packet);
- break;
- case HICN_PACKET_FORMAT_DATA:
- rescheduleOnIoService<ContentObject>(packet);
- break;
- default:
- /* Should not occur */
- break;
- }
-}
-
-} // namespace core
-} // namespace transport
diff --git a/libtransport/src/io_modules/loopback/local_face.h b/libtransport/src/io_modules/loopback/local_face.h
deleted file mode 100644
index f54f38afa..000000000
--- a/libtransport/src/io_modules/loopback/local_face.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2021 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <hicn/transport/core/asio_wrapper.h>
-#include <hicn/transport/core/connector.h>
-#include <hicn/transport/core/global_object_pool.h>
-#include <hicn/transport/utils/move_wrapper.h>
-
-namespace transport {
-namespace core {
-
-class Face {
- public:
- Face(Connector::PacketReceivedCallback &&receive_callback,
- asio::io_service &io_service, const std::string &app_name);
-
- Face(const Face &other);
- Face(Face &&other);
- void onPacket(const Packet &packet);
- Face &operator=(Face &&other);
- Face &operator=(const Face &other);
-
- private:
- template <typename T>
- void rescheduleOnIoService(const Packet &packet) {
- auto p = core::PacketManager<T>::getInstance().getPacket();
- p->replace(packet.data(), packet.length());
- io_service_.get().post([this, p]() mutable {
- receive_callback_(nullptr, *p, make_error_code(0));
- });
- }
-
- Connector::PacketReceivedCallback receive_callback_;
- std::reference_wrapper<asio::io_service> io_service_;
- std::string name_;
-};
-
-} // namespace core
-} // namespace transport
diff --git a/libtransport/src/io_modules/loopback/loopback_module.cc b/libtransport/src/io_modules/loopback/loopback_module.cc
deleted file mode 100644
index a7f30eb26..000000000
--- a/libtransport/src/io_modules/loopback/loopback_module.cc
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (c) 2021 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <glog/logging.h>
-#include <hicn/transport/errors/not_implemented_exception.h>
-#include <io_modules/loopback/loopback_module.h>
-
-namespace transport {
-
-namespace core {
-
-std::vector<std::unique_ptr<LocalConnector>> LoopbackModule::local_faces_;
-std::atomic<uint32_t> LoopbackModule::global_counter_(0);
-
-LoopbackModule::LoopbackModule() : IoModule(), local_id_(~0) {}
-
-LoopbackModule::~LoopbackModule() {}
-
-void LoopbackModule::connect(bool is_consumer) {}
-
-bool LoopbackModule::isConnected() { return true; }
-
-void LoopbackModule::send(Packet &packet) {
- IoModule::send(packet);
-
- DLOG_IF(INFO, VLOG_IS_ON(3)) << "LoopbackModule: sending from " << local_id_
- << " to " << 1 - local_id_;
-
- local_faces_.at(1 - local_id_)->send(packet);
-}
-
-void LoopbackModule::send(const utils::MemBuf::Ptr &buffer) {
- // not supported
- throw errors::NotImplementedException();
-}
-
-void LoopbackModule::registerRoute(const Prefix &prefix) {
- // For the moment we route packets from one socket to the other.
- // Next step will be to introduce a FIB
- return;
-}
-
-void LoopbackModule::closeConnection() {
- local_faces_.erase(local_faces_.begin() + local_id_);
-}
-
-void LoopbackModule::init(Connector::PacketReceivedCallback &&receive_callback,
- Connector::PacketSentCallback &&sent_callback,
- Connector::OnCloseCallback &&close_callback,
- Connector::OnReconnectCallback &&reconnect_callback,
- asio::io_service &io_service,
- const std::string &app_name) {
- if (local_id_ == uint32_t(~0) && global_counter_ < 2) {
- local_id_ = global_counter_++;
- local_faces_.emplace(
- local_faces_.begin() + local_id_,
- new LocalConnector(io_service, std::move(receive_callback),
- std::move(sent_callback), std::move(close_callback),
- std::move(reconnect_callback)));
- }
-}
-
-void LoopbackModule::processControlMessageReply(utils::MemBuf &packet_buffer) {
- return;
-}
-
-std::uint32_t LoopbackModule::getMtu() { return interface_mtu; }
-
-bool LoopbackModule::isControlMessage(utils::MemBuf &packet_buffer) {
- return false;
-}
-
-extern "C" IoModule *create_module(void) { return new LoopbackModule(); }
-
-} // namespace core
-
-} // namespace transport
diff --git a/libtransport/src/io_modules/loopback/loopback_module.h b/libtransport/src/io_modules/loopback/loopback_module.h
deleted file mode 100644
index d51f237f4..000000000
--- a/libtransport/src/io_modules/loopback/loopback_module.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2021 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include <core/local_connector.h>
-#include <hicn/transport/core/io_module.h>
-#include <hicn/transport/core/prefix.h>
-
-#include <atomic>
-
-namespace transport {
-
-namespace core {
-
-class LoopbackModule : public IoModule {
- static constexpr std::uint16_t interface_mtu = 1500;
-
- public:
- LoopbackModule();
-
- ~LoopbackModule();
-
- void connect(bool is_consumer) override;
-
- void send(Packet &packet) override;
- void send(const utils::MemBuf::Ptr &buffer) override;
-
- bool isConnected() override;
-
- void init(Connector::PacketReceivedCallback &&receive_callback,
- Connector::PacketSentCallback &&sent_callback,
- Connector::OnCloseCallback &&close_callback,
- Connector::OnReconnectCallback &&reconnect_callback,
- asio::io_service &io_service,
- const std::string &app_name = "Libtransport") override;
-
- void registerRoute(const Prefix &prefix) override;
-
- std::uint32_t getMtu() override;
-
- bool isControlMessage(utils::MemBuf &packet_buffer) override;
-
- void processControlMessageReply(utils::MemBuf &packet_buffer) override;
-
- void closeConnection() override;
-
- private:
- static std::vector<std::unique_ptr<LocalConnector>> local_faces_;
- static std::atomic<uint32_t> global_counter_;
-
- private:
- uint32_t local_id_;
-};
-
-extern "C" IoModule *create_module(void);
-
-} // namespace core
-
-} // namespace transport