aboutsummaryrefslogtreecommitdiffstats
path: root/libtransport/src/io_modules/loopback
diff options
context:
space:
mode:
Diffstat (limited to 'libtransport/src/io_modules/loopback')
-rw-r--r--libtransport/src/io_modules/loopback/CMakeLists.txt30
-rw-r--r--libtransport/src/io_modules/loopback/local_face.cc68
-rw-r--r--libtransport/src/io_modules/loopback/local_face.h53
-rw-r--r--libtransport/src/io_modules/loopback/loopback_module.cc84
-rw-r--r--libtransport/src/io_modules/loopback/loopback_module.h70
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