From e5cc7fbcf165ef9c205b6c136f239f645a8d7830 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Mon, 18 Dec 2017 20:50:04 +0100 Subject: ipcpd: Use the term "layer" and deprecate "shim" This changes the terminology to use layer instead of DIF and deprecate the word "shim" for the IPCPs that attach to Ethernet LLC and UDP .The terminology has not yet been changed in the variable names etc. This reflects the design choices in Ouroboros to make IPCPs pure resource allocators instead of also providing an "IPC service". The Ouroboros IPCPs that attach to Ethernet and UDP implement the allocator and are thus not really shims. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/ipcpd/eth-llc/CMakeLists.txt | 106 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 src/ipcpd/eth-llc/CMakeLists.txt (limited to 'src/ipcpd/eth-llc/CMakeLists.txt') diff --git a/src/ipcpd/eth-llc/CMakeLists.txt b/src/ipcpd/eth-llc/CMakeLists.txt new file mode 100644 index 00000000..11a631b3 --- /dev/null +++ b/src/ipcpd/eth-llc/CMakeLists.txt @@ -0,0 +1,106 @@ +get_filename_component(CURRENT_SOURCE_PARENT_DIR + ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) +get_filename_component(CURRENT_BINARY_PARENT_DIR + ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +include_directories(${CURRENT_SOURCE_PARENT_DIR}) +include_directories(${CURRENT_BINARY_PARENT_DIR}) + +include_directories(${CMAKE_SOURCE_DIR}/include) +include_directories(${CMAKE_BINARY_DIR}/include) + +find_path(NETMAP_C_INCLUDE_DIR + net/netmap_user.h + HINTS /usr/include /usr/local/include +) + +mark_as_advanced(NETMAP_C_INCLUDE_DIR) + +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(DISABLE_RAW_SOCKETS FALSE CACHE BOOL + "Disable raw socket support for LLC IPCP") + if (NOT DISABLE_RAW_SOCKETS) + message(STATUS "Raw socket support for eth-llc enabled") + set(HAVE_RAW_SOCKETS TRUE PARENT_SCOPE) + set(HAVE_LLC TRUE) + else () + message(STATUS "Raw socket support for eth-llc disabled by user") + unset(HAVE_RAW_SOCKETS) + unset(HAVE_LLC) + endif () +endif () + +if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux") + find_path(BPF_C_INCLUDE_DIR + net/bpf.h + HINTS /usr/include /usr/local/include + ) + + mark_as_advanced(BPF_C_INCLUDE_DIR) + + if (BPF_C_INCLUDE_DIR) + set(DISABLE_BPF FALSE CACHE BOOL + "Disable Berkeley Packet Filter support for LLC IPCP") + if (NOT DISABLE_BPF) + message(STATUS "Berkeley Packet Filter support " + "for eth-llc enabled") + set(HAVE_BPF TRUE PARENT_SCOPE) + set(HAVE_LLC TRUE) + else () + message(STATUS "Berkeley Packet Filter support " + "for eth-llc disabled by user") + unset(HAVE_BPF) + unset(HAVE_LLC) + endif () + endif () +endif () + +if (NETMAP_C_INCLUDE_DIR) + set(DISABLE_NETMAP FALSE CACHE BOOL + "Disable netmap support for LLC IPCP") + if (NOT DISABLE_NETMAP) + message(STATUS "Netmap support for eth-llc enabled") + set(HAVE_NETMAP TRUE PARENT_SCOPE) + test_and_set_c_compiler_flag_global(-std=c99) + set(HAVE_LLC TRUE) + else () + message(STATUS "Netmap support for eth-llc disabled by user") + unset(HAVE_NETMAP) + unset(HAVE_LLC) + unset(IPCP_ETH_LLC_TARGET CACHE) + endif () +endif () + +if (HAVE_LLC) + message(STATUS "Supported raw Ethernet API found, building eth-llc") + + set(ETH_LLC_SOURCES + # Add source files here + ${CMAKE_CURRENT_SOURCE_DIR}/main.c + ) + + set(IPCP_ETH_LLC_TARGET ipcpd-eth-llc CACHE INTERNAL "") + + add_executable(ipcpd-eth-llc ${ETH_LLC_SOURCES} ${IPCP_SOURCES}) + + if (HAVE_BPF AND NOT APPLE) + target_include_directories(ipcpd-eth-llc PUBLIC ${BPF_C_INCLUDE_DIR}) + endif () + + if (HAVE_NETMAP AND NOT APPLE) + target_include_directories(ipcpd-eth-llc PUBLIC + ${NETMAP_C_INCLUDE_DIR}) + endif () + + target_link_libraries(ipcpd-eth-llc LINK_PUBLIC ouroboros-dev) + + include(AddCompileFlags) + if (CMAKE_BUILD_TYPE MATCHES "Debug*") + add_compile_flags(ipcpd-eth-llc -DCONFIG_OUROBOROS_DEBUG) + endif () + + install(TARGETS ipcpd-eth-llc RUNTIME DESTINATION sbin) +endif () -- cgit v1.2.3