From d37add0f20c93432c0b4c12866810c124a7a18ec Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Fri, 25 Mar 2016 19:13:32 +0100 Subject: 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. --- src/lib/CMakeLists.txt | 10 ++++++++-- src/lib/irmd_messages.proto | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 src/lib/irmd_messages.proto (limited to 'src') 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; +}; -- cgit v1.2.3