X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=e2sim%2Fe2sm_examples%2Fkpm_e2sm%2Fsrc%2Fkpm%2Fkpm_callbacks.cpp;h=bcfb513eb8ecd8942ccc5e3782c524224c8e53b6;hb=417a0f7a4a7e90ebfb069908e6adb612a39e233d;hp=18081f38223a7283a2ef0fb82faea883bfecdeaf;hpb=b5b0ef2a978d37f24fe6eda1613069ed2d355016;p=sim%2Fe2-interface.git diff --git a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.cpp b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.cpp old mode 100644 new mode 100755 index 18081f3..bcfb513 --- a/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.cpp +++ b/e2sim/e2sm_examples/kpm_e2sm/src/kpm/kpm_callbacks.cpp @@ -50,6 +50,8 @@ extern "C" { #include #include +#include "viavi_connector.hpp" + using json = nlohmann::json; using namespace std; @@ -146,12 +148,19 @@ void get_cell_id(uint8_t *nrcellid_buf, char *cid_return_buf) { } -void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long actionId) { +void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long actionId) +{ + std::filebuf reports_json; + std::streambuf *input_filebuf = &reports_json; - std::ifstream input("/playpen/src/reports.json"); - bool x = input.good(); + std::unique_ptr viavi_connector; + if (!reports_json.open("/playpen/src/reports.json", std::ios::in)) { + std::cerr << "Can't open reports.json, enabling VIAVI connector instead..." << endl; + viavi_connector.reset(new viavi::RICTesterReceiver {3001, nullptr}); + input_filebuf = viavi_connector->get_data_filebuf(); + } - fprintf(stderr, "%s\n", x ? "true" : "false"); + std::istream input {input_filebuf}; long seqNum = 1; @@ -236,7 +245,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long json::json_pointer p5(std::string("/ueMeasReport/ueMeasReportList/") + std::to_string(i) +"/neighbourCellList"); - uint8_t *crnti_buf = (uint8_t*)calloc(1,2); + uint8_t crnti_buf[3] = {0, }; if (ueId.find("Pedestrian") != string::npos) { std::string ind = ueId.substr(11); @@ -297,14 +306,14 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long } - uint8_t *neighbor_cellid_buf = (uint8_t*)calloc(1,5); + uint8_t neighbor_cellid_buf[6] = {0, }; neighbor_cellid_buf[0] = 0x22; neighbor_cellid_buf[1] = 0x5B; neighbor_cellid_buf[2] = 0xD6; neighbor_cellid_buf[3] = nextNbCell; neighbor_cellid_buf[4] = 0x70; - char *cid_buf = (char*)calloc(1,24); + char cid_buf[25] = {0, }; get_cell_id(neighbor_cellid_buf,cid_buf); @@ -324,22 +333,22 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long const uint8_t *neighbor_buf = reinterpret_cast(neighbor_str.c_str()); - uint8_t *nrcellid_buf = (uint8_t*)calloc(1,5); + uint8_t nrcellid_buf[6] = {0, }; nrcellid_buf[0] = 0x22; nrcellid_buf[1] = 0x5B; nrcellid_buf[2] = 0xD6; nrcellid_buf[3] = nextCellId; nrcellid_buf[4] = 0x70; - uint8_t *gnbid_buf = (uint8_t*)calloc(1,3); + uint8_t gnbid_buf[4] = {0, }; gnbid_buf[0] = 0x22; gnbid_buf[1] = 0x5B; gnbid_buf[2] = 0xD6; - uint8_t cuupid_buf[1]; + uint8_t cuupid_buf[2] = {0, }; cuupid_buf[0] = 20000; - uint8_t duid_buf[1]; + uint8_t duid_buf[2] = {0, }; duid_buf[0] = 20000; uint8_t *cuupname_buf = (uint8_t*)"GNBCUUP5"; @@ -360,6 +369,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cucp_ue, e2sm_message_buf_cucp_ue, e2sm_message_buf_size_cucp_ue); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cucp_ue); fprintf(stderr, "er encded is %d\n", er_message_cucp_ue.encoded); fprintf(stderr, "after encoding message\n"); @@ -377,6 +387,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cucp_ue, e2sm_header_buf_cucp_ue, e2sm_header_buf_size_cucp_ue); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cucp_ue); fprintf(stderr, "er encded is %d\n", er_header_cucp_ue.encoded); fprintf(stderr, "error buf is %s\n", (char*)e2sm_header_buf_cucp_ue); @@ -418,6 +429,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cuup_ue, e2sm_message_buf_cuup_ue, e2sm_message_buf_size_cuup_ue); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_cuup_ue); fprintf(stderr, "er encded is %d\n", er_message_cuup_ue.encoded); fprintf(stderr, "after encoding message\n"); @@ -433,6 +445,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cuup_ue, e2sm_header_buf_cuup_ue, e2sm_header_buf_size_cuup_ue); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_cuup_ue); E2AP_PDU *pdu_cuup_ue = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); @@ -471,6 +484,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long ind_message_du_ue, e2sm_message_buf_du_ue, e2sm_message_buf_size_du_ue); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_message_du_ue); fprintf(stderr, "er encded is %d\n", er_message_du_ue.encoded); fprintf(stderr, "after encoding message\n"); @@ -487,6 +501,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long &asn_DEF_E2SM_KPM_IndicationHeader, ind_header_du_ue, e2sm_header_buf_du_ue, e2sm_header_buf_size_du_ue); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_du_ue); E2AP_PDU *pdu_du_ue = (E2AP_PDU*)calloc(1,sizeof(E2AP_PDU)); @@ -548,22 +563,22 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long uint8_t *sd_buf = (uint8_t*)"100"; uint8_t *plmnid_buf = (uint8_t*)"747"; - uint8_t *nrcellid_buf = (uint8_t*)calloc(1,5); + uint8_t nrcellid_buf[6] = {0, }; nrcellid_buf[0] = 0x22; nrcellid_buf[1] = 0x5B; nrcellid_buf[2] = 0xD6; nrcellid_buf[3] = cellid; nrcellid_buf[4] = 0x70; - uint8_t *gnbid_buf = (uint8_t*)calloc(1,3); + uint8_t gnbid_buf[4] = {0, }; gnbid_buf[0] = 0x22; gnbid_buf[1] = 0x5B; gnbid_buf[2] = 0xD6; - uint8_t cuupid_buf[1]; + uint8_t cuupid_buf[2] = {0, }; cuupid_buf[0] = 20000; - uint8_t duid_buf[1]; + uint8_t duid_buf[2] = {0, }; duid_buf[0] = 20000; uint8_t *cuupname_buf = (uint8_t*)"GNBCUUP5"; @@ -588,6 +603,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long ATS_ALIGNED_BASIC_PER, &asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_style5, e2sm_message_buf_style5, e2sm_message_buf_size_style5); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_msg_style5); fprintf(stderr, "er encded is %d\n", er_message_style5.encoded); fprintf(stderr, "after encoding message\n"); @@ -607,6 +623,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long &asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style5, e2sm_header_buf_style5, e2sm_header_buf_size_style5); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style5); encoding::generate_e2apv1_indication_request_parameterized(pdu_style5, requestorId, @@ -651,6 +668,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long &asn_DEF_E2SM_KPM_IndicationMessage, ind_message_style1, e2sm_message_buf_style1, e2sm_message_buf_size_style1); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationMessage, ind_message_style1); fprintf(stderr, "er encded is %d\n", er_message_style1.encoded); fprintf(stderr, "after encoding message\n"); @@ -672,6 +690,7 @@ void run_report_loop(long requestorId, long instanceId, long ranFunctionId, long &asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style1, e2sm_header_buf_style1, e2sm_header_buf_size_style1); + ASN_STRUCT_FREE(asn_DEF_E2SM_KPM_IndicationHeader, ind_header_style1); encoding::generate_e2apv1_indication_request_parameterized(pdu_style1, requestorId, instanceId, ranFunctionId,