return 0;
}
+
+
int main(const int argc, char **argv) {
sctp_params_t sctpParams;
}
}
+ auto statFlag = false;
+ auto statThread = std::thread(statColectorThread, (void *)&statFlag);
+
//loop over term_init until first message from xApp
handleTermInit(sctpParams);
t.join();
}
+ statFlag = true;
+ statThread.join();
+
return 0;
}
rmrMessageBuffer.sendBufferedMessages[i] = rmr_alloc_msg(rmrMessageBuffer.rmrCtx, RECEIVE_XAPP_BUFFER_SIZE);
}
+ message.statCollector = StatCollector::GetInstance();
+
while (true) {
if (mdclog_level_get() >= MDCLOG_DEBUG) {
mdclog_write(MDCLOG_DEBUG, "Start EPOLL Wait");
} else if (events[i].events & EPOLLOUT) {
handleEinprogressMessages(events[i], message, rmrMessageBuffer, params);
} else if (params->listenFD == events[i].data.fd) {
+ if (mdclog_level_get() >= MDCLOG_INFO) {
+ mdclog_write(MDCLOG_INFO, "New connection request from sctp network\n");
+ }
// new connection is requested from RAN start build connection
while (true) {
struct sockaddr in_addr {};
}
auto ans = getnameinfo(&in_addr, in_len,
peerInfo->hostName, NI_MAXHOST,
- peerInfo->portNumber, NI_MAXSERV, (signed )((unsigned)NI_NUMERICHOST | NI_NUMERICSERV));
+ peerInfo->portNumber, NI_MAXSERV, (unsigned )((unsigned int)NI_NUMERICHOST | (unsigned int)NI_NUMERICSERV));
if (ans < 0) {
mdclog_write(MDCLOG_ERR, "Failed to get info on connection request. %s\n", strerror(errno));
close(peerInfo->fileDescriptor);
0) != 0) {
break;
}
+ break;
}
} else if (params->rmrListenFd == events[i].data.fd) {
// got message from XAPP
if (mdclog_level_get() >= MDCLOG_DEBUG) {
mdclog_write(MDCLOG_DEBUG, "new message from RMR");
}
- if (receiveXappMessages(params->epoll_fd,
- params->sctpMap,
+ if (receiveXappMessages(params->sctpMap,
rmrMessageBuffer,
message.message.time) != 0) {
mdclog_write(MDCLOG_ERR, "Error handling Xapp message");
m->erase(key);
return -1;
}
- peerInfo->sentMesgs++;
+ message.statCollector->incSentMessage(string(message.message.enodbName));
message.message.direction = 'D';
// send report.buffer of size
buildJsonMessage(message);
// get the identity of the interface
message.peerInfo = (ConnectedCU_t *)events->data.ptr;
-
+ message.statCollector = StatCollector::GetInstance();
struct timespec start{0, 0};
struct timespec decodestart{0, 0};
struct timespec end{0, 0};
mdclog_write(MDCLOG_DEBUG, "Finish Read from SCTP %d fd message length = %ld",
message.peerInfo->fileDescriptor, message.message.asnLength);
}
- message.peerInfo->rcvMsgs++;
+
memcpy(message.message.enodbName, message.peerInfo->enodbName, sizeof(message.peerInfo->enodbName));
+ message.statCollector->incRecvMessage(string(message.message.enodbName));
message.message.direction = 'U';
message.message.time.tv_nsec = ts.tv_nsec;
message.message.time.tv_sec = ts.tv_sec;
/**
*
- * @param epoll_fd
* @param sctpMap
* @param rmrMessageBuffer
* @param ts
* @return
*/
-int receiveXappMessages(int epoll_fd,
- Sctp_Map_t *sctpMap,
+int receiveXappMessages(Sctp_Map_t *sctpMap,
RmrMessagesBuffer_t &rmrMessageBuffer,
struct timespec &ts) {
if (rmrMessageBuffer.rcvMessage == nullptr) {