diff options
Diffstat (limited to 'libtransport/src/io_modules/loopback')
5 files changed, 0 insertions, 305 deletions
diff --git a/libtransport/src/io_modules/loopback/CMakeLists.txt b/libtransport/src/io_modules/loopback/CMakeLists.txt deleted file mode 100644 index b5ae0b7f7..000000000 --- a/libtransport/src/io_modules/loopback/CMakeLists.txt +++ /dev/null @@ -1,30 +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. - -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 - SHARED - SOURCES ${MODULE_SOURCE_FILES} - DEPENDS ${DEPENDENCIES} - COMPONENT ${LIBTRANSPORT_COMPONENT} - INCLUDE_DIRS ${LIBTRANSPORT_INCLUDE_DIRS} ${LIBTRANSPORT_INTERNAL_INCLUDE_DIRS} - DEFINITIONS ${COMPILER_DEFINITIONS} - COMPILE_OPTIONS ${COMPILE_FLAGS} -) 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 b73444330..000000000 --- a/libtransport/src/io_modules/loopback/local_face.cc +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2017-2020 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."; - - if (Packet::isInterest(packet.data())) { - rescheduleOnIoService<Interest>(packet); - } else { - rescheduleOnIoService<ContentObject>(packet); - } -} - -} // namespace core -} // namespace transport
\ No newline at end of file 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 1f4101447..000000000 --- a/libtransport/src/io_modules/loopback/local_face.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2017-2020 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 f7dd5e7b0..000000000 --- a/libtransport/src/io_modules/loopback/loopback_module.cc +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2017-2020 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 uint8_t *packet, std::size_t len) { - // 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::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), nullptr, - nullptr, std::move(reconnect_callback))); - } -} - -void LoopbackModule::processControlMessageReply(utils::MemBuf &packet_buffer) { - return; -} - -std::uint32_t LoopbackModule::getMtu() { return interface_mtu; } - -bool LoopbackModule::isControlMessage(const uint8_t *message) { 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 219fa8841..000000000 --- a/libtransport/src/io_modules/loopback/loopback_module.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2017-2020 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 uint8_t *packet, std::size_t len) override; - - bool isConnected() override; - - void init(Connector::PacketReceivedCallback &&receive_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(const uint8_t *message) 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 |