diff options
author | Sander Vrijders <[email protected]> | 2016-03-25 19:13:32 +0100 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2016-03-25 19:13:32 +0100 |
commit | d37add0f20c93432c0b4c12866810c124a7a18ec (patch) | |
tree | e6d115d469ce95627fc802b8ee454614e826059a /src | |
parent | 35b00759a9616033aa19177ba3281eb9643509d2 (diff) | |
download | ouroboros-d37add0f20c93432c0b4c12866810c124a7a18ec.tar.gz ouroboros-d37add0f20c93432c0b4c12866810c124a7a18ec.zip |
build: Add protobuf-c commands for cmake
This adds a cmake file so that the build can ask to generate
protobuf-c files from .proto files. The messages between the IRM and
the library are compiled into the library.
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/CMakeLists.txt | 10 | ||||
-rw-r--r-- | src/lib/irmd_messages.proto | 37 |
2 files changed, 45 insertions, 2 deletions
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 7ce98bf2..e05dce8b 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -3,6 +3,12 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}) include_directories(${CMAKE_SOURCE_DIR}/include) include_directories(${CMAKE_BINARY_DIR}/include) +find_package(ProtobufC REQUIRED) + +include_directories(${PROTOBUF_INCLUDE_DIRS}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +protobuf_generate_c(PROTO_SRCS PROTO_HDRS irmd_messages.proto) find_library(LIBRT_LIBRARIES rt) if(NOT LIBRT_LIBRARIES) @@ -30,8 +36,8 @@ set(SOURCE_FILES utils.c ) -add_library(ouroboros SHARED ${SOURCE_FILES}) -target_link_libraries(ouroboros rt pthread) +add_library(ouroboros SHARED ${SOURCE_FILES} ${PROTO_SRCS} ${PROTO_HDRS}) +target_link_libraries(ouroboros rt pthread ${PROTOBUF_LIBRARIES}) include(MacroAddCompileFlags) if (CMAKE_BUILD_TYPE MATCHES Debug) diff --git a/src/lib/irmd_messages.proto b/src/lib/irmd_messages.proto new file mode 100644 index 00000000..c61d1b6d --- /dev/null +++ b/src/lib/irmd_messages.proto @@ -0,0 +1,37 @@ +enum irm_msg_code { + IRM_CREATE_IPCP = 1; + IRM_DESTROY_IPCP = 2; + IRM_BOOTSTRAP_IPCP = 3; + IRM_ENROLL_IPCP = 4; + IRM_REG_IPCP = 5; + IRM_UNREG_IPCP = 6; + IRM_AP_REG = 7; + IRM_AP_REG_R = 8; + IRM_AP_UNREG = 9; + IRM_FLOW_ACCEPT = 10; + IRM_FLOW_ACCEPT_R = 11; + IRM_FLOW_ALLOC_RESP = 12; + IRM_FLOW_ALLOC = 13; + IRM_FLOW_ALLOC_R = 14; + IRM_FLOW_ALLOC_RES = 15; + IRM_FLOW_ALLOC_RES_R = 16; + IRM_FLOW_DEALLOC = 17; + IRM_FLOW_CONTROL = 18; + IRM_FLOW_WRITE = 19; + IRM_FLOW_READ = 20; +}; + +message irm_msg { + required irm_msg_code code = 1; + optional string ap_name = 2; + optional uint32 api_id = 3; + optional string ae_name = 4; + optional string ipcp_type = 5; + // Missing dif_config field here + repeated string dif_name = 7; + optional int32 fd = 8; + optional int32 result = 9; + // Missing qos_spec here + optional int32 oflags = 10; + optional string dst_ap_name = 11; +}; |