From: aa7133@att.com Date: Sun, 8 Dec 2019 13:48:12 +0000 (+0200) Subject: version 3.0.4 add KeepAlive Support X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=31fa23e0f82f52dba5c0cc565c6ff0962a48db4e;p=ric-plt%2Fe2.git version 3.0.4 add KeepAlive Support Change-Id: I41fec21d48d5330a5b5065d034b1c50429e61215 Signed-off-by: aa7133@att.com --- diff --git a/RIC-E2-TERMINATION/Dockerfile b/RIC-E2-TERMINATION/Dockerfile index ad9eb3c..4f28bff 100644 --- a/RIC-E2-TERMINATION/Dockerfile +++ b/RIC-E2-TERMINATION/Dockerfile @@ -28,10 +28,10 @@ RUN mkdir -p /opt/e2/RIC-E2-TERMINATION/ \ COPY . /opt/e2/RIC-E2-TERMINATION/ RUN mv /opt/e2/RIC-E2-TERMINATION/CMakeLists.txt /opt/e2/ -RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_1.12.0_amd64.deb/download.deb -RUN dpkg -i rmr_1.12.0_amd64.deb -RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_1.12.0_amd64.deb/download.deb -RUN dpkg -i rmr-dev_1.12.0_amd64.deb +RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr_1.13.0_amd64.deb/download.deb +RUN dpkg -i rmr_1.13.0_amd64.deb +RUN wget --content-disposition https://packagecloud.io/o-ran-sc/staging/packages/debian/stretch/rmr-dev_1.13.0_amd64.deb/download.deb +RUN dpkg -i rmr-dev_1.13.0_amd64.deb RUN apt-get install -y autoconf gawk libtool automake pkg-config autoconf-archive \ && git clone http://gerrit.o-ran-sc.org/r/com/log \ diff --git a/RIC-E2-TERMINATION/container-tag.yaml b/RIC-E2-TERMINATION/container-tag.yaml index a34401d..4818173 100644 --- a/RIC-E2-TERMINATION/container-tag.yaml +++ b/RIC-E2-TERMINATION/container-tag.yaml @@ -1,3 +1,3 @@ # The Jenkins job requires a tag to build the Docker image. # Global-JJB script assumes this file is in the repo root. -tag: 3.0.3 +tag: 3.0.4 diff --git a/RIC-E2-TERMINATION/sctpThread.cpp b/RIC-E2-TERMINATION/sctpThread.cpp index 688f824..6874b4b 100644 --- a/RIC-E2-TERMINATION/sctpThread.cpp +++ b/RIC-E2-TERMINATION/sctpThread.cpp @@ -94,7 +94,7 @@ int main(const int argc, char **argv) { cpuClock = approx_CPU_MHz(100); - mdclog_write(MDCLOG_ERR, "CPU speed %11.11f", cpuClock); + mdclog_write(MDCLOG_DEBUG, "CPU speed %11.11f", cpuClock); auto result = parse(argc, argv, sctpParams); path p = (sctpParams.configFilePath + "/" + sctpParams.configFileName).c_str(); @@ -441,6 +441,11 @@ void listener(sctp_params_t *params) { rmrMessageBuffer.rcvMessage = rmr_alloc_msg(rmrMessageBuffer.rmrCtx, RECEIVE_XAPP_BUFFER_SIZE); rmrMessageBuffer.sendMessage = rmr_alloc_msg(rmrMessageBuffer.rmrCtx, RECEIVE_XAPP_BUFFER_SIZE); + auto len = snprintf(rmrMessageBuffer.ka_message, 4096, "{\"address\": \"%s:%d\",\"fqdn\": \"%s\"}", + (const char *) params->myIP.c_str(), + params->rmrPort, + params->fqdn.c_str()); + rmrMessageBuffer.ka_message[len] = 0; ReportingMessages_t message {}; @@ -2076,6 +2081,25 @@ int receiveXappMessages(int epoll_fd, sctpMap->clear(); break; } + case E2_TERM_KEEP_ALIVE_REQ: { + // send message back + rmr_bytes2payload(rmrMessageBuffer.sendMessage, + (unsigned char *)rmrMessageBuffer.ka_message, + rmrMessageBuffer.len); + rmrMessageBuffer.sendMessage->mtype = E2_TERM_KEEP_ALIVE_RESP; + rmrMessageBuffer.sendMessage->state = 0; + static unsigned char tx[32]; + auto txLen = snprintf((char *) tx, sizeof tx, "%15ld", transactionCounter++); + rmr_bytes2xact(rmrMessageBuffer.sendMessage, tx, txLen); + rmrMessageBuffer.sendMessage = rmr_send_msg(rmrMessageBuffer.rmrCtx, rmrMessageBuffer.sendMessage); + if (rmrMessageBuffer.sendMessage == nullptr) { + rmrMessageBuffer.sendMessage = rmr_alloc_msg(rmrMessageBuffer.rmrCtx, RECEIVE_XAPP_BUFFER_SIZE); + mdclog_write(MDCLOG_ERR, "Failed to send E2_TERM_KEEP_ALIVE_RESP"); + } else if (rmrMessageBuffer.sendMessage->state != 0) { + mdclog_write(MDCLOG_ERR, "Failed to send E2_TERM_KEEP_ALIVE_RESP"); + } + break; + } default: mdclog_write(MDCLOG_WARN, "Message Type : %d is not seported", rmrMessageBuffer.rcvMessage->mtype); message.message.asndata = rmrMessageBuffer.rcvMessage->payload; diff --git a/RIC-E2-TERMINATION/sctpThread.h b/RIC-E2-TERMINATION/sctpThread.h index 9602d43..6be9fbd 100644 --- a/RIC-E2-TERMINATION/sctpThread.h +++ b/RIC-E2-TERMINATION/sctpThread.h @@ -143,6 +143,8 @@ typedef struct ConnectedCU { #define MAX_RMR_BUFF_ARRY 32 typedef struct RmrMessagesBuffer { + char ka_message[4096] {}; + int len = 0; void *rmrCtx; rmr_mbuf_t *sendMessage; rmr_mbuf_t *sendBufferedMessages[MAX_RMR_BUFF_ARRY];