diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ba959c6..f2f0e32e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,7 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) option(USE_CUDA "option for using gpu direct" OFF) option(USE_NVMEOF "option for using NVMe over Fabric" OFF) +option(USE_TCP "option for using TCP transport" ON) option(USE_CXL "option for using cxl protocol" OFF) option(USE_ETCD "option for enable etcd as metadata server" ON) option(USE_ETCD_LEGACY "option for enable etcd based on etcd-cpp-api-v3" OFF) @@ -74,6 +75,10 @@ elseif(USE_NVMEOF) message(FATAL_ERROR "Cannot enable USE_NVMEOF without USE_CUDA") endif() +if (USE_TCP) + add_compile_definitions(USE_TCP) +endif() + if (USE_REDIS) add_compile_definitions(USE_REDIS) message(STATUS "Redis as metadata server support is enabled") diff --git a/mooncake-transfer-engine/CMakeLists.txt b/mooncake-transfer-engine/CMakeLists.txt index c8c0b180..5f17bcaa 100644 --- a/mooncake-transfer-engine/CMakeLists.txt +++ b/mooncake-transfer-engine/CMakeLists.txt @@ -22,6 +22,7 @@ if (NOT GLOBAL_CONFIG) option(USE_ETCD_LEGACY "option for enable etcd based on etcd-cpp-api-v3" OFF) option(USE_CUDA "option for using gpu direct" OFF) option(USE_NVMEOF "option for using NVMe over Fabric" OFF) + option(USE_TCP "option for using TCP transport" ON) option(USE_CXL "option for using cxl protocol" OFF) option(USE_REDIS "option for enable redis as metadata server" OFF) option(USE_HTTP "option for enable http as metadata server" ON) @@ -29,6 +30,10 @@ if (NOT GLOBAL_CONFIG) add_definitions(-DCONFIG_ERDMA) + if (USE_TCP) + add_compile_definitions(USE_TCP) + endif() + if (USE_CUDA) add_compile_definitions(USE_CUDA) message(STATUS "CUDA support is enabled") diff --git a/mooncake-transfer-engine/src/multi_transport.cpp b/mooncake-transfer-engine/src/multi_transport.cpp index 1c793d84..7bb4821f 100644 --- a/mooncake-transfer-engine/src/multi_transport.cpp +++ b/mooncake-transfer-engine/src/multi_transport.cpp @@ -15,7 +15,9 @@ #include "multi_transport.h" #include "transport/rdma_transport/rdma_transport.h" +#ifdef USE_TCP #include "transport/tcp_transport/tcp_transport.h" +#endif #include "transport/transport.h" #ifdef USE_NVMEOF #include "transport/nvmeof_transport/nvmeof_transport.h" @@ -128,9 +130,12 @@ Transport *MultiTransport::installTransport(const std::string &proto, Transport *transport = nullptr; if (std::string(proto) == "rdma") { transport = new RdmaTransport(); - } else if (std::string(proto) == "tcp") { + } +#ifdef USE_TCP + else if (std::string(proto) == "tcp") { transport = new TcpTransport(); } +#endif #ifdef USE_NVMEOF else if (std::string(proto) == "nvmeof") { transport = new NVMeoFTransport(); @@ -179,4 +184,4 @@ std::vector MultiTransport::listTransports() { return transport_list; } -} // namespace mooncake \ No newline at end of file +} // namespace mooncake diff --git a/mooncake-transfer-engine/src/transport/CMakeLists.txt b/mooncake-transfer-engine/src/transport/CMakeLists.txt index b0938da4..255cf0e0 100644 --- a/mooncake-transfer-engine/src/transport/CMakeLists.txt +++ b/mooncake-transfer-engine/src/transport/CMakeLists.txt @@ -3,8 +3,10 @@ file(GLOB XPORT_SOURCES "*.cpp") add_subdirectory(rdma_transport) add_library(transport OBJECT ${XPORT_SOURCES} $) -add_subdirectory(tcp_transport) -target_sources(transport PUBLIC $) +if (USE_TCP) + add_subdirectory(tcp_transport) + target_sources(transport PUBLIC $) +endif() if (USE_NVMEOF) add_subdirectory(nvmeof_transport) @@ -14,4 +16,4 @@ endif() if (USE_CXL) add_subdirectory(cxl_transport) target_sources(transport PUBLIC $) -endif() \ No newline at end of file +endif() diff --git a/mooncake-transfer-engine/tests/CMakeLists.txt b/mooncake-transfer-engine/tests/CMakeLists.txt index f3eb3ed7..9be1330c 100644 --- a/mooncake-transfer-engine/tests/CMakeLists.txt +++ b/mooncake-transfer-engine/tests/CMakeLists.txt @@ -20,9 +20,11 @@ if (USE_NVMEOF) # add_test(NAME nvmeof_transport_test COMMAND nvmeof_transport_test) endif() +if (USE_TCP) add_executable(tcp_transport_test tcp_transport_test.cpp) target_link_libraries(tcp_transport_test PUBLIC transfer_engine gtest gtest_main ) add_test(NAME tcp_transport_test COMMAND tcp_transport_test) +endif() add_executable(transfer_metadata_test transfer_metadata_test.cpp) target_link_libraries(transfer_metadata_test PUBLIC transfer_engine gtest gtest_main)