diff options
author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2018-03-10 10:09:08 +0100 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2018-03-10 13:16:06 +0100 |
commit | 2936dd5e4232f7d7d9c720d89bb4a696abcd1830 (patch) | |
tree | e4d755789542da32c1720636bc1065a3a6b62c74 /src/ipcpd/eth-llc/CMakeLists.txt | |
parent | 9b6fdc1c2abe85008610063d800edf80e5011a4d (diff) | |
download | ouroboros-2936dd5e4232f7d7d9c720d89bb4a696abcd1830.tar.gz ouroboros-2936dd5e4232f7d7d9c720d89bb4a696abcd1830.zip |
ipcpd: Add IPCP over DIX Ethernet
This adds an IPC Process that uses DIX Ethernet with an Ethertype that
is configurable at bootstrap. This allows parallel DIX layers over the
same Ethernet network with different Ethertypes (and one LLC
layer). It allows jumbo frames in the future, and should avoid the
problems we have with some routers not handling LLC traffic very
well. The destination endpoint ID is sent as a 16 bit integer, so the
maximum payload is 1498 bytes in standard Ethernet, and 8998 bytes
when Jumbo frames are used.
The implementation is very similar to the Ethernet LLC IPCP, so it is
implemented using preprocessor macros in the single source instead of
duplicating code.
Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
Diffstat (limited to 'src/ipcpd/eth-llc/CMakeLists.txt')
-rw-r--r-- | src/ipcpd/eth-llc/CMakeLists.txt | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/src/ipcpd/eth-llc/CMakeLists.txt b/src/ipcpd/eth-llc/CMakeLists.txt deleted file mode 100644 index 0e7f074f..00000000 --- a/src/ipcpd/eth-llc/CMakeLists.txt +++ /dev/null @@ -1,106 +0,0 @@ -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 ${CMAKE_INSTALL_SBINDIR}) -endif () |