X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=RIC-E2-TERMINATION%2FBuildRunName.h;h=3d4dc8509bd0fb991961fddf5c531aefded5fe02;hb=24e9fa4e18edad995acbd671a39a6e247f56b97f;hp=e6eaccd013829260844f9fe7fb35486929fd82eb;hpb=4aeeda23c37871c044341b043ac19f8217853567;p=ric-plt%2Fe2.git diff --git a/RIC-E2-TERMINATION/BuildRunName.h b/RIC-E2-TERMINATION/BuildRunName.h index e6eaccd..3d4dc85 100644 --- a/RIC-E2-TERMINATION/BuildRunName.h +++ b/RIC-E2-TERMINATION/BuildRunName.h @@ -56,7 +56,21 @@ static int translateBitStringToChar(char *ranName, BIT_STRING_t &data) { // dont care of last unused bits char buffer[256] {}; auto j = snprintf(buffer, 256, "%s_", ranName); + + memcpy(ranName, buffer, j); +/* + // ran name decimal + unsigned long bitValue = 0; + for (auto i = 0; i < (int)data.size; i++) { + bitValue <<= (unsigned long)8; + bitValue += data.buf[i]; + } + + j = snprintf(buffer, 256, "%s%ld", ranName, bitValue); + memcpy(ranName, buffer, j); +*/ + unsigned b1 = 0; unsigned b2 = 0; @@ -95,23 +109,21 @@ int buildRanName(char *ranName, E2setupRequestIEs_t *ie) { } case GlobalE2node_ID_PR_ng_eNB: { auto *ngEnb = ie->value.choice.GlobalE2node_ID.choice.ng_eNB; - char *buf = (char *)ngEnb->global_ng_eNB_ID.plmn_id.buf; - char str[20] = {}; - BIT_STRING_t *data = nullptr; switch (ngEnb->global_ng_eNB_ID.enb_id.present) { case ENB_ID_Choice_PR_enb_ID_macro: { - strncpy(str, (const char *)"ng_enB_macro_", 13); - data = &ngEnb->global_ng_eNB_ID.enb_id.choice.enb_ID_macro; + translatePlmnId(ranName, (const unsigned char *)ngEnb->global_ng_eNB_ID.plmn_id.buf, (const char *)"ng_enB_macro_"); + translateBitStringToChar(ranName, ngEnb->global_ng_eNB_ID.enb_id.choice.enb_ID_macro); break; } case ENB_ID_Choice_PR_enb_ID_shortmacro: { - strncpy(str, (const char *)"ng_enB_shortmacro_", 18); - data = &ngEnb->global_ng_eNB_ID.enb_id.choice.enb_ID_shortmacro; + translatePlmnId(ranName, (const unsigned char *)ngEnb->global_ng_eNB_ID.plmn_id.buf, (const char *)"ng_enB_shortmacro_"); + translateBitStringToChar(ranName, ngEnb->global_ng_eNB_ID.enb_id.choice.enb_ID_shortmacro); break; } case ENB_ID_Choice_PR_enb_ID_longmacro: { - strncpy(str, (const char *)"ng_enB_longmacro_", 17); - data = &ngEnb->global_ng_eNB_ID.enb_id.choice.enb_ID_longmacro; + translatePlmnId(ranName, (const unsigned char *)ngEnb->global_ng_eNB_ID.plmn_id.buf, (const char *)"ng_enB_longmacro_"); + translateBitStringToChar(ranName, ngEnb->global_ng_eNB_ID.enb_id.choice.enb_ID_longmacro); + break; } case ENB_ID_Choice_PR_NOTHING: { break; @@ -119,45 +131,37 @@ int buildRanName(char *ranName, E2setupRequestIEs_t *ie) { default: break; } - translatePlmnId(ranName, (const unsigned char *)buf, (const char *)str); - translateBitStringToChar(ranName, *data); - break; } case GlobalE2node_ID_PR_eNB: { auto *enb = ie->value.choice.GlobalE2node_ID.choice.eNB; - char *buf = (char *)enb->global_eNB_ID.pLMN_Identity.buf; - char str[20] = {}; - BIT_STRING_t *data = nullptr; - switch (enb->global_eNB_ID.eNB_ID.present) { case ENB_ID_PR_macro_eNB_ID: { - strncpy(str, (const char *)"enB_macro_", 10); - data = &enb->global_eNB_ID.eNB_ID.choice.macro_eNB_ID; + translatePlmnId(ranName, (const unsigned char *)enb->global_eNB_ID.pLMN_Identity.buf, (const char *)"enB_macro_"); + translateBitStringToChar(ranName, enb->global_eNB_ID.eNB_ID.choice.macro_eNB_ID); break; } case ENB_ID_PR_home_eNB_ID: { - strncpy(str, (const char *)"enB_home_", 9); - data = &enb->global_eNB_ID.eNB_ID.choice.home_eNB_ID; + translatePlmnId(ranName, (const unsigned char *)enb->global_eNB_ID.pLMN_Identity.buf, (const char *)"enB_home_"); + translateBitStringToChar(ranName, enb->global_eNB_ID.eNB_ID.choice.home_eNB_ID); break; } case ENB_ID_PR_short_Macro_eNB_ID: { - strncpy(str, (const char *)"enB_shortmacro_", 15); - data = &enb->global_eNB_ID.eNB_ID.choice.short_Macro_eNB_ID; + translatePlmnId(ranName, (const unsigned char *)enb->global_eNB_ID.pLMN_Identity.buf, (const char *)"enB_shortmacro_"); + translateBitStringToChar(ranName, enb->global_eNB_ID.eNB_ID.choice.short_Macro_eNB_ID); break; } case ENB_ID_PR_long_Macro_eNB_ID: { - strncpy(str, (const char *)"enB_longmacro_", 14); - data = &enb->global_eNB_ID.eNB_ID.choice.long_Macro_eNB_ID; + translatePlmnId(ranName, (const unsigned char *)enb->global_eNB_ID.pLMN_Identity.buf, (const char *)"enB_longmacro_"); + translateBitStringToChar(ranName, enb->global_eNB_ID.eNB_ID.choice.long_Macro_eNB_ID); + break; + } + case ENB_ID_PR_NOTHING: { break; } - case ENB_ID_PR_NOTHING: default: { break; } } - translatePlmnId(ranName, (const unsigned char *)buf, (const char *)str); - translateBitStringToChar(ranName, *data); - break; } case GlobalE2node_ID_PR_NOTHING: default: