X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=mc-core%2Fmc%2Flocal_datasource%2Frts_proto.c;h=b2b3c18622a4fa774b5fc61e7e124d062690c989;hb=c82aceb49b50fc5a94582360ed0e7ebbe10fa809;hp=e39381a38429d05e77d4fa24d3eadfeda78cfbfb;hpb=31d238a2cba18b87e05a7d9b4820db2c5186c658;p=ric-app%2Fmc.git diff --git a/mc-core/mc/local_datasource/rts_proto.c b/mc-core/mc/local_datasource/rts_proto.c index e39381a..b2b3c18 100644 --- a/mc-core/mc/local_datasource/rts_proto.c +++ b/mc-core/mc/local_datasource/rts_proto.c @@ -29,6 +29,7 @@ #include #include #include +#include #include "errno.h" #include "gsconfig.h" @@ -50,14 +51,14 @@ gs_uint32_t (*process_buffer)(gs_uint8_t * buffer, gs_uint32_t buflen) = NULL; / #define MAXLINE 1000000 -static FILE *pd; -static int listensockfd=-1; static int fd=-1; +struct pollfd pfd; static struct packet cur_packet; static gs_sp_t name, this_device; static gs_uint32_t verbose=0; static gs_uint32_t startupdelay=0; static gs_uint32_t singlefile=0; +static gs_uint32_t fifo=0; static gs_uint32_t gshub=0; static int socket_desc=0; @@ -95,6 +96,7 @@ static unsigned long long timestamp; // extract from input header #include "lfta/local/sgnb_add_req_reject.h" #include "sgnb_addition_request_acknowledge.pb-c.h" #include "lfta/local/eRABs_notadmitted_for_ue.h" +#include "lfta/local/add_req_ack_cellid.h" #include "lfta/local/eRABs_acked_for_admit_for_ue.h" #include "lfta/local/SgNB_ack_for_ue_NRfreqs.h" #include "lfta/local/SgNB_ack_for_add_mod_for_ue.h" @@ -102,6 +104,7 @@ static unsigned long long timestamp; // extract from input header #include "lfta/local/SgNB_ack_for_ue_beam_csi.h" #include "lfta/local/SgNB_ack_for_ue_beam_ssb.h" #include "sgnb_addition_request.pb-c.h" +#include "lfta/local/sgnb_addreq_gtp_teid.h" #include "lfta/local/sgnb_addreq_for_ue.h" #include "lfta/local/sgnb_addreq_for_ue_bearers.h" #include "lfta/local/sgnb_addreq_for_ue_sn_serv_ssb.h" @@ -128,11 +131,12 @@ static unsigned long long timestamp; // extract from input header #include "lfta/local/sn_status_transfer.h" gs_uint32_t process_buffer_CONRELEASE(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto ue_context_release.json, path context_release.json struct _dc_release *dc_release = NULL; - Uenibstreamprotobuf__UEContextRelease *node_0_0 = NULL; + StreamingProtobufs__UEContextRelease *node_0_0 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto ue_context_release.json, path context_release.json @@ -140,14 +144,16 @@ gs_uint32_t process_buffer_CONRELEASE(gs_uint8_t * buffer, gs_uint32_t buflen){ dc_release = (struct _dc_release *)(cur_packet.record.packed.values); cur_packet.schema = 201; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->uecontextrelease; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - dc_release->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + dc_release->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) dc_release->gnb_id = empty_string; else @@ -171,26 +177,27 @@ gs_uint32_t process_buffer_CONRELEASE(gs_uint8_t * buffer, gs_uint32_t buflen){ } dc_release->id_Old_eNB_UE_X2AP_ID = node_0_0->id_old_enb_ue_x2ap_id; rts_fta_process_packet(&cur_packet); - uenibstreamprotobuf__uecontext_release__free_unpacked(node_0_0,NULL); + streaming_protobufs__uecontext_release__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_RATDATAUSAGE(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto secondary_rat_data_usage_report.json, path rat_data_usage.json struct _rat_data_usage *rat_data_usage = NULL; - Uenibstreamprotobuf__SecondaryRATDataUsageReport *node_0_0 = NULL; - Uenibstreamprotobuf__SecondaryRATDataUsageReportIEs *node_0_1 = NULL; - Uenibstreamprotobuf__SecondaryRATUsageReportList *node_0_2 = NULL; - Uenibstreamprotobuf__SecondaryRATUsageReportItemIEs *node_0_3 = NULL; + StreamingProtobufs__SecondaryRATDataUsageReport *node_0_0 = NULL; + StreamingProtobufs__SecondaryRATDataUsageReportIEs *node_0_1 = NULL; + StreamingProtobufs__SecondaryRATUsageReportList *node_0_2 = NULL; + StreamingProtobufs__SecondaryRATUsageReportItemIEs *node_0_3 = NULL; gs_uint32_t i_0_3; - Uenibstreamprotobuf__SecondaryRATUsageReportItem *node_0_4 = NULL; - Uenibstreamprotobuf__ERABUsageReportList *node_0_5 = NULL; - Uenibstreamprotobuf__ERABUsageReportItemIEs *node_0_6 = NULL; + StreamingProtobufs__SecondaryRATUsageReportItem *node_0_4 = NULL; + StreamingProtobufs__ERABUsageReportList *node_0_5 = NULL; + StreamingProtobufs__ERABUsageReportItemIEs *node_0_6 = NULL; gs_uint32_t i_0_6; - Uenibstreamprotobuf__ERABUsageReportItem *node_0_7 = NULL; + StreamingProtobufs__ERABUsageReportItem *node_0_7 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto secondary_rat_data_usage_report.json, path rat_data_usage.json @@ -198,14 +205,16 @@ gs_uint32_t process_buffer_RATDATAUSAGE(gs_uint8_t * buffer, gs_uint32_t buflen) rat_data_usage = (struct _rat_data_usage *)(cur_packet.record.packed.values); cur_packet.schema = 1501; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->secondaryratdatausagereport; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - rat_data_usage->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + rat_data_usage->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) rat_data_usage->gnb_id = empty_string; else @@ -245,29 +254,30 @@ gs_uint32_t process_buffer_RATDATAUSAGE(gs_uint8_t * buffer, gs_uint32_t buflen) } } } - uenibstreamprotobuf__secondary_ratdata_usage_report__free_unpacked(node_0_0,NULL); + streaming_protobufs__secondary_ratdata_usage_report__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_RECONCOMPLETE(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_reconfiguration_complete.json, path recon_complete.json struct _reconfig_all *reconfig_all = NULL; - Uenibstreamprotobuf__SgNBReconfigurationComplete *node_0_0 = NULL; + StreamingProtobufs__SgNBReconfigurationComplete *node_0_0 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_reconfiguration_complete.json, path recon_complete.json struct _reconfig_success *reconfig_success = NULL; - Uenibstreamprotobuf__SgNBReconfigurationComplete *node_1_0 = NULL; - Uenibstreamprotobuf__ResponseInformationSgNBReconfComp *node_1_1 = NULL; - Uenibstreamprotobuf__ResponseInformationSgNBReconfCompRejectByMeNBItem *node_1_2 = NULL; + StreamingProtobufs__SgNBReconfigurationComplete *node_1_0 = NULL; + StreamingProtobufs__ResponseInformationSgNBReconfComp *node_1_1 = NULL; + StreamingProtobufs__ResponseInformationSgNBReconfCompRejectByMeNBItem *node_1_2 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_reconfiguration_complete.json, path recon_complete.json struct _reconfig_reject *reconfig_reject = NULL; - Uenibstreamprotobuf__SgNBReconfigurationComplete *node_2_0 = NULL; - Uenibstreamprotobuf__ResponseInformationSgNBReconfComp *node_2_1 = NULL; - Uenibstreamprotobuf__ResponseInformationSgNBReconfCompRejectByMeNBItem *node_2_2 = NULL; + StreamingProtobufs__SgNBReconfigurationComplete *node_2_0 = NULL; + StreamingProtobufs__ResponseInformationSgNBReconfComp *node_2_1 = NULL; + StreamingProtobufs__ResponseInformationSgNBReconfCompRejectByMeNBItem *node_2_2 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_reconfiguration_complete.json, path recon_complete.json @@ -275,14 +285,16 @@ gs_uint32_t process_buffer_RECONCOMPLETE(gs_uint8_t * buffer, gs_uint32_t buflen reconfig_all = (struct _reconfig_all *)(cur_packet.record.packed.values); cur_packet.schema = 103; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbreconfigurationcomplete; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - reconfig_all->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + reconfig_all->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) reconfig_all->gnb_id = empty_string; else @@ -302,7 +314,9 @@ gs_uint32_t process_buffer_RECONCOMPLETE(gs_uint8_t * buffer, gs_uint32_t buflen reconfig_success = (struct _reconfig_success *)(cur_packet.record.packed.values); cur_packet.schema = 101; node_1_0 = node_0_0; - reconfig_success->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + reconfig_success->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) reconfig_success->gnb_id = empty_string; else @@ -320,7 +334,7 @@ gs_uint32_t process_buffer_RECONCOMPLETE(gs_uint8_t * buffer, gs_uint32_t buflen rts_fta_process_packet(&cur_packet); }else{ node_1_2 = node_1_1->reject_by_menb_sgnbreconfcomp; - if(!(node_1_1->value_case == UENIBSTREAMPROTOBUF__RESPONSE_INFORMATION_SG_NBRECONF_COMP__VALUE_REJECT_BY__ME_NB__SG_NBRECONF_COMP)){ + if(!(node_1_1->value_case == STREAMING_PROTOBUFS__RESPONSE_INFORMATION_SG_NBRECONF_COMP__VALUE_REJECT_BY__ME_NB__SG_NBRECONF_COMP)){ rts_fta_process_packet(&cur_packet); }else{ rts_fta_process_packet(&cur_packet); @@ -332,7 +346,9 @@ gs_uint32_t process_buffer_RECONCOMPLETE(gs_uint8_t * buffer, gs_uint32_t buflen reconfig_reject = (struct _reconfig_reject *)(cur_packet.record.packed.values); cur_packet.schema = 102; node_2_0 = node_1_0; - reconfig_reject->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + reconfig_reject->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) reconfig_reject->gnb_id = empty_string; else @@ -348,7 +364,7 @@ gs_uint32_t process_buffer_RECONCOMPLETE(gs_uint8_t * buffer, gs_uint32_t buflen node_2_1 = node_2_0->id_responseinformationsgnbreconfcomp; if(node_2_0->id_responseinformationsgnbreconfcomp){ node_2_2 = node_2_1->reject_by_menb_sgnbreconfcomp; - if(node_2_1->value_case == UENIBSTREAMPROTOBUF__RESPONSE_INFORMATION_SG_NBRECONF_COMP__VALUE_REJECT_BY__ME_NB__SG_NBRECONF_COMP){ + if(node_2_1->value_case == STREAMING_PROTOBUFS__RESPONSE_INFORMATION_SG_NBRECONF_COMP__VALUE_REJECT_BY__ME_NB__SG_NBRECONF_COMP){ if(node_2_2->cause && node_2_2->cause->radionetwork){ reconfig_reject->cause_radio_network = node_2_2->cause->radionetwork->value; }else{ @@ -372,28 +388,29 @@ gs_uint32_t process_buffer_RECONCOMPLETE(gs_uint8_t * buffer, gs_uint32_t buflen rts_fta_process_packet(&cur_packet); } } - uenibstreamprotobuf__sg_nbreconfiguration_complete__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbreconfiguration_complete__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_RELCONF(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_release_confirm.json, path release_confirm.json struct _sgnb_release_confirm_from_menb_erabs *sgnb_release_confirm_from_menb_erabs = NULL; - Uenibstreamprotobuf__SgNBReleaseConfirm *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBReleaseConfirmIEs *node_0_1 = NULL; - Uenibstreamprotobuf__ERABsToBeReleasedSgNBRelConfList *node_0_2 = NULL; - Uenibstreamprotobuf__ERABsToBeReleasedSgNBRelConfItem *node_0_3 = NULL; + StreamingProtobufs__SgNBReleaseConfirm *node_0_0 = NULL; + StreamingProtobufs__SgNBReleaseConfirmIEs *node_0_1 = NULL; + StreamingProtobufs__ERABsToBeReleasedSgNBRelConfList *node_0_2 = NULL; + StreamingProtobufs__ERABsToBeReleasedSgNBRelConfItem *node_0_3 = NULL; gs_uint32_t i_0_3; - Uenibstreamprotobuf__ERABsToBeReleasedSgNBRelConfSgNBPDCPpresent *node_0_4 = NULL; - Uenibstreamprotobuf__GTPtunnelEndpoint *node_0_5 = NULL; + StreamingProtobufs__ERABsToBeReleasedSgNBRelConfSgNBPDCPpresent *node_0_4 = NULL; + StreamingProtobufs__GTPtunnelEndpoint *node_0_5 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_release_confirm.json, path release_confirm.json struct _sgnb_release_confirm_from_menb *sgnb_release_confirm_from_menb = NULL; - Uenibstreamprotobuf__SgNBReleaseConfirm *node_1_0 = NULL; - Uenibstreamprotobuf__SgNBReleaseConfirmIEs *node_1_1 = NULL; + StreamingProtobufs__SgNBReleaseConfirm *node_1_0 = NULL; + StreamingProtobufs__SgNBReleaseConfirmIEs *node_1_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_release_confirm.json, path release_confirm.json @@ -401,14 +418,16 @@ gs_uint32_t process_buffer_RELCONF(gs_uint8_t * buffer, gs_uint32_t buflen){ sgnb_release_confirm_from_menb_erabs = (struct _sgnb_release_confirm_from_menb_erabs *)(cur_packet.record.packed.values); cur_packet.schema = 1101; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbreleaseconfirm; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_release_confirm_from_menb_erabs->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_release_confirm_from_menb_erabs->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_release_confirm_from_menb_erabs->gnb_id = empty_string; else @@ -461,7 +480,9 @@ gs_uint32_t process_buffer_RELCONF(gs_uint8_t * buffer, gs_uint32_t buflen){ sgnb_release_confirm_from_menb = (struct _sgnb_release_confirm_from_menb *)(cur_packet.record.packed.values); cur_packet.schema = 1102; node_1_0 = node_0_0; - sgnb_release_confirm_from_menb->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_release_confirm_from_menb->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_release_confirm_from_menb->gnb_id = empty_string; else @@ -478,18 +499,19 @@ gs_uint32_t process_buffer_RELCONF(gs_uint8_t * buffer, gs_uint32_t buflen){ } rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbrelease_confirm__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbrelease_confirm__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_RELREQ(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_release_request.json, path release_req.json struct _release_req *release_req = NULL; - Uenibstreamprotobuf__SgNBReleaseRequest *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBReleaseRequestIEs *node_0_1 = NULL; + StreamingProtobufs__SgNBReleaseRequest *node_0_0 = NULL; + StreamingProtobufs__SgNBReleaseRequestIEs *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_release_request.json, path release_req.json @@ -497,14 +519,16 @@ gs_uint32_t process_buffer_RELREQ(gs_uint8_t * buffer, gs_uint32_t buflen){ release_req = (struct _release_req *)(cur_packet.record.packed.values); cur_packet.schema = 801; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbreleaserequest; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - release_req->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + release_req->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) release_req->gnb_id = empty_string; else @@ -545,18 +569,19 @@ gs_uint32_t process_buffer_RELREQ(gs_uint8_t * buffer, gs_uint32_t buflen){ } rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbrelease_request__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbrelease_request__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_RELREQACK(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_release_request_acknowledge.json, path release_req_ack.json struct _release_req_ack *release_req_ack = NULL; - Uenibstreamprotobuf__SgNBReleaseRequestAcknowledge *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBReleaseRequestAcknowledgeIEs *node_0_1 = NULL; + StreamingProtobufs__SgNBReleaseRequestAcknowledge *node_0_0 = NULL; + StreamingProtobufs__SgNBReleaseRequestAcknowledgeIEs *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_release_request_acknowledge.json, path release_req_ack.json @@ -564,14 +589,16 @@ gs_uint32_t process_buffer_RELREQACK(gs_uint8_t * buffer, gs_uint32_t buflen){ release_req_ack = (struct _release_req_ack *)(cur_packet.record.packed.values); cur_packet.schema = 901; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbreleaserequestacknowledge; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - release_req_ack->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + release_req_ack->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) release_req_ack->gnb_id = empty_string; else @@ -588,19 +615,19 @@ gs_uint32_t process_buffer_RELREQACK(gs_uint8_t * buffer, gs_uint32_t buflen){ } rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbrelease_request_acknowledge__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbrelease_request_acknowledge__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNBRELEASERQD(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_release_required.json, path release_rqd.json struct _SgNB_release_rqd *SgNB_release_rqd = NULL; - Uenibstreamprotobuf__SgNBReleaseRequired *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBReleaseRequiredIEs *node_0_1 = NULL; - Uenibstreamprotobuf__ERABsToBeReleasedSgNBRelReqdList *node_0_2 = NULL; + StreamingProtobufs__SgNBReleaseRequired *node_0_0 = NULL; + StreamingProtobufs__SgNBReleaseRequiredIEs *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_release_required.json, path release_rqd.json @@ -608,14 +635,16 @@ gs_uint32_t process_buffer_SGNBRELEASERQD(gs_uint8_t * buffer, gs_uint32_t bufle SgNB_release_rqd = (struct _SgNB_release_rqd *)(cur_packet.record.packed.values); cur_packet.schema = 1001; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbreleaserequired; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - SgNB_release_rqd->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + SgNB_release_rqd->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) SgNB_release_rqd->gnb_id = empty_string; else @@ -634,6 +663,54 @@ gs_uint32_t process_buffer_SGNBRELEASERQD(gs_uint8_t * buffer, gs_uint32_t bufle }else{ SgNB_release_rqd->cause_transport = -1; } + if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 0){ + SgNB_release_rqd->e_RAB_ID0 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[0]->e_rab_id; + SgNB_release_rqd->e_RAB_ID0_exists = 1; + }else{ + SgNB_release_rqd->e_RAB_ID0_exists = 0; + } + if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 1){ + SgNB_release_rqd->e_RAB_ID1 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[1]->e_rab_id; + SgNB_release_rqd->e_RAB_ID1_exists = 1; + }else{ + SgNB_release_rqd->e_RAB_ID1_exists = 0; + } + if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 2){ + SgNB_release_rqd->e_RAB_ID2 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[2]->e_rab_id; + SgNB_release_rqd->e_RAB_ID2_exists = 1; + }else{ + SgNB_release_rqd->e_RAB_ID2_exists = 0; + } + if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 3){ + SgNB_release_rqd->e_RAB_ID3 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[3]->e_rab_id; + SgNB_release_rqd->e_RAB_ID3_exists = 1; + }else{ + SgNB_release_rqd->e_RAB_ID3_exists = 0; + } + if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 4){ + SgNB_release_rqd->e_RAB_ID4 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[4]->e_rab_id; + SgNB_release_rqd->e_RAB_ID4_exists = 1; + }else{ + SgNB_release_rqd->e_RAB_ID4_exists = 0; + } + if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 5){ + SgNB_release_rqd->e_RAB_ID5 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[5]->e_rab_id; + SgNB_release_rqd->e_RAB_ID5_exists = 1; + }else{ + SgNB_release_rqd->e_RAB_ID5_exists = 0; + } + if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 6){ + SgNB_release_rqd->e_RAB_ID6 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[6]->e_rab_id; + SgNB_release_rqd->e_RAB_ID6_exists = 1; + }else{ + SgNB_release_rqd->e_RAB_ID6_exists = 0; + } + if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 7){ + SgNB_release_rqd->e_RAB_ID7 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[7]->e_rab_id; + SgNB_release_rqd->e_RAB_ID7_exists = 1; + }else{ + SgNB_release_rqd->e_RAB_ID7_exists = 0; + } if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){ SgNB_release_rqd->cause_radio_network = node_0_1->id_cause->radionetwork->value; }else{ @@ -645,183 +722,133 @@ gs_uint32_t process_buffer_SGNBRELEASERQD(gs_uint8_t * buffer, gs_uint32_t bufle }else{ SgNB_release_rqd->cause_misc = -1; } - node_0_2 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist; - if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist){ - if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 0){ - SgNB_release_rqd->e_RAB_ID0 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[0]->e_rab_id; - SgNB_release_rqd->e_RAB_ID0_exists = 1; - }else{ - SgNB_release_rqd->e_RAB_ID0_exists = 0; - } - if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 1){ - SgNB_release_rqd->e_RAB_ID1 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[1]->e_rab_id; - SgNB_release_rqd->e_RAB_ID1_exists = 1; - }else{ - SgNB_release_rqd->e_RAB_ID1_exists = 0; - } - if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 2){ - SgNB_release_rqd->e_RAB_ID2 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[2]->e_rab_id; - SgNB_release_rqd->e_RAB_ID2_exists = 1; - }else{ - SgNB_release_rqd->e_RAB_ID2_exists = 0; - } - if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 3){ - SgNB_release_rqd->e_RAB_ID3 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[3]->e_rab_id; - SgNB_release_rqd->e_RAB_ID3_exists = 1; - }else{ - SgNB_release_rqd->e_RAB_ID3_exists = 0; - } - if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 4){ - SgNB_release_rqd->e_RAB_ID4 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[4]->e_rab_id; - SgNB_release_rqd->e_RAB_ID4_exists = 1; - }else{ - SgNB_release_rqd->e_RAB_ID4_exists = 0; - } - if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 5){ - SgNB_release_rqd->e_RAB_ID5 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[5]->e_rab_id; - SgNB_release_rqd->e_RAB_ID5_exists = 1; - }else{ - SgNB_release_rqd->e_RAB_ID5_exists = 0; - } - if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 6){ - SgNB_release_rqd->e_RAB_ID6 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[6]->e_rab_id; - SgNB_release_rqd->e_RAB_ID6_exists = 1; - }else{ - SgNB_release_rqd->e_RAB_ID6_exists = 0; - } - if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 7){ - SgNB_release_rqd->e_RAB_ID7 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[7]->e_rab_id; - SgNB_release_rqd->e_RAB_ID7_exists = 1; - }else{ - SgNB_release_rqd->e_RAB_ID7_exists = 0; - } - rts_fta_process_packet(&cur_packet); - } + rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbrelease_required__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbrelease_required__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto rrctransfer.json, path rrc_metrics.json struct _serv_nr_cell *serv_nr_cell = NULL; - Uenibstreamprotobuf__RRCTransfer *node_0_0 = NULL; - Uenibstreamprotobuf__RRCTransferIEs *node_0_1 = NULL; - Uenibstreamprotobuf__UENRMeasurement *node_0_2 = NULL; - Uenibstreamprotobuf__RRCContainer *node_0_3 = NULL; - Uenibstreamprotobuf__ULDCCHMessageType *node_0_4 = NULL; - Uenibstreamprotobuf__MeasurementReport *node_0_5 = NULL; - Uenibstreamprotobuf__MeasurementReportIEs *node_0_6 = NULL; - Uenibstreamprotobuf__MeasResults *node_0_7 = NULL; - Uenibstreamprotobuf__MeasResultServMOList *node_0_8 = NULL; - Uenibstreamprotobuf__MeasResultServMO *node_0_9 = NULL; + StreamingProtobufs__RRCTransfer *node_0_0 = NULL; + StreamingProtobufs__RRCTransferIEs *node_0_1 = NULL; + StreamingProtobufs__UENRMeasurement *node_0_2 = NULL; + StreamingProtobufs__RRCContainer *node_0_3 = NULL; + StreamingProtobufs__ULDCCHMessageType *node_0_4 = NULL; + StreamingProtobufs__MeasurementReport *node_0_5 = NULL; + StreamingProtobufs__MeasurementReportIEs *node_0_6 = NULL; + StreamingProtobufs__MeasResults *node_0_7 = NULL; + StreamingProtobufs__MeasResultServMOList *node_0_8 = NULL; + StreamingProtobufs__MeasResultServMO *node_0_9 = NULL; gs_uint32_t i_0_9; - Uenibstreamprotobuf__MeasResultNR *node_0_10 = NULL; - Uenibstreamprotobuf__MeasResult *node_0_11 = NULL; - Uenibstreamprotobuf__CellResults *node_0_12 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_0_13 = NULL; + StreamingProtobufs__MeasResultNR *node_0_10 = NULL; + StreamingProtobufs__MeasResult *node_0_11 = NULL; + StreamingProtobufs__CellResults *node_0_12 = NULL; + StreamingProtobufs__MeasQuantityResults *node_0_13 = NULL; // ------------------------------------------ // --- Variables for .proto rrctransfer.json, path rrc_metrics.json struct _nr_neighbor *nr_neighbor = NULL; - Uenibstreamprotobuf__RRCTransfer *node_1_0 = NULL; - Uenibstreamprotobuf__RRCTransferIEs *node_1_1 = NULL; - Uenibstreamprotobuf__UENRMeasurement *node_1_2 = NULL; - Uenibstreamprotobuf__RRCContainer *node_1_3 = NULL; - Uenibstreamprotobuf__ULDCCHMessageType *node_1_4 = NULL; - Uenibstreamprotobuf__MeasurementReport *node_1_5 = NULL; - Uenibstreamprotobuf__MeasurementReportIEs *node_1_6 = NULL; - Uenibstreamprotobuf__MeasResults *node_1_7 = NULL; - Uenibstreamprotobuf__MeasResultListNR *node_1_8 = NULL; - Uenibstreamprotobuf__MeasResultNR *node_1_9 = NULL; + StreamingProtobufs__RRCTransfer *node_1_0 = NULL; + StreamingProtobufs__RRCTransferIEs *node_1_1 = NULL; + StreamingProtobufs__UENRMeasurement *node_1_2 = NULL; + StreamingProtobufs__RRCContainer *node_1_3 = NULL; + StreamingProtobufs__ULDCCHMessageType *node_1_4 = NULL; + StreamingProtobufs__MeasurementReport *node_1_5 = NULL; + StreamingProtobufs__MeasurementReportIEs *node_1_6 = NULL; + StreamingProtobufs__MeasResults *node_1_7 = NULL; + StreamingProtobufs__MeasResultListNR *node_1_8 = NULL; + StreamingProtobufs__MeasResultNR *node_1_9 = NULL; gs_uint32_t i_1_9; - Uenibstreamprotobuf__MeasResult *node_1_10 = NULL; - Uenibstreamprotobuf__CellResults *node_1_11 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_1_12 = NULL; + StreamingProtobufs__MeasResult *node_1_10 = NULL; + StreamingProtobufs__CellResults *node_1_11 = NULL; + StreamingProtobufs__MeasQuantityResults *node_1_12 = NULL; // ------------------------------------------ // --- Variables for .proto rrctransfer.json, path rrc_metrics.json struct _serv_cell_beam_csi *serv_cell_beam_csi = NULL; - Uenibstreamprotobuf__RRCTransfer *node_2_0 = NULL; - Uenibstreamprotobuf__RRCTransferIEs *node_2_1 = NULL; - Uenibstreamprotobuf__UENRMeasurement *node_2_2 = NULL; - Uenibstreamprotobuf__RRCContainer *node_2_3 = NULL; - Uenibstreamprotobuf__ULDCCHMessageType *node_2_4 = NULL; - Uenibstreamprotobuf__MeasurementReport *node_2_5 = NULL; - Uenibstreamprotobuf__MeasurementReportIEs *node_2_6 = NULL; - Uenibstreamprotobuf__MeasResults *node_2_7 = NULL; - Uenibstreamprotobuf__MeasResultServMOList *node_2_8 = NULL; - Uenibstreamprotobuf__MeasResultServMO *node_2_9 = NULL; + StreamingProtobufs__RRCTransfer *node_2_0 = NULL; + StreamingProtobufs__RRCTransferIEs *node_2_1 = NULL; + StreamingProtobufs__UENRMeasurement *node_2_2 = NULL; + StreamingProtobufs__RRCContainer *node_2_3 = NULL; + StreamingProtobufs__ULDCCHMessageType *node_2_4 = NULL; + StreamingProtobufs__MeasurementReport *node_2_5 = NULL; + StreamingProtobufs__MeasurementReportIEs *node_2_6 = NULL; + StreamingProtobufs__MeasResults *node_2_7 = NULL; + StreamingProtobufs__MeasResultServMOList *node_2_8 = NULL; + StreamingProtobufs__MeasResultServMO *node_2_9 = NULL; gs_uint32_t i_2_9; - Uenibstreamprotobuf__MeasResultNR *node_2_10 = NULL; - Uenibstreamprotobuf__MeasResult *node_2_11 = NULL; - Uenibstreamprotobuf__RsIndexResults *node_2_12 = NULL; - Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_2_13 = NULL; - Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_2_14 = NULL; + StreamingProtobufs__MeasResultNR *node_2_10 = NULL; + StreamingProtobufs__MeasResult *node_2_11 = NULL; + StreamingProtobufs__RsIndexResults *node_2_12 = NULL; + StreamingProtobufs__ResultsPerCSIRSIndexList *node_2_13 = NULL; + StreamingProtobufs__ResultsPerCSIRSIndex *node_2_14 = NULL; gs_uint32_t i_2_14; - Uenibstreamprotobuf__MeasQuantityResults *node_2_15 = NULL; + StreamingProtobufs__MeasQuantityResults *node_2_15 = NULL; // ------------------------------------------ // --- Variables for .proto rrctransfer.json, path rrc_metrics.json struct _neighbor_beam_csi *neighbor_beam_csi = NULL; - Uenibstreamprotobuf__RRCTransfer *node_3_0 = NULL; - Uenibstreamprotobuf__RRCTransferIEs *node_3_1 = NULL; - Uenibstreamprotobuf__UENRMeasurement *node_3_2 = NULL; - Uenibstreamprotobuf__RRCContainer *node_3_3 = NULL; - Uenibstreamprotobuf__ULDCCHMessageType *node_3_4 = NULL; - Uenibstreamprotobuf__MeasurementReport *node_3_5 = NULL; - Uenibstreamprotobuf__MeasurementReportIEs *node_3_6 = NULL; - Uenibstreamprotobuf__MeasResults *node_3_7 = NULL; - Uenibstreamprotobuf__MeasResultListNR *node_3_8 = NULL; - Uenibstreamprotobuf__MeasResultNR *node_3_9 = NULL; + StreamingProtobufs__RRCTransfer *node_3_0 = NULL; + StreamingProtobufs__RRCTransferIEs *node_3_1 = NULL; + StreamingProtobufs__UENRMeasurement *node_3_2 = NULL; + StreamingProtobufs__RRCContainer *node_3_3 = NULL; + StreamingProtobufs__ULDCCHMessageType *node_3_4 = NULL; + StreamingProtobufs__MeasurementReport *node_3_5 = NULL; + StreamingProtobufs__MeasurementReportIEs *node_3_6 = NULL; + StreamingProtobufs__MeasResults *node_3_7 = NULL; + StreamingProtobufs__MeasResultListNR *node_3_8 = NULL; + StreamingProtobufs__MeasResultNR *node_3_9 = NULL; gs_uint32_t i_3_9; - Uenibstreamprotobuf__MeasResult *node_3_10 = NULL; - Uenibstreamprotobuf__RsIndexResults *node_3_11 = NULL; - Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_3_12 = NULL; - Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_3_13 = NULL; + StreamingProtobufs__MeasResult *node_3_10 = NULL; + StreamingProtobufs__RsIndexResults *node_3_11 = NULL; + StreamingProtobufs__ResultsPerCSIRSIndexList *node_3_12 = NULL; + StreamingProtobufs__ResultsPerCSIRSIndex *node_3_13 = NULL; gs_uint32_t i_3_13; - Uenibstreamprotobuf__MeasQuantityResults *node_3_14 = NULL; + StreamingProtobufs__MeasQuantityResults *node_3_14 = NULL; // ------------------------------------------ // --- Variables for .proto rrctransfer.json, path rrc_metrics.json struct _serv_cell_beam_ssb *serv_cell_beam_ssb = NULL; - Uenibstreamprotobuf__RRCTransfer *node_4_0 = NULL; - Uenibstreamprotobuf__RRCTransferIEs *node_4_1 = NULL; - Uenibstreamprotobuf__UENRMeasurement *node_4_2 = NULL; - Uenibstreamprotobuf__RRCContainer *node_4_3 = NULL; - Uenibstreamprotobuf__ULDCCHMessageType *node_4_4 = NULL; - Uenibstreamprotobuf__MeasurementReport *node_4_5 = NULL; - Uenibstreamprotobuf__MeasurementReportIEs *node_4_6 = NULL; - Uenibstreamprotobuf__MeasResults *node_4_7 = NULL; - Uenibstreamprotobuf__MeasResultServMOList *node_4_8 = NULL; - Uenibstreamprotobuf__MeasResultServMO *node_4_9 = NULL; + StreamingProtobufs__RRCTransfer *node_4_0 = NULL; + StreamingProtobufs__RRCTransferIEs *node_4_1 = NULL; + StreamingProtobufs__UENRMeasurement *node_4_2 = NULL; + StreamingProtobufs__RRCContainer *node_4_3 = NULL; + StreamingProtobufs__ULDCCHMessageType *node_4_4 = NULL; + StreamingProtobufs__MeasurementReport *node_4_5 = NULL; + StreamingProtobufs__MeasurementReportIEs *node_4_6 = NULL; + StreamingProtobufs__MeasResults *node_4_7 = NULL; + StreamingProtobufs__MeasResultServMOList *node_4_8 = NULL; + StreamingProtobufs__MeasResultServMO *node_4_9 = NULL; gs_uint32_t i_4_9; - Uenibstreamprotobuf__MeasResultNR *node_4_10 = NULL; - Uenibstreamprotobuf__MeasResult *node_4_11 = NULL; - Uenibstreamprotobuf__RsIndexResults *node_4_12 = NULL; - Uenibstreamprotobuf__ResultsPerSSBIndexList *node_4_13 = NULL; - Uenibstreamprotobuf__ResultsPerSSBIndex *node_4_14 = NULL; + StreamingProtobufs__MeasResultNR *node_4_10 = NULL; + StreamingProtobufs__MeasResult *node_4_11 = NULL; + StreamingProtobufs__RsIndexResults *node_4_12 = NULL; + StreamingProtobufs__ResultsPerSSBIndexList *node_4_13 = NULL; + StreamingProtobufs__ResultsPerSSBIndex *node_4_14 = NULL; gs_uint32_t i_4_14; - Uenibstreamprotobuf__MeasQuantityResults *node_4_15 = NULL; + StreamingProtobufs__MeasQuantityResults *node_4_15 = NULL; // ------------------------------------------ // --- Variables for .proto rrctransfer.json, path rrc_metrics.json struct _neighbor_beam_ssb *neighbor_beam_ssb = NULL; - Uenibstreamprotobuf__RRCTransfer *node_5_0 = NULL; - Uenibstreamprotobuf__RRCTransferIEs *node_5_1 = NULL; - Uenibstreamprotobuf__UENRMeasurement *node_5_2 = NULL; - Uenibstreamprotobuf__RRCContainer *node_5_3 = NULL; - Uenibstreamprotobuf__ULDCCHMessageType *node_5_4 = NULL; - Uenibstreamprotobuf__MeasurementReport *node_5_5 = NULL; - Uenibstreamprotobuf__MeasurementReportIEs *node_5_6 = NULL; - Uenibstreamprotobuf__MeasResults *node_5_7 = NULL; - Uenibstreamprotobuf__MeasResultListNR *node_5_8 = NULL; - Uenibstreamprotobuf__MeasResultNR *node_5_9 = NULL; + StreamingProtobufs__RRCTransfer *node_5_0 = NULL; + StreamingProtobufs__RRCTransferIEs *node_5_1 = NULL; + StreamingProtobufs__UENRMeasurement *node_5_2 = NULL; + StreamingProtobufs__RRCContainer *node_5_3 = NULL; + StreamingProtobufs__ULDCCHMessageType *node_5_4 = NULL; + StreamingProtobufs__MeasurementReport *node_5_5 = NULL; + StreamingProtobufs__MeasurementReportIEs *node_5_6 = NULL; + StreamingProtobufs__MeasResults *node_5_7 = NULL; + StreamingProtobufs__MeasResultListNR *node_5_8 = NULL; + StreamingProtobufs__MeasResultNR *node_5_9 = NULL; gs_uint32_t i_5_9; - Uenibstreamprotobuf__MeasResult *node_5_10 = NULL; - Uenibstreamprotobuf__RsIndexResults *node_5_11 = NULL; - Uenibstreamprotobuf__ResultsPerSSBIndexList *node_5_12 = NULL; - Uenibstreamprotobuf__ResultsPerSSBIndex *node_5_13 = NULL; + StreamingProtobufs__MeasResult *node_5_10 = NULL; + StreamingProtobufs__RsIndexResults *node_5_11 = NULL; + StreamingProtobufs__ResultsPerSSBIndexList *node_5_12 = NULL; + StreamingProtobufs__ResultsPerSSBIndex *node_5_13 = NULL; gs_uint32_t i_5_13; - Uenibstreamprotobuf__MeasQuantityResults *node_5_14 = NULL; + StreamingProtobufs__MeasQuantityResults *node_5_14 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json @@ -829,14 +856,16 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ serv_nr_cell = (struct _serv_nr_cell *)(cur_packet.record.packed.values); cur_packet.schema = 1; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->rrctransfer; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - serv_nr_cell->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + serv_nr_cell->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) serv_nr_cell->gnb_id = empty_string; else @@ -875,8 +904,8 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ if(node_0_10->measresult){ node_0_12 = node_0_11->cellresults; if(node_0_11->cellresults){ - node_0_13 = node_0_12->resultscsi_rs_cell; - if(node_0_12->resultscsi_rs_cell){ + node_0_13 = node_0_12->resultsssb_cell; + if(node_0_12->resultsssb_cell){ if(node_0_13->rsrq){ serv_nr_cell->rsrq = node_0_13->rsrq->value; serv_nr_cell->rsrq_exists = 1; @@ -915,7 +944,9 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ nr_neighbor = (struct _nr_neighbor *)(cur_packet.record.packed.values); cur_packet.schema = 4; node_1_0 = node_0_0; - nr_neighbor->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + nr_neighbor->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) nr_neighbor->gnb_id = empty_string; else @@ -951,8 +982,8 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ if(node_1_9->measresult){ node_1_11 = node_1_10->cellresults; if(node_1_10->cellresults){ - node_1_12 = node_1_11->resultscsi_rs_cell; - if(node_1_11->resultscsi_rs_cell){ + node_1_12 = node_1_11->resultsssb_cell; + if(node_1_11->resultsssb_cell){ if(node_1_12->rsrq){ nr_neighbor->rsrq = node_1_12->rsrq->value; nr_neighbor->rsrq_exists = 1; @@ -990,7 +1021,9 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ serv_cell_beam_csi = (struct _serv_cell_beam_csi *)(cur_packet.record.packed.values); cur_packet.schema = 2; node_2_0 = node_1_0; - serv_cell_beam_csi->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + serv_cell_beam_csi->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) serv_cell_beam_csi->gnb_id = empty_string; else @@ -1076,7 +1109,9 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ neighbor_beam_csi = (struct _neighbor_beam_csi *)(cur_packet.record.packed.values); cur_packet.schema = 5; node_3_0 = node_2_0; - neighbor_beam_csi->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + neighbor_beam_csi->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) neighbor_beam_csi->gnb_id = empty_string; else @@ -1158,7 +1193,9 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ serv_cell_beam_ssb = (struct _serv_cell_beam_ssb *)(cur_packet.record.packed.values); cur_packet.schema = 3; node_4_0 = node_3_0; - serv_cell_beam_ssb->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + serv_cell_beam_ssb->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) serv_cell_beam_ssb->gnb_id = empty_string; else @@ -1244,7 +1281,9 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ neighbor_beam_ssb = (struct _neighbor_beam_ssb *)(cur_packet.record.packed.values); cur_packet.schema = 6; node_5_0 = node_4_0; - neighbor_beam_ssb->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + neighbor_beam_ssb->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) neighbor_beam_ssb->gnb_id = empty_string; else @@ -1320,18 +1359,19 @@ gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ } } } - uenibstreamprotobuf__rrctransfer__free_unpacked(node_0_0,NULL); + streaming_protobufs__rrctransfer__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_ADDREQREJECT(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request_reject.json, path sgnb_add_req_reject.json struct _sgnb_add_req_reject *sgnb_add_req_reject = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestReject *node_0_0 = NULL; - Uenibstreamprotobuf__Cause *node_0_1 = NULL; + StreamingProtobufs__SgNBAdditionRequestReject *node_0_0 = NULL; + StreamingProtobufs__Cause *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request_reject.json, path sgnb_add_req_reject.json @@ -1339,21 +1379,28 @@ gs_uint32_t process_buffer_ADDREQREJECT(gs_uint8_t * buffer, gs_uint32_t buflen) sgnb_add_req_reject = (struct _sgnb_add_req_reject *)(cur_packet.record.packed.values); cur_packet.schema = 701; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbadditionrequestreject; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_add_req_reject->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_add_req_reject->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_add_req_reject->gnb_id = empty_string; else sgnb_add_req_reject->gnb_id = hdr->header->gnbid->value; sgnb_add_req_reject->id_MeNB_UE_X2AP_ID = node_0_0->id_menb_ue_x2ap_id; - sgnb_add_req_reject->id_SgNB_UE_X2AP_ID = node_0_0->id_sgnb_ue_x2ap_id; + if(node_0_0->id_sgnb_ue_x2ap_id){ + sgnb_add_req_reject->id_SgNB_UE_X2AP_ID = node_0_0->id_sgnb_ue_x2ap_id->value; + sgnb_add_req_reject->id_SgNB_UE_X2AP_ID_exists = 1; + }else{ + sgnb_add_req_reject->id_SgNB_UE_X2AP_ID_exists = 0; + } node_0_1 = node_0_0->id_cause; if(node_0_0->id_cause){ if(node_0_1->radionetwork){ @@ -1378,94 +1425,108 @@ gs_uint32_t process_buffer_ADDREQREJECT(gs_uint8_t * buffer, gs_uint32_t buflen) } rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbaddition_request_reject__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbaddition_request_reject__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json struct _eRABs_notadmitted_for_ue *eRABs_notadmitted_for_ue = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_0_0 = NULL; - Uenibstreamprotobuf__ERABList *node_0_1 = NULL; - Uenibstreamprotobuf__ERABItemIEs *node_0_2 = NULL; + StreamingProtobufs__SgNBAdditionRequestAcknowledge *node_0_0 = NULL; + StreamingProtobufs__ERABList *node_0_1 = NULL; + StreamingProtobufs__ERABItemIEs *node_0_2 = NULL; gs_uint32_t i_0_2; - Uenibstreamprotobuf__ERABItem *node_0_3 = NULL; + StreamingProtobufs__ERABItem *node_0_3 = NULL; +// ------------------------------------------ +// --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json + struct _add_req_ack_cellid *add_req_ack_cellid = NULL; + StreamingProtobufs__SgNBAdditionRequestAcknowledge *node_1_0 = NULL; + StreamingProtobufs__CGConfig *node_1_1 = NULL; + StreamingProtobufs__CGConfigCriticalExtensionsChoice1 *node_1_2 = NULL; + StreamingProtobufs__CGConfigIEs *node_1_3 = NULL; + StreamingProtobufs__RRCReconfiguration *node_1_4 = NULL; + StreamingProtobufs__RRCReconfigurationIEs *node_1_5 = NULL; + StreamingProtobufs__CellGroupConfig *node_1_6 = NULL; + StreamingProtobufs__SpCellConfig *node_1_7 = NULL; + StreamingProtobufs__ReconfigurationWithSync *node_1_8 = NULL; + StreamingProtobufs__ServingCellConfigCommon *node_1_9 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json struct _eRABs_acked_for_admit_for_ue *eRABs_acked_for_admit_for_ue = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_1_0 = NULL; - Uenibstreamprotobuf__ERABsAdmittedToBeAddedSgNBAddReqAckList *node_1_1 = NULL; - Uenibstreamprotobuf__ERABsAdmittedToBeAddedSgNBAddReqAckItem *node_1_2 = NULL; - gs_uint32_t i_1_2; + StreamingProtobufs__SgNBAdditionRequestAcknowledge *node_2_0 = NULL; + StreamingProtobufs__ERABsAdmittedToBeAddedSgNBAddReqAckList *node_2_1 = NULL; + StreamingProtobufs__ERABsAdmittedToBeAddedSgNBAddReqAckItem *node_2_2 = NULL; + gs_uint32_t i_2_2; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json struct _SgNB_ack_for_ue_NRfreqs *SgNB_ack_for_ue_NRfreqs = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_2_0 = NULL; - Uenibstreamprotobuf__CGConfig *node_2_1 = NULL; - Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_2_2 = NULL; - Uenibstreamprotobuf__CGConfigIEs *node_2_3 = NULL; + StreamingProtobufs__SgNBAdditionRequestAcknowledge *node_3_0 = NULL; + StreamingProtobufs__CGConfig *node_3_1 = NULL; + StreamingProtobufs__CGConfigCriticalExtensionsChoice1 *node_3_2 = NULL; + StreamingProtobufs__CGConfigIEs *node_3_3 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json struct _SgNB_ack_for_add_mod_for_ue *SgNB_ack_for_add_mod_for_ue = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_3_0 = NULL; - Uenibstreamprotobuf__CGConfig *node_3_1 = NULL; - Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_3_2 = NULL; - Uenibstreamprotobuf__CGConfigIEs *node_3_3 = NULL; - Uenibstreamprotobuf__RadioBearerConfig *node_3_4 = NULL; - Uenibstreamprotobuf__DRBToAddModList *node_3_5 = NULL; - Uenibstreamprotobuf__DRBToAddMod *node_3_6 = NULL; - gs_uint32_t i_3_6; + StreamingProtobufs__SgNBAdditionRequestAcknowledge *node_4_0 = NULL; + StreamingProtobufs__CGConfig *node_4_1 = NULL; + StreamingProtobufs__CGConfigCriticalExtensionsChoice1 *node_4_2 = NULL; + StreamingProtobufs__CGConfigIEs *node_4_3 = NULL; + StreamingProtobufs__RadioBearerConfig *node_4_4 = NULL; + StreamingProtobufs__DRBToAddModList *node_4_5 = NULL; + StreamingProtobufs__DRBToAddMod *node_4_6 = NULL; + gs_uint32_t i_4_6; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json struct _SgNB_ack_for_ue_measurements *SgNB_ack_for_ue_measurements = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_4_0 = NULL; - Uenibstreamprotobuf__CGConfig *node_4_1 = NULL; - Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_4_2 = NULL; - Uenibstreamprotobuf__CGConfigIEs *node_4_3 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_4_4 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_4_5 = NULL; - gs_uint32_t i_4_5; - Uenibstreamprotobuf__MeasResultNR *node_4_6 = NULL; - Uenibstreamprotobuf__MeasResult *node_4_7 = NULL; - Uenibstreamprotobuf__CellResults *node_4_8 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_4_9 = NULL; + StreamingProtobufs__SgNBAdditionRequestAcknowledge *node_5_0 = NULL; + StreamingProtobufs__CGConfig *node_5_1 = NULL; + StreamingProtobufs__CGConfigCriticalExtensionsChoice1 *node_5_2 = NULL; + StreamingProtobufs__CGConfigIEs *node_5_3 = NULL; + StreamingProtobufs__MeasResultList2NR *node_5_4 = NULL; + StreamingProtobufs__MeasResult2NR *node_5_5 = NULL; + gs_uint32_t i_5_5; + StreamingProtobufs__MeasResultNR *node_5_6 = NULL; + StreamingProtobufs__MeasResult *node_5_7 = NULL; + StreamingProtobufs__CellResults *node_5_8 = NULL; + StreamingProtobufs__MeasQuantityResults *node_5_9 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json struct _SgNB_ack_for_ue_beam_csi *SgNB_ack_for_ue_beam_csi = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_5_0 = NULL; - Uenibstreamprotobuf__CGConfig *node_5_1 = NULL; - Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_5_2 = NULL; - Uenibstreamprotobuf__CGConfigIEs *node_5_3 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_5_4 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_5_5 = NULL; - gs_uint32_t i_5_5; - Uenibstreamprotobuf__MeasResultNR *node_5_6 = NULL; - Uenibstreamprotobuf__MeasResult *node_5_7 = NULL; - Uenibstreamprotobuf__RsIndexResults *node_5_8 = NULL; - Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_5_9 = NULL; - Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_5_10 = NULL; - gs_uint32_t i_5_10; - Uenibstreamprotobuf__MeasQuantityResults *node_5_11 = NULL; + StreamingProtobufs__SgNBAdditionRequestAcknowledge *node_6_0 = NULL; + StreamingProtobufs__CGConfig *node_6_1 = NULL; + StreamingProtobufs__CGConfigCriticalExtensionsChoice1 *node_6_2 = NULL; + StreamingProtobufs__CGConfigIEs *node_6_3 = NULL; + StreamingProtobufs__MeasResultList2NR *node_6_4 = NULL; + StreamingProtobufs__MeasResult2NR *node_6_5 = NULL; + gs_uint32_t i_6_5; + StreamingProtobufs__MeasResultNR *node_6_6 = NULL; + StreamingProtobufs__MeasResult *node_6_7 = NULL; + StreamingProtobufs__RsIndexResults *node_6_8 = NULL; + StreamingProtobufs__ResultsPerCSIRSIndexList *node_6_9 = NULL; + StreamingProtobufs__ResultsPerCSIRSIndex *node_6_10 = NULL; + gs_uint32_t i_6_10; + StreamingProtobufs__MeasQuantityResults *node_6_11 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json struct _SgNB_ack_for_ue_beam_ssb *SgNB_ack_for_ue_beam_ssb = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_6_0 = NULL; - Uenibstreamprotobuf__CGConfig *node_6_1 = NULL; - Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_6_2 = NULL; - Uenibstreamprotobuf__CGConfigIEs *node_6_3 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_6_4 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_6_5 = NULL; - gs_uint32_t i_6_5; - Uenibstreamprotobuf__MeasResultNR *node_6_6 = NULL; - Uenibstreamprotobuf__MeasResult *node_6_7 = NULL; - Uenibstreamprotobuf__RsIndexResults *node_6_8 = NULL; - Uenibstreamprotobuf__ResultsPerSSBIndexList *node_6_9 = NULL; - Uenibstreamprotobuf__ResultsPerSSBIndex *node_6_10 = NULL; - gs_uint32_t i_6_10; - Uenibstreamprotobuf__MeasQuantityResults *node_6_11 = NULL; + StreamingProtobufs__SgNBAdditionRequestAcknowledge *node_7_0 = NULL; + StreamingProtobufs__CGConfig *node_7_1 = NULL; + StreamingProtobufs__CGConfigCriticalExtensionsChoice1 *node_7_2 = NULL; + StreamingProtobufs__CGConfigIEs *node_7_3 = NULL; + StreamingProtobufs__MeasResultList2NR *node_7_4 = NULL; + StreamingProtobufs__MeasResult2NR *node_7_5 = NULL; + gs_uint32_t i_7_5; + StreamingProtobufs__MeasResultNR *node_7_6 = NULL; + StreamingProtobufs__MeasResult *node_7_7 = NULL; + StreamingProtobufs__RsIndexResults *node_7_8 = NULL; + StreamingProtobufs__ResultsPerSSBIndexList *node_7_9 = NULL; + StreamingProtobufs__ResultsPerSSBIndex *node_7_10 = NULL; + gs_uint32_t i_7_10; + StreamingProtobufs__MeasQuantityResults *node_7_11 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json @@ -1473,14 +1534,16 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_ eRABs_notadmitted_for_ue = (struct _eRABs_notadmitted_for_ue *)(cur_packet.record.packed.values); cur_packet.schema = 501; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbadditionrequestacknowledge; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - eRABs_notadmitted_for_ue->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + eRABs_notadmitted_for_ue->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) eRABs_notadmitted_for_ue->gnb_id = empty_string; else @@ -1525,61 +1588,123 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_ } } // -------------------------------------------------- +// --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json + + add_req_ack_cellid = (struct _add_req_ack_cellid *)(cur_packet.record.packed.values); + cur_packet.schema = 10000; + node_1_0 = node_0_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + add_req_ack_cellid->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); + if(hdr->header->gnbid==NULL) + add_req_ack_cellid->gnb_id = empty_string; + else + add_req_ack_cellid->gnb_id = hdr->header->gnbid->value; + + add_req_ack_cellid->id_MeNB_UE_X2AP_ID = node_1_0->id_menb_ue_x2ap_id; + add_req_ack_cellid->id_SgNB_UE_X2AP_ID = node_1_0->id_sgnb_ue_x2ap_id; + if(node_1_0->id_menb_ue_x2ap_id_extension){ + add_req_ack_cellid->id_MeNB_UE_X2AP_ID_Extension = node_1_0->id_menb_ue_x2ap_id_extension->value; + }else{ + add_req_ack_cellid->id_MeNB_UE_X2AP_ID_Extension = 0; + } + node_1_1 = node_1_0->id_sgnbtomenbcontainer; + if(node_1_0->id_sgnbtomenbcontainer){ + node_1_2 = node_1_1->criticalextensionschoice1; + if(node_1_1->criticalextensionschoice1){ + node_1_3 = node_1_2->protocolies; + if(node_1_2->protocolies){ + node_1_4 = node_1_3->scg_cellgroupconfig; + if(node_1_3->scg_cellgroupconfig){ + node_1_5 = node_1_4->rrcreconfiguration; + if(node_1_4->rrcreconfiguration){ + node_1_6 = node_1_5->secondarycellgroup; + if(node_1_5->secondarycellgroup){ + node_1_7 = node_1_6->spcellconfig; + if(node_1_6->spcellconfig){ + node_1_8 = node_1_7->reconfigurationwithsync; + if(node_1_7->reconfigurationwithsync){ + node_1_9 = node_1_8->spcellconfigcommon; + if(node_1_8->spcellconfigcommon){ + if(node_1_9->physcellid){ + add_req_ack_cellid->physCellId = node_1_9->physcellid->value; + add_req_ack_cellid->physCellId_exists = 1; + }else{ + add_req_ack_cellid->physCellId_exists = 0; + } + rts_fta_process_packet(&cur_packet); + } + } + } + } + } + } + } + } + } +// -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json eRABs_acked_for_admit_for_ue = (struct _eRABs_acked_for_admit_for_ue *)(cur_packet.record.packed.values); cur_packet.schema = 502; - node_1_0 = node_0_0; - eRABs_acked_for_admit_for_ue->timestamp_ms = timestamp; + node_2_0 = node_1_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + eRABs_acked_for_admit_for_ue->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) eRABs_acked_for_admit_for_ue->gnb_id = empty_string; else eRABs_acked_for_admit_for_ue->gnb_id = hdr->header->gnbid->value; - eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID = node_1_0->id_menb_ue_x2ap_id; - eRABs_acked_for_admit_for_ue->id_SgNB_UE_X2AP_ID = node_1_0->id_sgnb_ue_x2ap_id; - if(node_1_0->id_menb_ue_x2ap_id_extension){ - eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_1_0->id_menb_ue_x2ap_id_extension->value; + eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID = node_2_0->id_menb_ue_x2ap_id; + eRABs_acked_for_admit_for_ue->id_SgNB_UE_X2AP_ID = node_2_0->id_sgnb_ue_x2ap_id; + if(node_2_0->id_menb_ue_x2ap_id_extension){ + eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_2_0->id_menb_ue_x2ap_id_extension->value; }else{ eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0; } - node_1_1 = node_1_0->id_e_rabs_admitted_tobeadded_sgnbaddreqacklist; - if(node_1_0->id_e_rabs_admitted_tobeadded_sgnbaddreqacklist){ - for(i_1_2=0;i_1_2n_id_e_rabs_admitted_tobeadded_sgnbaddreqack_item; i_1_2++){ - node_1_2 = node_1_1->id_e_rabs_admitted_tobeadded_sgnbaddreqack_item[i_1_2]; - if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint){ - eRABs_acked_for_admit_for_ue->gTP_TEID_dl = node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint->gtp_teid; + node_2_1 = node_2_0->id_e_rabs_admitted_tobeadded_sgnbaddreqacklist; + if(node_2_0->id_e_rabs_admitted_tobeadded_sgnbaddreqacklist){ + for(i_2_2=0;i_2_2n_id_e_rabs_admitted_tobeadded_sgnbaddreqack_item; i_2_2++){ + node_2_2 = node_2_1->id_e_rabs_admitted_tobeadded_sgnbaddreqack_item[i_2_2]; + if(node_2_2->sgnbpdcppresent && node_2_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters && node_2_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters->allocationandretentionpriority){ + eRABs_acked_for_admit_for_ue->ARP = node_2_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters->allocationandretentionpriority->prioritylevel; + }else{ + eRABs_acked_for_admit_for_ue->ARP = 0; + } + if(node_2_2->sgnbpdcppresent && node_2_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint){ + eRABs_acked_for_admit_for_ue->gTP_TEID_dl = node_2_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint->gtp_teid; eRABs_acked_for_admit_for_ue->gTP_TEID_dl_exists = 1; }else{ eRABs_acked_for_admit_for_ue->gTP_TEID_dl_exists = 0; } - if(node_1_2->en_dc_resourceconfiguration){ - eRABs_acked_for_admit_for_ue->mCGresources = node_1_2->en_dc_resourceconfiguration->mcgresources; + if(node_2_2->en_dc_resourceconfiguration){ + eRABs_acked_for_admit_for_ue->mCGresources = node_2_2->en_dc_resourceconfiguration->mcgresources; eRABs_acked_for_admit_for_ue->mCGresources_exists = 1; }else{ eRABs_acked_for_admit_for_ue->mCGresources_exists = 0; } - if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint){ - eRABs_acked_for_admit_for_ue->transportLayerAddress_dl = node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint->transportlayeraddress; + if(node_2_2->sgnbpdcppresent && node_2_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint){ + eRABs_acked_for_admit_for_ue->transportLayerAddress_dl = node_2_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint->transportlayeraddress; eRABs_acked_for_admit_for_ue->transportLayerAddress_dl_exists = 1; }else{ eRABs_acked_for_admit_for_ue->transportLayerAddress_dl_exists = 0; } - if(node_1_2->en_dc_resourceconfiguration){ - eRABs_acked_for_admit_for_ue->pDCPatSgNB = node_1_2->en_dc_resourceconfiguration->pdcpatsgnb; + if(node_2_2->en_dc_resourceconfiguration){ + eRABs_acked_for_admit_for_ue->pDCPatSgNB = node_2_2->en_dc_resourceconfiguration->pdcpatsgnb; eRABs_acked_for_admit_for_ue->pDCPatSgNB_exists = 1; }else{ eRABs_acked_for_admit_for_ue->pDCPatSgNB_exists = 0; } - if(node_1_2->en_dc_resourceconfiguration){ - eRABs_acked_for_admit_for_ue->sCGresources = node_1_2->en_dc_resourceconfiguration->scgresources; + if(node_2_2->en_dc_resourceconfiguration){ + eRABs_acked_for_admit_for_ue->sCGresources = node_2_2->en_dc_resourceconfiguration->scgresources; eRABs_acked_for_admit_for_ue->sCGresources_exists = 1; }else{ eRABs_acked_for_admit_for_ue->sCGresources_exists = 0; } - eRABs_acked_for_admit_for_ue->e_RAB_ID = node_1_2->e_rab_id; - if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters){ - eRABs_acked_for_admit_for_ue->qCI = node_1_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters->qci; + eRABs_acked_for_admit_for_ue->e_RAB_ID = node_2_2->e_rab_id; + if(node_2_2->sgnbpdcppresent && node_2_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters){ + eRABs_acked_for_admit_for_ue->qCI = node_2_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters->qci; }else{ eRABs_acked_for_admit_for_ue->qCI = 0; } @@ -1591,128 +1716,124 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_ SgNB_ack_for_ue_NRfreqs = (struct _SgNB_ack_for_ue_NRfreqs *)(cur_packet.record.packed.values); cur_packet.schema = 503; - node_2_0 = node_1_0; - SgNB_ack_for_ue_NRfreqs->timestamp_ms = timestamp; + node_3_0 = node_2_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + SgNB_ack_for_ue_NRfreqs->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) SgNB_ack_for_ue_NRfreqs->gnb_id = empty_string; else SgNB_ack_for_ue_NRfreqs->gnb_id = hdr->header->gnbid->value; - SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID = node_2_0->id_menb_ue_x2ap_id; - SgNB_ack_for_ue_NRfreqs->id_SgNB_UE_X2AP_ID = node_2_0->id_sgnb_ue_x2ap_id; - if(node_2_0->id_menb_ue_x2ap_id_extension){ - SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID_Extension = node_2_0->id_menb_ue_x2ap_id_extension->value; + SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID = node_3_0->id_menb_ue_x2ap_id; + SgNB_ack_for_ue_NRfreqs->id_SgNB_UE_X2AP_ID = node_3_0->id_sgnb_ue_x2ap_id; + if(node_3_0->id_menb_ue_x2ap_id_extension){ + SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID_Extension = node_3_0->id_menb_ue_x2ap_id_extension->value; }else{ SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID_Extension = 0; } - node_2_1 = node_2_0->id_sgnbtomenbcontainer; - if(node_2_0->id_sgnbtomenbcontainer){ - node_2_2 = node_2_1->criticalextensionschoice1; - if(node_2_1->criticalextensionschoice1){ - node_2_3 = node_2_2->protocolies; - if(node_2_2->protocolies){ - if(node_2_3->scg_cellgroupconfig){ - SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig = node_2_3->scg_cellgroupconfig->value; - SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig_exists = 1; + node_3_1 = node_3_0->id_sgnbtomenbcontainer; + if(node_3_0->id_sgnbtomenbcontainer){ + node_3_2 = node_3_1->criticalextensionschoice1; + if(node_3_1->criticalextensionschoice1){ + node_3_3 = node_3_2->protocolies; + if(node_3_2->protocolies){ + if(node_3_3->measconfigsn && node_3_3->measconfigsn->measuredfrequenciessn && node_3_3->measconfigsn->n_measuredfrequenciessn > 0 && node_3_3->measconfigsn->measuredfrequenciessn[0]->measuredfrequency){ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0 = node_3_3->measconfigsn->measuredfrequenciessn[0]->measuredfrequency->value; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0_exists = 1; + }else{ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0_exists = 0; + } + if(node_3_3->measconfigsn && node_3_3->measconfigsn->measuredfrequenciessn && node_3_3->measconfigsn->n_measuredfrequenciessn > 1 && node_3_3->measconfigsn->measuredfrequenciessn[1]->measuredfrequency){ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1 = node_3_3->measconfigsn->measuredfrequenciessn[1]->measuredfrequency->value; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1_exists = 1; + }else{ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1_exists = 0; + } + if(node_3_3->measconfigsn && node_3_3->measconfigsn->measuredfrequenciessn && node_3_3->measconfigsn->n_measuredfrequenciessn > 2 && node_3_3->measconfigsn->measuredfrequenciessn[2]->measuredfrequency){ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2 = node_3_3->measconfigsn->measuredfrequenciessn[2]->measuredfrequency->value; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2_exists = 1; + }else{ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2_exists = 0; + } + if(node_3_3->measconfigsn && node_3_3->measconfigsn->measuredfrequenciessn && node_3_3->measconfigsn->n_measuredfrequenciessn > 3 && node_3_3->measconfigsn->measuredfrequenciessn[3]->measuredfrequency){ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3 = node_3_3->measconfigsn->measuredfrequenciessn[3]->measuredfrequency->value; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3_exists = 1; + }else{ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3_exists = 0; + } + if(node_3_3->measconfigsn && node_3_3->measconfigsn->measuredfrequenciessn && node_3_3->measconfigsn->n_measuredfrequenciessn > 4 && node_3_3->measconfigsn->measuredfrequenciessn[4]->measuredfrequency){ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4 = node_3_3->measconfigsn->measuredfrequenciessn[4]->measuredfrequency->value; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4_exists = 1; + }else{ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4_exists = 0; + } + if(node_3_3->measconfigsn && node_3_3->measconfigsn->measuredfrequenciessn && node_3_3->measconfigsn->n_measuredfrequenciessn > 5 && node_3_3->measconfigsn->measuredfrequenciessn[5]->measuredfrequency){ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5 = node_3_3->measconfigsn->measuredfrequenciessn[5]->measuredfrequency->value; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5_exists = 1; + }else{ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5_exists = 0; + } + if(node_3_3->measconfigsn && node_3_3->measconfigsn->measuredfrequenciessn && node_3_3->measconfigsn->n_measuredfrequenciessn > 6 && node_3_3->measconfigsn->measuredfrequenciessn[6]->measuredfrequency){ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6 = node_3_3->measconfigsn->measuredfrequenciessn[6]->measuredfrequency->value; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6_exists = 1; + }else{ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6_exists = 0; + } + if(node_3_3->measconfigsn && node_3_3->measconfigsn->measuredfrequenciessn && node_3_3->measconfigsn->n_measuredfrequenciessn > 7 && node_3_3->measconfigsn->measuredfrequenciessn[7]->measuredfrequency){ + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7 = node_3_3->measconfigsn->measuredfrequenciessn[7]->measuredfrequency->value; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7_exists = 1; }else{ - SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig_exists = 0; + SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7_exists = 0; } - if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 0){ - SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0 = node_2_3->candidateservingfreqlistnr->items[0]; + if(node_3_3->candidateservingfreqlistnr && node_3_3->candidateservingfreqlistnr->n_items > 0){ + SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0 = node_3_3->candidateservingfreqlistnr->items[0]; SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0_exists = 1; }else{ SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0_exists = 0; } - if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 1){ - SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1 = node_2_3->candidateservingfreqlistnr->items[1]; + if(node_3_3->candidateservingfreqlistnr && node_3_3->candidateservingfreqlistnr->n_items > 1){ + SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1 = node_3_3->candidateservingfreqlistnr->items[1]; SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1_exists = 1; }else{ SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1_exists = 0; } - if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 2){ - SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2 = node_2_3->candidateservingfreqlistnr->items[2]; + if(node_3_3->candidateservingfreqlistnr && node_3_3->candidateservingfreqlistnr->n_items > 2){ + SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2 = node_3_3->candidateservingfreqlistnr->items[2]; SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2_exists = 1; }else{ SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2_exists = 0; } - if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 3){ - SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3 = node_2_3->candidateservingfreqlistnr->items[3]; + if(node_3_3->candidateservingfreqlistnr && node_3_3->candidateservingfreqlistnr->n_items > 3){ + SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3 = node_3_3->candidateservingfreqlistnr->items[3]; SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3_exists = 1; }else{ SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3_exists = 0; } - if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 4){ - SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4 = node_2_3->candidateservingfreqlistnr->items[4]; + if(node_3_3->candidateservingfreqlistnr && node_3_3->candidateservingfreqlistnr->n_items > 4){ + SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4 = node_3_3->candidateservingfreqlistnr->items[4]; SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4_exists = 1; }else{ SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4_exists = 0; } - if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 5){ - SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5 = node_2_3->candidateservingfreqlistnr->items[5]; + if(node_3_3->candidateservingfreqlistnr && node_3_3->candidateservingfreqlistnr->n_items > 5){ + SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5 = node_3_3->candidateservingfreqlistnr->items[5]; SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5_exists = 1; }else{ SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5_exists = 0; } - if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 6){ - SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6 = node_2_3->candidateservingfreqlistnr->items[6]; + if(node_3_3->candidateservingfreqlistnr && node_3_3->candidateservingfreqlistnr->n_items > 6){ + SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6 = node_3_3->candidateservingfreqlistnr->items[6]; SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6_exists = 1; }else{ SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6_exists = 0; } - if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 7){ - SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7 = node_2_3->candidateservingfreqlistnr->items[7]; + if(node_3_3->candidateservingfreqlistnr && node_3_3->candidateservingfreqlistnr->n_items > 7){ + SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7 = node_3_3->candidateservingfreqlistnr->items[7]; SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7_exists = 1; }else{ SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7_exists = 0; } - if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 0 && node_2_3->measconfigsn->measuredfrequenciessn[0]->measuredfrequency){ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0 = node_2_3->measconfigsn->measuredfrequenciessn[0]->measuredfrequency->value; - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0_exists = 1; - }else{ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0_exists = 0; - } - if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 1 && node_2_3->measconfigsn->measuredfrequenciessn[1]->measuredfrequency){ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1 = node_2_3->measconfigsn->measuredfrequenciessn[1]->measuredfrequency->value; - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1_exists = 1; - }else{ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1_exists = 0; - } - if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 2 && node_2_3->measconfigsn->measuredfrequenciessn[2]->measuredfrequency){ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2 = node_2_3->measconfigsn->measuredfrequenciessn[2]->measuredfrequency->value; - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2_exists = 1; - }else{ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2_exists = 0; - } - if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 3 && node_2_3->measconfigsn->measuredfrequenciessn[3]->measuredfrequency){ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3 = node_2_3->measconfigsn->measuredfrequenciessn[3]->measuredfrequency->value; - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3_exists = 1; - }else{ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3_exists = 0; - } - if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 4 && node_2_3->measconfigsn->measuredfrequenciessn[4]->measuredfrequency){ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4 = node_2_3->measconfigsn->measuredfrequenciessn[4]->measuredfrequency->value; - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4_exists = 1; - }else{ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4_exists = 0; - } - if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 5 && node_2_3->measconfigsn->measuredfrequenciessn[5]->measuredfrequency){ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5 = node_2_3->measconfigsn->measuredfrequenciessn[5]->measuredfrequency->value; - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5_exists = 1; - }else{ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5_exists = 0; - } - if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 6 && node_2_3->measconfigsn->measuredfrequenciessn[6]->measuredfrequency){ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6 = node_2_3->measconfigsn->measuredfrequenciessn[6]->measuredfrequency->value; - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6_exists = 1; - }else{ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6_exists = 0; - } - if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 7 && node_2_3->measconfigsn->measuredfrequenciessn[7]->measuredfrequency){ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7 = node_2_3->measconfigsn->measuredfrequenciessn[7]->measuredfrequency->value; - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7_exists = 1; - }else{ - SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7_exists = 0; - } rts_fta_process_packet(&cur_packet); } } @@ -1722,70 +1843,72 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_ SgNB_ack_for_add_mod_for_ue = (struct _SgNB_ack_for_add_mod_for_ue *)(cur_packet.record.packed.values); cur_packet.schema = 504; - node_3_0 = node_2_0; - SgNB_ack_for_add_mod_for_ue->timestamp_ms = timestamp; + node_4_0 = node_3_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + SgNB_ack_for_add_mod_for_ue->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) SgNB_ack_for_add_mod_for_ue->gnb_id = empty_string; else SgNB_ack_for_add_mod_for_ue->gnb_id = hdr->header->gnbid->value; - SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID = node_3_0->id_menb_ue_x2ap_id; - SgNB_ack_for_add_mod_for_ue->id_SgNB_UE_X2AP_ID = node_3_0->id_sgnb_ue_x2ap_id; - if(node_3_0->id_menb_ue_x2ap_id_extension){ - SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_3_0->id_menb_ue_x2ap_id_extension->value; + SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID = node_4_0->id_menb_ue_x2ap_id; + SgNB_ack_for_add_mod_for_ue->id_SgNB_UE_X2AP_ID = node_4_0->id_sgnb_ue_x2ap_id; + if(node_4_0->id_menb_ue_x2ap_id_extension){ + SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_4_0->id_menb_ue_x2ap_id_extension->value; }else{ SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0; } - node_3_1 = node_3_0->id_sgnbtomenbcontainer; - if(node_3_0->id_sgnbtomenbcontainer){ - node_3_2 = node_3_1->criticalextensionschoice1; - if(node_3_1->criticalextensionschoice1){ - node_3_3 = node_3_2->protocolies; - if(node_3_2->protocolies){ - node_3_4 = node_3_3->scg_rb_config; - if(node_3_3->scg_rb_config){ - if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 0){ - SgNB_ack_for_add_mod_for_ue->toRelease0 = node_3_4->drb_toreleaselist->items[0]; + node_4_1 = node_4_0->id_sgnbtomenbcontainer; + if(node_4_0->id_sgnbtomenbcontainer){ + node_4_2 = node_4_1->criticalextensionschoice1; + if(node_4_1->criticalextensionschoice1){ + node_4_3 = node_4_2->protocolies; + if(node_4_2->protocolies){ + node_4_4 = node_4_3->scg_rb_config; + if(node_4_3->scg_rb_config){ + if(node_4_4->drb_toreleaselist && node_4_4->drb_toreleaselist->n_items > 0){ + SgNB_ack_for_add_mod_for_ue->toRelease0 = node_4_4->drb_toreleaselist->items[0]; SgNB_ack_for_add_mod_for_ue->toRelease0_exists = 1; }else{ SgNB_ack_for_add_mod_for_ue->toRelease0_exists = 0; } - if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 1){ - SgNB_ack_for_add_mod_for_ue->toRelease1 = node_3_4->drb_toreleaselist->items[1]; + if(node_4_4->drb_toreleaselist && node_4_4->drb_toreleaselist->n_items > 1){ + SgNB_ack_for_add_mod_for_ue->toRelease1 = node_4_4->drb_toreleaselist->items[1]; SgNB_ack_for_add_mod_for_ue->toRelease1_exists = 1; }else{ SgNB_ack_for_add_mod_for_ue->toRelease1_exists = 0; } - if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 2){ - SgNB_ack_for_add_mod_for_ue->toRelease2 = node_3_4->drb_toreleaselist->items[2]; + if(node_4_4->drb_toreleaselist && node_4_4->drb_toreleaselist->n_items > 2){ + SgNB_ack_for_add_mod_for_ue->toRelease2 = node_4_4->drb_toreleaselist->items[2]; SgNB_ack_for_add_mod_for_ue->toRelease2_exists = 1; }else{ SgNB_ack_for_add_mod_for_ue->toRelease2_exists = 0; } - if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 3){ - SgNB_ack_for_add_mod_for_ue->toRelease3 = node_3_4->drb_toreleaselist->items[3]; + if(node_4_4->drb_toreleaselist && node_4_4->drb_toreleaselist->n_items > 3){ + SgNB_ack_for_add_mod_for_ue->toRelease3 = node_4_4->drb_toreleaselist->items[3]; SgNB_ack_for_add_mod_for_ue->toRelease3_exists = 1; }else{ SgNB_ack_for_add_mod_for_ue->toRelease3_exists = 0; } - node_3_5 = node_3_4->drb_toaddmodlist; - if(node_3_4->drb_toaddmodlist){ - for(i_3_6=0;i_3_6n_items; i_3_6++){ - node_3_6 = node_3_5->items[i_3_6]; - if(node_3_6->recoverpdcp){ - SgNB_ack_for_add_mod_for_ue->recoverPDCP = node_3_6->recoverpdcp->value; + node_4_5 = node_4_4->drb_toaddmodlist; + if(node_4_4->drb_toaddmodlist){ + for(i_4_6=0;i_4_6n_items; i_4_6++){ + node_4_6 = node_4_5->items[i_4_6]; + if(node_4_6->recoverpdcp){ + SgNB_ack_for_add_mod_for_ue->recoverPDCP = node_4_6->recoverpdcp->value; SgNB_ack_for_add_mod_for_ue->recoverPDCP_exists = 1; }else{ SgNB_ack_for_add_mod_for_ue->recoverPDCP_exists = 0; } - if(node_3_6->reestablishpdcp){ - SgNB_ack_for_add_mod_for_ue->reestablishPDCP = node_3_6->reestablishpdcp->value; + if(node_4_6->reestablishpdcp){ + SgNB_ack_for_add_mod_for_ue->reestablishPDCP = node_4_6->reestablishpdcp->value; SgNB_ack_for_add_mod_for_ue->reestablishPDCP_exists = 1; }else{ SgNB_ack_for_add_mod_for_ue->reestablishPDCP_exists = 0; } - SgNB_ack_for_add_mod_for_ue->drb_Identity = node_3_6->drb_identity; - SgNB_ack_for_add_mod_for_ue->eps_BearerIdentity = node_3_6->eps_beareridentity; + SgNB_ack_for_add_mod_for_ue->drb_Identity = node_4_6->drb_identity; + SgNB_ack_for_add_mod_for_ue->eps_BearerIdentity = node_4_6->eps_beareridentity; rts_fta_process_packet(&cur_packet); } } @@ -1798,70 +1921,72 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_ SgNB_ack_for_ue_measurements = (struct _SgNB_ack_for_ue_measurements *)(cur_packet.record.packed.values); cur_packet.schema = 505; - node_4_0 = node_3_0; - SgNB_ack_for_ue_measurements->timestamp_ms = timestamp; + node_5_0 = node_4_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + SgNB_ack_for_ue_measurements->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) SgNB_ack_for_ue_measurements->gnb_id = empty_string; else SgNB_ack_for_ue_measurements->gnb_id = hdr->header->gnbid->value; - SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID = node_4_0->id_menb_ue_x2ap_id; - SgNB_ack_for_ue_measurements->id_SgNB_UE_X2AP_ID = node_4_0->id_sgnb_ue_x2ap_id; - if(node_4_0->id_menb_ue_x2ap_id_extension){ - SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID_Extension = node_4_0->id_menb_ue_x2ap_id_extension->value; + SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID = node_5_0->id_menb_ue_x2ap_id; + SgNB_ack_for_ue_measurements->id_SgNB_UE_X2AP_ID = node_5_0->id_sgnb_ue_x2ap_id; + if(node_5_0->id_menb_ue_x2ap_id_extension){ + SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID_Extension = node_5_0->id_menb_ue_x2ap_id_extension->value; }else{ SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID_Extension = 0; } - node_4_1 = node_4_0->id_sgnbtomenbcontainer; - if(node_4_0->id_sgnbtomenbcontainer){ - node_4_2 = node_4_1->criticalextensionschoice1; - if(node_4_1->criticalextensionschoice1){ - node_4_3 = node_4_2->protocolies; - if(node_4_2->protocolies){ - node_4_4 = node_4_3->candidatecellinfolistsn; - if(node_4_3->candidatecellinfolistsn){ - for(i_4_5=0;i_4_5n_items; i_4_5++){ - node_4_5 = node_4_4->items[i_4_5]; - if(node_4_5->ssbfrequency){ - SgNB_ack_for_ue_measurements->ssbFrequency = node_4_5->ssbfrequency->value; + node_5_1 = node_5_0->id_sgnbtomenbcontainer; + if(node_5_0->id_sgnbtomenbcontainer){ + node_5_2 = node_5_1->criticalextensionschoice1; + if(node_5_1->criticalextensionschoice1){ + node_5_3 = node_5_2->protocolies; + if(node_5_2->protocolies){ + node_5_4 = node_5_3->candidatecellinfolistsn; + if(node_5_3->candidatecellinfolistsn){ + for(i_5_5=0;i_5_5n_items; i_5_5++){ + node_5_5 = node_5_4->items[i_5_5]; + if(node_5_5->ssbfrequency){ + SgNB_ack_for_ue_measurements->ssbFrequency = node_5_5->ssbfrequency->value; SgNB_ack_for_ue_measurements->ssbFrequency_exists = 1; }else{ SgNB_ack_for_ue_measurements->ssbFrequency_exists = 0; } - if(node_4_5->reffreqcsi_rs){ - SgNB_ack_for_ue_measurements->refFreqCSI_RS = node_4_5->reffreqcsi_rs->value; + if(node_5_5->reffreqcsi_rs){ + SgNB_ack_for_ue_measurements->refFreqCSI_RS = node_5_5->reffreqcsi_rs->value; SgNB_ack_for_ue_measurements->refFreqCSI_RS_exists = 1; }else{ SgNB_ack_for_ue_measurements->refFreqCSI_RS_exists = 0; } - node_4_6 = node_4_5->measresultservingcell; - if(node_4_5->measresultservingcell){ - if(node_4_6->physcellid){ - SgNB_ack_for_ue_measurements->physCellId = node_4_6->physcellid->value; + node_5_6 = node_5_5->measresultservingcell; + if(node_5_5->measresultservingcell){ + if(node_5_6->physcellid){ + SgNB_ack_for_ue_measurements->physCellId = node_5_6->physcellid->value; SgNB_ack_for_ue_measurements->physCellId_exists = 1; }else{ SgNB_ack_for_ue_measurements->physCellId_exists = 0; } - node_4_7 = node_4_6->measresult; - if(node_4_6->measresult){ - node_4_8 = node_4_7->cellresults; - if(node_4_7->cellresults){ - node_4_9 = node_4_8->resultscsi_rs_cell; - if(node_4_8->resultscsi_rs_cell){ - if(node_4_9->rsrq){ - SgNB_ack_for_ue_measurements->rsrq = node_4_9->rsrq->value; + node_5_7 = node_5_6->measresult; + if(node_5_6->measresult){ + node_5_8 = node_5_7->cellresults; + if(node_5_7->cellresults){ + node_5_9 = node_5_8->resultscsi_rs_cell; + if(node_5_8->resultscsi_rs_cell){ + if(node_5_9->rsrq){ + SgNB_ack_for_ue_measurements->rsrq = node_5_9->rsrq->value; SgNB_ack_for_ue_measurements->rsrq_exists = 1; }else{ SgNB_ack_for_ue_measurements->rsrq_exists = 0; } - if(node_4_9->rsrp){ - SgNB_ack_for_ue_measurements->rsrp = node_4_9->rsrp->value; + if(node_5_9->rsrp){ + SgNB_ack_for_ue_measurements->rsrp = node_5_9->rsrp->value; SgNB_ack_for_ue_measurements->rsrp_exists = 1; }else{ SgNB_ack_for_ue_measurements->rsrp_exists = 0; } - if(node_4_9->sinr){ - SgNB_ack_for_ue_measurements->sinr = node_4_9->sinr->value; + if(node_5_9->sinr){ + SgNB_ack_for_ue_measurements->sinr = node_5_9->sinr->value; SgNB_ack_for_ue_measurements->sinr_exists = 1; }else{ SgNB_ack_for_ue_measurements->sinr_exists = 0; @@ -1881,75 +2006,77 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_ SgNB_ack_for_ue_beam_csi = (struct _SgNB_ack_for_ue_beam_csi *)(cur_packet.record.packed.values); cur_packet.schema = 506; - node_5_0 = node_4_0; - SgNB_ack_for_ue_beam_csi->timestamp_ms = timestamp; + node_6_0 = node_5_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + SgNB_ack_for_ue_beam_csi->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) SgNB_ack_for_ue_beam_csi->gnb_id = empty_string; else SgNB_ack_for_ue_beam_csi->gnb_id = hdr->header->gnbid->value; - SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID = node_5_0->id_menb_ue_x2ap_id; - SgNB_ack_for_ue_beam_csi->id_SgNB_UE_X2AP_ID = node_5_0->id_sgnb_ue_x2ap_id; - if(node_5_0->id_menb_ue_x2ap_id_extension){ - SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID_Extension = node_5_0->id_menb_ue_x2ap_id_extension->value; + SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID = node_6_0->id_menb_ue_x2ap_id; + SgNB_ack_for_ue_beam_csi->id_SgNB_UE_X2AP_ID = node_6_0->id_sgnb_ue_x2ap_id; + if(node_6_0->id_menb_ue_x2ap_id_extension){ + SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID_Extension = node_6_0->id_menb_ue_x2ap_id_extension->value; }else{ SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID_Extension = 0; } - node_5_1 = node_5_0->id_sgnbtomenbcontainer; - if(node_5_0->id_sgnbtomenbcontainer){ - node_5_2 = node_5_1->criticalextensionschoice1; - if(node_5_1->criticalextensionschoice1){ - node_5_3 = node_5_2->protocolies; - if(node_5_2->protocolies){ - node_5_4 = node_5_3->candidatecellinfolistsn; - if(node_5_3->candidatecellinfolistsn){ - for(i_5_5=0;i_5_5n_items; i_5_5++){ - node_5_5 = node_5_4->items[i_5_5]; - if(node_5_5->ssbfrequency){ - SgNB_ack_for_ue_beam_csi->ssbFrequency = node_5_5->ssbfrequency->value; + node_6_1 = node_6_0->id_sgnbtomenbcontainer; + if(node_6_0->id_sgnbtomenbcontainer){ + node_6_2 = node_6_1->criticalextensionschoice1; + if(node_6_1->criticalextensionschoice1){ + node_6_3 = node_6_2->protocolies; + if(node_6_2->protocolies){ + node_6_4 = node_6_3->candidatecellinfolistsn; + if(node_6_3->candidatecellinfolistsn){ + for(i_6_5=0;i_6_5n_items; i_6_5++){ + node_6_5 = node_6_4->items[i_6_5]; + if(node_6_5->ssbfrequency){ + SgNB_ack_for_ue_beam_csi->ssbFrequency = node_6_5->ssbfrequency->value; SgNB_ack_for_ue_beam_csi->ssbFrequency_exists = 1; }else{ SgNB_ack_for_ue_beam_csi->ssbFrequency_exists = 0; } - if(node_5_5->reffreqcsi_rs){ - SgNB_ack_for_ue_beam_csi->refFreqCSI_RS = node_5_5->reffreqcsi_rs->value; + if(node_6_5->reffreqcsi_rs){ + SgNB_ack_for_ue_beam_csi->refFreqCSI_RS = node_6_5->reffreqcsi_rs->value; SgNB_ack_for_ue_beam_csi->refFreqCSI_RS_exists = 1; }else{ SgNB_ack_for_ue_beam_csi->refFreqCSI_RS_exists = 0; } - node_5_6 = node_5_5->measresultservingcell; - if(node_5_5->measresultservingcell){ - if(node_5_6->physcellid){ - SgNB_ack_for_ue_beam_csi->physCellId = node_5_6->physcellid->value; + node_6_6 = node_6_5->measresultservingcell; + if(node_6_5->measresultservingcell){ + if(node_6_6->physcellid){ + SgNB_ack_for_ue_beam_csi->physCellId = node_6_6->physcellid->value; SgNB_ack_for_ue_beam_csi->physCellId_exists = 1; }else{ SgNB_ack_for_ue_beam_csi->physCellId_exists = 0; } - node_5_7 = node_5_6->measresult; - if(node_5_6->measresult){ - node_5_8 = node_5_7->rsindexresults; - if(node_5_7->rsindexresults){ - node_5_9 = node_5_8->resultscsi_rs_indexes; - if(node_5_8->resultscsi_rs_indexes){ - for(i_5_10=0;i_5_10n_items; i_5_10++){ - node_5_10 = node_5_9->items[i_5_10]; - SgNB_ack_for_ue_beam_csi->csi_rs_index = node_5_10->csi_rs_index; - node_5_11 = node_5_10->csi_rs_results; - if(node_5_10->csi_rs_results){ - if(node_5_11->rsrq){ - SgNB_ack_for_ue_beam_csi->rsrq = node_5_11->rsrq->value; + node_6_7 = node_6_6->measresult; + if(node_6_6->measresult){ + node_6_8 = node_6_7->rsindexresults; + if(node_6_7->rsindexresults){ + node_6_9 = node_6_8->resultscsi_rs_indexes; + if(node_6_8->resultscsi_rs_indexes){ + for(i_6_10=0;i_6_10n_items; i_6_10++){ + node_6_10 = node_6_9->items[i_6_10]; + SgNB_ack_for_ue_beam_csi->csi_rs_index = node_6_10->csi_rs_index; + node_6_11 = node_6_10->csi_rs_results; + if(node_6_10->csi_rs_results){ + if(node_6_11->rsrq){ + SgNB_ack_for_ue_beam_csi->rsrq = node_6_11->rsrq->value; SgNB_ack_for_ue_beam_csi->rsrq_exists = 1; }else{ SgNB_ack_for_ue_beam_csi->rsrq_exists = 0; } - if(node_5_11->rsrp){ - SgNB_ack_for_ue_beam_csi->rsrp = node_5_11->rsrp->value; + if(node_6_11->rsrp){ + SgNB_ack_for_ue_beam_csi->rsrp = node_6_11->rsrp->value; SgNB_ack_for_ue_beam_csi->rsrp_exists = 1; }else{ SgNB_ack_for_ue_beam_csi->rsrp_exists = 0; } - if(node_5_11->sinr){ - SgNB_ack_for_ue_beam_csi->sinr = node_5_11->sinr->value; + if(node_6_11->sinr){ + SgNB_ack_for_ue_beam_csi->sinr = node_6_11->sinr->value; SgNB_ack_for_ue_beam_csi->sinr_exists = 1; }else{ SgNB_ack_for_ue_beam_csi->sinr_exists = 0; @@ -1971,75 +2098,77 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_ SgNB_ack_for_ue_beam_ssb = (struct _SgNB_ack_for_ue_beam_ssb *)(cur_packet.record.packed.values); cur_packet.schema = 507; - node_6_0 = node_5_0; - SgNB_ack_for_ue_beam_ssb->timestamp_ms = timestamp; + node_7_0 = node_6_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + SgNB_ack_for_ue_beam_ssb->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) SgNB_ack_for_ue_beam_ssb->gnb_id = empty_string; else SgNB_ack_for_ue_beam_ssb->gnb_id = hdr->header->gnbid->value; - SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID = node_6_0->id_menb_ue_x2ap_id; - SgNB_ack_for_ue_beam_ssb->id_SgNB_UE_X2AP_ID = node_6_0->id_sgnb_ue_x2ap_id; - if(node_6_0->id_menb_ue_x2ap_id_extension){ - SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID_Extension = node_6_0->id_menb_ue_x2ap_id_extension->value; + SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID = node_7_0->id_menb_ue_x2ap_id; + SgNB_ack_for_ue_beam_ssb->id_SgNB_UE_X2AP_ID = node_7_0->id_sgnb_ue_x2ap_id; + if(node_7_0->id_menb_ue_x2ap_id_extension){ + SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID_Extension = node_7_0->id_menb_ue_x2ap_id_extension->value; }else{ SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; } - node_6_1 = node_6_0->id_sgnbtomenbcontainer; - if(node_6_0->id_sgnbtomenbcontainer){ - node_6_2 = node_6_1->criticalextensionschoice1; - if(node_6_1->criticalextensionschoice1){ - node_6_3 = node_6_2->protocolies; - if(node_6_2->protocolies){ - node_6_4 = node_6_3->candidatecellinfolistsn; - if(node_6_3->candidatecellinfolistsn){ - for(i_6_5=0;i_6_5n_items; i_6_5++){ - node_6_5 = node_6_4->items[i_6_5]; - if(node_6_5->ssbfrequency){ - SgNB_ack_for_ue_beam_ssb->ssbFrequency = node_6_5->ssbfrequency->value; + node_7_1 = node_7_0->id_sgnbtomenbcontainer; + if(node_7_0->id_sgnbtomenbcontainer){ + node_7_2 = node_7_1->criticalextensionschoice1; + if(node_7_1->criticalextensionschoice1){ + node_7_3 = node_7_2->protocolies; + if(node_7_2->protocolies){ + node_7_4 = node_7_3->candidatecellinfolistsn; + if(node_7_3->candidatecellinfolistsn){ + for(i_7_5=0;i_7_5n_items; i_7_5++){ + node_7_5 = node_7_4->items[i_7_5]; + if(node_7_5->ssbfrequency){ + SgNB_ack_for_ue_beam_ssb->ssbFrequency = node_7_5->ssbfrequency->value; SgNB_ack_for_ue_beam_ssb->ssbFrequency_exists = 1; }else{ SgNB_ack_for_ue_beam_ssb->ssbFrequency_exists = 0; } - if(node_6_5->reffreqcsi_rs){ - SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS = node_6_5->reffreqcsi_rs->value; + if(node_7_5->reffreqcsi_rs){ + SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS = node_7_5->reffreqcsi_rs->value; SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS_exists = 1; }else{ SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS_exists = 0; } - node_6_6 = node_6_5->measresultservingcell; - if(node_6_5->measresultservingcell){ - if(node_6_6->physcellid){ - SgNB_ack_for_ue_beam_ssb->physCellId = node_6_6->physcellid->value; + node_7_6 = node_7_5->measresultservingcell; + if(node_7_5->measresultservingcell){ + if(node_7_6->physcellid){ + SgNB_ack_for_ue_beam_ssb->physCellId = node_7_6->physcellid->value; SgNB_ack_for_ue_beam_ssb->physCellId_exists = 1; }else{ SgNB_ack_for_ue_beam_ssb->physCellId_exists = 0; } - node_6_7 = node_6_6->measresult; - if(node_6_6->measresult){ - node_6_8 = node_6_7->rsindexresults; - if(node_6_7->rsindexresults){ - node_6_9 = node_6_8->resultsssb_indexes; - if(node_6_8->resultsssb_indexes){ - for(i_6_10=0;i_6_10n_items; i_6_10++){ - node_6_10 = node_6_9->items[i_6_10]; - SgNB_ack_for_ue_beam_ssb->ssb_Index = node_6_10->ssb_index; - node_6_11 = node_6_10->ssb_results; - if(node_6_10->ssb_results){ - if(node_6_11->rsrq){ - SgNB_ack_for_ue_beam_ssb->rsrq = node_6_11->rsrq->value; + node_7_7 = node_7_6->measresult; + if(node_7_6->measresult){ + node_7_8 = node_7_7->rsindexresults; + if(node_7_7->rsindexresults){ + node_7_9 = node_7_8->resultsssb_indexes; + if(node_7_8->resultsssb_indexes){ + for(i_7_10=0;i_7_10n_items; i_7_10++){ + node_7_10 = node_7_9->items[i_7_10]; + SgNB_ack_for_ue_beam_ssb->ssb_Index = node_7_10->ssb_index; + node_7_11 = node_7_10->ssb_results; + if(node_7_10->ssb_results){ + if(node_7_11->rsrq){ + SgNB_ack_for_ue_beam_ssb->rsrq = node_7_11->rsrq->value; SgNB_ack_for_ue_beam_ssb->rsrq_exists = 1; }else{ SgNB_ack_for_ue_beam_ssb->rsrq_exists = 0; } - if(node_6_11->rsrp){ - SgNB_ack_for_ue_beam_ssb->rsrp = node_6_11->rsrp->value; + if(node_7_11->rsrp){ + SgNB_ack_for_ue_beam_ssb->rsrp = node_7_11->rsrp->value; SgNB_ack_for_ue_beam_ssb->rsrp_exists = 1; }else{ SgNB_ack_for_ue_beam_ssb->rsrp_exists = 0; } - if(node_6_11->sinr){ - SgNB_ack_for_ue_beam_ssb->sinr = node_6_11->sinr->value; + if(node_7_11->sinr){ + SgNB_ack_for_ue_beam_ssb->sinr = node_7_11->sinr->value; SgNB_ack_for_ue_beam_ssb->sinr_exists = 1; }else{ SgNB_ack_for_ue_beam_ssb->sinr_exists = 0; @@ -2056,194 +2185,244 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_ } } } - uenibstreamprotobuf__sg_nbaddition_request_acknowledge__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbaddition_request_acknowledge__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; +// ------------------------------------------ +// --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json + struct _sgnb_addreq_gtp_teid *sgnb_addreq_gtp_teid = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_0_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_0_1 = NULL; + StreamingProtobufs__ERABsToBeAddedSgNBAddReqList *node_0_2 = NULL; + StreamingProtobufs__ERABsToBeAddedSgNBAddReqItemIEs *node_0_3 = NULL; + gs_uint32_t i_0_3; + StreamingProtobufs__ERABsToBeAddedSgNBAddReqItem *node_0_4 = NULL; + StreamingProtobufs__ERABsToBeAddedSgNBAddReqSgNBPDCPpresent *node_0_5 = NULL; + StreamingProtobufs__GTPtunnelEndpoint *node_0_6 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json struct _sgnb_addreq_for_ue *sgnb_addreq_for_ue = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_0_1 = NULL; - Uenibstreamprotobuf__ECGI *node_0_2 = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_1_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_1_1 = NULL; + StreamingProtobufs__ECGI *node_1_2 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json struct _sgnb_addreq_for_ue_bearers *sgnb_addreq_for_ue_bearers = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_1_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_1_1 = NULL; - Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqList *node_1_2 = NULL; - Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqItemIEs *node_1_3 = NULL; - gs_uint32_t i_1_3; - Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqItem *node_1_4 = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_2_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_2_1 = NULL; + StreamingProtobufs__ERABsToBeAddedSgNBAddReqList *node_2_2 = NULL; + StreamingProtobufs__ERABsToBeAddedSgNBAddReqItemIEs *node_2_3 = NULL; + gs_uint32_t i_2_3; + StreamingProtobufs__ERABsToBeAddedSgNBAddReqItem *node_2_4 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json struct _sgnb_addreq_for_ue_sn_serv_ssb *sgnb_addreq_for_ue_sn_serv_ssb = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_2_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_2_1 = NULL; - Uenibstreamprotobuf__CGConfigInfo *node_2_2 = NULL; - Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_2_3 = NULL; - Uenibstreamprotobuf__CGConfigInfoIEs *node_2_4 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_2_5 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_2_6 = NULL; - gs_uint32_t i_2_6; - Uenibstreamprotobuf__MeasResultNR *node_2_7 = NULL; - Uenibstreamprotobuf__MeasResult *node_2_8 = NULL; - Uenibstreamprotobuf__CellResults *node_2_9 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_2_10 = NULL; -// ------------------------------------------ -// --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json - struct _sgnb_addreq_for_ue_sn_serv_csi_rs *sgnb_addreq_for_ue_sn_serv_csi_rs = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_3_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_3_1 = NULL; - Uenibstreamprotobuf__CGConfigInfo *node_3_2 = NULL; - Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_3_3 = NULL; - Uenibstreamprotobuf__CGConfigInfoIEs *node_3_4 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_3_5 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_3_6 = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_3_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_3_1 = NULL; + StreamingProtobufs__CGConfigInfo *node_3_2 = NULL; + StreamingProtobufs__CGConfigInfoCriticalExtensionsChoice1 *node_3_3 = NULL; + StreamingProtobufs__CGConfigInfoIEs *node_3_4 = NULL; + StreamingProtobufs__MeasResultList2NR *node_3_5 = NULL; + StreamingProtobufs__MeasResult2NR *node_3_6 = NULL; gs_uint32_t i_3_6; - Uenibstreamprotobuf__MeasResultNR *node_3_7 = NULL; - Uenibstreamprotobuf__MeasResult *node_3_8 = NULL; - Uenibstreamprotobuf__CellResults *node_3_9 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_3_10 = NULL; + StreamingProtobufs__MeasResultNR *node_3_7 = NULL; + StreamingProtobufs__MeasResult *node_3_8 = NULL; + StreamingProtobufs__CellResults *node_3_9 = NULL; + StreamingProtobufs__MeasQuantityResults *node_3_10 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json - struct _sgnb_addreq_for_ue_mn_serv_ssb *sgnb_addreq_for_ue_mn_serv_ssb = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_4_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_4_1 = NULL; - Uenibstreamprotobuf__CGConfigInfo *node_4_2 = NULL; - Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_4_3 = NULL; - Uenibstreamprotobuf__CGConfigInfoIEs *node_4_4 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_4_5 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_4_6 = NULL; + struct _sgnb_addreq_for_ue_sn_serv_csi_rs *sgnb_addreq_for_ue_sn_serv_csi_rs = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_4_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_4_1 = NULL; + StreamingProtobufs__CGConfigInfo *node_4_2 = NULL; + StreamingProtobufs__CGConfigInfoCriticalExtensionsChoice1 *node_4_3 = NULL; + StreamingProtobufs__CGConfigInfoIEs *node_4_4 = NULL; + StreamingProtobufs__MeasResultList2NR *node_4_5 = NULL; + StreamingProtobufs__MeasResult2NR *node_4_6 = NULL; gs_uint32_t i_4_6; - Uenibstreamprotobuf__MeasResultNR *node_4_7 = NULL; - Uenibstreamprotobuf__MeasResult *node_4_8 = NULL; - Uenibstreamprotobuf__CellResults *node_4_9 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_4_10 = NULL; + StreamingProtobufs__MeasResultNR *node_4_7 = NULL; + StreamingProtobufs__MeasResult *node_4_8 = NULL; + StreamingProtobufs__CellResults *node_4_9 = NULL; + StreamingProtobufs__MeasQuantityResults *node_4_10 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json - struct _sgnb_addreq_for_ue_mn_serv_csi_rs *sgnb_addreq_for_ue_mn_serv_csi_rs = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_5_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_5_1 = NULL; - Uenibstreamprotobuf__CGConfigInfo *node_5_2 = NULL; - Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_5_3 = NULL; - Uenibstreamprotobuf__CGConfigInfoIEs *node_5_4 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_5_5 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_5_6 = NULL; + struct _sgnb_addreq_for_ue_mn_serv_ssb *sgnb_addreq_for_ue_mn_serv_ssb = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_5_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_5_1 = NULL; + StreamingProtobufs__CGConfigInfo *node_5_2 = NULL; + StreamingProtobufs__CGConfigInfoCriticalExtensionsChoice1 *node_5_3 = NULL; + StreamingProtobufs__CGConfigInfoIEs *node_5_4 = NULL; + StreamingProtobufs__MeasResultList2NR *node_5_5 = NULL; + StreamingProtobufs__MeasResult2NR *node_5_6 = NULL; gs_uint32_t i_5_6; - Uenibstreamprotobuf__MeasResultNR *node_5_7 = NULL; - Uenibstreamprotobuf__MeasResult *node_5_8 = NULL; - Uenibstreamprotobuf__CellResults *node_5_9 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_5_10 = NULL; + StreamingProtobufs__MeasResultNR *node_5_7 = NULL; + StreamingProtobufs__MeasResult *node_5_8 = NULL; + StreamingProtobufs__CellResults *node_5_9 = NULL; + StreamingProtobufs__MeasQuantityResults *node_5_10 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json - struct _sgnb_addreq_for_ue_sn_neigh_ssb *sgnb_addreq_for_ue_sn_neigh_ssb = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_6_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_6_1 = NULL; - Uenibstreamprotobuf__CGConfigInfo *node_6_2 = NULL; - Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_6_3 = NULL; - Uenibstreamprotobuf__CGConfigInfoIEs *node_6_4 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_6_5 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_6_6 = NULL; + struct _sgnb_addreq_for_ue_mn_serv_csi_rs *sgnb_addreq_for_ue_mn_serv_csi_rs = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_6_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_6_1 = NULL; + StreamingProtobufs__CGConfigInfo *node_6_2 = NULL; + StreamingProtobufs__CGConfigInfoCriticalExtensionsChoice1 *node_6_3 = NULL; + StreamingProtobufs__CGConfigInfoIEs *node_6_4 = NULL; + StreamingProtobufs__MeasResultList2NR *node_6_5 = NULL; + StreamingProtobufs__MeasResult2NR *node_6_6 = NULL; gs_uint32_t i_6_6; - Uenibstreamprotobuf__MeasResultListNR *node_6_7 = NULL; - Uenibstreamprotobuf__MeasResultNR *node_6_8 = NULL; - gs_uint32_t i_6_8; - Uenibstreamprotobuf__MeasResult *node_6_9 = NULL; - Uenibstreamprotobuf__CellResults *node_6_10 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_6_11 = NULL; + StreamingProtobufs__MeasResultNR *node_6_7 = NULL; + StreamingProtobufs__MeasResult *node_6_8 = NULL; + StreamingProtobufs__CellResults *node_6_9 = NULL; + StreamingProtobufs__MeasQuantityResults *node_6_10 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json - struct _sgnb_addreq_for_ue_sn_neigh_csi_rs *sgnb_addreq_for_ue_sn_neigh_csi_rs = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_7_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_7_1 = NULL; - Uenibstreamprotobuf__CGConfigInfo *node_7_2 = NULL; - Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_7_3 = NULL; - Uenibstreamprotobuf__CGConfigInfoIEs *node_7_4 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_7_5 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_7_6 = NULL; + struct _sgnb_addreq_for_ue_sn_neigh_ssb *sgnb_addreq_for_ue_sn_neigh_ssb = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_7_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_7_1 = NULL; + StreamingProtobufs__CGConfigInfo *node_7_2 = NULL; + StreamingProtobufs__CGConfigInfoCriticalExtensionsChoice1 *node_7_3 = NULL; + StreamingProtobufs__CGConfigInfoIEs *node_7_4 = NULL; + StreamingProtobufs__MeasResultList2NR *node_7_5 = NULL; + StreamingProtobufs__MeasResult2NR *node_7_6 = NULL; gs_uint32_t i_7_6; - Uenibstreamprotobuf__MeasResultListNR *node_7_7 = NULL; - Uenibstreamprotobuf__MeasResultNR *node_7_8 = NULL; + StreamingProtobufs__MeasResultListNR *node_7_7 = NULL; + StreamingProtobufs__MeasResultNR *node_7_8 = NULL; gs_uint32_t i_7_8; - Uenibstreamprotobuf__MeasResult *node_7_9 = NULL; - Uenibstreamprotobuf__CellResults *node_7_10 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_7_11 = NULL; + StreamingProtobufs__MeasResult *node_7_9 = NULL; + StreamingProtobufs__CellResults *node_7_10 = NULL; + StreamingProtobufs__MeasQuantityResults *node_7_11 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json - struct _sgnb_addreq_for_ue_mn_neigh_ssb *sgnb_addreq_for_ue_mn_neigh_ssb = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_8_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_8_1 = NULL; - Uenibstreamprotobuf__CGConfigInfo *node_8_2 = NULL; - Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_8_3 = NULL; - Uenibstreamprotobuf__CGConfigInfoIEs *node_8_4 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_8_5 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_8_6 = NULL; + struct _sgnb_addreq_for_ue_sn_neigh_csi_rs *sgnb_addreq_for_ue_sn_neigh_csi_rs = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_8_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_8_1 = NULL; + StreamingProtobufs__CGConfigInfo *node_8_2 = NULL; + StreamingProtobufs__CGConfigInfoCriticalExtensionsChoice1 *node_8_3 = NULL; + StreamingProtobufs__CGConfigInfoIEs *node_8_4 = NULL; + StreamingProtobufs__MeasResultList2NR *node_8_5 = NULL; + StreamingProtobufs__MeasResult2NR *node_8_6 = NULL; gs_uint32_t i_8_6; - Uenibstreamprotobuf__MeasResultListNR *node_8_7 = NULL; - Uenibstreamprotobuf__MeasResultNR *node_8_8 = NULL; + StreamingProtobufs__MeasResultListNR *node_8_7 = NULL; + StreamingProtobufs__MeasResultNR *node_8_8 = NULL; gs_uint32_t i_8_8; - Uenibstreamprotobuf__MeasResult *node_8_9 = NULL; - Uenibstreamprotobuf__CellResults *node_8_10 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_8_11 = NULL; + StreamingProtobufs__MeasResult *node_8_9 = NULL; + StreamingProtobufs__CellResults *node_8_10 = NULL; + StreamingProtobufs__MeasQuantityResults *node_8_11 = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json - struct _sgnb_addreq_for_ue_mn_neigh_csi_rs *sgnb_addreq_for_ue_mn_neigh_csi_rs = NULL; - Uenibstreamprotobuf__SgNBAdditionRequest *node_9_0 = NULL; - Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_9_1 = NULL; - Uenibstreamprotobuf__CGConfigInfo *node_9_2 = NULL; - Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_9_3 = NULL; - Uenibstreamprotobuf__CGConfigInfoIEs *node_9_4 = NULL; - Uenibstreamprotobuf__MeasResultList2NR *node_9_5 = NULL; - Uenibstreamprotobuf__MeasResult2NR *node_9_6 = NULL; + struct _sgnb_addreq_for_ue_mn_neigh_ssb *sgnb_addreq_for_ue_mn_neigh_ssb = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_9_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_9_1 = NULL; + StreamingProtobufs__CGConfigInfo *node_9_2 = NULL; + StreamingProtobufs__CGConfigInfoCriticalExtensionsChoice1 *node_9_3 = NULL; + StreamingProtobufs__CGConfigInfoIEs *node_9_4 = NULL; + StreamingProtobufs__MeasResultList2NR *node_9_5 = NULL; + StreamingProtobufs__MeasResult2NR *node_9_6 = NULL; gs_uint32_t i_9_6; - Uenibstreamprotobuf__MeasResultListNR *node_9_7 = NULL; - Uenibstreamprotobuf__MeasResultNR *node_9_8 = NULL; + StreamingProtobufs__MeasResultListNR *node_9_7 = NULL; + StreamingProtobufs__MeasResultNR *node_9_8 = NULL; gs_uint32_t i_9_8; - Uenibstreamprotobuf__MeasResult *node_9_9 = NULL; - Uenibstreamprotobuf__CellResults *node_9_10 = NULL; - Uenibstreamprotobuf__MeasQuantityResults *node_9_11 = NULL; + StreamingProtobufs__MeasResult *node_9_9 = NULL; + StreamingProtobufs__CellResults *node_9_10 = NULL; + StreamingProtobufs__MeasQuantityResults *node_9_11 = NULL; +// ------------------------------------------ +// --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json + struct _sgnb_addreq_for_ue_mn_neigh_csi_rs *sgnb_addreq_for_ue_mn_neigh_csi_rs = NULL; + StreamingProtobufs__SgNBAdditionRequest *node_10_0 = NULL; + StreamingProtobufs__SgNBAdditionRequestIEs *node_10_1 = NULL; + StreamingProtobufs__CGConfigInfo *node_10_2 = NULL; + StreamingProtobufs__CGConfigInfoCriticalExtensionsChoice1 *node_10_3 = NULL; + StreamingProtobufs__CGConfigInfoIEs *node_10_4 = NULL; + StreamingProtobufs__MeasResultList2NR *node_10_5 = NULL; + StreamingProtobufs__MeasResult2NR *node_10_6 = NULL; + gs_uint32_t i_10_6; + StreamingProtobufs__MeasResultListNR *node_10_7 = NULL; + StreamingProtobufs__MeasResultNR *node_10_8 = NULL; + gs_uint32_t i_10_8; + StreamingProtobufs__MeasResult *node_10_9 = NULL; + StreamingProtobufs__CellResults *node_10_10 = NULL; + StreamingProtobufs__MeasQuantityResults *node_10_11 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json - sgnb_addreq_for_ue = (struct _sgnb_addreq_for_ue *)(cur_packet.record.packed.values); - cur_packet.schema = 401; + sgnb_addreq_gtp_teid = (struct _sgnb_addreq_gtp_teid *)(cur_packet.record.packed.values); + cur_packet.schema = 10001; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbadditionrequest; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_addreq_for_ue->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_gtp_teid->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) - sgnb_addreq_for_ue->gnb_id = empty_string; + sgnb_addreq_gtp_teid->gnb_id = empty_string; else - sgnb_addreq_for_ue->gnb_id = hdr->header->gnbid->value; + sgnb_addreq_gtp_teid->gnb_id = hdr->header->gnbid->value; node_0_1 = node_0_0->protocolies; if(node_0_0->protocolies){ - sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id; - if(node_0_1->id_sgnbueaggregatemaximumbitrate){ - sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink = node_0_1->id_sgnbueaggregatemaximumbitrate->ueaggregatemaximumbitratedownlink; + sgnb_addreq_gtp_teid->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id; + node_0_2 = node_0_1->id_e_rabs_tobeadded_sgnbaddreqlist; + if(node_0_1->id_e_rabs_tobeadded_sgnbaddreqlist){ + for(i_0_3=0;i_0_3n_items; i_0_3++){ + node_0_3 = node_0_2->items[i_0_3]; + node_0_4 = node_0_3->id_e_rabs_tobeadded_sgnbaddreq_item; + if(node_0_3->id_e_rabs_tobeadded_sgnbaddreq_item){ + node_0_5 = node_0_4->sgnbpdcppresent; + if(node_0_4->sgnbpdcppresent){ + node_0_6 = node_0_5->s1_ul_gtptunnelendpoint; + if(node_0_5->s1_ul_gtptunnelendpoint){ + sgnb_addreq_gtp_teid->gTP_TEID = node_0_6->gtp_teid; + sgnb_addreq_gtp_teid->transportLayerAddress = node_0_6->transportlayeraddress; + rts_fta_process_packet(&cur_packet); + } + } + } + } + } + } +// -------------------------------------------------- +// --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json + + sgnb_addreq_for_ue = (struct _sgnb_addreq_for_ue *)(cur_packet.record.packed.values); + cur_packet.schema = 401; + node_1_0 = node_0_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); + if(hdr->header->gnbid==NULL) + sgnb_addreq_for_ue->gnb_id = empty_string; + else + sgnb_addreq_for_ue->gnb_id = hdr->header->gnbid->value; + + node_1_1 = node_1_0->protocolies; + if(node_1_0->protocolies){ + sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID = node_1_1->id_menb_ue_x2ap_id; + if(node_1_1->id_sgnbueaggregatemaximumbitrate){ + sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink = node_1_1->id_sgnbueaggregatemaximumbitrate->ueaggregatemaximumbitratedownlink; sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink_exists = 1; }else{ sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink_exists = 0; } - if(node_0_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_0_1->id_menb_ue_x2ap_id_extension->value; + if(node_1_1->id_menb_ue_x2ap_id_extension){ + sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_1_1->id_menb_ue_x2ap_id_extension->value; }else{ sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0; } - node_0_2 = node_0_1->id_menbcell_id; - if(node_0_1->id_menbcell_id){ - sgnb_addreq_for_ue->eUTRANcellIdentifier = node_0_2->eutrancellidentifier; - sgnb_addreq_for_ue->pLMN_Identity = node_0_2->plmn_identity; + node_1_2 = node_1_1->id_menbcell_id; + if(node_1_1->id_menbcell_id){ + sgnb_addreq_for_ue->eUTRANcellIdentifier = node_1_2->eutrancellidentifier; + sgnb_addreq_for_ue->pLMN_Identity = node_1_2->plmn_identity; rts_fta_process_packet(&cur_packet); } } @@ -2252,106 +2431,110 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu sgnb_addreq_for_ue_bearers = (struct _sgnb_addreq_for_ue_bearers *)(cur_packet.record.packed.values); cur_packet.schema = 402; - node_1_0 = node_0_0; - sgnb_addreq_for_ue_bearers->timestamp_ms = timestamp; + node_2_0 = node_1_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_bearers->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_addreq_for_ue_bearers->gnb_id = empty_string; else sgnb_addreq_for_ue_bearers->gnb_id = hdr->header->gnbid->value; - node_1_1 = node_1_0->protocolies; - if(node_1_0->protocolies){ - sgnb_addreq_for_ue_bearers->id_MeNB_UE_X2AP_ID = node_1_1->id_menb_ue_x2ap_id; - node_1_2 = node_1_1->id_e_rabs_tobeadded_sgnbaddreqlist; - if(node_1_1->id_e_rabs_tobeadded_sgnbaddreqlist){ - for(i_1_3=0;i_1_3n_items; i_1_3++){ - node_1_3 = node_1_2->items[i_1_3]; - node_1_4 = node_1_3->id_e_rabs_tobeadded_sgnbaddreq_item; - if(node_1_3->id_e_rabs_tobeadded_sgnbaddreq_item){ - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){ - sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateDL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_maximumbitratedl; + node_2_1 = node_2_0->protocolies; + if(node_2_0->protocolies){ + sgnb_addreq_for_ue_bearers->id_MeNB_UE_X2AP_ID = node_2_1->id_menb_ue_x2ap_id; + node_2_2 = node_2_1->id_e_rabs_tobeadded_sgnbaddreqlist; + if(node_2_1->id_e_rabs_tobeadded_sgnbaddreqlist){ + for(i_2_3=0;i_2_3n_items; i_2_3++){ + node_2_3 = node_2_2->items[i_2_3]; + node_2_4 = node_2_3->id_e_rabs_tobeadded_sgnbaddreq_item; + if(node_2_3->id_e_rabs_tobeadded_sgnbaddreq_item){ + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){ + sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateDL = node_2_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_maximumbitratedl; }else{ sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateDL = 0; } - if(node_1_4->en_dc_resourceconfiguration){ - sgnb_addreq_for_ue_bearers->pDCPatSgNB = node_1_4->en_dc_resourceconfiguration->pdcpatsgnb; + if(node_2_4->en_dc_resourceconfiguration){ + sgnb_addreq_for_ue_bearers->pDCPatSgNB = node_2_4->en_dc_resourceconfiguration->pdcpatsgnb; }else{ sgnb_addreq_for_ue_bearers->pDCPatSgNB = -1; } - sgnb_addreq_for_ue_bearers->drb_ID = node_1_4->drb_id; - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority){ - sgnb_addreq_for_ue_bearers->priorityLevel = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->prioritylevel; + sgnb_addreq_for_ue_bearers->drb_ID = node_2_4->drb_id; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority){ + sgnb_addreq_for_ue_bearers->priorityLevel = node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->prioritylevel; }else{ sgnb_addreq_for_ue_bearers->priorityLevel = 0; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg){ - sgnb_addreq_for_ue_bearers->gTP_TEID = node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg->gtp_teid; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg){ + sgnb_addreq_for_ue_bearers->gTP_TEID = node_2_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg->gtp_teid; }else{ - sgnb_addreq_for_ue_bearers->gTP_TEID = ""; + sgnb_addreq_for_ue_bearers->gTP_TEID.data = ""; + sgnb_addreq_for_ue_bearers->gTP_TEID.len = 1; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptioncapability){ - sgnb_addreq_for_ue_bearers->pre_emptionCapability = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptioncapability->value; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptioncapability){ + sgnb_addreq_for_ue_bearers->pre_emptionCapability = node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptioncapability->value; }else{ sgnb_addreq_for_ue_bearers->pre_emptionCapability = -1; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){ - sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateUL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_guaranteedbitrateul; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){ + sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateUL = node_2_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_guaranteedbitrateul; }else{ sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateUL = 0; } - if(node_1_4->en_dc_resourceconfiguration){ - sgnb_addreq_for_ue_bearers->mCGresources = node_1_4->en_dc_resourceconfiguration->mcgresources; + if(node_2_4->en_dc_resourceconfiguration){ + sgnb_addreq_for_ue_bearers->mCGresources = node_2_4->en_dc_resourceconfiguration->mcgresources; }else{ sgnb_addreq_for_ue_bearers->mCGresources = -1; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg){ - sgnb_addreq_for_ue_bearers->transportLayerAddress = node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg->transportlayeraddress; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg){ + sgnb_addreq_for_ue_bearers->transportLayerAddress = node_2_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg->transportlayeraddress; }else{ - sgnb_addreq_for_ue_bearers->transportLayerAddress = ""; + sgnb_addreq_for_ue_bearers->transportLayerAddress.data = ""; + sgnb_addreq_for_ue_bearers->transportLayerAddress.len = 1; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation){ - sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateUL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_guaranteedbitrateul; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation){ + sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateUL = node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_guaranteedbitrateul; }else{ sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateUL = 0; } - if(node_1_4->en_dc_resourceconfiguration){ - sgnb_addreq_for_ue_bearers->sCGresources = node_1_4->en_dc_resourceconfiguration->scgresources; + if(node_2_4->en_dc_resourceconfiguration){ + sgnb_addreq_for_ue_bearers->sCGresources = node_2_4->en_dc_resourceconfiguration->scgresources; }else{ sgnb_addreq_for_ue_bearers->sCGresources = -1; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){ - sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateUL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_maximumbitrateul; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){ + sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateUL = node_2_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_maximumbitrateul; }else{ sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateUL = 0; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation){ - sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateUL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_maximumbitrateul; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation){ + sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateUL = node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_maximumbitrateul; }else{ sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateUL = 0; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptionvulnerability){ - sgnb_addreq_for_ue_bearers->pre_emptionVulnerability = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptionvulnerability->value; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptionvulnerability){ + sgnb_addreq_for_ue_bearers->pre_emptionVulnerability = node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptionvulnerability->value; }else{ sgnb_addreq_for_ue_bearers->pre_emptionVulnerability = -1; } - sgnb_addreq_for_ue_bearers->e_RAB_ID = node_1_4->e_rab_id; - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){ - sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateDL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_guaranteedbitratedl; + sgnb_addreq_for_ue_bearers->e_RAB_ID = node_2_4->e_rab_id; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){ + sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateDL = node_2_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_guaranteedbitratedl; }else{ sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateDL = 0; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters){ - sgnb_addreq_for_ue_bearers->qCI = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->qci; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters){ + sgnb_addreq_for_ue_bearers->qCI = node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->qci; }else{ sgnb_addreq_for_ue_bearers->qCI = 0; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation){ - sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateDL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_maximumbitratedl; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation){ + sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateDL = node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_maximumbitratedl; }else{ sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateDL = 0; } - if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation){ - sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateDL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_guaranteedbitratedl; + if(node_2_4->sgnbpdcppresent && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters && node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation){ + sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateDL = node_2_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_guaranteedbitratedl; }else{ sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateDL = 0; } @@ -2365,90 +2548,22 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu sgnb_addreq_for_ue_sn_serv_ssb = (struct _sgnb_addreq_for_ue_sn_serv_ssb *)(cur_packet.record.packed.values); cur_packet.schema = 403; - node_2_0 = node_1_0; - sgnb_addreq_for_ue_sn_serv_ssb->timestamp_ms = timestamp; + node_3_0 = node_2_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_sn_serv_ssb->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_addreq_for_ue_sn_serv_ssb->gnb_id = empty_string; else sgnb_addreq_for_ue_sn_serv_ssb->gnb_id = hdr->header->gnbid->value; - node_2_1 = node_2_0->protocolies; - if(node_2_0->protocolies){ - sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID = node_2_1->id_menb_ue_x2ap_id; - if(node_2_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = node_2_1->id_menb_ue_x2ap_id_extension->value; - }else{ - sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; - } - node_2_2 = node_2_1->id_menbtosgnbcontainer; - if(node_2_1->id_menbtosgnbcontainer){ - node_2_3 = node_2_2->criticalextensionschoice1; - if(node_2_2->criticalextensionschoice1){ - node_2_4 = node_2_3->protocolies; - if(node_2_3->protocolies){ - node_2_5 = node_2_4->candidatecellinfolistsn; - if(node_2_4->candidatecellinfolistsn){ - for(i_2_6=0;i_2_6n_items; i_2_6++){ - node_2_6 = node_2_5->items[i_2_6]; - node_2_7 = node_2_6->measresultservingcell; - if(node_2_6->measresultservingcell){ - if(node_2_7->physcellid){ - sgnb_addreq_for_ue_sn_serv_ssb->physCellId = node_2_7->physcellid->value; - sgnb_addreq_for_ue_sn_serv_ssb->physCellId_exists = 1; - }else{ - sgnb_addreq_for_ue_sn_serv_ssb->physCellId_exists = 0; - } - node_2_8 = node_2_7->measresult; - if(node_2_7->measresult){ - node_2_9 = node_2_8->cellresults; - if(node_2_8->cellresults){ - node_2_10 = node_2_9->resultsssb_cell; - if(node_2_9->resultsssb_cell){ - if(node_2_10->rsrq){ - sgnb_addreq_for_ue_sn_serv_ssb->rsrq = node_2_10->rsrq->value; - }else{ - sgnb_addreq_for_ue_sn_serv_ssb->rsrq = 128; - } - if(node_2_10->rsrp){ - sgnb_addreq_for_ue_sn_serv_ssb->rsrp = node_2_10->rsrp->value; - }else{ - sgnb_addreq_for_ue_sn_serv_ssb->rsrp = 128; - } - if(node_2_10->sinr){ - sgnb_addreq_for_ue_sn_serv_ssb->sinr = node_2_10->sinr->value; - }else{ - sgnb_addreq_for_ue_sn_serv_ssb->sinr = 128; - } - rts_fta_process_packet(&cur_packet); - } - } - } - } - } - } - } - } - } - } -// -------------------------------------------------- -// --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json - - sgnb_addreq_for_ue_sn_serv_csi_rs = (struct _sgnb_addreq_for_ue_sn_serv_csi_rs *)(cur_packet.record.packed.values); - cur_packet.schema = 404; - node_3_0 = node_2_0; - sgnb_addreq_for_ue_sn_serv_csi_rs->timestamp_ms = timestamp; - if(hdr->header->gnbid==NULL) - sgnb_addreq_for_ue_sn_serv_csi_rs->gnb_id = empty_string; - else - sgnb_addreq_for_ue_sn_serv_csi_rs->gnb_id = hdr->header->gnbid->value; - node_3_1 = node_3_0->protocolies; if(node_3_0->protocolies){ - sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID = node_3_1->id_menb_ue_x2ap_id; + sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID = node_3_1->id_menb_ue_x2ap_id; if(node_3_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_3_1->id_menb_ue_x2ap_id_extension->value; + sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = node_3_1->id_menb_ue_x2ap_id_extension->value; }else{ - sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0; + sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; } node_3_2 = node_3_1->id_menbtosgnbcontainer; if(node_3_1->id_menbtosgnbcontainer){ @@ -2463,31 +2578,31 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu node_3_7 = node_3_6->measresultservingcell; if(node_3_6->measresultservingcell){ if(node_3_7->physcellid){ - sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId = node_3_7->physcellid->value; - sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId_exists = 1; + sgnb_addreq_for_ue_sn_serv_ssb->physCellId = node_3_7->physcellid->value; + sgnb_addreq_for_ue_sn_serv_ssb->physCellId_exists = 1; }else{ - sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId_exists = 0; + sgnb_addreq_for_ue_sn_serv_ssb->physCellId_exists = 0; } node_3_8 = node_3_7->measresult; if(node_3_7->measresult){ node_3_9 = node_3_8->cellresults; if(node_3_8->cellresults){ - node_3_10 = node_3_9->resultscsi_rs_cell; - if(node_3_9->resultscsi_rs_cell){ + node_3_10 = node_3_9->resultsssb_cell; + if(node_3_9->resultsssb_cell){ if(node_3_10->rsrq){ - sgnb_addreq_for_ue_sn_serv_csi_rs->rsrq = node_3_10->rsrq->value; + sgnb_addreq_for_ue_sn_serv_ssb->rsrq = node_3_10->rsrq->value; }else{ - sgnb_addreq_for_ue_sn_serv_csi_rs->rsrq = 128; + sgnb_addreq_for_ue_sn_serv_ssb->rsrq = 128; } if(node_3_10->rsrp){ - sgnb_addreq_for_ue_sn_serv_csi_rs->rsrp = node_3_10->rsrp->value; + sgnb_addreq_for_ue_sn_serv_ssb->rsrp = node_3_10->rsrp->value; }else{ - sgnb_addreq_for_ue_sn_serv_csi_rs->rsrp = 128; + sgnb_addreq_for_ue_sn_serv_ssb->rsrp = 128; } if(node_3_10->sinr){ - sgnb_addreq_for_ue_sn_serv_csi_rs->sinr = node_3_10->sinr->value; + sgnb_addreq_for_ue_sn_serv_ssb->sinr = node_3_10->sinr->value; }else{ - sgnb_addreq_for_ue_sn_serv_csi_rs->sinr = 128; + sgnb_addreq_for_ue_sn_serv_ssb->sinr = 128; } rts_fta_process_packet(&cur_packet); } @@ -2503,22 +2618,24 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json - sgnb_addreq_for_ue_mn_serv_ssb = (struct _sgnb_addreq_for_ue_mn_serv_ssb *)(cur_packet.record.packed.values); - cur_packet.schema = 405; + sgnb_addreq_for_ue_sn_serv_csi_rs = (struct _sgnb_addreq_for_ue_sn_serv_csi_rs *)(cur_packet.record.packed.values); + cur_packet.schema = 404; node_4_0 = node_3_0; - sgnb_addreq_for_ue_mn_serv_ssb->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_sn_serv_csi_rs->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) - sgnb_addreq_for_ue_mn_serv_ssb->gnb_id = empty_string; + sgnb_addreq_for_ue_sn_serv_csi_rs->gnb_id = empty_string; else - sgnb_addreq_for_ue_mn_serv_ssb->gnb_id = hdr->header->gnbid->value; + sgnb_addreq_for_ue_sn_serv_csi_rs->gnb_id = hdr->header->gnbid->value; node_4_1 = node_4_0->protocolies; if(node_4_0->protocolies){ - sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID = node_4_1->id_menb_ue_x2ap_id; + sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID = node_4_1->id_menb_ue_x2ap_id; if(node_4_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = node_4_1->id_menb_ue_x2ap_id_extension->value; + sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_4_1->id_menb_ue_x2ap_id_extension->value; }else{ - sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; + sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0; } node_4_2 = node_4_1->id_menbtosgnbcontainer; if(node_4_1->id_menbtosgnbcontainer){ @@ -2526,38 +2643,38 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu if(node_4_2->criticalextensionschoice1){ node_4_4 = node_4_3->protocolies; if(node_4_3->protocolies){ - node_4_5 = node_4_4->candidatecellinfolistmn; - if(node_4_4->candidatecellinfolistmn){ + node_4_5 = node_4_4->candidatecellinfolistsn; + if(node_4_4->candidatecellinfolistsn){ for(i_4_6=0;i_4_6n_items; i_4_6++){ node_4_6 = node_4_5->items[i_4_6]; node_4_7 = node_4_6->measresultservingcell; if(node_4_6->measresultservingcell){ if(node_4_7->physcellid){ - sgnb_addreq_for_ue_mn_serv_ssb->physCellId = node_4_7->physcellid->value; - sgnb_addreq_for_ue_mn_serv_ssb->physCellId_exists = 1; + sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId = node_4_7->physcellid->value; + sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId_exists = 1; }else{ - sgnb_addreq_for_ue_mn_serv_ssb->physCellId_exists = 0; + sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId_exists = 0; } node_4_8 = node_4_7->measresult; if(node_4_7->measresult){ node_4_9 = node_4_8->cellresults; if(node_4_8->cellresults){ - node_4_10 = node_4_9->resultsssb_cell; - if(node_4_9->resultsssb_cell){ + node_4_10 = node_4_9->resultscsi_rs_cell; + if(node_4_9->resultscsi_rs_cell){ if(node_4_10->rsrq){ - sgnb_addreq_for_ue_mn_serv_ssb->rsrq = node_4_10->rsrq->value; + sgnb_addreq_for_ue_sn_serv_csi_rs->rsrq = node_4_10->rsrq->value; }else{ - sgnb_addreq_for_ue_mn_serv_ssb->rsrq = 128; + sgnb_addreq_for_ue_sn_serv_csi_rs->rsrq = 128; } if(node_4_10->rsrp){ - sgnb_addreq_for_ue_mn_serv_ssb->rsrp = node_4_10->rsrp->value; + sgnb_addreq_for_ue_sn_serv_csi_rs->rsrp = node_4_10->rsrp->value; }else{ - sgnb_addreq_for_ue_mn_serv_ssb->rsrp = 128; + sgnb_addreq_for_ue_sn_serv_csi_rs->rsrp = 128; } if(node_4_10->sinr){ - sgnb_addreq_for_ue_mn_serv_ssb->sinr = node_4_10->sinr->value; + sgnb_addreq_for_ue_sn_serv_csi_rs->sinr = node_4_10->sinr->value; }else{ - sgnb_addreq_for_ue_mn_serv_ssb->sinr = 128; + sgnb_addreq_for_ue_sn_serv_csi_rs->sinr = 128; } rts_fta_process_packet(&cur_packet); } @@ -2573,22 +2690,24 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json - sgnb_addreq_for_ue_mn_serv_csi_rs = (struct _sgnb_addreq_for_ue_mn_serv_csi_rs *)(cur_packet.record.packed.values); - cur_packet.schema = 406; + sgnb_addreq_for_ue_mn_serv_ssb = (struct _sgnb_addreq_for_ue_mn_serv_ssb *)(cur_packet.record.packed.values); + cur_packet.schema = 405; node_5_0 = node_4_0; - sgnb_addreq_for_ue_mn_serv_csi_rs->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_mn_serv_ssb->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) - sgnb_addreq_for_ue_mn_serv_csi_rs->gnb_id = empty_string; + sgnb_addreq_for_ue_mn_serv_ssb->gnb_id = empty_string; else - sgnb_addreq_for_ue_mn_serv_csi_rs->gnb_id = hdr->header->gnbid->value; + sgnb_addreq_for_ue_mn_serv_ssb->gnb_id = hdr->header->gnbid->value; node_5_1 = node_5_0->protocolies; if(node_5_0->protocolies){ - sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID = node_5_1->id_menb_ue_x2ap_id; + sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID = node_5_1->id_menb_ue_x2ap_id; if(node_5_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_5_1->id_menb_ue_x2ap_id_extension->value; + sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = node_5_1->id_menb_ue_x2ap_id_extension->value; }else{ - sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0; + sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; } node_5_2 = node_5_1->id_menbtosgnbcontainer; if(node_5_1->id_menbtosgnbcontainer){ @@ -2603,31 +2722,31 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu node_5_7 = node_5_6->measresultservingcell; if(node_5_6->measresultservingcell){ if(node_5_7->physcellid){ - sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId = node_5_7->physcellid->value; - sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId_exists = 1; + sgnb_addreq_for_ue_mn_serv_ssb->physCellId = node_5_7->physcellid->value; + sgnb_addreq_for_ue_mn_serv_ssb->physCellId_exists = 1; }else{ - sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId_exists = 0; + sgnb_addreq_for_ue_mn_serv_ssb->physCellId_exists = 0; } node_5_8 = node_5_7->measresult; if(node_5_7->measresult){ node_5_9 = node_5_8->cellresults; if(node_5_8->cellresults){ - node_5_10 = node_5_9->resultscsi_rs_cell; - if(node_5_9->resultscsi_rs_cell){ + node_5_10 = node_5_9->resultsssb_cell; + if(node_5_9->resultsssb_cell){ if(node_5_10->rsrq){ - sgnb_addreq_for_ue_mn_serv_csi_rs->rsrq = node_5_10->rsrq->value; + sgnb_addreq_for_ue_mn_serv_ssb->rsrq = node_5_10->rsrq->value; }else{ - sgnb_addreq_for_ue_mn_serv_csi_rs->rsrq = 128; + sgnb_addreq_for_ue_mn_serv_ssb->rsrq = 128; } if(node_5_10->rsrp){ - sgnb_addreq_for_ue_mn_serv_csi_rs->rsrp = node_5_10->rsrp->value; + sgnb_addreq_for_ue_mn_serv_ssb->rsrp = node_5_10->rsrp->value; }else{ - sgnb_addreq_for_ue_mn_serv_csi_rs->rsrp = 128; + sgnb_addreq_for_ue_mn_serv_ssb->rsrp = 128; } if(node_5_10->sinr){ - sgnb_addreq_for_ue_mn_serv_csi_rs->sinr = node_5_10->sinr->value; + sgnb_addreq_for_ue_mn_serv_ssb->sinr = node_5_10->sinr->value; }else{ - sgnb_addreq_for_ue_mn_serv_csi_rs->sinr = 128; + sgnb_addreq_for_ue_mn_serv_ssb->sinr = 128; } rts_fta_process_packet(&cur_packet); } @@ -2643,22 +2762,24 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json - sgnb_addreq_for_ue_sn_neigh_ssb = (struct _sgnb_addreq_for_ue_sn_neigh_ssb *)(cur_packet.record.packed.values); - cur_packet.schema = 408; + sgnb_addreq_for_ue_mn_serv_csi_rs = (struct _sgnb_addreq_for_ue_mn_serv_csi_rs *)(cur_packet.record.packed.values); + cur_packet.schema = 406; node_6_0 = node_5_0; - sgnb_addreq_for_ue_sn_neigh_ssb->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_mn_serv_csi_rs->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) - sgnb_addreq_for_ue_sn_neigh_ssb->gnb_id = empty_string; + sgnb_addreq_for_ue_mn_serv_csi_rs->gnb_id = empty_string; else - sgnb_addreq_for_ue_sn_neigh_ssb->gnb_id = hdr->header->gnbid->value; + sgnb_addreq_for_ue_mn_serv_csi_rs->gnb_id = hdr->header->gnbid->value; node_6_1 = node_6_0->protocolies; if(node_6_0->protocolies){ - sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID = node_6_1->id_menb_ue_x2ap_id; + sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID = node_6_1->id_menb_ue_x2ap_id; if(node_6_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = node_6_1->id_menb_ue_x2ap_id_extension->value; + sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_6_1->id_menb_ue_x2ap_id_extension->value; }else{ - sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; + sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0; } node_6_2 = node_6_1->id_menbtosgnbcontainer; if(node_6_1->id_menbtosgnbcontainer){ @@ -2666,43 +2787,40 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu if(node_6_2->criticalextensionschoice1){ node_6_4 = node_6_3->protocolies; if(node_6_3->protocolies){ - node_6_5 = node_6_4->candidatecellinfolistsn; - if(node_6_4->candidatecellinfolistsn){ + node_6_5 = node_6_4->candidatecellinfolistmn; + if(node_6_4->candidatecellinfolistmn){ for(i_6_6=0;i_6_6n_items; i_6_6++){ node_6_6 = node_6_5->items[i_6_6]; - node_6_7 = node_6_6->measresultneighcelllistnr; - if(node_6_6->measresultneighcelllistnr){ - for(i_6_8=0;i_6_8n_items; i_6_8++){ - node_6_8 = node_6_7->items[i_6_8]; - if(node_6_8->physcellid){ - sgnb_addreq_for_ue_sn_neigh_ssb->physCellId = node_6_8->physcellid->value; - sgnb_addreq_for_ue_sn_neigh_ssb->physCellId_exists = 1; - }else{ - sgnb_addreq_for_ue_sn_neigh_ssb->physCellId_exists = 0; - } - node_6_9 = node_6_8->measresult; - if(node_6_8->measresult){ - node_6_10 = node_6_9->cellresults; - if(node_6_9->cellresults){ - node_6_11 = node_6_10->resultsssb_cell; - if(node_6_10->resultsssb_cell){ - if(node_6_11->rsrq){ - sgnb_addreq_for_ue_sn_neigh_ssb->rsrq = node_6_11->rsrq->value; - }else{ - sgnb_addreq_for_ue_sn_neigh_ssb->rsrq = 128; - } - if(node_6_11->rsrp){ - sgnb_addreq_for_ue_sn_neigh_ssb->rsrp = node_6_11->rsrp->value; - }else{ - sgnb_addreq_for_ue_sn_neigh_ssb->rsrp = 128; - } - if(node_6_11->sinr){ - sgnb_addreq_for_ue_sn_neigh_ssb->sinr = node_6_11->sinr->value; - }else{ - sgnb_addreq_for_ue_sn_neigh_ssb->sinr = 128; - } - rts_fta_process_packet(&cur_packet); + node_6_7 = node_6_6->measresultservingcell; + if(node_6_6->measresultservingcell){ + if(node_6_7->physcellid){ + sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId = node_6_7->physcellid->value; + sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId_exists = 1; + }else{ + sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId_exists = 0; + } + node_6_8 = node_6_7->measresult; + if(node_6_7->measresult){ + node_6_9 = node_6_8->cellresults; + if(node_6_8->cellresults){ + node_6_10 = node_6_9->resultscsi_rs_cell; + if(node_6_9->resultscsi_rs_cell){ + if(node_6_10->rsrq){ + sgnb_addreq_for_ue_mn_serv_csi_rs->rsrq = node_6_10->rsrq->value; + }else{ + sgnb_addreq_for_ue_mn_serv_csi_rs->rsrq = 128; + } + if(node_6_10->rsrp){ + sgnb_addreq_for_ue_mn_serv_csi_rs->rsrp = node_6_10->rsrp->value; + }else{ + sgnb_addreq_for_ue_mn_serv_csi_rs->rsrp = 128; + } + if(node_6_10->sinr){ + sgnb_addreq_for_ue_mn_serv_csi_rs->sinr = node_6_10->sinr->value; + }else{ + sgnb_addreq_for_ue_mn_serv_csi_rs->sinr = 128; } + rts_fta_process_packet(&cur_packet); } } } @@ -2716,22 +2834,24 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json - sgnb_addreq_for_ue_sn_neigh_csi_rs = (struct _sgnb_addreq_for_ue_sn_neigh_csi_rs *)(cur_packet.record.packed.values); - cur_packet.schema = 409; + sgnb_addreq_for_ue_sn_neigh_ssb = (struct _sgnb_addreq_for_ue_sn_neigh_ssb *)(cur_packet.record.packed.values); + cur_packet.schema = 408; node_7_0 = node_6_0; - sgnb_addreq_for_ue_sn_neigh_csi_rs->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_sn_neigh_ssb->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) - sgnb_addreq_for_ue_sn_neigh_csi_rs->gnb_id = empty_string; + sgnb_addreq_for_ue_sn_neigh_ssb->gnb_id = empty_string; else - sgnb_addreq_for_ue_sn_neigh_csi_rs->gnb_id = hdr->header->gnbid->value; + sgnb_addreq_for_ue_sn_neigh_ssb->gnb_id = hdr->header->gnbid->value; node_7_1 = node_7_0->protocolies; if(node_7_0->protocolies){ - sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID = node_7_1->id_menb_ue_x2ap_id; + sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID = node_7_1->id_menb_ue_x2ap_id; if(node_7_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_7_1->id_menb_ue_x2ap_id_extension->value; + sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = node_7_1->id_menb_ue_x2ap_id_extension->value; }else{ - sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0; + sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; } node_7_2 = node_7_1->id_menbtosgnbcontainer; if(node_7_1->id_menbtosgnbcontainer){ @@ -2748,31 +2868,31 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu for(i_7_8=0;i_7_8n_items; i_7_8++){ node_7_8 = node_7_7->items[i_7_8]; if(node_7_8->physcellid){ - sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId = node_7_8->physcellid->value; - sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId_exists = 1; + sgnb_addreq_for_ue_sn_neigh_ssb->physCellId = node_7_8->physcellid->value; + sgnb_addreq_for_ue_sn_neigh_ssb->physCellId_exists = 1; }else{ - sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId_exists = 0; + sgnb_addreq_for_ue_sn_neigh_ssb->physCellId_exists = 0; } node_7_9 = node_7_8->measresult; if(node_7_8->measresult){ node_7_10 = node_7_9->cellresults; if(node_7_9->cellresults){ - node_7_11 = node_7_10->resultscsi_rs_cell; - if(node_7_10->resultscsi_rs_cell){ + node_7_11 = node_7_10->resultsssb_cell; + if(node_7_10->resultsssb_cell){ if(node_7_11->rsrq){ - sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrq = node_7_11->rsrq->value; + sgnb_addreq_for_ue_sn_neigh_ssb->rsrq = node_7_11->rsrq->value; }else{ - sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrq = 128; + sgnb_addreq_for_ue_sn_neigh_ssb->rsrq = 128; } if(node_7_11->rsrp){ - sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrp = node_7_11->rsrp->value; + sgnb_addreq_for_ue_sn_neigh_ssb->rsrp = node_7_11->rsrp->value; }else{ - sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrp = 128; + sgnb_addreq_for_ue_sn_neigh_ssb->rsrp = 128; } if(node_7_11->sinr){ - sgnb_addreq_for_ue_sn_neigh_csi_rs->sinr = node_7_11->sinr->value; + sgnb_addreq_for_ue_sn_neigh_ssb->sinr = node_7_11->sinr->value; }else{ - sgnb_addreq_for_ue_sn_neigh_csi_rs->sinr = 128; + sgnb_addreq_for_ue_sn_neigh_ssb->sinr = 128; } rts_fta_process_packet(&cur_packet); } @@ -2789,22 +2909,24 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json - sgnb_addreq_for_ue_mn_neigh_ssb = (struct _sgnb_addreq_for_ue_mn_neigh_ssb *)(cur_packet.record.packed.values); - cur_packet.schema = 410; + sgnb_addreq_for_ue_sn_neigh_csi_rs = (struct _sgnb_addreq_for_ue_sn_neigh_csi_rs *)(cur_packet.record.packed.values); + cur_packet.schema = 409; node_8_0 = node_7_0; - sgnb_addreq_for_ue_mn_neigh_ssb->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_sn_neigh_csi_rs->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) - sgnb_addreq_for_ue_mn_neigh_ssb->gnb_id = empty_string; + sgnb_addreq_for_ue_sn_neigh_csi_rs->gnb_id = empty_string; else - sgnb_addreq_for_ue_mn_neigh_ssb->gnb_id = hdr->header->gnbid->value; + sgnb_addreq_for_ue_sn_neigh_csi_rs->gnb_id = hdr->header->gnbid->value; node_8_1 = node_8_0->protocolies; if(node_8_0->protocolies){ - sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID = node_8_1->id_menb_ue_x2ap_id; + sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID = node_8_1->id_menb_ue_x2ap_id; if(node_8_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = node_8_1->id_menb_ue_x2ap_id_extension->value; + sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_8_1->id_menb_ue_x2ap_id_extension->value; }else{ - sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; + sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0; } node_8_2 = node_8_1->id_menbtosgnbcontainer; if(node_8_1->id_menbtosgnbcontainer){ @@ -2812,8 +2934,8 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu if(node_8_2->criticalextensionschoice1){ node_8_4 = node_8_3->protocolies; if(node_8_3->protocolies){ - node_8_5 = node_8_4->candidatecellinfolistmn; - if(node_8_4->candidatecellinfolistmn){ + node_8_5 = node_8_4->candidatecellinfolistsn; + if(node_8_4->candidatecellinfolistsn){ for(i_8_6=0;i_8_6n_items; i_8_6++){ node_8_6 = node_8_5->items[i_8_6]; node_8_7 = node_8_6->measresultneighcelllistnr; @@ -2821,31 +2943,31 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu for(i_8_8=0;i_8_8n_items; i_8_8++){ node_8_8 = node_8_7->items[i_8_8]; if(node_8_8->physcellid){ - sgnb_addreq_for_ue_mn_neigh_ssb->physCellId = node_8_8->physcellid->value; - sgnb_addreq_for_ue_mn_neigh_ssb->physCellId_exists = 1; + sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId = node_8_8->physcellid->value; + sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId_exists = 1; }else{ - sgnb_addreq_for_ue_mn_neigh_ssb->physCellId_exists = 0; + sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId_exists = 0; } node_8_9 = node_8_8->measresult; if(node_8_8->measresult){ node_8_10 = node_8_9->cellresults; if(node_8_9->cellresults){ - node_8_11 = node_8_10->resultsssb_cell; - if(node_8_10->resultsssb_cell){ + node_8_11 = node_8_10->resultscsi_rs_cell; + if(node_8_10->resultscsi_rs_cell){ if(node_8_11->rsrq){ - sgnb_addreq_for_ue_mn_neigh_ssb->rsrq = node_8_11->rsrq->value; + sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrq = node_8_11->rsrq->value; }else{ - sgnb_addreq_for_ue_mn_neigh_ssb->rsrq = 128; + sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrq = 128; } if(node_8_11->rsrp){ - sgnb_addreq_for_ue_mn_neigh_ssb->rsrp = node_8_11->rsrp->value; + sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrp = node_8_11->rsrp->value; }else{ - sgnb_addreq_for_ue_mn_neigh_ssb->rsrp = 128; + sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrp = 128; } if(node_8_11->sinr){ - sgnb_addreq_for_ue_mn_neigh_ssb->sinr = node_8_11->sinr->value; + sgnb_addreq_for_ue_sn_neigh_csi_rs->sinr = node_8_11->sinr->value; }else{ - sgnb_addreq_for_ue_mn_neigh_ssb->sinr = 128; + sgnb_addreq_for_ue_sn_neigh_csi_rs->sinr = 128; } rts_fta_process_packet(&cur_packet); } @@ -2862,22 +2984,24 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu // -------------------------------------------------- // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json - sgnb_addreq_for_ue_mn_neigh_csi_rs = (struct _sgnb_addreq_for_ue_mn_neigh_csi_rs *)(cur_packet.record.packed.values); - cur_packet.schema = 411; + sgnb_addreq_for_ue_mn_neigh_ssb = (struct _sgnb_addreq_for_ue_mn_neigh_ssb *)(cur_packet.record.packed.values); + cur_packet.schema = 410; node_9_0 = node_8_0; - sgnb_addreq_for_ue_mn_neigh_csi_rs->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_mn_neigh_ssb->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) - sgnb_addreq_for_ue_mn_neigh_csi_rs->gnb_id = empty_string; + sgnb_addreq_for_ue_mn_neigh_ssb->gnb_id = empty_string; else - sgnb_addreq_for_ue_mn_neigh_csi_rs->gnb_id = hdr->header->gnbid->value; + sgnb_addreq_for_ue_mn_neigh_ssb->gnb_id = hdr->header->gnbid->value; node_9_1 = node_9_0->protocolies; if(node_9_0->protocolies){ - sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID = node_9_1->id_menb_ue_x2ap_id; + sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID = node_9_1->id_menb_ue_x2ap_id; if(node_9_1->id_menb_ue_x2ap_id_extension){ - sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_9_1->id_menb_ue_x2ap_id_extension->value; + sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = node_9_1->id_menb_ue_x2ap_id_extension->value; }else{ - sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0; + sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = 0; } node_9_2 = node_9_1->id_menbtosgnbcontainer; if(node_9_1->id_menbtosgnbcontainer){ @@ -2894,29 +3018,104 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu for(i_9_8=0;i_9_8n_items; i_9_8++){ node_9_8 = node_9_7->items[i_9_8]; if(node_9_8->physcellid){ - sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId = node_9_8->physcellid->value; - sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId_exists = 1; + sgnb_addreq_for_ue_mn_neigh_ssb->physCellId = node_9_8->physcellid->value; + sgnb_addreq_for_ue_mn_neigh_ssb->physCellId_exists = 1; }else{ - sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId_exists = 0; + sgnb_addreq_for_ue_mn_neigh_ssb->physCellId_exists = 0; } node_9_9 = node_9_8->measresult; if(node_9_8->measresult){ node_9_10 = node_9_9->cellresults; if(node_9_9->cellresults){ - node_9_11 = node_9_10->resultscsi_rs_cell; - if(node_9_10->resultscsi_rs_cell){ + node_9_11 = node_9_10->resultsssb_cell; + if(node_9_10->resultsssb_cell){ if(node_9_11->rsrq){ - sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrq = node_9_11->rsrq->value; + sgnb_addreq_for_ue_mn_neigh_ssb->rsrq = node_9_11->rsrq->value; }else{ - sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrq = 128; + sgnb_addreq_for_ue_mn_neigh_ssb->rsrq = 128; } if(node_9_11->rsrp){ - sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrp = node_9_11->rsrp->value; + sgnb_addreq_for_ue_mn_neigh_ssb->rsrp = node_9_11->rsrp->value; }else{ - sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrp = 128; + sgnb_addreq_for_ue_mn_neigh_ssb->rsrp = 128; } if(node_9_11->sinr){ - sgnb_addreq_for_ue_mn_neigh_csi_rs->sinr = node_9_11->sinr->value; + sgnb_addreq_for_ue_mn_neigh_ssb->sinr = node_9_11->sinr->value; + }else{ + sgnb_addreq_for_ue_mn_neigh_ssb->sinr = 128; + } + rts_fta_process_packet(&cur_packet); + } + } + } + } + } + } + } + } + } + } + } +// -------------------------------------------------- +// --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json + + sgnb_addreq_for_ue_mn_neigh_csi_rs = (struct _sgnb_addreq_for_ue_mn_neigh_csi_rs *)(cur_packet.record.packed.values); + cur_packet.schema = 411; + node_10_0 = node_9_0; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_addreq_for_ue_mn_neigh_csi_rs->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); + if(hdr->header->gnbid==NULL) + sgnb_addreq_for_ue_mn_neigh_csi_rs->gnb_id = empty_string; + else + sgnb_addreq_for_ue_mn_neigh_csi_rs->gnb_id = hdr->header->gnbid->value; + + node_10_1 = node_10_0->protocolies; + if(node_10_0->protocolies){ + sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID = node_10_1->id_menb_ue_x2ap_id; + if(node_10_1->id_menb_ue_x2ap_id_extension){ + sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_10_1->id_menb_ue_x2ap_id_extension->value; + }else{ + sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0; + } + node_10_2 = node_10_1->id_menbtosgnbcontainer; + if(node_10_1->id_menbtosgnbcontainer){ + node_10_3 = node_10_2->criticalextensionschoice1; + if(node_10_2->criticalextensionschoice1){ + node_10_4 = node_10_3->protocolies; + if(node_10_3->protocolies){ + node_10_5 = node_10_4->candidatecellinfolistmn; + if(node_10_4->candidatecellinfolistmn){ + for(i_10_6=0;i_10_6n_items; i_10_6++){ + node_10_6 = node_10_5->items[i_10_6]; + node_10_7 = node_10_6->measresultneighcelllistnr; + if(node_10_6->measresultneighcelllistnr){ + for(i_10_8=0;i_10_8n_items; i_10_8++){ + node_10_8 = node_10_7->items[i_10_8]; + if(node_10_8->physcellid){ + sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId = node_10_8->physcellid->value; + sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId_exists = 1; + }else{ + sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId_exists = 0; + } + node_10_9 = node_10_8->measresult; + if(node_10_8->measresult){ + node_10_10 = node_10_9->cellresults; + if(node_10_9->cellresults){ + node_10_11 = node_10_10->resultscsi_rs_cell; + if(node_10_10->resultscsi_rs_cell){ + if(node_10_11->rsrq){ + sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrq = node_10_11->rsrq->value; + }else{ + sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrq = 128; + } + if(node_10_11->rsrp){ + sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrp = node_10_11->rsrp->value; + }else{ + sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrp = 128; + } + if(node_10_11->sinr){ + sgnb_addreq_for_ue_mn_neigh_csi_rs->sinr = node_10_11->sinr->value; }else{ sgnb_addreq_for_ue_mn_neigh_csi_rs->sinr = 128; } @@ -2932,18 +3131,19 @@ gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t bu } } } - uenibstreamprotobuf__sg_nbaddition_request__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbaddition_request__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNBMODCONF(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_modification_confirm.json, path sgnb_mod_confirm.json struct _sgnb_mod_conf *sgnb_mod_conf = NULL; - Uenibstreamprotobuf__SgNBModificationConfirm *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBModificationConfirmIEs *node_0_1 = NULL; + StreamingProtobufs__SgNBModificationConfirm *node_0_0 = NULL; + StreamingProtobufs__SgNBModificationConfirmIEs *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_modification_confirm.json, path sgnb_mod_confirm.json @@ -2951,14 +3151,16 @@ gs_uint32_t process_buffer_SGNBMODCONF(gs_uint8_t * buffer, gs_uint32_t buflen){ sgnb_mod_conf = (struct _sgnb_mod_conf *)(cur_packet.record.packed.values); cur_packet.schema = 1301; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbmodificationconfirm; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_mod_conf->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_mod_conf->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_mod_conf->gnb_id = empty_string; else @@ -2970,18 +3172,19 @@ gs_uint32_t process_buffer_SGNBMODCONF(gs_uint8_t * buffer, gs_uint32_t buflen){ sgnb_mod_conf->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id; rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbmodification_confirm__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbmodification_confirm__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNBMODREQ(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_modification_request.json, path sgnb_mod_req.json struct _sgnb_mod_req *sgnb_mod_req = NULL; - Uenibstreamprotobuf__SgNBModificationRequest *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBModificationRequestIEs *node_0_1 = NULL; + StreamingProtobufs__SgNBModificationRequest *node_0_0 = NULL; + StreamingProtobufs__SgNBModificationRequestIEs *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_modification_request.json, path sgnb_mod_req.json @@ -2989,14 +3192,16 @@ gs_uint32_t process_buffer_SGNBMODREQ(gs_uint8_t * buffer, gs_uint32_t buflen){ sgnb_mod_req = (struct _sgnb_mod_req *)(cur_packet.record.packed.values); cur_packet.schema = 1201; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbmodificationrequest; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_mod_req->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_mod_req->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_mod_req->gnb_id = empty_string; else @@ -3033,18 +3238,19 @@ gs_uint32_t process_buffer_SGNBMODREQ(gs_uint8_t * buffer, gs_uint32_t buflen){ } rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbmodification_request__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbmodification_request__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNBMODREQACK(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_modification_request_acknowledge.json, path sgnb_mod_req_ack.json struct _sgnb_mod_req_ack *sgnb_mod_req_ack = NULL; - Uenibstreamprotobuf__SgNBModificationRequestAcknowledge *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBModificationRequestAcknowledgeIEs *node_0_1 = NULL; + StreamingProtobufs__SgNBModificationRequestAcknowledge *node_0_0 = NULL; + StreamingProtobufs__SgNBModificationRequestAcknowledgeIEs *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_modification_request_acknowledge.json, path sgnb_mod_req_ack.json @@ -3052,14 +3258,16 @@ gs_uint32_t process_buffer_SGNBMODREQACK(gs_uint8_t * buffer, gs_uint32_t buflen sgnb_mod_req_ack = (struct _sgnb_mod_req_ack *)(cur_packet.record.packed.values); cur_packet.schema = 1701; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbmodificationrequestacknowledge; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_mod_req_ack->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_mod_req_ack->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_mod_req_ack->gnb_id = empty_string; else @@ -3071,18 +3279,19 @@ gs_uint32_t process_buffer_SGNBMODREQACK(gs_uint8_t * buffer, gs_uint32_t buflen sgnb_mod_req_ack->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id; rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbmodification_request_acknowledge__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbmodification_request_acknowledge__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNBMODREQREJECT(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_modification_request_reject.json, path sgnb_mod_req_reject.json struct _sgnb_mod_req_reject *sgnb_mod_req_reject = NULL; - Uenibstreamprotobuf__SgNBModificationRequestReject *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBModificationRequestRejectIEs *node_0_1 = NULL; + StreamingProtobufs__SgNBModificationRequestReject *node_0_0 = NULL; + StreamingProtobufs__SgNBModificationRequestRejectIEs *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_modification_request_reject.json, path sgnb_mod_req_reject.json @@ -3090,14 +3299,16 @@ gs_uint32_t process_buffer_SGNBMODREQREJECT(gs_uint8_t * buffer, gs_uint32_t buf sgnb_mod_req_reject = (struct _sgnb_mod_req_reject *)(cur_packet.record.packed.values); cur_packet.schema = 1801; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbmodificationrequestreject; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_mod_req_reject->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_mod_req_reject->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_mod_req_reject->gnb_id = empty_string; else @@ -3129,18 +3340,19 @@ gs_uint32_t process_buffer_SGNBMODREQREJECT(gs_uint8_t * buffer, gs_uint32_t buf } rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbmodification_request_reject__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbmodification_request_reject__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNBMODREQUIRED(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_modification_required.json, path sgnb_mod_rqd.json struct _sgnb_mod_required *sgnb_mod_required = NULL; - Uenibstreamprotobuf__SgNBModificationRequired *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBModificationRequiredIEs *node_0_1 = NULL; + StreamingProtobufs__SgNBModificationRequired *node_0_0 = NULL; + StreamingProtobufs__SgNBModificationRequiredIEs *node_0_1 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_modification_required.json, path sgnb_mod_rqd.json @@ -3148,14 +3360,16 @@ gs_uint32_t process_buffer_SGNBMODREQUIRED(gs_uint8_t * buffer, gs_uint32_t bufl sgnb_mod_required = (struct _sgnb_mod_required *)(cur_packet.record.packed.values); cur_packet.schema = 1901; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbmodificationrequired; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_mod_required->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_mod_required->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_mod_required->gnb_id = empty_string; else @@ -3187,19 +3401,20 @@ gs_uint32_t process_buffer_SGNBMODREQUIRED(gs_uint8_t * buffer, gs_uint32_t bufl } rts_fta_process_packet(&cur_packet); } - uenibstreamprotobuf__sg_nbmodification_required__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbmodification_required__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SGNBMODREFUSE(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sgnb_modification_refuse.json, path sgnb_modification_refuse.json struct _sgnb_mod_refuse *sgnb_mod_refuse = NULL; - Uenibstreamprotobuf__SgNBModificationRefuse *node_0_0 = NULL; - Uenibstreamprotobuf__SgNBModificationRefuseIEs *node_0_1 = NULL; - Uenibstreamprotobuf__Cause *node_0_2 = NULL; + StreamingProtobufs__SgNBModificationRefuse *node_0_0 = NULL; + StreamingProtobufs__SgNBModificationRefuseIEs *node_0_1 = NULL; + StreamingProtobufs__Cause *node_0_2 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sgnb_modification_refuse.json, path sgnb_modification_refuse.json @@ -3207,14 +3422,16 @@ gs_uint32_t process_buffer_SGNBMODREFUSE(gs_uint8_t * buffer, gs_uint32_t buflen sgnb_mod_refuse = (struct _sgnb_mod_refuse *)(cur_packet.record.packed.values); cur_packet.schema = 1401; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->sgnbmodificationrefuse; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sgnb_mod_refuse->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sgnb_mod_refuse->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sgnb_mod_refuse->gnb_id = empty_string; else @@ -3249,25 +3466,26 @@ gs_uint32_t process_buffer_SGNBMODREFUSE(gs_uint8_t * buffer, gs_uint32_t buflen rts_fta_process_packet(&cur_packet); } } - uenibstreamprotobuf__sg_nbmodification_refuse__free_unpacked(node_0_0,NULL); + streaming_protobufs__sg_nbmodification_refuse__free_unpacked(node_0_0,NULL); return 0; } gs_uint32_t process_buffer_SNSTATUSXFER(gs_uint8_t * buffer, gs_uint32_t buflen){ char *empty_string = ""; - Uenibstreamprotobuf__X2APStreaming *hdr = NULL; +unsigned long long int ts_lo, ts_hi; + StreamingProtobufs__X2APStreaming *hdr = NULL; // ------------------------------------------ // --- Variables for .proto sn_status_transfer.json, path snstatusxfer.json struct _sn_status_transfer *sn_status_transfer = NULL; - Uenibstreamprotobuf__SNStatusTransfer *node_0_0 = NULL; - Uenibstreamprotobuf__SNStatusTransferIEs *node_0_1 = NULL; - Uenibstreamprotobuf__ERABsSubjectToStatusTransferList *node_0_2 = NULL; - Uenibstreamprotobuf__ERABsSubjectToStatusTransferItemIEs *node_0_3 = NULL; + StreamingProtobufs__SNStatusTransfer *node_0_0 = NULL; + StreamingProtobufs__SNStatusTransferIEs *node_0_1 = NULL; + StreamingProtobufs__ERABsSubjectToStatusTransferList *node_0_2 = NULL; + StreamingProtobufs__ERABsSubjectToStatusTransferItemIEs *node_0_3 = NULL; gs_uint32_t i_0_3; - Uenibstreamprotobuf__ERABsSubjectToStatusTransferItem *node_0_4 = NULL; - Uenibstreamprotobuf__ERABsSubjectToStatusTransferItemExtIEs *node_0_5 = NULL; + StreamingProtobufs__ERABsSubjectToStatusTransferItem *node_0_4 = NULL; + StreamingProtobufs__ERABsSubjectToStatusTransferItemExtIEs *node_0_5 = NULL; gs_uint32_t i_0_5; - Uenibstreamprotobuf__COUNTvaluePDCPSNlength18 *node_0_6 = NULL; + StreamingProtobufs__COUNTvaluePDCPSNlength18 *node_0_6 = NULL; // -------------------------------------------------- // --- Specialized processing for .proto sn_status_transfer.json, path snstatusxfer.json @@ -3275,14 +3493,16 @@ gs_uint32_t process_buffer_SNSTATUSXFER(gs_uint8_t * buffer, gs_uint32_t buflen) sn_status_transfer = (struct _sn_status_transfer *)(cur_packet.record.packed.values); cur_packet.schema = 1601; - hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer); + hdr = streaming_protobufs__x2_apstreaming__unpack(NULL, buflen, buffer); if(hdr==NULL) return -1; node_0_0 = hdr->snstatustransfer; if(node_0_0==NULL) return -2; if(hdr->header==NULL) return -3; - sn_status_transfer->timestamp_ms = timestamp; + ts_lo = hdr->header->timestamp & 0xffffffff; + ts_hi = hdr->header->timestamp >> 32; + sn_status_transfer->timestamp_ms = (ts_hi - 2208988800) * 1000 + ((ts_lo * 1000) >> 32); if(hdr->header->gnbid==NULL) sn_status_transfer->gnb_id = empty_string; else @@ -3315,7 +3535,7 @@ gs_uint32_t process_buffer_SNSTATUSXFER(gs_uint8_t * buffer, gs_uint32_t buflen) } } } - uenibstreamprotobuf__snstatus_transfer__free_unpacked(node_0_0,NULL); + streaming_protobufs__snstatus_transfer__free_unpacked(node_0_0,NULL); return 0; } @@ -3366,7 +3586,7 @@ static gs_uint32_t gs_read_buffer(gs_uint8_t * buffer, gs_uint32_t length){ while(used < length) { if ((cur=read(socket_desc,&(buffer[used]),length-used))<=0) { - print_error("ERROR:could not read data from gdat stream"); + print_error("ERROR:could not read data from PROTO stream"); return -2; } used+=cur; @@ -3408,8 +3628,32 @@ static void init_socket() { } +int read_fifo(struct pollfd* pfd, char* buffer, size_t len, time_t timeout) { + int i, bytes_read = 0; + while (bytes_read < len) { + if (poll(pfd, 1, timeout)) { + if (pfd->revents & POLLIN) { + while ((i = read(pfd->fd,buffer+bytes_read,len-bytes_read))==-1 && errno==EINTR); + if (i <= 0) { + break; // writer closed fifo or error + } else { + bytes_read += i; + } + } else + break; // writer closed fifo + } + if (!bytes_read) + return -1; // timeout + } + return bytes_read; +} + // proceed to the next file static void next_file() { + int open_flag = O_RDONLY; + if (fifo) + open_flag |= O_NONBLOCK; + struct stat s; if (verbose) { fprintf(stderr,"Opening %s\n",name); @@ -3422,13 +3666,17 @@ static void next_file() { dproto_replay_check_messages(); usleep(10000); } - if (pd!=0) { - fclose(pd); - } - if ((pd=fopen(name,"r"))==0) { + if (fd > 0) { + close(fd); + } + if ((fd=open(name,open_flag)) <= 0) { print_error("dproto::open failed "); exit(10); } + // setup polling for this file descriptor + pfd.fd = fd; + pfd.events = POLLIN; + if (singlefile==0) { unlink(name); } @@ -3441,6 +3689,7 @@ static gs_retval_t dproto_replay_init(gs_sp_t device) { gs_sp_t gshubtmp; gs_sp_t tempdel; gs_sp_t singlefiletmp; + gs_sp_t fifotmp; if ((name=get_iface_properties(device,"filename"))==0) { print_error("dproto_init::No protobuf \"Filename\" defined"); @@ -3465,6 +3714,16 @@ static gs_retval_t dproto_replay_init(gs_sp_t device) { fprintf(stderr,"SINGLEFILE DISABLED\n"); } } + if ((fifotmp=get_iface_properties(device,"fifo"))!=0) { + if (strncmp(fifotmp,"TRUE",4)==0) { + fifo=1; + if (verbose) + fprintf(stderr,"FIFO ENABLED\n"); + } else { + if (verbose) + fprintf(stderr,"FIFO DISABLED\n"); + } + } if ((delaytmp=get_iface_properties(device,"startupdelay"))!=0) { if (verbose) { @@ -3474,7 +3733,7 @@ static gs_retval_t dproto_replay_init(gs_sp_t device) { } if ((gshubtmp=get_iface_properties(device,"gshub"))!=0) { if (verbose) { - fprintf(stderr,"GDAT format using gshub\n"); + fprintf(stderr,"PROTO format using gshub\n"); } gshub=1; } @@ -3497,11 +3756,8 @@ static gs_retval_t dproto_read_socket() char *timestamp_s; if((ret=gs_read_buffer(line,28))<0) { return ret;} - pkg_len_s = line+4; - timestamp_s = line+12; pkg_len = atoi(pkg_len_s); - timestamp = atoll(timestamp_s); if((ret=gs_read_buffer(line,pkg_len))<0) { return ret;} @@ -3515,7 +3771,7 @@ static gs_retval_t dproto_read_socket() } // read one message from a file -static void dproto_read_tuple(){ +static gs_retval_t dproto_read_tuple(){ gs_uint32_t retlen=0; gs_uint32_t done=0; gs_uint32_t pkg_len=0; @@ -3524,16 +3780,19 @@ static void dproto_read_tuple(){ char *timestamp_s; gs_retval_t ret; - if (pd==0) next_file(); + if (fd==-1) next_file(); + + retlen = read_fifo(&pfd, line, 28, 10); // use 10ms timeout - retlen = fread(line, sizeof(char), 28, pd); if(retlen==0){ eof=1; - }else{ + }else if(retlen==-1) { + return -1; // -1 indicates a timeout + }else if(retlen == 28) { pkg_len_s = line+4; timestamp_s = line+12; pkg_len = atoi(pkg_len_s); - timestamp = atoll(timestamp_s); + if(pkg_len >= MAXLINE){ // TODO be more graceful here, but a large pkg_len likely indicates // a garbaged file. @@ -3542,7 +3801,8 @@ static void dproto_read_tuple(){ exit(10); } - retlen = fread(line, sizeof(char), pkg_len, pd); + // once we received header we will wait for the main message indefinetly + retlen = read_fifo(&pfd, line, pkg_len, -1); if(retlen