BOOST_LOG_INLINE_GLOBAL_LOGGER_DEFAULT(my_logger, src::logger_mt)
boost::shared_ptr<sinks::synchronous_sink<sinks::text_file_backend>> boostLogger;
-double cpuClock = 0.0;
+// double cpuClock = 0.0;
bool jsonTrace = false;
char* getinterfaceip()
dynamic_log_level_change();
mdclog_attr_destroy(attr);
}
-auto start_time = std::chrono::high_resolution_clock::now();
-typedef std::chrono::duration<double, std::ratio<1,1>> seconds_t;
+//auto start_time = std::chrono::high_resolution_clock::now();
+//typedef std::chrono::duration<double, std::ratio<1,1>> seconds_t;
-double age() {
- return seconds_t(std::chrono::high_resolution_clock::now() - start_time).count();
-}
+//double age() {
+// return seconds_t(std::chrono::high_resolution_clock::now() - start_time).count();
+//}
-double approx_CPU_MHz(unsigned sleepTime) {
- using namespace std::chrono_literals;
- uint32_t aux = 0;
- uint64_t cycles_start = rdtscp(aux);
- double time_start = age();
- std::this_thread::sleep_for(sleepTime * 1ms);
- uint64_t elapsed_cycles = rdtscp(aux) - cycles_start;
- double elapsed_time = age() - time_start;
- return elapsed_cycles / elapsed_time;
-}
+// If model name in "/proc/cpuinfo" is happens to be "Common KVM processor" then
+// approx_CPU_MHz() results in "SIGILL - Illegal Instruction" signal.
+//
+// double approx_CPU_MHz(unsigned sleepTime) {
+// using namespace std::chrono_literals;
+// uint32_t aux = 0;
+// uint64_t cycles_start = rdtscp(aux);
+// double time_start = age();
+// std::this_thread::sleep_for(sleepTime * 1ms);
+// uint64_t elapsed_cycles = rdtscp(aux) - cycles_start;
+// double elapsed_time = age() - time_start;
+// return elapsed_cycles / elapsed_time;
+//}
//std::atomic<int64_t> rmrCounter{0};
std::atomic<int64_t> num_of_messages{0};
exit(1);
}
- cpuClock = approx_CPU_MHz(100);
+// cpuClock = approx_CPU_MHz(100);
- mdclog_write(MDCLOG_DEBUG, "CPU speed %11.11f", cpuClock);
+// mdclog_write(MDCLOG_DEBUG, "CPU speed %11.11f", cpuClock);
auto result = parse(argc, argv, sctpParams);
#if !(defined(UNIT_TEST) || defined(MODULE_TEST))
if ((errno == EAGAIN) || (errno == EWOULDBLOCK)) {
/* We have processed all incoming connections. */
- if(peerInfo)
+ if(peerInfo) {
free(peerInfo);
peerInfo = nullptr;
+ }
break;
} else {
- if(peerInfo)
+ if(peerInfo) {
free(peerInfo);
peerInfo = nullptr;
+ }
mdclog_write(MDCLOG_ERR, "Accept error, errno = %s", strerror(errno));
break;
}
if (setSocketNoBlocking(peerInfo->fileDescriptor) == -1) {
mdclog_write(MDCLOG_ERR, "setSocketNoBlocking failed to set new connection %s on port %s\n", hostBuff, portBuff);
close(peerInfo->fileDescriptor);
- if(peerInfo)
+ if(peerInfo) {
free(peerInfo);
peerInfo = nullptr;
+ }
break;
#endif
}
if (ans < 0) {
mdclog_write(MDCLOG_ERR, "Failed to get info on connection request. %s\n", strerror(errno));
close(peerInfo->fileDescriptor);
- if(peerInfo)
+ if(peerInfo) {
free(peerInfo);
peerInfo = nullptr;
+ }
break;
}
if (mdclog_level_get() >= MDCLOG_DEBUG) {
(EPOLLIN | EPOLLET),
params->sctpMap, nullptr,
0) != 0) {
- if(peerInfo)
+ if(peerInfo) {
free(peerInfo);
peerInfo = nullptr;
+ }
break;
}
break;
* @param m
*/
void cleanHashEntry(ConnectedCU_t *val, Sctp_Map_t *m) {
- if(val != nullptr)
- {
- char *dummy;
- auto port = (uint16_t) strtol(val->portNumber, &dummy, 10);
- char searchBuff[2048]{};
+ if(val != nullptr) {
+ char *dummy;
+ auto port = (uint16_t) strtol(val->portNumber, &dummy, 10);
+ char searchBuff[2048]{};
- snprintf(searchBuff, sizeof searchBuff, "host:%s:%d", val->hostName, port);
- if(m->find(searchBuff))
- {
- m->erase(searchBuff);
- }
+ snprintf(searchBuff, sizeof searchBuff, "host:%s:%d", val->hostName, port);
+ if(m->find(searchBuff)) {
+ m->erase(searchBuff);
+ }
- if(m->find(val->enodbName))
- {
- mdclog_write(MDCLOG_DEBUG, "remove key enodbName = %s from %s at line %d", val->enodbName, __FUNCTION__, __LINE__);
- m->erase(val->enodbName);
- }
+ if(m->find(val->enodbName)) {
+ mdclog_write(MDCLOG_DEBUG, "remove key enodbName = %s from %s at line %d", val->enodbName, __FUNCTION__, __LINE__);
+ m->erase(val->enodbName);
+ }
#ifndef UNIT_TEST
- if(val) {
- free(val);
- val = nullptr;
- }
+ if(val) {
+ free(val);
+ val = nullptr;
+ }
#endif
}
}
// get the identity of the interface
if (events->data.ptr != nullptr){
- message.peerInfo = (ConnectedCU_t *)events->data.ptr;
+ message.peerInfo = (ConnectedCU_t *)events->data.ptr;
}
struct timespec start{0, 0};
mdclog_write(MDCLOG_DEBUG, "Got RICsubscriptionDeleteRequired %s", message.message.enodbName);
}
#if !(defined(UNIT_TEST) || defined(MODULE_TEST))
- message.peerInfo->counters[IN_INITI][MSG_COUNTER][ProcedureCode_id_RICsubscriptionDeleteRequired]->Increment();
- message.peerInfo->counters[IN_INITI][BYTES_COUNTER][ProcedureCode_id_RICsubscriptionDeleteRequired]->Increment((double)message.message.asnLength);
+ message.peerInfo->counters[IN_INITI][MSG_COUNTER][ProcedureCode_id_RICsubscriptionDeleteRequired]->Increment();
+ message.peerInfo->counters[IN_INITI][BYTES_COUNTER][ProcedureCode_id_RICsubscriptionDeleteRequired]->Increment((double)message.message.asnLength);
- // Update E2T instance level metrics
- message.peerInfo->sctpParams->e2tCounters[IN_INITI][MSG_COUNTER][ProcedureCode_id_RICsubscriptionDeleteRequired]->Increment();
- message.peerInfo->sctpParams->e2tCounters[IN_INITI][BYTES_COUNTER][ProcedureCode_id_RICsubscriptionDeleteRequired]->Increment((double)message.message.asnLength);
+ // Update E2T instance level metrics
+ message.peerInfo->sctpParams->e2tCounters[IN_INITI][MSG_COUNTER][ProcedureCode_id_RICsubscriptionDeleteRequired]->Increment();
+ message.peerInfo->sctpParams->e2tCounters[IN_INITI][BYTES_COUNTER][ProcedureCode_id_RICsubscriptionDeleteRequired]->Increment((double)message.message.asnLength);
#endif
if (sendRequestToXapp(message, RIC_SUB_DEL_REQUIRED, rmrMessageBuffer) != 0) {
mdclog_write(MDCLOG_ERR, "Subscription Delete Required message failed to send to xAPP");
if (tmp) {
free(tmp);
tmp = nullptr;
- sctpMap->erase(key);
+ sctpMap->erase(key);
}
mdclog_write(MDCLOG_ERR, "epoll_ctl EPOLL_CTL_ADD (may check not to quit here)");
return -1;