Commit 28366cfc authored by Ignacio (Nacho) Solis's avatar Ignacio (Nacho) Solis

Metis 1.0 - Initial GitHub release

parents
VERSION
metis-*tar.gz
config.cache
.cproject
.project
*.plist
autom4te.cache
*~
.libs
LongBow
include
lib
.DS_Store
*.lo
*.o
*.lo
build/
conf.mk
*.dSYM
*.gcda
*.gcno
*.gcov
*.la
conf.mk
.deps
config.log
config.h
config.status
*.log
*.trs
.dirstamp
Makefile
stamp-h1
*.xcuserdatad
autom4te.cache/
ccnx/forwarder/metis/.libs/
ccnx/forwarder/metis/libmetis.la
libtool
test_metis_StandardPIT
cmake_minimum_required(VERSION 3.3)
project(cmake)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)
if( UNIX )
link_libraries(m)
endif( UNIX )
include( CTest )
include( version )
include( detectCacheSize )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
link_directories($ENV{CCNX_DEPENDENCIES}/lib)
include_directories($ENV{CCNX_DEPENDENCIES}/include)
set(OPENSSL_ROOT_DIR $ENV{CCNX_DEPENDENCIES})
find_package( LongBow REQUIRED )
include_directories(${LONGBOW_INCLUDE_DIRS})
find_package( LibEvent REQUIRED )
include_directories(${LIBEVENT_INCLUDE_DIRS})
find_package( Libparc REQUIRED )
include_directories(${LIBPARC_INCLUDE_DIRS})
find_package( CCNX_Common REQUIRED )
include_directories(${CCNX_COMMON_INCLUDE_DIRS})
find_package( CCNX_Transport_Rta REQUIRED )
include_directories(${CCNX_TRANSPORT_RTA_INCLUDE_DIRS})
find_package( CCNX_Portal REQUIRED )
include_directories(${CCNX_PORTAL_INCLUDE_DIRS})
find_package ( Threads REQUIRED )
find_package ( OpenSSL REQUIRED )
include_directories(${PROJECT_BINARY_DIR}/ccnx/forwarder/metis
${PROJECT_SOURCE_DIR}
)
find_package( Doxygen )
set(METIS_LINK_LIBRARIES
metis
${LONGBOW_LIBRARIES}
${LIBEVENT_LIBRARIES}
${OPENSSL_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${CCNX_PORTAL_LIBRARIES}
${CCNX_TRANSPORT_RTA_LIBRARIES}
${CCNX_COMMON_LIBRARIES}
${LIBPARC_LIBRARIES}
)
macro(AddTest testFile)
add_executable(${ARGV0} ${ARGV0}.c)
target_link_libraries(${ARGV0} ${METIS_LINK_LIBRARIES})
add_test(${ARGV0} ${ARGV0})
endmacro(AddTest)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -undefined dynamic_lookup")
message( "-- Set \"-undefined dynamic_lookup\" for shared libraries")
endif()
add_subdirectory(ccnx/forwarder/metis)
Copyright (c) 2013, 2014, 2015, 2016, Xerox Corporation (Xerox)and Palo Alto
Research Center (PARC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Patent rights are not granted under this agreement. Patent rights are
available under FRAND terms.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL XEROX or PARC BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Metis
=======
The Metis CCNx Forwarder
==========
## Introduction ##
This is a CCNx forwarder
## Overview ##
For a full CCNx software distribution please look at the CCNx Distillery
https://github.com/PARC/CCNx_Distillery
## Dependencies ##
This library depends on LongBow.
- https://github.com/PARC/LongBow
- https://github.com/PARC/Libparc
- https://github.com/PARC/Libccnx-common
- https://github.com/PARC/Libccnx-transport-rta
## Getting Started ##
Build and install LongBow by executing
```
mkdir build
cd build
cmake ..
make
make install
make test
```
This will create the `include` and `lib` directories containing the necessary files to compile with LongBow.
### Contact ###
Please see http://www.ccnx.org/
### License ###
This software is distributed under the following license:
```
Copyright (c) 2013, 2014, 2015, 2016, Xerox Corporation (Xerox)and Palo Alto
Research Center (PARC)
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Patent rights are not granted under this agreement. Patent rights are
available under FRAND terms.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL XEROX or PARC BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```
libmetis.a
command-line/metis_control/metis_control
command-line/metis_daemon/metis_daemon
config/test/test_metis_CommandLineInterface
config/test/test_metis_Configuration
config/test/test_metis_ConfigurationFile
config/test/test_metis_ConfigurationListeners
config/test/test_metis_CommandOps
config/test/test_metis_CommandParser
config/test/test_metis_SymbolicNameTable
config/test/test_metisControl_AddListener
content_store/test/test_metis_LRUContentStore
content_store/test/test_metis_ContentStoreFactory
content_store/test/test_metis_ContentStoreInterface
content_store/test/test_metis_ContentStoreEntry
content_store/test/test_metis_LruList
content_store/test/test_metis_TimeOrderedList
core/test/test_metis_Clock
core/test/test_metis_Connection
core/test/test_metis_ConnectionTable
core/test/test_metis_Dispatcher
core/test/test_metis_Forwarder
core/test/test_metis_Interface
core/test/test_metis_Logger
core/test/test_metis_Message
core/test/test_metis_NumberSet
core/test/test_metis_StreamBuffer
core/test/test_metis_System
core/test/test_metis_ConnectionList
core/test/test_metis_ThreadedForwarder
io/test/test_metis_AddressPair
io/test/test_metis_EtherConnection
io/test/test_metis_EtherListener
io/test/test_metis_IPMulticastListener
io/test/test_metis_ListenerSet
io/test/test_metis_LocalListener
io/test/test_metis_StreamConnection
io/test/test_metis_TcpListener
io/test/test_metis_TcpTunnel
io/test/test_metis_UdpConnection
io/test/test_metis_UdpListener
io/test/test_metis_UdpTunnel
io/test/test_metis_HopByHopFragmenter
messenger/test/test_metis_Messenger
messenger/test/test_metis_MessengerRecipient
messenger/test/test_metis_Missive
messenger/test/test_metis_MissiveDeque
processor/test/test_metis_FIB
processor/test/test_metis_FibEntry
processor/test/test_metis_FibEntryList
processor/test/test_metis_HashTableFunction
processor/test/test_metis_MatchingRulesTable
processor/test/test_metis_MessageProcessor
processor/test/test_metis_PIT
processor/test/test_metis_PitEntry
strategies/test/test_strategy_All
test/test_sys_Errors
test/test_sys_EtherEndToEnd
test/test_sys_TcpEndToEnd
test/test_sys_UdpEndToEnd
test/test_sys_TcpTunnel
config/test/test_metisControl_Add
config/test/test_metisControl_AddConnection
config/test/test_metisControl_AddRoute
config/test/test_metisControl_List
config/test/test_metisControl_ListConnections
config/test/test_metisControl_ListInterfaces
config/test/test_metisControl_ListRoutes
config/test/test_metisControl_Quit
config/test/test_metisControl_Remove
config/test/test_metisControl_RemoveConnection
config/test/test_metisControl_RemoveRoute
config/test/test_metisControl_Root
config/test/test_metisControl_Set
config/test/test_metisControl_Unset
config/test/test_metisControl_SetDebug
config/test/test_metisControl_UnsetDebug
config/test/test_metis_ControlState
# Define a few configuration variables that we want accessible in the software
configure_file(config.h.in config.h @ONLY)
set(METIS_BASE_HEADERS
metis_About.h
)
set(METIS_CONFIG_HEADERS
config/metis_CommandOps.h
config/metis_CommandParser.h
config/metis_Configuration.h
config/metis_CommandLineInterface.h
config/metis_CommandReturn.h
config/metis_SymbolicNameTable.h
config/metis_ControlState.h
config/metisControl_Root.h
config/metisControl_AddConnection.h
config/metisControl_Add.h
config/metis_ConfigurationFile.h
config/metis_ConfigurationListeners.h
config/metisControl_AddRoute.h
config/metisControl_AddListener.h
config/metisControl_ListConnections.h
config/metisControl_List.h
config/metisControl_ListInterfaces.h
config/metisControl_ListRoutes.h
config/metisControl_Quit.h
config/metisControl_Remove.h
config/metisControl_RemoveConnection.h
config/metisControl_RemoveRoute.h
config/metisControl_Set.h
config/metisControl_Unset.h
config/metisControl_SetDebug.h
config/metisControl_UnsetDebug.h
config/metis_WebInterface.h
)
set(METIS_CONTENT_STORE_HEADERS
content_store/metis_ContentStoreEntry.h
content_store/metis_ContentStoreInterface.h
content_store/metis_LRUContentStore.h
content_store/metis_TimeOrderedList.h
content_store/metis_LruList.h
)
set(METIS_CORE_HEADERS
core/metis_ConnectionManager.h
core/metis_Ticks.h
core/metis_ConnectionList.h
core/metis_ConnectionTable.h
core/metis_Connection.h
core/metis_Forwarder.h
core/metis_Logger.h
core/metis_Dispatcher.h
core/metis_Message.h
core/metis_MessagePacketType.h
core/metis_NumberSet.h
core/metis_StreamBuffer.h
core/metis_ThreadedForwarder.h
core/metis_System.h
)
set(METIS_IO_HEADERS
io/metis_HopByHopFragmenter.h
io/metis_EtherConnection.h
io/metis_TcpTunnel.h
io/metis_AddressPair.h
io/metis_IoOperations.h
io/metis_Listener.h
io/metis_ListenerSet.h
io/metis_TcpListener.h
io/metis_UdpTunnel.h
io/metis_UdpConnection.h
io/metis_UdpListener.h
io/metis_EtherListener.h
io/metis_GenericEther.h
io/metis_LocalListener.h
io/metis_StreamConnection.h
io/metis_IPMulticastListener.h
io/metis_Ethernet.h
)
set(METIS_MESSENGER_HEADERS
messenger/metis_MissiveDeque.h
messenger/metis_Missive.h
messenger/metis_MissiveType.h
messenger/metis_Messenger.h
messenger/metis_MessengerRecipient.h
)
set(METIS_PROCESSOR_HEADERS
processor/metis_FibEntry.h
processor/metis_FibEntryList.h
processor/metis_MessageProcessor.h
processor/metis_Tap.h
processor/metis_HashTableFunction.h
processor/metis_PIT.h
processor/metis_FIB.h
processor/metis_PitEntry.h
processor/metis_MatchingRulesTable.h
processor/metis_PITVerdict.h
processor/metis_StandardPIT.h
)
set(METIS_STRATEGIES_HEADERS
strategies/metis_Strategy.h
strategies/metis_StrategyImpl.h
strategies/strategy_All.h
)
set(METIS_TLV_HEADERS
tlv/metis_TlvOps.h
tlv/metis_Tlv.h
tlv/metis_TlvName.h
tlv/metis_TlvExtent.h
tlv/metis_TlvNameCodec.h
tlv/metis_TlvSchemaV0.h
tlv/metis_TlvSchemaV1.h
tlv/metis_TlvSkeleton.h
)
set(METIS_CONFIG_SOURCE
config/metis_CommandLineInterface.c
config/metis_CommandOps.c
config/metis_CommandParser.c
config/metis_Configuration.c
config/metis_ConfigurationFile.c
config/metis_ConfigurationListeners.c
config/metis_ControlState.c
config/metis_SymbolicNameTable.c
config/metisControl_Add.c
config/metisControl_AddConnection.c
config/metisControl_AddRoute.c
config/metisControl_AddListener.c
config/metisControl_List.c
config/metisControl_ListConnections.c
config/metisControl_ListInterfaces.c
config/metisControl_ListRoutes.c
config/metisControl_Quit.c
config/metisControl_Remove.c
config/metisControl_RemoveConnection.c
config/metisControl_RemoveRoute.c
config/metisControl_Root.c
config/metisControl_Set.c
config/metisControl_SetDebug.c
config/metisControl_Unset.c
config/metisControl_UnsetDebug.c
)
set(METIS_CORE_SOURCE
core/metis_Connection.c
core/metis_ConnectionList.c
core/metis_ConnectionManager.c
core/metis_ConnectionTable.c
core/metis_Dispatcher.c
core/metis_Forwarder.c
core/metis_Logger.c
core/metis_Message.c
core/metis_NumberSet.c
core/metis_StreamBuffer.c
core/metis_ThreadedForwarder.c
)
set(METIS_TLV_SOURCE
tlv/metis_Tlv.c
tlv/metis_TlvExtent.c
tlv/metis_TlvName.c
tlv/metis_TlvSchemaV0.c
tlv/metis_TlvSchemaV1.c
tlv/metis_TlvSkeleton.c
tlv/metis_TlvNameCodec.c
)
if ( APPLE )
set(METIS_PLATFORM_MODULES
platforms/darwin/metis_GenericEther.c
platforms/darwin/metis_System.c
)
endif()
if( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" )
set(METIS_PLATFORM_MODULES
platforms/linux/metis_GenericEther.c
platforms/linux/metis_System.c
)
endif()
set(METIS_SOURCE_FILES
metis_About.c
${METIS_CONFIG_SOURCE}
${METIS_CORE_SOURCE}