3 ==============================================================================
5 Copyright (c) 2018-2019 AT&T Intellectual Property.
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
11 http://www.apache.org/licenses/LICENSE-2.0
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18 =============================================================================
29 #include <sys/types.h>
30 #include <sys/socket.h>
31 #include <netinet/in.h>
42 #include "schemaparser.h"
45 void rts_fta_process_packet(struct packet * p);
47 void fta_init(gs_sp_t device);
49 gs_uint32_t (*process_buffer)(gs_uint8_t * buffer, gs_uint32_t buflen) = NULL; // set at initialization
51 #define MAXLINE 1000000
54 static int listensockfd=-1;
56 static struct packet cur_packet;
57 static gs_sp_t name, this_device;
58 static gs_uint32_t verbose=0;
59 static gs_uint32_t startupdelay=0;
60 static gs_uint32_t singlefile=0;
61 static gs_uint32_t gshub=0;
62 static int socket_desc=0;
64 static gs_uint8_t line[MAXLINE];
65 static gs_uint32_t lineend=0;
66 static unsigned long long timestamp; // extract from input header
68 //---------------- Specialized proto parsing -----------
69 #include "x2ap_streaming.pb-c.h"
70 #include "ue_context_release.pb-c.h"
71 #include "lfta/local/dc_release.h"
72 #include "secondary_rat_data_usage_report.pb-c.h"
73 #include "lfta/local/rat_data_usage.h"
74 #include "sgnb_reconfiguration_complete.pb-c.h"
75 #include "lfta/local/reconfig_all.h"
76 #include "lfta/local/reconfig_success.h"
77 #include "lfta/local/reconfig_reject.h"
78 #include "sgnb_release_confirm.pb-c.h"
79 #include "lfta/local/sgnb_release_confirm_from_menb_erabs.h"
80 #include "lfta/local/sgnb_release_confirm_from_menb.h"
81 #include "sgnb_release_request.pb-c.h"
82 #include "lfta/local/release_req.h"
83 #include "sgnb_release_request_acknowledge.pb-c.h"
84 #include "lfta/local/release_req_ack.h"
85 #include "sgnb_release_required.pb-c.h"
86 #include "lfta/local/SgNB_release_rqd.h"
87 #include "rrctransfer.pb-c.h"
88 #include "lfta/local/serv_nr_cell.h"
89 #include "lfta/local/nr_neighbor.h"
90 #include "lfta/local/serv_cell_beam_csi.h"
91 #include "lfta/local/neighbor_beam_csi.h"
92 #include "lfta/local/serv_cell_beam_ssb.h"
93 #include "lfta/local/neighbor_beam_ssb.h"
94 #include "sgnb_addition_request_reject.pb-c.h"
95 #include "lfta/local/sgnb_add_req_reject.h"
96 #include "sgnb_addition_request_acknowledge.pb-c.h"
97 #include "lfta/local/eRABs_notadmitted_for_ue.h"
98 #include "lfta/local/eRABs_acked_for_admit_for_ue.h"
99 #include "lfta/local/SgNB_ack_for_ue_NRfreqs.h"
100 #include "lfta/local/SgNB_ack_for_add_mod_for_ue.h"
101 #include "lfta/local/SgNB_ack_for_ue_measurements.h"
102 #include "lfta/local/SgNB_ack_for_ue_beam_csi.h"
103 #include "lfta/local/SgNB_ack_for_ue_beam_ssb.h"
104 #include "sgnb_addition_request.pb-c.h"
105 #include "lfta/local/sgnb_addreq_for_ue.h"
106 #include "lfta/local/sgnb_addreq_for_ue_bearers.h"
107 #include "lfta/local/sgnb_addreq_for_ue_sn_serv_ssb.h"
108 #include "lfta/local/sgnb_addreq_for_ue_sn_serv_csi_rs.h"
109 #include "lfta/local/sgnb_addreq_for_ue_mn_serv_ssb.h"
110 #include "lfta/local/sgnb_addreq_for_ue_mn_serv_csi_rs.h"
111 #include "lfta/local/sgnb_addreq_for_ue_sn_neigh_ssb.h"
112 #include "lfta/local/sgnb_addreq_for_ue_sn_neigh_csi_rs.h"
113 #include "lfta/local/sgnb_addreq_for_ue_mn_neigh_ssb.h"
114 #include "lfta/local/sgnb_addreq_for_ue_mn_neigh_csi_rs.h"
115 #include "sgnb_modification_confirm.pb-c.h"
116 #include "lfta/local/sgnb_mod_conf.h"
117 #include "sgnb_modification_request.pb-c.h"
118 #include "lfta/local/sgnb_mod_req.h"
119 #include "sgnb_modification_request_acknowledge.pb-c.h"
120 #include "lfta/local/sgnb_mod_req_ack.h"
121 #include "sgnb_modification_request_reject.pb-c.h"
122 #include "lfta/local/sgnb_mod_req_reject.h"
123 #include "sgnb_modification_required.pb-c.h"
124 #include "lfta/local/sgnb_mod_required.h"
125 #include "sgnb_modification_refuse.pb-c.h"
126 #include "lfta/local/sgnb_mod_refuse.h"
127 #include "sn_status_transfer.pb-c.h"
128 #include "lfta/local/sn_status_transfer.h"
129 gs_uint32_t process_buffer_CONRELEASE(gs_uint8_t * buffer, gs_uint32_t buflen){
130 char *empty_string = "";
131 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
132 // ------------------------------------------
133 // --- Variables for .proto ue_context_release.json, path context_release.json
134 struct _dc_release *dc_release = NULL;
135 Uenibstreamprotobuf__UEContextRelease *node_0_0 = NULL;
137 // --------------------------------------------------
138 // --- Specialized processing for .proto ue_context_release.json, path context_release.json
140 dc_release = (struct _dc_release *)(cur_packet.record.packed.values);
141 cur_packet.schema = 201;
143 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
144 if(hdr==NULL) return -1;
146 node_0_0 = hdr->uecontextrelease;
147 if(node_0_0==NULL) return -2;
148 if(hdr->header==NULL) return -3;
150 dc_release->timestamp_ms = timestamp;
151 if(hdr->header->gnbid==NULL)
152 dc_release->gnb_id = empty_string;
154 dc_release->gnb_id = hdr->header->gnbid->value;
156 if(node_0_0->id_old_enb_ue_x2ap_id_extension){
157 dc_release->id_Old_eNB_UE_X2AP_ID_Extension = node_0_0->id_old_enb_ue_x2ap_id_extension->value;
159 dc_release->id_Old_eNB_UE_X2AP_ID_Extension = 0;
161 dc_release->id_New_eNB_UE_X2AP_ID = node_0_0->id_new_enb_ue_x2ap_id;
162 if(node_0_0->id_sgnb_ue_x2ap_id){
163 dc_release->id_SgNB_UE_X2AP_ID = node_0_0->id_sgnb_ue_x2ap_id->value;
165 dc_release->id_SgNB_UE_X2AP_ID = 0;
167 if(node_0_0->id_new_enb_ue_x2ap_id_extension){
168 dc_release->id_New_eNB_UE_X2AP_ID_Extension = node_0_0->id_new_enb_ue_x2ap_id_extension->value;
170 dc_release->id_New_eNB_UE_X2AP_ID_Extension = 0;
172 dc_release->id_Old_eNB_UE_X2AP_ID = node_0_0->id_old_enb_ue_x2ap_id;
173 rts_fta_process_packet(&cur_packet);
174 uenibstreamprotobuf__uecontext_release__free_unpacked(node_0_0,NULL);
178 gs_uint32_t process_buffer_RATDATAUSAGE(gs_uint8_t * buffer, gs_uint32_t buflen){
179 char *empty_string = "";
180 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
181 // ------------------------------------------
182 // --- Variables for .proto secondary_rat_data_usage_report.json, path rat_data_usage.json
183 struct _rat_data_usage *rat_data_usage = NULL;
184 Uenibstreamprotobuf__SecondaryRATDataUsageReport *node_0_0 = NULL;
185 Uenibstreamprotobuf__SecondaryRATDataUsageReportIEs *node_0_1 = NULL;
186 Uenibstreamprotobuf__SecondaryRATUsageReportList *node_0_2 = NULL;
187 Uenibstreamprotobuf__SecondaryRATUsageReportItemIEs *node_0_3 = NULL;
189 Uenibstreamprotobuf__SecondaryRATUsageReportItem *node_0_4 = NULL;
190 Uenibstreamprotobuf__ERABUsageReportList *node_0_5 = NULL;
191 Uenibstreamprotobuf__ERABUsageReportItemIEs *node_0_6 = NULL;
193 Uenibstreamprotobuf__ERABUsageReportItem *node_0_7 = NULL;
195 // --------------------------------------------------
196 // --- Specialized processing for .proto secondary_rat_data_usage_report.json, path rat_data_usage.json
198 rat_data_usage = (struct _rat_data_usage *)(cur_packet.record.packed.values);
199 cur_packet.schema = 1501;
201 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
202 if(hdr==NULL) return -1;
204 node_0_0 = hdr->secondaryratdatausagereport;
205 if(node_0_0==NULL) return -2;
206 if(hdr->header==NULL) return -3;
208 rat_data_usage->timestamp_ms = timestamp;
209 if(hdr->header->gnbid==NULL)
210 rat_data_usage->gnb_id = empty_string;
212 rat_data_usage->gnb_id = hdr->header->gnbid->value;
214 node_0_1 = node_0_0->protocolies;
215 if(node_0_0->protocolies){
216 rat_data_usage->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
217 rat_data_usage->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
218 if(node_0_1->id_menb_ue_x2ap_id_extension){
219 rat_data_usage->id_MeNB_UE_X2AP_ID_Extension = node_0_1->id_menb_ue_x2ap_id_extension->value;
221 rat_data_usage->id_MeNB_UE_X2AP_ID_Extension = 0;
223 node_0_2 = node_0_1->id_secondaryratusagereportlist;
224 if(node_0_1->id_secondaryratusagereportlist){
225 for(i_0_3=0;i_0_3<node_0_2->n_items; i_0_3++){
226 node_0_3 = node_0_2->items[i_0_3];
227 node_0_4 = node_0_3->id_secondaryratusagereport_item;
228 if(node_0_3->id_secondaryratusagereport_item){
229 rat_data_usage->e_RAB_ID = node_0_4->e_rab_id;
230 rat_data_usage->secondaryRATType = node_0_4->secondaryrattype;
231 node_0_5 = node_0_4->e_rabusagereportlist;
232 if(node_0_4->e_rabusagereportlist){
233 for(i_0_6=0;i_0_6<node_0_5->n_items; i_0_6++){
234 node_0_6 = node_0_5->items[i_0_6];
235 node_0_7 = node_0_6->id_e_rabusagereport_item;
236 if(node_0_6->id_e_rabusagereport_item){
237 rat_data_usage->startTimeStamp = node_0_7->starttimestamp;
238 rat_data_usage->endTimeStamp = node_0_7->endtimestamp;
239 rat_data_usage->usageCountDL = node_0_7->usagecountdl;
240 rts_fta_process_packet(&cur_packet);
248 uenibstreamprotobuf__secondary_ratdata_usage_report__free_unpacked(node_0_0,NULL);
252 gs_uint32_t process_buffer_RECONCOMPLETE(gs_uint8_t * buffer, gs_uint32_t buflen){
253 char *empty_string = "";
254 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
255 // ------------------------------------------
256 // --- Variables for .proto sgnb_reconfiguration_complete.json, path recon_complete.json
257 struct _reconfig_all *reconfig_all = NULL;
258 Uenibstreamprotobuf__SgNBReconfigurationComplete *node_0_0 = NULL;
259 // ------------------------------------------
260 // --- Variables for .proto sgnb_reconfiguration_complete.json, path recon_complete.json
261 struct _reconfig_success *reconfig_success = NULL;
262 Uenibstreamprotobuf__SgNBReconfigurationComplete *node_1_0 = NULL;
263 Uenibstreamprotobuf__ResponseInformationSgNBReconfComp *node_1_1 = NULL;
264 Uenibstreamprotobuf__ResponseInformationSgNBReconfCompRejectByMeNBItem *node_1_2 = NULL;
265 // ------------------------------------------
266 // --- Variables for .proto sgnb_reconfiguration_complete.json, path recon_complete.json
267 struct _reconfig_reject *reconfig_reject = NULL;
268 Uenibstreamprotobuf__SgNBReconfigurationComplete *node_2_0 = NULL;
269 Uenibstreamprotobuf__ResponseInformationSgNBReconfComp *node_2_1 = NULL;
270 Uenibstreamprotobuf__ResponseInformationSgNBReconfCompRejectByMeNBItem *node_2_2 = NULL;
272 // --------------------------------------------------
273 // --- Specialized processing for .proto sgnb_reconfiguration_complete.json, path recon_complete.json
275 reconfig_all = (struct _reconfig_all *)(cur_packet.record.packed.values);
276 cur_packet.schema = 103;
278 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
279 if(hdr==NULL) return -1;
281 node_0_0 = hdr->sgnbreconfigurationcomplete;
282 if(node_0_0==NULL) return -2;
283 if(hdr->header==NULL) return -3;
285 reconfig_all->timestamp_ms = timestamp;
286 if(hdr->header->gnbid==NULL)
287 reconfig_all->gnb_id = empty_string;
289 reconfig_all->gnb_id = hdr->header->gnbid->value;
291 reconfig_all->id_MeNB_UE_X2AP_ID = node_0_0->id_menb_ue_x2ap_id;
292 reconfig_all->id_SgNB_UE_X2AP_ID = node_0_0->id_sgnb_ue_x2ap_id;
293 if(node_0_0->id_menb_ue_x2ap_id_extension){
294 reconfig_all->id_MeNB_UE_X2AP_ID_Extension = node_0_0->id_menb_ue_x2ap_id_extension->value;
296 reconfig_all->id_MeNB_UE_X2AP_ID_Extension = 0;
298 rts_fta_process_packet(&cur_packet);
299 // --------------------------------------------------
300 // --- Specialized processing for .proto sgnb_reconfiguration_complete.json, path recon_complete.json
302 reconfig_success = (struct _reconfig_success *)(cur_packet.record.packed.values);
303 cur_packet.schema = 101;
305 reconfig_success->timestamp_ms = timestamp;
306 if(hdr->header->gnbid==NULL)
307 reconfig_success->gnb_id = empty_string;
309 reconfig_success->gnb_id = hdr->header->gnbid->value;
311 reconfig_success->id_MeNB_UE_X2AP_ID = node_1_0->id_menb_ue_x2ap_id;
312 reconfig_success->id_SgNB_UE_X2AP_ID = node_1_0->id_sgnb_ue_x2ap_id;
313 if(node_1_0->id_menb_ue_x2ap_id_extension){
314 reconfig_success->id_MeNB_UE_X2AP_ID_Extension = node_1_0->id_menb_ue_x2ap_id_extension->value;
316 reconfig_success->id_MeNB_UE_X2AP_ID_Extension = 0;
318 node_1_1 = node_1_0->id_responseinformationsgnbreconfcomp;
319 if(!(node_1_0->id_responseinformationsgnbreconfcomp)){
320 rts_fta_process_packet(&cur_packet);
322 node_1_2 = node_1_1->reject_by_menb_sgnbreconfcomp;
323 if(!(node_1_1->value_case == UENIBSTREAMPROTOBUF__RESPONSE_INFORMATION_SG_NBRECONF_COMP__VALUE_REJECT_BY__ME_NB__SG_NBRECONF_COMP)){
324 rts_fta_process_packet(&cur_packet);
326 rts_fta_process_packet(&cur_packet);
329 // --------------------------------------------------
330 // --- Specialized processing for .proto sgnb_reconfiguration_complete.json, path recon_complete.json
332 reconfig_reject = (struct _reconfig_reject *)(cur_packet.record.packed.values);
333 cur_packet.schema = 102;
335 reconfig_reject->timestamp_ms = timestamp;
336 if(hdr->header->gnbid==NULL)
337 reconfig_reject->gnb_id = empty_string;
339 reconfig_reject->gnb_id = hdr->header->gnbid->value;
341 reconfig_reject->id_MeNB_UE_X2AP_ID = node_2_0->id_menb_ue_x2ap_id;
342 reconfig_reject->id_SgNB_UE_X2AP_ID = node_2_0->id_sgnb_ue_x2ap_id;
343 if(node_2_0->id_menb_ue_x2ap_id_extension){
344 reconfig_reject->id_MeNB_UE_X2AP_ID_Extension = node_2_0->id_menb_ue_x2ap_id_extension->value;
346 reconfig_reject->id_MeNB_UE_X2AP_ID_Extension = 0;
348 node_2_1 = node_2_0->id_responseinformationsgnbreconfcomp;
349 if(node_2_0->id_responseinformationsgnbreconfcomp){
350 node_2_2 = node_2_1->reject_by_menb_sgnbreconfcomp;
351 if(node_2_1->value_case == UENIBSTREAMPROTOBUF__RESPONSE_INFORMATION_SG_NBRECONF_COMP__VALUE_REJECT_BY__ME_NB__SG_NBRECONF_COMP){
352 if(node_2_2->cause && node_2_2->cause->radionetwork){
353 reconfig_reject->cause_radio_network = node_2_2->cause->radionetwork->value;
355 reconfig_reject->cause_radio_network = -1;
357 if(node_2_2->cause && node_2_2->cause->transport){
358 reconfig_reject->cause_transport = node_2_2->cause->transport->value;
360 reconfig_reject->cause_transport = -1;
362 if(node_2_2->cause && node_2_2->cause->protocol){
363 reconfig_reject->cause_protocol = node_2_2->cause->protocol->value;
365 reconfig_reject->cause_protocol = -1;
367 if(node_2_2->cause && node_2_2->cause->misc){
368 reconfig_reject->cause_misc = node_2_2->cause->misc->value;
370 reconfig_reject->cause_misc = -1;
372 rts_fta_process_packet(&cur_packet);
375 uenibstreamprotobuf__sg_nbreconfiguration_complete__free_unpacked(node_0_0,NULL);
379 gs_uint32_t process_buffer_RELCONF(gs_uint8_t * buffer, gs_uint32_t buflen){
380 char *empty_string = "";
381 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
382 // ------------------------------------------
383 // --- Variables for .proto sgnb_release_confirm.json, path release_confirm.json
384 struct _sgnb_release_confirm_from_menb_erabs *sgnb_release_confirm_from_menb_erabs = NULL;
385 Uenibstreamprotobuf__SgNBReleaseConfirm *node_0_0 = NULL;
386 Uenibstreamprotobuf__SgNBReleaseConfirmIEs *node_0_1 = NULL;
387 Uenibstreamprotobuf__ERABsToBeReleasedSgNBRelConfList *node_0_2 = NULL;
388 Uenibstreamprotobuf__ERABsToBeReleasedSgNBRelConfItem *node_0_3 = NULL;
390 Uenibstreamprotobuf__ERABsToBeReleasedSgNBRelConfSgNBPDCPpresent *node_0_4 = NULL;
391 Uenibstreamprotobuf__GTPtunnelEndpoint *node_0_5 = NULL;
392 // ------------------------------------------
393 // --- Variables for .proto sgnb_release_confirm.json, path release_confirm.json
394 struct _sgnb_release_confirm_from_menb *sgnb_release_confirm_from_menb = NULL;
395 Uenibstreamprotobuf__SgNBReleaseConfirm *node_1_0 = NULL;
396 Uenibstreamprotobuf__SgNBReleaseConfirmIEs *node_1_1 = NULL;
398 // --------------------------------------------------
399 // --- Specialized processing for .proto sgnb_release_confirm.json, path release_confirm.json
401 sgnb_release_confirm_from_menb_erabs = (struct _sgnb_release_confirm_from_menb_erabs *)(cur_packet.record.packed.values);
402 cur_packet.schema = 1101;
404 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
405 if(hdr==NULL) return -1;
407 node_0_0 = hdr->sgnbreleaseconfirm;
408 if(node_0_0==NULL) return -2;
409 if(hdr->header==NULL) return -3;
411 sgnb_release_confirm_from_menb_erabs->timestamp_ms = timestamp;
412 if(hdr->header->gnbid==NULL)
413 sgnb_release_confirm_from_menb_erabs->gnb_id = empty_string;
415 sgnb_release_confirm_from_menb_erabs->gnb_id = hdr->header->gnbid->value;
417 node_0_1 = node_0_0->protocolies;
418 if(node_0_0->protocolies){
419 sgnb_release_confirm_from_menb_erabs->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
420 sgnb_release_confirm_from_menb_erabs->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
421 if(node_0_1->id_menb_ue_x2ap_id_extension){
422 sgnb_release_confirm_from_menb_erabs->id_MeNB_UE_X2AP_ID_Extension = node_0_1->id_menb_ue_x2ap_id_extension->value;
424 sgnb_release_confirm_from_menb_erabs->id_MeNB_UE_X2AP_ID_Extension = 0;
426 node_0_2 = node_0_1->id_e_rabs_tobereleased_sgnbrelconflist;
427 if(node_0_1->id_e_rabs_tobereleased_sgnbrelconflist){
428 for(i_0_3=0;i_0_3<node_0_2->n_id_e_rabs_tobereleased_sgnbrelconf_item; i_0_3++){
429 node_0_3 = node_0_2->id_e_rabs_tobereleased_sgnbrelconf_item[i_0_3];
430 if(node_0_3->en_dc_resourceconfiguration){
431 sgnb_release_confirm_from_menb_erabs->sCGresources = node_0_3->en_dc_resourceconfiguration->scgresources;
433 sgnb_release_confirm_from_menb_erabs->sCGresources = -1;
435 sgnb_release_confirm_from_menb_erabs->e_RAB_ID = node_0_3->e_rab_id;
436 if(node_0_3->en_dc_resourceconfiguration){
437 sgnb_release_confirm_from_menb_erabs->pDCPatSgNB = node_0_3->en_dc_resourceconfiguration->pdcpatsgnb;
439 sgnb_release_confirm_from_menb_erabs->pDCPatSgNB = -1;
441 if(node_0_3->en_dc_resourceconfiguration){
442 sgnb_release_confirm_from_menb_erabs->mCGresources = node_0_3->en_dc_resourceconfiguration->mcgresources;
444 sgnb_release_confirm_from_menb_erabs->mCGresources = -1;
446 node_0_4 = node_0_3->sgnbpdcppresent;
447 if(node_0_3->sgnbpdcppresent){
448 node_0_5 = node_0_4->dl_gtptunnelendpoint;
449 if(node_0_4->dl_gtptunnelendpoint){
450 sgnb_release_confirm_from_menb_erabs->gTP_TEID = node_0_5->gtp_teid;
451 sgnb_release_confirm_from_menb_erabs->transportLayerAddress = node_0_5->transportlayeraddress;
452 rts_fta_process_packet(&cur_packet);
458 // --------------------------------------------------
459 // --- Specialized processing for .proto sgnb_release_confirm.json, path release_confirm.json
461 sgnb_release_confirm_from_menb = (struct _sgnb_release_confirm_from_menb *)(cur_packet.record.packed.values);
462 cur_packet.schema = 1102;
464 sgnb_release_confirm_from_menb->timestamp_ms = timestamp;
465 if(hdr->header->gnbid==NULL)
466 sgnb_release_confirm_from_menb->gnb_id = empty_string;
468 sgnb_release_confirm_from_menb->gnb_id = hdr->header->gnbid->value;
470 node_1_1 = node_1_0->protocolies;
471 if(node_1_0->protocolies){
472 sgnb_release_confirm_from_menb->id_MeNB_UE_X2AP_ID = node_1_1->id_menb_ue_x2ap_id;
473 sgnb_release_confirm_from_menb->id_SgNB_UE_X2AP_ID = node_1_1->id_sgnb_ue_x2ap_id;
474 if(node_1_1->id_menb_ue_x2ap_id_extension){
475 sgnb_release_confirm_from_menb->id_MeNB_UE_X2AP_ID_Extension = node_1_1->id_menb_ue_x2ap_id_extension->value;
477 sgnb_release_confirm_from_menb->id_MeNB_UE_X2AP_ID_Extension = 0;
479 rts_fta_process_packet(&cur_packet);
481 uenibstreamprotobuf__sg_nbrelease_confirm__free_unpacked(node_0_0,NULL);
485 gs_uint32_t process_buffer_RELREQ(gs_uint8_t * buffer, gs_uint32_t buflen){
486 char *empty_string = "";
487 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
488 // ------------------------------------------
489 // --- Variables for .proto sgnb_release_request.json, path release_req.json
490 struct _release_req *release_req = NULL;
491 Uenibstreamprotobuf__SgNBReleaseRequest *node_0_0 = NULL;
492 Uenibstreamprotobuf__SgNBReleaseRequestIEs *node_0_1 = NULL;
494 // --------------------------------------------------
495 // --- Specialized processing for .proto sgnb_release_request.json, path release_req.json
497 release_req = (struct _release_req *)(cur_packet.record.packed.values);
498 cur_packet.schema = 801;
500 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
501 if(hdr==NULL) return -1;
503 node_0_0 = hdr->sgnbreleaserequest;
504 if(node_0_0==NULL) return -2;
505 if(hdr->header==NULL) return -3;
507 release_req->timestamp_ms = timestamp;
508 if(hdr->header->gnbid==NULL)
509 release_req->gnb_id = empty_string;
511 release_req->gnb_id = hdr->header->gnbid->value;
513 node_0_1 = node_0_0->protocolies;
514 if(node_0_0->protocolies){
515 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
516 release_req->cause_protocol = node_0_1->id_cause->protocol->value;
518 release_req->cause_protocol = -1;
520 release_req->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
521 if(node_0_1->id_cause && node_0_1->id_cause->transport){
522 release_req->cause_transport = node_0_1->id_cause->transport->value;
524 release_req->cause_transport = -1;
526 if(node_0_1->id_menb_ue_x2ap_id_extension){
527 release_req->id_MeNB_UE_X2AP_ID_Extension = node_0_1->id_menb_ue_x2ap_id_extension->value;
529 release_req->id_MeNB_UE_X2AP_ID_Extension = 0;
531 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
532 release_req->cause_radio_network = node_0_1->id_cause->radionetwork->value;
534 release_req->cause_radio_network = -1;
536 if(node_0_1->id_sgnb_ue_x2ap_id){
537 release_req->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id->value;
539 release_req->id_SgNB_UE_X2AP_ID = 0;
541 if(node_0_1->id_cause && node_0_1->id_cause->misc){
542 release_req->cause_misc = node_0_1->id_cause->misc->value;
544 release_req->cause_misc = -1;
546 rts_fta_process_packet(&cur_packet);
548 uenibstreamprotobuf__sg_nbrelease_request__free_unpacked(node_0_0,NULL);
552 gs_uint32_t process_buffer_RELREQACK(gs_uint8_t * buffer, gs_uint32_t buflen){
553 char *empty_string = "";
554 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
555 // ------------------------------------------
556 // --- Variables for .proto sgnb_release_request_acknowledge.json, path release_req_ack.json
557 struct _release_req_ack *release_req_ack = NULL;
558 Uenibstreamprotobuf__SgNBReleaseRequestAcknowledge *node_0_0 = NULL;
559 Uenibstreamprotobuf__SgNBReleaseRequestAcknowledgeIEs *node_0_1 = NULL;
561 // --------------------------------------------------
562 // --- Specialized processing for .proto sgnb_release_request_acknowledge.json, path release_req_ack.json
564 release_req_ack = (struct _release_req_ack *)(cur_packet.record.packed.values);
565 cur_packet.schema = 901;
567 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
568 if(hdr==NULL) return -1;
570 node_0_0 = hdr->sgnbreleaserequestacknowledge;
571 if(node_0_0==NULL) return -2;
572 if(hdr->header==NULL) return -3;
574 release_req_ack->timestamp_ms = timestamp;
575 if(hdr->header->gnbid==NULL)
576 release_req_ack->gnb_id = empty_string;
578 release_req_ack->gnb_id = hdr->header->gnbid->value;
580 node_0_1 = node_0_0->protocolies;
581 if(node_0_0->protocolies){
582 release_req_ack->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
583 release_req_ack->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
584 if(node_0_1->id_menb_ue_x2ap_id_extension){
585 release_req_ack->id_MeNB_UE_X2AP_ID_Extension = node_0_1->id_menb_ue_x2ap_id_extension->value;
587 release_req_ack->id_MeNB_UE_X2AP_ID_Extension = 0;
589 rts_fta_process_packet(&cur_packet);
591 uenibstreamprotobuf__sg_nbrelease_request_acknowledge__free_unpacked(node_0_0,NULL);
595 gs_uint32_t process_buffer_SGNBRELEASERQD(gs_uint8_t * buffer, gs_uint32_t buflen){
596 char *empty_string = "";
597 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
598 // ------------------------------------------
599 // --- Variables for .proto sgnb_release_required.json, path release_rqd.json
600 struct _SgNB_release_rqd *SgNB_release_rqd = NULL;
601 Uenibstreamprotobuf__SgNBReleaseRequired *node_0_0 = NULL;
602 Uenibstreamprotobuf__SgNBReleaseRequiredIEs *node_0_1 = NULL;
603 Uenibstreamprotobuf__ERABsToBeReleasedSgNBRelReqdList *node_0_2 = NULL;
605 // --------------------------------------------------
606 // --- Specialized processing for .proto sgnb_release_required.json, path release_rqd.json
608 SgNB_release_rqd = (struct _SgNB_release_rqd *)(cur_packet.record.packed.values);
609 cur_packet.schema = 1001;
611 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
612 if(hdr==NULL) return -1;
614 node_0_0 = hdr->sgnbreleaserequired;
615 if(node_0_0==NULL) return -2;
616 if(hdr->header==NULL) return -3;
618 SgNB_release_rqd->timestamp_ms = timestamp;
619 if(hdr->header->gnbid==NULL)
620 SgNB_release_rqd->gnb_id = empty_string;
622 SgNB_release_rqd->gnb_id = hdr->header->gnbid->value;
624 node_0_1 = node_0_0->protocolies;
625 if(node_0_0->protocolies){
626 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
627 SgNB_release_rqd->cause_protocol = node_0_1->id_cause->protocol->value;
629 SgNB_release_rqd->cause_protocol = -1;
631 SgNB_release_rqd->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
632 if(node_0_1->id_cause && node_0_1->id_cause->transport){
633 SgNB_release_rqd->cause_transport = node_0_1->id_cause->transport->value;
635 SgNB_release_rqd->cause_transport = -1;
637 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
638 SgNB_release_rqd->cause_radio_network = node_0_1->id_cause->radionetwork->value;
640 SgNB_release_rqd->cause_radio_network = -1;
642 SgNB_release_rqd->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
643 if(node_0_1->id_cause && node_0_1->id_cause->misc){
644 SgNB_release_rqd->cause_misc = node_0_1->id_cause->misc->value;
646 SgNB_release_rqd->cause_misc = -1;
648 node_0_2 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist;
649 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist){
650 if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 0){
651 SgNB_release_rqd->e_RAB_ID0 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[0]->e_rab_id;
652 SgNB_release_rqd->e_RAB_ID0_exists = 1;
654 SgNB_release_rqd->e_RAB_ID0_exists = 0;
656 if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 1){
657 SgNB_release_rqd->e_RAB_ID1 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[1]->e_rab_id;
658 SgNB_release_rqd->e_RAB_ID1_exists = 1;
660 SgNB_release_rqd->e_RAB_ID1_exists = 0;
662 if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 2){
663 SgNB_release_rqd->e_RAB_ID2 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[2]->e_rab_id;
664 SgNB_release_rqd->e_RAB_ID2_exists = 1;
666 SgNB_release_rqd->e_RAB_ID2_exists = 0;
668 if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 3){
669 SgNB_release_rqd->e_RAB_ID3 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[3]->e_rab_id;
670 SgNB_release_rqd->e_RAB_ID3_exists = 1;
672 SgNB_release_rqd->e_RAB_ID3_exists = 0;
674 if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 4){
675 SgNB_release_rqd->e_RAB_ID4 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[4]->e_rab_id;
676 SgNB_release_rqd->e_RAB_ID4_exists = 1;
678 SgNB_release_rqd->e_RAB_ID4_exists = 0;
680 if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 5){
681 SgNB_release_rqd->e_RAB_ID5 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[5]->e_rab_id;
682 SgNB_release_rqd->e_RAB_ID5_exists = 1;
684 SgNB_release_rqd->e_RAB_ID5_exists = 0;
686 if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 6){
687 SgNB_release_rqd->e_RAB_ID6 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[6]->e_rab_id;
688 SgNB_release_rqd->e_RAB_ID6_exists = 1;
690 SgNB_release_rqd->e_RAB_ID6_exists = 0;
692 if(node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_2->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 7){
693 SgNB_release_rqd->e_RAB_ID7 = node_0_2->id_e_rabs_tobereleased_sgnbrelreqd_item[7]->e_rab_id;
694 SgNB_release_rqd->e_RAB_ID7_exists = 1;
696 SgNB_release_rqd->e_RAB_ID7_exists = 0;
698 rts_fta_process_packet(&cur_packet);
701 uenibstreamprotobuf__sg_nbrelease_required__free_unpacked(node_0_0,NULL);
705 gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){
706 char *empty_string = "";
707 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
708 // ------------------------------------------
709 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
710 struct _serv_nr_cell *serv_nr_cell = NULL;
711 Uenibstreamprotobuf__RRCTransfer *node_0_0 = NULL;
712 Uenibstreamprotobuf__RRCTransferIEs *node_0_1 = NULL;
713 Uenibstreamprotobuf__UENRMeasurement *node_0_2 = NULL;
714 Uenibstreamprotobuf__RRCContainer *node_0_3 = NULL;
715 Uenibstreamprotobuf__ULDCCHMessageType *node_0_4 = NULL;
716 Uenibstreamprotobuf__MeasurementReport *node_0_5 = NULL;
717 Uenibstreamprotobuf__MeasurementReportIEs *node_0_6 = NULL;
718 Uenibstreamprotobuf__MeasResults *node_0_7 = NULL;
719 Uenibstreamprotobuf__MeasResultServMOList *node_0_8 = NULL;
720 Uenibstreamprotobuf__MeasResultServMO *node_0_9 = NULL;
722 Uenibstreamprotobuf__MeasResultNR *node_0_10 = NULL;
723 Uenibstreamprotobuf__MeasResult *node_0_11 = NULL;
724 Uenibstreamprotobuf__CellResults *node_0_12 = NULL;
725 Uenibstreamprotobuf__MeasQuantityResults *node_0_13 = NULL;
726 // ------------------------------------------
727 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
728 struct _nr_neighbor *nr_neighbor = NULL;
729 Uenibstreamprotobuf__RRCTransfer *node_1_0 = NULL;
730 Uenibstreamprotobuf__RRCTransferIEs *node_1_1 = NULL;
731 Uenibstreamprotobuf__UENRMeasurement *node_1_2 = NULL;
732 Uenibstreamprotobuf__RRCContainer *node_1_3 = NULL;
733 Uenibstreamprotobuf__ULDCCHMessageType *node_1_4 = NULL;
734 Uenibstreamprotobuf__MeasurementReport *node_1_5 = NULL;
735 Uenibstreamprotobuf__MeasurementReportIEs *node_1_6 = NULL;
736 Uenibstreamprotobuf__MeasResults *node_1_7 = NULL;
737 Uenibstreamprotobuf__MeasResultListNR *node_1_8 = NULL;
738 Uenibstreamprotobuf__MeasResultNR *node_1_9 = NULL;
740 Uenibstreamprotobuf__MeasResult *node_1_10 = NULL;
741 Uenibstreamprotobuf__CellResults *node_1_11 = NULL;
742 Uenibstreamprotobuf__MeasQuantityResults *node_1_12 = NULL;
743 // ------------------------------------------
744 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
745 struct _serv_cell_beam_csi *serv_cell_beam_csi = NULL;
746 Uenibstreamprotobuf__RRCTransfer *node_2_0 = NULL;
747 Uenibstreamprotobuf__RRCTransferIEs *node_2_1 = NULL;
748 Uenibstreamprotobuf__UENRMeasurement *node_2_2 = NULL;
749 Uenibstreamprotobuf__RRCContainer *node_2_3 = NULL;
750 Uenibstreamprotobuf__ULDCCHMessageType *node_2_4 = NULL;
751 Uenibstreamprotobuf__MeasurementReport *node_2_5 = NULL;
752 Uenibstreamprotobuf__MeasurementReportIEs *node_2_6 = NULL;
753 Uenibstreamprotobuf__MeasResults *node_2_7 = NULL;
754 Uenibstreamprotobuf__MeasResultServMOList *node_2_8 = NULL;
755 Uenibstreamprotobuf__MeasResultServMO *node_2_9 = NULL;
757 Uenibstreamprotobuf__MeasResultNR *node_2_10 = NULL;
758 Uenibstreamprotobuf__MeasResult *node_2_11 = NULL;
759 Uenibstreamprotobuf__RsIndexResults *node_2_12 = NULL;
760 Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_2_13 = NULL;
761 Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_2_14 = NULL;
763 Uenibstreamprotobuf__MeasQuantityResults *node_2_15 = NULL;
764 // ------------------------------------------
765 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
766 struct _neighbor_beam_csi *neighbor_beam_csi = NULL;
767 Uenibstreamprotobuf__RRCTransfer *node_3_0 = NULL;
768 Uenibstreamprotobuf__RRCTransferIEs *node_3_1 = NULL;
769 Uenibstreamprotobuf__UENRMeasurement *node_3_2 = NULL;
770 Uenibstreamprotobuf__RRCContainer *node_3_3 = NULL;
771 Uenibstreamprotobuf__ULDCCHMessageType *node_3_4 = NULL;
772 Uenibstreamprotobuf__MeasurementReport *node_3_5 = NULL;
773 Uenibstreamprotobuf__MeasurementReportIEs *node_3_6 = NULL;
774 Uenibstreamprotobuf__MeasResults *node_3_7 = NULL;
775 Uenibstreamprotobuf__MeasResultListNR *node_3_8 = NULL;
776 Uenibstreamprotobuf__MeasResultNR *node_3_9 = NULL;
778 Uenibstreamprotobuf__MeasResult *node_3_10 = NULL;
779 Uenibstreamprotobuf__RsIndexResults *node_3_11 = NULL;
780 Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_3_12 = NULL;
781 Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_3_13 = NULL;
783 Uenibstreamprotobuf__MeasQuantityResults *node_3_14 = NULL;
784 // ------------------------------------------
785 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
786 struct _serv_cell_beam_ssb *serv_cell_beam_ssb = NULL;
787 Uenibstreamprotobuf__RRCTransfer *node_4_0 = NULL;
788 Uenibstreamprotobuf__RRCTransferIEs *node_4_1 = NULL;
789 Uenibstreamprotobuf__UENRMeasurement *node_4_2 = NULL;
790 Uenibstreamprotobuf__RRCContainer *node_4_3 = NULL;
791 Uenibstreamprotobuf__ULDCCHMessageType *node_4_4 = NULL;
792 Uenibstreamprotobuf__MeasurementReport *node_4_5 = NULL;
793 Uenibstreamprotobuf__MeasurementReportIEs *node_4_6 = NULL;
794 Uenibstreamprotobuf__MeasResults *node_4_7 = NULL;
795 Uenibstreamprotobuf__MeasResultServMOList *node_4_8 = NULL;
796 Uenibstreamprotobuf__MeasResultServMO *node_4_9 = NULL;
798 Uenibstreamprotobuf__MeasResultNR *node_4_10 = NULL;
799 Uenibstreamprotobuf__MeasResult *node_4_11 = NULL;
800 Uenibstreamprotobuf__RsIndexResults *node_4_12 = NULL;
801 Uenibstreamprotobuf__ResultsPerSSBIndexList *node_4_13 = NULL;
802 Uenibstreamprotobuf__ResultsPerSSBIndex *node_4_14 = NULL;
804 Uenibstreamprotobuf__MeasQuantityResults *node_4_15 = NULL;
805 // ------------------------------------------
806 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
807 struct _neighbor_beam_ssb *neighbor_beam_ssb = NULL;
808 Uenibstreamprotobuf__RRCTransfer *node_5_0 = NULL;
809 Uenibstreamprotobuf__RRCTransferIEs *node_5_1 = NULL;
810 Uenibstreamprotobuf__UENRMeasurement *node_5_2 = NULL;
811 Uenibstreamprotobuf__RRCContainer *node_5_3 = NULL;
812 Uenibstreamprotobuf__ULDCCHMessageType *node_5_4 = NULL;
813 Uenibstreamprotobuf__MeasurementReport *node_5_5 = NULL;
814 Uenibstreamprotobuf__MeasurementReportIEs *node_5_6 = NULL;
815 Uenibstreamprotobuf__MeasResults *node_5_7 = NULL;
816 Uenibstreamprotobuf__MeasResultListNR *node_5_8 = NULL;
817 Uenibstreamprotobuf__MeasResultNR *node_5_9 = NULL;
819 Uenibstreamprotobuf__MeasResult *node_5_10 = NULL;
820 Uenibstreamprotobuf__RsIndexResults *node_5_11 = NULL;
821 Uenibstreamprotobuf__ResultsPerSSBIndexList *node_5_12 = NULL;
822 Uenibstreamprotobuf__ResultsPerSSBIndex *node_5_13 = NULL;
824 Uenibstreamprotobuf__MeasQuantityResults *node_5_14 = NULL;
826 // --------------------------------------------------
827 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
829 serv_nr_cell = (struct _serv_nr_cell *)(cur_packet.record.packed.values);
830 cur_packet.schema = 1;
832 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
833 if(hdr==NULL) return -1;
835 node_0_0 = hdr->rrctransfer;
836 if(node_0_0==NULL) return -2;
837 if(hdr->header==NULL) return -3;
839 serv_nr_cell->timestamp_ms = timestamp;
840 if(hdr->header->gnbid==NULL)
841 serv_nr_cell->gnb_id = empty_string;
843 serv_nr_cell->gnb_id = hdr->header->gnbid->value;
845 node_0_1 = node_0_0->rrctransfer_ies;
846 if(node_0_0->rrctransfer_ies){
847 serv_nr_cell->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
848 serv_nr_cell->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
849 node_0_2 = node_0_1->id_uenrmeasurement;
850 if(node_0_1->id_uenrmeasurement){
851 node_0_3 = node_0_2->uenrmeasurements;
852 if(node_0_2->uenrmeasurements){
853 node_0_4 = node_0_3->ul_dcch_message;
854 if(node_0_3->ul_dcch_message){
855 node_0_5 = node_0_4->measurementreport;
856 if(node_0_4->measurementreport){
857 node_0_6 = node_0_5->measurementreport;
858 if(node_0_5->measurementreport){
859 node_0_7 = node_0_6->measresults;
860 if(node_0_6->measresults){
861 node_0_8 = node_0_7->measresultservingmolist;
862 if(node_0_7->measresultservingmolist){
863 for(i_0_9=0;i_0_9<node_0_8->n_items; i_0_9++){
864 node_0_9 = node_0_8->items[i_0_9];
865 serv_nr_cell->servCellID = node_0_9->servcellid;
866 node_0_10 = node_0_9->measresultservingcell;
867 if(node_0_9->measresultservingcell){
868 if(node_0_10->physcellid){
869 serv_nr_cell->physCellId = node_0_10->physcellid->value;
870 serv_nr_cell->physCellId_exists = 1;
872 serv_nr_cell->physCellId_exists = 0;
874 node_0_11 = node_0_10->measresult;
875 if(node_0_10->measresult){
876 node_0_12 = node_0_11->cellresults;
877 if(node_0_11->cellresults){
878 node_0_13 = node_0_12->resultsssb_cell;
879 if(node_0_12->resultsssb_cell){
881 serv_nr_cell->rsrq = node_0_13->rsrq->value;
882 serv_nr_cell->rsrq_exists = 1;
884 serv_nr_cell->rsrq_exists = 0;
887 serv_nr_cell->rsrp = node_0_13->rsrp->value;
888 serv_nr_cell->rsrp_exists = 1;
890 serv_nr_cell->rsrp_exists = 0;
893 serv_nr_cell->sinr = node_0_13->sinr->value;
894 serv_nr_cell->sinr_exists = 1;
896 serv_nr_cell->sinr_exists = 0;
898 rts_fta_process_packet(&cur_packet);
912 // --------------------------------------------------
913 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
915 nr_neighbor = (struct _nr_neighbor *)(cur_packet.record.packed.values);
916 cur_packet.schema = 4;
918 nr_neighbor->timestamp_ms = timestamp;
919 if(hdr->header->gnbid==NULL)
920 nr_neighbor->gnb_id = empty_string;
922 nr_neighbor->gnb_id = hdr->header->gnbid->value;
924 node_1_1 = node_1_0->rrctransfer_ies;
925 if(node_1_0->rrctransfer_ies){
926 nr_neighbor->id_MeNB_UE_X2AP_ID = node_1_1->id_menb_ue_x2ap_id;
927 nr_neighbor->id_SgNB_UE_X2AP_ID = node_1_1->id_sgnb_ue_x2ap_id;
928 node_1_2 = node_1_1->id_uenrmeasurement;
929 if(node_1_1->id_uenrmeasurement){
930 node_1_3 = node_1_2->uenrmeasurements;
931 if(node_1_2->uenrmeasurements){
932 node_1_4 = node_1_3->ul_dcch_message;
933 if(node_1_3->ul_dcch_message){
934 node_1_5 = node_1_4->measurementreport;
935 if(node_1_4->measurementreport){
936 node_1_6 = node_1_5->measurementreport;
937 if(node_1_5->measurementreport){
938 node_1_7 = node_1_6->measresults;
939 if(node_1_6->measresults){
940 node_1_8 = node_1_7->measresultlistnr;
941 if(node_1_7->measresultlistnr){
942 for(i_1_9=0;i_1_9<node_1_8->n_items; i_1_9++){
943 node_1_9 = node_1_8->items[i_1_9];
944 if(node_1_9->physcellid){
945 nr_neighbor->physCellId = node_1_9->physcellid->value;
946 nr_neighbor->physCellId_exists = 1;
948 nr_neighbor->physCellId_exists = 0;
950 node_1_10 = node_1_9->measresult;
951 if(node_1_9->measresult){
952 node_1_11 = node_1_10->cellresults;
953 if(node_1_10->cellresults){
954 node_1_12 = node_1_11->resultsssb_cell;
955 if(node_1_11->resultsssb_cell){
957 nr_neighbor->rsrq = node_1_12->rsrq->value;
958 nr_neighbor->rsrq_exists = 1;
960 nr_neighbor->rsrq_exists = 0;
963 nr_neighbor->rsrp = node_1_12->rsrp->value;
964 nr_neighbor->rsrp_exists = 1;
966 nr_neighbor->rsrp_exists = 0;
969 nr_neighbor->sinr = node_1_12->sinr->value;
970 nr_neighbor->sinr_exists = 1;
972 nr_neighbor->sinr_exists = 0;
974 rts_fta_process_packet(&cur_packet);
987 // --------------------------------------------------
988 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
990 serv_cell_beam_csi = (struct _serv_cell_beam_csi *)(cur_packet.record.packed.values);
991 cur_packet.schema = 2;
993 serv_cell_beam_csi->timestamp_ms = timestamp;
994 if(hdr->header->gnbid==NULL)
995 serv_cell_beam_csi->gnb_id = empty_string;
997 serv_cell_beam_csi->gnb_id = hdr->header->gnbid->value;
999 node_2_1 = node_2_0->rrctransfer_ies;
1000 if(node_2_0->rrctransfer_ies){
1001 serv_cell_beam_csi->id_MeNB_UE_X2AP_ID = node_2_1->id_menb_ue_x2ap_id;
1002 serv_cell_beam_csi->id_SgNB_UE_X2AP_ID = node_2_1->id_sgnb_ue_x2ap_id;
1003 node_2_2 = node_2_1->id_uenrmeasurement;
1004 if(node_2_1->id_uenrmeasurement){
1005 node_2_3 = node_2_2->uenrmeasurements;
1006 if(node_2_2->uenrmeasurements){
1007 node_2_4 = node_2_3->ul_dcch_message;
1008 if(node_2_3->ul_dcch_message){
1009 node_2_5 = node_2_4->measurementreport;
1010 if(node_2_4->measurementreport){
1011 node_2_6 = node_2_5->measurementreport;
1012 if(node_2_5->measurementreport){
1013 node_2_7 = node_2_6->measresults;
1014 if(node_2_6->measresults){
1015 node_2_8 = node_2_7->measresultservingmolist;
1016 if(node_2_7->measresultservingmolist){
1017 for(i_2_9=0;i_2_9<node_2_8->n_items; i_2_9++){
1018 node_2_9 = node_2_8->items[i_2_9];
1019 serv_cell_beam_csi->servCellID = node_2_9->servcellid;
1020 node_2_10 = node_2_9->measresultservingcell;
1021 if(node_2_9->measresultservingcell){
1022 if(node_2_10->physcellid){
1023 serv_cell_beam_csi->physCellId = node_2_10->physcellid->value;
1024 serv_cell_beam_csi->physCellId_exists = 1;
1026 serv_cell_beam_csi->physCellId_exists = 0;
1028 node_2_11 = node_2_10->measresult;
1029 if(node_2_10->measresult){
1030 node_2_12 = node_2_11->rsindexresults;
1031 if(node_2_11->rsindexresults){
1032 node_2_13 = node_2_12->resultscsi_rs_indexes;
1033 if(node_2_12->resultscsi_rs_indexes){
1034 for(i_2_14=0;i_2_14<node_2_13->n_items; i_2_14++){
1035 node_2_14 = node_2_13->items[i_2_14];
1036 serv_cell_beam_csi->csi_rs_index = node_2_14->csi_rs_index;
1037 node_2_15 = node_2_14->csi_rs_results;
1038 if(node_2_14->csi_rs_results){
1039 if(node_2_15->rsrq){
1040 serv_cell_beam_csi->rsrq = node_2_15->rsrq->value;
1041 serv_cell_beam_csi->rsrq_exists = 1;
1043 serv_cell_beam_csi->rsrq_exists = 0;
1045 if(node_2_15->rsrp){
1046 serv_cell_beam_csi->rsrp = node_2_15->rsrp->value;
1047 serv_cell_beam_csi->rsrp_exists = 1;
1049 serv_cell_beam_csi->rsrp_exists = 0;
1051 if(node_2_15->sinr){
1052 serv_cell_beam_csi->sinr = node_2_15->sinr->value;
1053 serv_cell_beam_csi->sinr_exists = 1;
1055 serv_cell_beam_csi->sinr_exists = 0;
1057 rts_fta_process_packet(&cur_packet);
1073 // --------------------------------------------------
1074 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
1076 neighbor_beam_csi = (struct _neighbor_beam_csi *)(cur_packet.record.packed.values);
1077 cur_packet.schema = 5;
1078 node_3_0 = node_2_0;
1079 neighbor_beam_csi->timestamp_ms = timestamp;
1080 if(hdr->header->gnbid==NULL)
1081 neighbor_beam_csi->gnb_id = empty_string;
1083 neighbor_beam_csi->gnb_id = hdr->header->gnbid->value;
1085 node_3_1 = node_3_0->rrctransfer_ies;
1086 if(node_3_0->rrctransfer_ies){
1087 neighbor_beam_csi->id_MeNB_UE_X2AP_ID = node_3_1->id_menb_ue_x2ap_id;
1088 neighbor_beam_csi->id_SgNB_UE_X2AP_ID = node_3_1->id_sgnb_ue_x2ap_id;
1089 node_3_2 = node_3_1->id_uenrmeasurement;
1090 if(node_3_1->id_uenrmeasurement){
1091 node_3_3 = node_3_2->uenrmeasurements;
1092 if(node_3_2->uenrmeasurements){
1093 node_3_4 = node_3_3->ul_dcch_message;
1094 if(node_3_3->ul_dcch_message){
1095 node_3_5 = node_3_4->measurementreport;
1096 if(node_3_4->measurementreport){
1097 node_3_6 = node_3_5->measurementreport;
1098 if(node_3_5->measurementreport){
1099 node_3_7 = node_3_6->measresults;
1100 if(node_3_6->measresults){
1101 node_3_8 = node_3_7->measresultlistnr;
1102 if(node_3_7->measresultlistnr){
1103 for(i_3_9=0;i_3_9<node_3_8->n_items; i_3_9++){
1104 node_3_9 = node_3_8->items[i_3_9];
1105 if(node_3_9->physcellid){
1106 neighbor_beam_csi->physCellId = node_3_9->physcellid->value;
1107 neighbor_beam_csi->physCellId_exists = 1;
1109 neighbor_beam_csi->physCellId_exists = 0;
1111 node_3_10 = node_3_9->measresult;
1112 if(node_3_9->measresult){
1113 node_3_11 = node_3_10->rsindexresults;
1114 if(node_3_10->rsindexresults){
1115 node_3_12 = node_3_11->resultscsi_rs_indexes;
1116 if(node_3_11->resultscsi_rs_indexes){
1117 for(i_3_13=0;i_3_13<node_3_12->n_items; i_3_13++){
1118 node_3_13 = node_3_12->items[i_3_13];
1119 neighbor_beam_csi->csi_rs_index = node_3_13->csi_rs_index;
1120 node_3_14 = node_3_13->csi_rs_results;
1121 if(node_3_13->csi_rs_results){
1122 if(node_3_14->rsrq){
1123 neighbor_beam_csi->rsrq = node_3_14->rsrq->value;
1124 neighbor_beam_csi->rsrq_exists = 1;
1126 neighbor_beam_csi->rsrq_exists = 0;
1128 if(node_3_14->rsrp){
1129 neighbor_beam_csi->rsrp = node_3_14->rsrp->value;
1130 neighbor_beam_csi->rsrp_exists = 1;
1132 neighbor_beam_csi->rsrp_exists = 0;
1134 if(node_3_14->sinr){
1135 neighbor_beam_csi->sinr = node_3_14->sinr->value;
1136 neighbor_beam_csi->sinr_exists = 1;
1138 neighbor_beam_csi->sinr_exists = 0;
1140 rts_fta_process_packet(&cur_packet);
1155 // --------------------------------------------------
1156 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
1158 serv_cell_beam_ssb = (struct _serv_cell_beam_ssb *)(cur_packet.record.packed.values);
1159 cur_packet.schema = 3;
1160 node_4_0 = node_3_0;
1161 serv_cell_beam_ssb->timestamp_ms = timestamp;
1162 if(hdr->header->gnbid==NULL)
1163 serv_cell_beam_ssb->gnb_id = empty_string;
1165 serv_cell_beam_ssb->gnb_id = hdr->header->gnbid->value;
1167 node_4_1 = node_4_0->rrctransfer_ies;
1168 if(node_4_0->rrctransfer_ies){
1169 serv_cell_beam_ssb->id_MeNB_UE_X2AP_ID = node_4_1->id_menb_ue_x2ap_id;
1170 serv_cell_beam_ssb->id_SgNB_UE_X2AP_ID = node_4_1->id_sgnb_ue_x2ap_id;
1171 node_4_2 = node_4_1->id_uenrmeasurement;
1172 if(node_4_1->id_uenrmeasurement){
1173 node_4_3 = node_4_2->uenrmeasurements;
1174 if(node_4_2->uenrmeasurements){
1175 node_4_4 = node_4_3->ul_dcch_message;
1176 if(node_4_3->ul_dcch_message){
1177 node_4_5 = node_4_4->measurementreport;
1178 if(node_4_4->measurementreport){
1179 node_4_6 = node_4_5->measurementreport;
1180 if(node_4_5->measurementreport){
1181 node_4_7 = node_4_6->measresults;
1182 if(node_4_6->measresults){
1183 node_4_8 = node_4_7->measresultservingmolist;
1184 if(node_4_7->measresultservingmolist){
1185 for(i_4_9=0;i_4_9<node_4_8->n_items; i_4_9++){
1186 node_4_9 = node_4_8->items[i_4_9];
1187 serv_cell_beam_ssb->servCellID = node_4_9->servcellid;
1188 node_4_10 = node_4_9->measresultservingcell;
1189 if(node_4_9->measresultservingcell){
1190 if(node_4_10->physcellid){
1191 serv_cell_beam_ssb->physCellId = node_4_10->physcellid->value;
1192 serv_cell_beam_ssb->physCellId_exists = 1;
1194 serv_cell_beam_ssb->physCellId_exists = 0;
1196 node_4_11 = node_4_10->measresult;
1197 if(node_4_10->measresult){
1198 node_4_12 = node_4_11->rsindexresults;
1199 if(node_4_11->rsindexresults){
1200 node_4_13 = node_4_12->resultsssb_indexes;
1201 if(node_4_12->resultsssb_indexes){
1202 for(i_4_14=0;i_4_14<node_4_13->n_items; i_4_14++){
1203 node_4_14 = node_4_13->items[i_4_14];
1204 serv_cell_beam_ssb->ssb_Index = node_4_14->ssb_index;
1205 node_4_15 = node_4_14->ssb_results;
1206 if(node_4_14->ssb_results){
1207 if(node_4_15->rsrq){
1208 serv_cell_beam_ssb->rsrq = node_4_15->rsrq->value;
1209 serv_cell_beam_ssb->rsrq_exists = 1;
1211 serv_cell_beam_ssb->rsrq_exists = 0;
1213 if(node_4_15->rsrp){
1214 serv_cell_beam_ssb->rsrp = node_4_15->rsrp->value;
1215 serv_cell_beam_ssb->rsrp_exists = 1;
1217 serv_cell_beam_ssb->rsrp_exists = 0;
1219 if(node_4_15->sinr){
1220 serv_cell_beam_ssb->sinr = node_4_15->sinr->value;
1221 serv_cell_beam_ssb->sinr_exists = 1;
1223 serv_cell_beam_ssb->sinr_exists = 0;
1225 rts_fta_process_packet(&cur_packet);
1241 // --------------------------------------------------
1242 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
1244 neighbor_beam_ssb = (struct _neighbor_beam_ssb *)(cur_packet.record.packed.values);
1245 cur_packet.schema = 6;
1246 node_5_0 = node_4_0;
1247 neighbor_beam_ssb->timestamp_ms = timestamp;
1248 if(hdr->header->gnbid==NULL)
1249 neighbor_beam_ssb->gnb_id = empty_string;
1251 neighbor_beam_ssb->gnb_id = hdr->header->gnbid->value;
1253 node_5_1 = node_5_0->rrctransfer_ies;
1254 if(node_5_0->rrctransfer_ies){
1255 neighbor_beam_ssb->id_MeNB_UE_X2AP_ID = node_5_1->id_menb_ue_x2ap_id;
1256 neighbor_beam_ssb->id_SgNB_UE_X2AP_ID = node_5_1->id_sgnb_ue_x2ap_id;
1257 node_5_2 = node_5_1->id_uenrmeasurement;
1258 if(node_5_1->id_uenrmeasurement){
1259 node_5_3 = node_5_2->uenrmeasurements;
1260 if(node_5_2->uenrmeasurements){
1261 node_5_4 = node_5_3->ul_dcch_message;
1262 if(node_5_3->ul_dcch_message){
1263 node_5_5 = node_5_4->measurementreport;
1264 if(node_5_4->measurementreport){
1265 node_5_6 = node_5_5->measurementreport;
1266 if(node_5_5->measurementreport){
1267 node_5_7 = node_5_6->measresults;
1268 if(node_5_6->measresults){
1269 node_5_8 = node_5_7->measresultlistnr;
1270 if(node_5_7->measresultlistnr){
1271 for(i_5_9=0;i_5_9<node_5_8->n_items; i_5_9++){
1272 node_5_9 = node_5_8->items[i_5_9];
1273 if(node_5_9->physcellid){
1274 neighbor_beam_ssb->physCellId = node_5_9->physcellid->value;
1275 neighbor_beam_ssb->physCellId_exists = 1;
1277 neighbor_beam_ssb->physCellId_exists = 0;
1279 node_5_10 = node_5_9->measresult;
1280 if(node_5_9->measresult){
1281 node_5_11 = node_5_10->rsindexresults;
1282 if(node_5_10->rsindexresults){
1283 node_5_12 = node_5_11->resultsssb_indexes;
1284 if(node_5_11->resultsssb_indexes){
1285 for(i_5_13=0;i_5_13<node_5_12->n_items; i_5_13++){
1286 node_5_13 = node_5_12->items[i_5_13];
1287 neighbor_beam_ssb->ssb_Index = node_5_13->ssb_index;
1288 node_5_14 = node_5_13->ssb_results;
1289 if(node_5_13->ssb_results){
1290 if(node_5_14->rsrq){
1291 neighbor_beam_ssb->rsrq = node_5_14->rsrq->value;
1292 neighbor_beam_ssb->rsrq_exists = 1;
1294 neighbor_beam_ssb->rsrq_exists = 0;
1296 if(node_5_14->rsrp){
1297 neighbor_beam_ssb->rsrp = node_5_14->rsrp->value;
1298 neighbor_beam_ssb->rsrp_exists = 1;
1300 neighbor_beam_ssb->rsrp_exists = 0;
1302 if(node_5_14->sinr){
1303 neighbor_beam_ssb->sinr = node_5_14->sinr->value;
1304 neighbor_beam_ssb->sinr_exists = 1;
1306 neighbor_beam_ssb->sinr_exists = 0;
1308 rts_fta_process_packet(&cur_packet);
1323 uenibstreamprotobuf__rrctransfer__free_unpacked(node_0_0,NULL);
1327 gs_uint32_t process_buffer_ADDREQREJECT(gs_uint8_t * buffer, gs_uint32_t buflen){
1328 char *empty_string = "";
1329 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
1330 // ------------------------------------------
1331 // --- Variables for .proto sgnb_addition_request_reject.json, path sgnb_add_req_reject.json
1332 struct _sgnb_add_req_reject *sgnb_add_req_reject = NULL;
1333 Uenibstreamprotobuf__SgNBAdditionRequestReject *node_0_0 = NULL;
1334 Uenibstreamprotobuf__Cause *node_0_1 = NULL;
1336 // --------------------------------------------------
1337 // --- Specialized processing for .proto sgnb_addition_request_reject.json, path sgnb_add_req_reject.json
1339 sgnb_add_req_reject = (struct _sgnb_add_req_reject *)(cur_packet.record.packed.values);
1340 cur_packet.schema = 701;
1342 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
1343 if(hdr==NULL) return -1;
1345 node_0_0 = hdr->sgnbadditionrequestreject;
1346 if(node_0_0==NULL) return -2;
1347 if(hdr->header==NULL) return -3;
1349 sgnb_add_req_reject->timestamp_ms = timestamp;
1350 if(hdr->header->gnbid==NULL)
1351 sgnb_add_req_reject->gnb_id = empty_string;
1353 sgnb_add_req_reject->gnb_id = hdr->header->gnbid->value;
1355 sgnb_add_req_reject->id_MeNB_UE_X2AP_ID = node_0_0->id_menb_ue_x2ap_id;
1356 sgnb_add_req_reject->id_SgNB_UE_X2AP_ID = node_0_0->id_sgnb_ue_x2ap_id;
1357 node_0_1 = node_0_0->id_cause;
1358 if(node_0_0->id_cause){
1359 if(node_0_1->radionetwork){
1360 sgnb_add_req_reject->cause_radio_network = node_0_1->radionetwork->value;
1362 sgnb_add_req_reject->cause_radio_network = -1;
1364 if(node_0_1->transport){
1365 sgnb_add_req_reject->cause_transport = node_0_1->transport->value;
1367 sgnb_add_req_reject->cause_transport = -1;
1369 if(node_0_1->protocol){
1370 sgnb_add_req_reject->cause_protocol = node_0_1->protocol->value;
1372 sgnb_add_req_reject->cause_protocol = -1;
1375 sgnb_add_req_reject->cause_misc = node_0_1->misc->value;
1377 sgnb_add_req_reject->cause_misc = -1;
1379 rts_fta_process_packet(&cur_packet);
1381 uenibstreamprotobuf__sg_nbaddition_request_reject__free_unpacked(node_0_0,NULL);
1385 gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_t buflen){
1386 char *empty_string = "";
1387 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
1388 // ------------------------------------------
1389 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1390 struct _eRABs_notadmitted_for_ue *eRABs_notadmitted_for_ue = NULL;
1391 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_0_0 = NULL;
1392 Uenibstreamprotobuf__ERABList *node_0_1 = NULL;
1393 Uenibstreamprotobuf__ERABItemIEs *node_0_2 = NULL;
1395 Uenibstreamprotobuf__ERABItem *node_0_3 = NULL;
1396 // ------------------------------------------
1397 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1398 struct _eRABs_acked_for_admit_for_ue *eRABs_acked_for_admit_for_ue = NULL;
1399 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_1_0 = NULL;
1400 Uenibstreamprotobuf__ERABsAdmittedToBeAddedSgNBAddReqAckList *node_1_1 = NULL;
1401 Uenibstreamprotobuf__ERABsAdmittedToBeAddedSgNBAddReqAckItem *node_1_2 = NULL;
1403 // ------------------------------------------
1404 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1405 struct _SgNB_ack_for_ue_NRfreqs *SgNB_ack_for_ue_NRfreqs = NULL;
1406 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_2_0 = NULL;
1407 Uenibstreamprotobuf__CGConfig *node_2_1 = NULL;
1408 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_2_2 = NULL;
1409 Uenibstreamprotobuf__CGConfigIEs *node_2_3 = NULL;
1410 // ------------------------------------------
1411 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1412 struct _SgNB_ack_for_add_mod_for_ue *SgNB_ack_for_add_mod_for_ue = NULL;
1413 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_3_0 = NULL;
1414 Uenibstreamprotobuf__CGConfig *node_3_1 = NULL;
1415 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_3_2 = NULL;
1416 Uenibstreamprotobuf__CGConfigIEs *node_3_3 = NULL;
1417 Uenibstreamprotobuf__RadioBearerConfig *node_3_4 = NULL;
1418 Uenibstreamprotobuf__DRBToAddModList *node_3_5 = NULL;
1419 Uenibstreamprotobuf__DRBToAddMod *node_3_6 = NULL;
1421 // ------------------------------------------
1422 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1423 struct _SgNB_ack_for_ue_measurements *SgNB_ack_for_ue_measurements = NULL;
1424 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_4_0 = NULL;
1425 Uenibstreamprotobuf__CGConfig *node_4_1 = NULL;
1426 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_4_2 = NULL;
1427 Uenibstreamprotobuf__CGConfigIEs *node_4_3 = NULL;
1428 Uenibstreamprotobuf__MeasResultList2NR *node_4_4 = NULL;
1429 Uenibstreamprotobuf__MeasResult2NR *node_4_5 = NULL;
1431 Uenibstreamprotobuf__MeasResultNR *node_4_6 = NULL;
1432 Uenibstreamprotobuf__MeasResult *node_4_7 = NULL;
1433 Uenibstreamprotobuf__CellResults *node_4_8 = NULL;
1434 Uenibstreamprotobuf__MeasQuantityResults *node_4_9 = NULL;
1435 // ------------------------------------------
1436 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1437 struct _SgNB_ack_for_ue_beam_csi *SgNB_ack_for_ue_beam_csi = NULL;
1438 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_5_0 = NULL;
1439 Uenibstreamprotobuf__CGConfig *node_5_1 = NULL;
1440 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_5_2 = NULL;
1441 Uenibstreamprotobuf__CGConfigIEs *node_5_3 = NULL;
1442 Uenibstreamprotobuf__MeasResultList2NR *node_5_4 = NULL;
1443 Uenibstreamprotobuf__MeasResult2NR *node_5_5 = NULL;
1445 Uenibstreamprotobuf__MeasResultNR *node_5_6 = NULL;
1446 Uenibstreamprotobuf__MeasResult *node_5_7 = NULL;
1447 Uenibstreamprotobuf__RsIndexResults *node_5_8 = NULL;
1448 Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_5_9 = NULL;
1449 Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_5_10 = NULL;
1451 Uenibstreamprotobuf__MeasQuantityResults *node_5_11 = NULL;
1452 // ------------------------------------------
1453 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1454 struct _SgNB_ack_for_ue_beam_ssb *SgNB_ack_for_ue_beam_ssb = NULL;
1455 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_6_0 = NULL;
1456 Uenibstreamprotobuf__CGConfig *node_6_1 = NULL;
1457 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_6_2 = NULL;
1458 Uenibstreamprotobuf__CGConfigIEs *node_6_3 = NULL;
1459 Uenibstreamprotobuf__MeasResultList2NR *node_6_4 = NULL;
1460 Uenibstreamprotobuf__MeasResult2NR *node_6_5 = NULL;
1462 Uenibstreamprotobuf__MeasResultNR *node_6_6 = NULL;
1463 Uenibstreamprotobuf__MeasResult *node_6_7 = NULL;
1464 Uenibstreamprotobuf__RsIndexResults *node_6_8 = NULL;
1465 Uenibstreamprotobuf__ResultsPerSSBIndexList *node_6_9 = NULL;
1466 Uenibstreamprotobuf__ResultsPerSSBIndex *node_6_10 = NULL;
1468 Uenibstreamprotobuf__MeasQuantityResults *node_6_11 = NULL;
1470 // --------------------------------------------------
1471 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1473 eRABs_notadmitted_for_ue = (struct _eRABs_notadmitted_for_ue *)(cur_packet.record.packed.values);
1474 cur_packet.schema = 501;
1476 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
1477 if(hdr==NULL) return -1;
1479 node_0_0 = hdr->sgnbadditionrequestacknowledge;
1480 if(node_0_0==NULL) return -2;
1481 if(hdr->header==NULL) return -3;
1483 eRABs_notadmitted_for_ue->timestamp_ms = timestamp;
1484 if(hdr->header->gnbid==NULL)
1485 eRABs_notadmitted_for_ue->gnb_id = empty_string;
1487 eRABs_notadmitted_for_ue->gnb_id = hdr->header->gnbid->value;
1489 eRABs_notadmitted_for_ue->id_MeNB_UE_X2AP_ID = node_0_0->id_menb_ue_x2ap_id;
1490 eRABs_notadmitted_for_ue->id_SgNB_UE_X2AP_ID = node_0_0->id_sgnb_ue_x2ap_id;
1491 if(node_0_0->id_menb_ue_x2ap_id_extension){
1492 eRABs_notadmitted_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_0_0->id_menb_ue_x2ap_id_extension->value;
1494 eRABs_notadmitted_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0;
1496 node_0_1 = node_0_0->id_e_rabs_notadmitted_list;
1497 if(node_0_0->id_e_rabs_notadmitted_list){
1498 for(i_0_2=0;i_0_2<node_0_1->n_items; i_0_2++){
1499 node_0_2 = node_0_1->items[i_0_2];
1500 node_0_3 = node_0_2->id_e_rab_item;
1501 if(node_0_2->id_e_rab_item){
1502 eRABs_notadmitted_for_ue->e_RAB_ID = node_0_3->e_rab_id;
1503 if(node_0_3->cause && node_0_3->cause->transport){
1504 eRABs_notadmitted_for_ue->cause_transport = node_0_3->cause->transport->value;
1506 eRABs_notadmitted_for_ue->cause_transport = -1;
1508 if(node_0_3->cause && node_0_3->cause->protocol){
1509 eRABs_notadmitted_for_ue->cause_protocol = node_0_3->cause->protocol->value;
1511 eRABs_notadmitted_for_ue->cause_protocol = -1;
1513 if(node_0_3->cause && node_0_3->cause->misc){
1514 eRABs_notadmitted_for_ue->cause_misc = node_0_3->cause->misc->value;
1516 eRABs_notadmitted_for_ue->cause_misc = -1;
1518 if(node_0_3->cause && node_0_3->cause->radionetwork){
1519 eRABs_notadmitted_for_ue->cause_radio_network = node_0_3->cause->radionetwork->value;
1521 eRABs_notadmitted_for_ue->cause_radio_network = -1;
1523 rts_fta_process_packet(&cur_packet);
1527 // --------------------------------------------------
1528 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1530 eRABs_acked_for_admit_for_ue = (struct _eRABs_acked_for_admit_for_ue *)(cur_packet.record.packed.values);
1531 cur_packet.schema = 502;
1532 node_1_0 = node_0_0;
1533 eRABs_acked_for_admit_for_ue->timestamp_ms = timestamp;
1534 if(hdr->header->gnbid==NULL)
1535 eRABs_acked_for_admit_for_ue->gnb_id = empty_string;
1537 eRABs_acked_for_admit_for_ue->gnb_id = hdr->header->gnbid->value;
1539 eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID = node_1_0->id_menb_ue_x2ap_id;
1540 eRABs_acked_for_admit_for_ue->id_SgNB_UE_X2AP_ID = node_1_0->id_sgnb_ue_x2ap_id;
1541 if(node_1_0->id_menb_ue_x2ap_id_extension){
1542 eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_1_0->id_menb_ue_x2ap_id_extension->value;
1544 eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0;
1546 node_1_1 = node_1_0->id_e_rabs_admitted_tobeadded_sgnbaddreqacklist;
1547 if(node_1_0->id_e_rabs_admitted_tobeadded_sgnbaddreqacklist){
1548 for(i_1_2=0;i_1_2<node_1_1->n_id_e_rabs_admitted_tobeadded_sgnbaddreqack_item; i_1_2++){
1549 node_1_2 = node_1_1->id_e_rabs_admitted_tobeadded_sgnbaddreqack_item[i_1_2];
1550 if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint){
1551 eRABs_acked_for_admit_for_ue->gTP_TEID_dl = node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint->gtp_teid;
1552 eRABs_acked_for_admit_for_ue->gTP_TEID_dl_exists = 1;
1554 eRABs_acked_for_admit_for_ue->gTP_TEID_dl_exists = 0;
1556 if(node_1_2->en_dc_resourceconfiguration){
1557 eRABs_acked_for_admit_for_ue->mCGresources = node_1_2->en_dc_resourceconfiguration->mcgresources;
1558 eRABs_acked_for_admit_for_ue->mCGresources_exists = 1;
1560 eRABs_acked_for_admit_for_ue->mCGresources_exists = 0;
1562 if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint){
1563 eRABs_acked_for_admit_for_ue->transportLayerAddress_dl = node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint->transportlayeraddress;
1564 eRABs_acked_for_admit_for_ue->transportLayerAddress_dl_exists = 1;
1566 eRABs_acked_for_admit_for_ue->transportLayerAddress_dl_exists = 0;
1568 if(node_1_2->en_dc_resourceconfiguration){
1569 eRABs_acked_for_admit_for_ue->pDCPatSgNB = node_1_2->en_dc_resourceconfiguration->pdcpatsgnb;
1570 eRABs_acked_for_admit_for_ue->pDCPatSgNB_exists = 1;
1572 eRABs_acked_for_admit_for_ue->pDCPatSgNB_exists = 0;
1574 if(node_1_2->en_dc_resourceconfiguration){
1575 eRABs_acked_for_admit_for_ue->sCGresources = node_1_2->en_dc_resourceconfiguration->scgresources;
1576 eRABs_acked_for_admit_for_ue->sCGresources_exists = 1;
1578 eRABs_acked_for_admit_for_ue->sCGresources_exists = 0;
1580 eRABs_acked_for_admit_for_ue->e_RAB_ID = node_1_2->e_rab_id;
1581 if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters){
1582 eRABs_acked_for_admit_for_ue->qCI = node_1_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters->qci;
1584 eRABs_acked_for_admit_for_ue->qCI = 0;
1586 rts_fta_process_packet(&cur_packet);
1589 // --------------------------------------------------
1590 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1592 SgNB_ack_for_ue_NRfreqs = (struct _SgNB_ack_for_ue_NRfreqs *)(cur_packet.record.packed.values);
1593 cur_packet.schema = 503;
1594 node_2_0 = node_1_0;
1595 SgNB_ack_for_ue_NRfreqs->timestamp_ms = timestamp;
1596 if(hdr->header->gnbid==NULL)
1597 SgNB_ack_for_ue_NRfreqs->gnb_id = empty_string;
1599 SgNB_ack_for_ue_NRfreqs->gnb_id = hdr->header->gnbid->value;
1601 SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID = node_2_0->id_menb_ue_x2ap_id;
1602 SgNB_ack_for_ue_NRfreqs->id_SgNB_UE_X2AP_ID = node_2_0->id_sgnb_ue_x2ap_id;
1603 if(node_2_0->id_menb_ue_x2ap_id_extension){
1604 SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID_Extension = node_2_0->id_menb_ue_x2ap_id_extension->value;
1606 SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID_Extension = 0;
1608 node_2_1 = node_2_0->id_sgnbtomenbcontainer;
1609 if(node_2_0->id_sgnbtomenbcontainer){
1610 node_2_2 = node_2_1->criticalextensionschoice1;
1611 if(node_2_1->criticalextensionschoice1){
1612 node_2_3 = node_2_2->protocolies;
1613 if(node_2_2->protocolies){
1614 if(node_2_3->scg_cellgroupconfig){
1615 SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig = node_2_3->scg_cellgroupconfig->value;
1616 SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig_exists = 1;
1618 SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig_exists = 0;
1620 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 0){
1621 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0 = node_2_3->candidateservingfreqlistnr->items[0];
1622 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0_exists = 1;
1624 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0_exists = 0;
1626 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 1){
1627 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1 = node_2_3->candidateservingfreqlistnr->items[1];
1628 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1_exists = 1;
1630 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1_exists = 0;
1632 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 2){
1633 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2 = node_2_3->candidateservingfreqlistnr->items[2];
1634 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2_exists = 1;
1636 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2_exists = 0;
1638 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 3){
1639 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3 = node_2_3->candidateservingfreqlistnr->items[3];
1640 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3_exists = 1;
1642 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3_exists = 0;
1644 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 4){
1645 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4 = node_2_3->candidateservingfreqlistnr->items[4];
1646 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4_exists = 1;
1648 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4_exists = 0;
1650 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 5){
1651 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5 = node_2_3->candidateservingfreqlistnr->items[5];
1652 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5_exists = 1;
1654 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5_exists = 0;
1656 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 6){
1657 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6 = node_2_3->candidateservingfreqlistnr->items[6];
1658 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6_exists = 1;
1660 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6_exists = 0;
1662 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 7){
1663 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7 = node_2_3->candidateservingfreqlistnr->items[7];
1664 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7_exists = 1;
1666 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7_exists = 0;
1668 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 0 && node_2_3->measconfigsn->measuredfrequenciessn[0]->measuredfrequency){
1669 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0 = node_2_3->measconfigsn->measuredfrequenciessn[0]->measuredfrequency->value;
1670 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0_exists = 1;
1672 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0_exists = 0;
1674 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 1 && node_2_3->measconfigsn->measuredfrequenciessn[1]->measuredfrequency){
1675 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1 = node_2_3->measconfigsn->measuredfrequenciessn[1]->measuredfrequency->value;
1676 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1_exists = 1;
1678 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1_exists = 0;
1680 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 2 && node_2_3->measconfigsn->measuredfrequenciessn[2]->measuredfrequency){
1681 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2 = node_2_3->measconfigsn->measuredfrequenciessn[2]->measuredfrequency->value;
1682 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2_exists = 1;
1684 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2_exists = 0;
1686 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 3 && node_2_3->measconfigsn->measuredfrequenciessn[3]->measuredfrequency){
1687 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3 = node_2_3->measconfigsn->measuredfrequenciessn[3]->measuredfrequency->value;
1688 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3_exists = 1;
1690 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3_exists = 0;
1692 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 4 && node_2_3->measconfigsn->measuredfrequenciessn[4]->measuredfrequency){
1693 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4 = node_2_3->measconfigsn->measuredfrequenciessn[4]->measuredfrequency->value;
1694 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4_exists = 1;
1696 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4_exists = 0;
1698 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 5 && node_2_3->measconfigsn->measuredfrequenciessn[5]->measuredfrequency){
1699 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5 = node_2_3->measconfigsn->measuredfrequenciessn[5]->measuredfrequency->value;
1700 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5_exists = 1;
1702 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5_exists = 0;
1704 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 6 && node_2_3->measconfigsn->measuredfrequenciessn[6]->measuredfrequency){
1705 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6 = node_2_3->measconfigsn->measuredfrequenciessn[6]->measuredfrequency->value;
1706 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6_exists = 1;
1708 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6_exists = 0;
1710 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 7 && node_2_3->measconfigsn->measuredfrequenciessn[7]->measuredfrequency){
1711 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7 = node_2_3->measconfigsn->measuredfrequenciessn[7]->measuredfrequency->value;
1712 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7_exists = 1;
1714 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7_exists = 0;
1716 rts_fta_process_packet(&cur_packet);
1720 // --------------------------------------------------
1721 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1723 SgNB_ack_for_add_mod_for_ue = (struct _SgNB_ack_for_add_mod_for_ue *)(cur_packet.record.packed.values);
1724 cur_packet.schema = 504;
1725 node_3_0 = node_2_0;
1726 SgNB_ack_for_add_mod_for_ue->timestamp_ms = timestamp;
1727 if(hdr->header->gnbid==NULL)
1728 SgNB_ack_for_add_mod_for_ue->gnb_id = empty_string;
1730 SgNB_ack_for_add_mod_for_ue->gnb_id = hdr->header->gnbid->value;
1732 SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID = node_3_0->id_menb_ue_x2ap_id;
1733 SgNB_ack_for_add_mod_for_ue->id_SgNB_UE_X2AP_ID = node_3_0->id_sgnb_ue_x2ap_id;
1734 if(node_3_0->id_menb_ue_x2ap_id_extension){
1735 SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_3_0->id_menb_ue_x2ap_id_extension->value;
1737 SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0;
1739 node_3_1 = node_3_0->id_sgnbtomenbcontainer;
1740 if(node_3_0->id_sgnbtomenbcontainer){
1741 node_3_2 = node_3_1->criticalextensionschoice1;
1742 if(node_3_1->criticalextensionschoice1){
1743 node_3_3 = node_3_2->protocolies;
1744 if(node_3_2->protocolies){
1745 node_3_4 = node_3_3->scg_rb_config;
1746 if(node_3_3->scg_rb_config){
1747 if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 0){
1748 SgNB_ack_for_add_mod_for_ue->toRelease0 = node_3_4->drb_toreleaselist->items[0];
1749 SgNB_ack_for_add_mod_for_ue->toRelease0_exists = 1;
1751 SgNB_ack_for_add_mod_for_ue->toRelease0_exists = 0;
1753 if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 1){
1754 SgNB_ack_for_add_mod_for_ue->toRelease1 = node_3_4->drb_toreleaselist->items[1];
1755 SgNB_ack_for_add_mod_for_ue->toRelease1_exists = 1;
1757 SgNB_ack_for_add_mod_for_ue->toRelease1_exists = 0;
1759 if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 2){
1760 SgNB_ack_for_add_mod_for_ue->toRelease2 = node_3_4->drb_toreleaselist->items[2];
1761 SgNB_ack_for_add_mod_for_ue->toRelease2_exists = 1;
1763 SgNB_ack_for_add_mod_for_ue->toRelease2_exists = 0;
1765 if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 3){
1766 SgNB_ack_for_add_mod_for_ue->toRelease3 = node_3_4->drb_toreleaselist->items[3];
1767 SgNB_ack_for_add_mod_for_ue->toRelease3_exists = 1;
1769 SgNB_ack_for_add_mod_for_ue->toRelease3_exists = 0;
1771 node_3_5 = node_3_4->drb_toaddmodlist;
1772 if(node_3_4->drb_toaddmodlist){
1773 for(i_3_6=0;i_3_6<node_3_5->n_items; i_3_6++){
1774 node_3_6 = node_3_5->items[i_3_6];
1775 if(node_3_6->recoverpdcp){
1776 SgNB_ack_for_add_mod_for_ue->recoverPDCP = node_3_6->recoverpdcp->value;
1777 SgNB_ack_for_add_mod_for_ue->recoverPDCP_exists = 1;
1779 SgNB_ack_for_add_mod_for_ue->recoverPDCP_exists = 0;
1781 if(node_3_6->reestablishpdcp){
1782 SgNB_ack_for_add_mod_for_ue->reestablishPDCP = node_3_6->reestablishpdcp->value;
1783 SgNB_ack_for_add_mod_for_ue->reestablishPDCP_exists = 1;
1785 SgNB_ack_for_add_mod_for_ue->reestablishPDCP_exists = 0;
1787 SgNB_ack_for_add_mod_for_ue->drb_Identity = node_3_6->drb_identity;
1788 SgNB_ack_for_add_mod_for_ue->eps_BearerIdentity = node_3_6->eps_beareridentity;
1789 rts_fta_process_packet(&cur_packet);
1796 // --------------------------------------------------
1797 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1799 SgNB_ack_for_ue_measurements = (struct _SgNB_ack_for_ue_measurements *)(cur_packet.record.packed.values);
1800 cur_packet.schema = 505;
1801 node_4_0 = node_3_0;
1802 SgNB_ack_for_ue_measurements->timestamp_ms = timestamp;
1803 if(hdr->header->gnbid==NULL)
1804 SgNB_ack_for_ue_measurements->gnb_id = empty_string;
1806 SgNB_ack_for_ue_measurements->gnb_id = hdr->header->gnbid->value;
1808 SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID = node_4_0->id_menb_ue_x2ap_id;
1809 SgNB_ack_for_ue_measurements->id_SgNB_UE_X2AP_ID = node_4_0->id_sgnb_ue_x2ap_id;
1810 if(node_4_0->id_menb_ue_x2ap_id_extension){
1811 SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID_Extension = node_4_0->id_menb_ue_x2ap_id_extension->value;
1813 SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID_Extension = 0;
1815 node_4_1 = node_4_0->id_sgnbtomenbcontainer;
1816 if(node_4_0->id_sgnbtomenbcontainer){
1817 node_4_2 = node_4_1->criticalextensionschoice1;
1818 if(node_4_1->criticalextensionschoice1){
1819 node_4_3 = node_4_2->protocolies;
1820 if(node_4_2->protocolies){
1821 node_4_4 = node_4_3->candidatecellinfolistsn;
1822 if(node_4_3->candidatecellinfolistsn){
1823 for(i_4_5=0;i_4_5<node_4_4->n_items; i_4_5++){
1824 node_4_5 = node_4_4->items[i_4_5];
1825 if(node_4_5->ssbfrequency){
1826 SgNB_ack_for_ue_measurements->ssbFrequency = node_4_5->ssbfrequency->value;
1827 SgNB_ack_for_ue_measurements->ssbFrequency_exists = 1;
1829 SgNB_ack_for_ue_measurements->ssbFrequency_exists = 0;
1831 if(node_4_5->reffreqcsi_rs){
1832 SgNB_ack_for_ue_measurements->refFreqCSI_RS = node_4_5->reffreqcsi_rs->value;
1833 SgNB_ack_for_ue_measurements->refFreqCSI_RS_exists = 1;
1835 SgNB_ack_for_ue_measurements->refFreqCSI_RS_exists = 0;
1837 node_4_6 = node_4_5->measresultservingcell;
1838 if(node_4_5->measresultservingcell){
1839 if(node_4_6->physcellid){
1840 SgNB_ack_for_ue_measurements->physCellId = node_4_6->physcellid->value;
1841 SgNB_ack_for_ue_measurements->physCellId_exists = 1;
1843 SgNB_ack_for_ue_measurements->physCellId_exists = 0;
1845 node_4_7 = node_4_6->measresult;
1846 if(node_4_6->measresult){
1847 node_4_8 = node_4_7->cellresults;
1848 if(node_4_7->cellresults){
1849 node_4_9 = node_4_8->resultscsi_rs_cell;
1850 if(node_4_8->resultscsi_rs_cell){
1852 SgNB_ack_for_ue_measurements->rsrq = node_4_9->rsrq->value;
1853 SgNB_ack_for_ue_measurements->rsrq_exists = 1;
1855 SgNB_ack_for_ue_measurements->rsrq_exists = 0;
1858 SgNB_ack_for_ue_measurements->rsrp = node_4_9->rsrp->value;
1859 SgNB_ack_for_ue_measurements->rsrp_exists = 1;
1861 SgNB_ack_for_ue_measurements->rsrp_exists = 0;
1864 SgNB_ack_for_ue_measurements->sinr = node_4_9->sinr->value;
1865 SgNB_ack_for_ue_measurements->sinr_exists = 1;
1867 SgNB_ack_for_ue_measurements->sinr_exists = 0;
1869 rts_fta_process_packet(&cur_packet);
1879 // --------------------------------------------------
1880 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1882 SgNB_ack_for_ue_beam_csi = (struct _SgNB_ack_for_ue_beam_csi *)(cur_packet.record.packed.values);
1883 cur_packet.schema = 506;
1884 node_5_0 = node_4_0;
1885 SgNB_ack_for_ue_beam_csi->timestamp_ms = timestamp;
1886 if(hdr->header->gnbid==NULL)
1887 SgNB_ack_for_ue_beam_csi->gnb_id = empty_string;
1889 SgNB_ack_for_ue_beam_csi->gnb_id = hdr->header->gnbid->value;
1891 SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID = node_5_0->id_menb_ue_x2ap_id;
1892 SgNB_ack_for_ue_beam_csi->id_SgNB_UE_X2AP_ID = node_5_0->id_sgnb_ue_x2ap_id;
1893 if(node_5_0->id_menb_ue_x2ap_id_extension){
1894 SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID_Extension = node_5_0->id_menb_ue_x2ap_id_extension->value;
1896 SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID_Extension = 0;
1898 node_5_1 = node_5_0->id_sgnbtomenbcontainer;
1899 if(node_5_0->id_sgnbtomenbcontainer){
1900 node_5_2 = node_5_1->criticalextensionschoice1;
1901 if(node_5_1->criticalextensionschoice1){
1902 node_5_3 = node_5_2->protocolies;
1903 if(node_5_2->protocolies){
1904 node_5_4 = node_5_3->candidatecellinfolistsn;
1905 if(node_5_3->candidatecellinfolistsn){
1906 for(i_5_5=0;i_5_5<node_5_4->n_items; i_5_5++){
1907 node_5_5 = node_5_4->items[i_5_5];
1908 if(node_5_5->ssbfrequency){
1909 SgNB_ack_for_ue_beam_csi->ssbFrequency = node_5_5->ssbfrequency->value;
1910 SgNB_ack_for_ue_beam_csi->ssbFrequency_exists = 1;
1912 SgNB_ack_for_ue_beam_csi->ssbFrequency_exists = 0;
1914 if(node_5_5->reffreqcsi_rs){
1915 SgNB_ack_for_ue_beam_csi->refFreqCSI_RS = node_5_5->reffreqcsi_rs->value;
1916 SgNB_ack_for_ue_beam_csi->refFreqCSI_RS_exists = 1;
1918 SgNB_ack_for_ue_beam_csi->refFreqCSI_RS_exists = 0;
1920 node_5_6 = node_5_5->measresultservingcell;
1921 if(node_5_5->measresultservingcell){
1922 if(node_5_6->physcellid){
1923 SgNB_ack_for_ue_beam_csi->physCellId = node_5_6->physcellid->value;
1924 SgNB_ack_for_ue_beam_csi->physCellId_exists = 1;
1926 SgNB_ack_for_ue_beam_csi->physCellId_exists = 0;
1928 node_5_7 = node_5_6->measresult;
1929 if(node_5_6->measresult){
1930 node_5_8 = node_5_7->rsindexresults;
1931 if(node_5_7->rsindexresults){
1932 node_5_9 = node_5_8->resultscsi_rs_indexes;
1933 if(node_5_8->resultscsi_rs_indexes){
1934 for(i_5_10=0;i_5_10<node_5_9->n_items; i_5_10++){
1935 node_5_10 = node_5_9->items[i_5_10];
1936 SgNB_ack_for_ue_beam_csi->csi_rs_index = node_5_10->csi_rs_index;
1937 node_5_11 = node_5_10->csi_rs_results;
1938 if(node_5_10->csi_rs_results){
1939 if(node_5_11->rsrq){
1940 SgNB_ack_for_ue_beam_csi->rsrq = node_5_11->rsrq->value;
1941 SgNB_ack_for_ue_beam_csi->rsrq_exists = 1;
1943 SgNB_ack_for_ue_beam_csi->rsrq_exists = 0;
1945 if(node_5_11->rsrp){
1946 SgNB_ack_for_ue_beam_csi->rsrp = node_5_11->rsrp->value;
1947 SgNB_ack_for_ue_beam_csi->rsrp_exists = 1;
1949 SgNB_ack_for_ue_beam_csi->rsrp_exists = 0;
1951 if(node_5_11->sinr){
1952 SgNB_ack_for_ue_beam_csi->sinr = node_5_11->sinr->value;
1953 SgNB_ack_for_ue_beam_csi->sinr_exists = 1;
1955 SgNB_ack_for_ue_beam_csi->sinr_exists = 0;
1957 rts_fta_process_packet(&cur_packet);
1969 // --------------------------------------------------
1970 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1972 SgNB_ack_for_ue_beam_ssb = (struct _SgNB_ack_for_ue_beam_ssb *)(cur_packet.record.packed.values);
1973 cur_packet.schema = 507;
1974 node_6_0 = node_5_0;
1975 SgNB_ack_for_ue_beam_ssb->timestamp_ms = timestamp;
1976 if(hdr->header->gnbid==NULL)
1977 SgNB_ack_for_ue_beam_ssb->gnb_id = empty_string;
1979 SgNB_ack_for_ue_beam_ssb->gnb_id = hdr->header->gnbid->value;
1981 SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID = node_6_0->id_menb_ue_x2ap_id;
1982 SgNB_ack_for_ue_beam_ssb->id_SgNB_UE_X2AP_ID = node_6_0->id_sgnb_ue_x2ap_id;
1983 if(node_6_0->id_menb_ue_x2ap_id_extension){
1984 SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID_Extension = node_6_0->id_menb_ue_x2ap_id_extension->value;
1986 SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
1988 node_6_1 = node_6_0->id_sgnbtomenbcontainer;
1989 if(node_6_0->id_sgnbtomenbcontainer){
1990 node_6_2 = node_6_1->criticalextensionschoice1;
1991 if(node_6_1->criticalextensionschoice1){
1992 node_6_3 = node_6_2->protocolies;
1993 if(node_6_2->protocolies){
1994 node_6_4 = node_6_3->candidatecellinfolistsn;
1995 if(node_6_3->candidatecellinfolistsn){
1996 for(i_6_5=0;i_6_5<node_6_4->n_items; i_6_5++){
1997 node_6_5 = node_6_4->items[i_6_5];
1998 if(node_6_5->ssbfrequency){
1999 SgNB_ack_for_ue_beam_ssb->ssbFrequency = node_6_5->ssbfrequency->value;
2000 SgNB_ack_for_ue_beam_ssb->ssbFrequency_exists = 1;
2002 SgNB_ack_for_ue_beam_ssb->ssbFrequency_exists = 0;
2004 if(node_6_5->reffreqcsi_rs){
2005 SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS = node_6_5->reffreqcsi_rs->value;
2006 SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS_exists = 1;
2008 SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS_exists = 0;
2010 node_6_6 = node_6_5->measresultservingcell;
2011 if(node_6_5->measresultservingcell){
2012 if(node_6_6->physcellid){
2013 SgNB_ack_for_ue_beam_ssb->physCellId = node_6_6->physcellid->value;
2014 SgNB_ack_for_ue_beam_ssb->physCellId_exists = 1;
2016 SgNB_ack_for_ue_beam_ssb->physCellId_exists = 0;
2018 node_6_7 = node_6_6->measresult;
2019 if(node_6_6->measresult){
2020 node_6_8 = node_6_7->rsindexresults;
2021 if(node_6_7->rsindexresults){
2022 node_6_9 = node_6_8->resultsssb_indexes;
2023 if(node_6_8->resultsssb_indexes){
2024 for(i_6_10=0;i_6_10<node_6_9->n_items; i_6_10++){
2025 node_6_10 = node_6_9->items[i_6_10];
2026 SgNB_ack_for_ue_beam_ssb->ssb_Index = node_6_10->ssb_index;
2027 node_6_11 = node_6_10->ssb_results;
2028 if(node_6_10->ssb_results){
2029 if(node_6_11->rsrq){
2030 SgNB_ack_for_ue_beam_ssb->rsrq = node_6_11->rsrq->value;
2031 SgNB_ack_for_ue_beam_ssb->rsrq_exists = 1;
2033 SgNB_ack_for_ue_beam_ssb->rsrq_exists = 0;
2035 if(node_6_11->rsrp){
2036 SgNB_ack_for_ue_beam_ssb->rsrp = node_6_11->rsrp->value;
2037 SgNB_ack_for_ue_beam_ssb->rsrp_exists = 1;
2039 SgNB_ack_for_ue_beam_ssb->rsrp_exists = 0;
2041 if(node_6_11->sinr){
2042 SgNB_ack_for_ue_beam_ssb->sinr = node_6_11->sinr->value;
2043 SgNB_ack_for_ue_beam_ssb->sinr_exists = 1;
2045 SgNB_ack_for_ue_beam_ssb->sinr_exists = 0;
2047 rts_fta_process_packet(&cur_packet);
2059 uenibstreamprotobuf__sg_nbaddition_request_acknowledge__free_unpacked(node_0_0,NULL);
2063 gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t buflen){
2064 char *empty_string = "";
2065 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
2066 // ------------------------------------------
2067 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2068 struct _sgnb_addreq_for_ue *sgnb_addreq_for_ue = NULL;
2069 Uenibstreamprotobuf__SgNBAdditionRequest *node_0_0 = NULL;
2070 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_0_1 = NULL;
2071 Uenibstreamprotobuf__ECGI *node_0_2 = NULL;
2072 // ------------------------------------------
2073 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2074 struct _sgnb_addreq_for_ue_bearers *sgnb_addreq_for_ue_bearers = NULL;
2075 Uenibstreamprotobuf__SgNBAdditionRequest *node_1_0 = NULL;
2076 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_1_1 = NULL;
2077 Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqList *node_1_2 = NULL;
2078 Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqItemIEs *node_1_3 = NULL;
2080 Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqItem *node_1_4 = NULL;
2081 // ------------------------------------------
2082 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2083 struct _sgnb_addreq_for_ue_sn_serv_ssb *sgnb_addreq_for_ue_sn_serv_ssb = NULL;
2084 Uenibstreamprotobuf__SgNBAdditionRequest *node_2_0 = NULL;
2085 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_2_1 = NULL;
2086 Uenibstreamprotobuf__CGConfigInfo *node_2_2 = NULL;
2087 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_2_3 = NULL;
2088 Uenibstreamprotobuf__CGConfigInfoIEs *node_2_4 = NULL;
2089 Uenibstreamprotobuf__MeasResultList2NR *node_2_5 = NULL;
2090 Uenibstreamprotobuf__MeasResult2NR *node_2_6 = NULL;
2092 Uenibstreamprotobuf__MeasResultNR *node_2_7 = NULL;
2093 Uenibstreamprotobuf__MeasResult *node_2_8 = NULL;
2094 Uenibstreamprotobuf__CellResults *node_2_9 = NULL;
2095 Uenibstreamprotobuf__MeasQuantityResults *node_2_10 = NULL;
2096 // ------------------------------------------
2097 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2098 struct _sgnb_addreq_for_ue_sn_serv_csi_rs *sgnb_addreq_for_ue_sn_serv_csi_rs = NULL;
2099 Uenibstreamprotobuf__SgNBAdditionRequest *node_3_0 = NULL;
2100 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_3_1 = NULL;
2101 Uenibstreamprotobuf__CGConfigInfo *node_3_2 = NULL;
2102 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_3_3 = NULL;
2103 Uenibstreamprotobuf__CGConfigInfoIEs *node_3_4 = NULL;
2104 Uenibstreamprotobuf__MeasResultList2NR *node_3_5 = NULL;
2105 Uenibstreamprotobuf__MeasResult2NR *node_3_6 = NULL;
2107 Uenibstreamprotobuf__MeasResultNR *node_3_7 = NULL;
2108 Uenibstreamprotobuf__MeasResult *node_3_8 = NULL;
2109 Uenibstreamprotobuf__CellResults *node_3_9 = NULL;
2110 Uenibstreamprotobuf__MeasQuantityResults *node_3_10 = NULL;
2111 // ------------------------------------------
2112 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2113 struct _sgnb_addreq_for_ue_mn_serv_ssb *sgnb_addreq_for_ue_mn_serv_ssb = NULL;
2114 Uenibstreamprotobuf__SgNBAdditionRequest *node_4_0 = NULL;
2115 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_4_1 = NULL;
2116 Uenibstreamprotobuf__CGConfigInfo *node_4_2 = NULL;
2117 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_4_3 = NULL;
2118 Uenibstreamprotobuf__CGConfigInfoIEs *node_4_4 = NULL;
2119 Uenibstreamprotobuf__MeasResultList2NR *node_4_5 = NULL;
2120 Uenibstreamprotobuf__MeasResult2NR *node_4_6 = NULL;
2122 Uenibstreamprotobuf__MeasResultNR *node_4_7 = NULL;
2123 Uenibstreamprotobuf__MeasResult *node_4_8 = NULL;
2124 Uenibstreamprotobuf__CellResults *node_4_9 = NULL;
2125 Uenibstreamprotobuf__MeasQuantityResults *node_4_10 = NULL;
2126 // ------------------------------------------
2127 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2128 struct _sgnb_addreq_for_ue_mn_serv_csi_rs *sgnb_addreq_for_ue_mn_serv_csi_rs = NULL;
2129 Uenibstreamprotobuf__SgNBAdditionRequest *node_5_0 = NULL;
2130 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_5_1 = NULL;
2131 Uenibstreamprotobuf__CGConfigInfo *node_5_2 = NULL;
2132 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_5_3 = NULL;
2133 Uenibstreamprotobuf__CGConfigInfoIEs *node_5_4 = NULL;
2134 Uenibstreamprotobuf__MeasResultList2NR *node_5_5 = NULL;
2135 Uenibstreamprotobuf__MeasResult2NR *node_5_6 = NULL;
2137 Uenibstreamprotobuf__MeasResultNR *node_5_7 = NULL;
2138 Uenibstreamprotobuf__MeasResult *node_5_8 = NULL;
2139 Uenibstreamprotobuf__CellResults *node_5_9 = NULL;
2140 Uenibstreamprotobuf__MeasQuantityResults *node_5_10 = NULL;
2141 // ------------------------------------------
2142 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2143 struct _sgnb_addreq_for_ue_sn_neigh_ssb *sgnb_addreq_for_ue_sn_neigh_ssb = NULL;
2144 Uenibstreamprotobuf__SgNBAdditionRequest *node_6_0 = NULL;
2145 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_6_1 = NULL;
2146 Uenibstreamprotobuf__CGConfigInfo *node_6_2 = NULL;
2147 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_6_3 = NULL;
2148 Uenibstreamprotobuf__CGConfigInfoIEs *node_6_4 = NULL;
2149 Uenibstreamprotobuf__MeasResultList2NR *node_6_5 = NULL;
2150 Uenibstreamprotobuf__MeasResult2NR *node_6_6 = NULL;
2152 Uenibstreamprotobuf__MeasResultListNR *node_6_7 = NULL;
2153 Uenibstreamprotobuf__MeasResultNR *node_6_8 = NULL;
2155 Uenibstreamprotobuf__MeasResult *node_6_9 = NULL;
2156 Uenibstreamprotobuf__CellResults *node_6_10 = NULL;
2157 Uenibstreamprotobuf__MeasQuantityResults *node_6_11 = NULL;
2158 // ------------------------------------------
2159 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2160 struct _sgnb_addreq_for_ue_sn_neigh_csi_rs *sgnb_addreq_for_ue_sn_neigh_csi_rs = NULL;
2161 Uenibstreamprotobuf__SgNBAdditionRequest *node_7_0 = NULL;
2162 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_7_1 = NULL;
2163 Uenibstreamprotobuf__CGConfigInfo *node_7_2 = NULL;
2164 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_7_3 = NULL;
2165 Uenibstreamprotobuf__CGConfigInfoIEs *node_7_4 = NULL;
2166 Uenibstreamprotobuf__MeasResultList2NR *node_7_5 = NULL;
2167 Uenibstreamprotobuf__MeasResult2NR *node_7_6 = NULL;
2169 Uenibstreamprotobuf__MeasResultListNR *node_7_7 = NULL;
2170 Uenibstreamprotobuf__MeasResultNR *node_7_8 = NULL;
2172 Uenibstreamprotobuf__MeasResult *node_7_9 = NULL;
2173 Uenibstreamprotobuf__CellResults *node_7_10 = NULL;
2174 Uenibstreamprotobuf__MeasQuantityResults *node_7_11 = NULL;
2175 // ------------------------------------------
2176 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2177 struct _sgnb_addreq_for_ue_mn_neigh_ssb *sgnb_addreq_for_ue_mn_neigh_ssb = NULL;
2178 Uenibstreamprotobuf__SgNBAdditionRequest *node_8_0 = NULL;
2179 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_8_1 = NULL;
2180 Uenibstreamprotobuf__CGConfigInfo *node_8_2 = NULL;
2181 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_8_3 = NULL;
2182 Uenibstreamprotobuf__CGConfigInfoIEs *node_8_4 = NULL;
2183 Uenibstreamprotobuf__MeasResultList2NR *node_8_5 = NULL;
2184 Uenibstreamprotobuf__MeasResult2NR *node_8_6 = NULL;
2186 Uenibstreamprotobuf__MeasResultListNR *node_8_7 = NULL;
2187 Uenibstreamprotobuf__MeasResultNR *node_8_8 = NULL;
2189 Uenibstreamprotobuf__MeasResult *node_8_9 = NULL;
2190 Uenibstreamprotobuf__CellResults *node_8_10 = NULL;
2191 Uenibstreamprotobuf__MeasQuantityResults *node_8_11 = NULL;
2192 // ------------------------------------------
2193 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2194 struct _sgnb_addreq_for_ue_mn_neigh_csi_rs *sgnb_addreq_for_ue_mn_neigh_csi_rs = NULL;
2195 Uenibstreamprotobuf__SgNBAdditionRequest *node_9_0 = NULL;
2196 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_9_1 = NULL;
2197 Uenibstreamprotobuf__CGConfigInfo *node_9_2 = NULL;
2198 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_9_3 = NULL;
2199 Uenibstreamprotobuf__CGConfigInfoIEs *node_9_4 = NULL;
2200 Uenibstreamprotobuf__MeasResultList2NR *node_9_5 = NULL;
2201 Uenibstreamprotobuf__MeasResult2NR *node_9_6 = NULL;
2203 Uenibstreamprotobuf__MeasResultListNR *node_9_7 = NULL;
2204 Uenibstreamprotobuf__MeasResultNR *node_9_8 = NULL;
2206 Uenibstreamprotobuf__MeasResult *node_9_9 = NULL;
2207 Uenibstreamprotobuf__CellResults *node_9_10 = NULL;
2208 Uenibstreamprotobuf__MeasQuantityResults *node_9_11 = NULL;
2210 // --------------------------------------------------
2211 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2213 sgnb_addreq_for_ue = (struct _sgnb_addreq_for_ue *)(cur_packet.record.packed.values);
2214 cur_packet.schema = 401;
2216 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
2217 if(hdr==NULL) return -1;
2219 node_0_0 = hdr->sgnbadditionrequest;
2220 if(node_0_0==NULL) return -2;
2221 if(hdr->header==NULL) return -3;
2223 sgnb_addreq_for_ue->timestamp_ms = timestamp;
2224 if(hdr->header->gnbid==NULL)
2225 sgnb_addreq_for_ue->gnb_id = empty_string;
2227 sgnb_addreq_for_ue->gnb_id = hdr->header->gnbid->value;
2229 node_0_1 = node_0_0->protocolies;
2230 if(node_0_0->protocolies){
2231 sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
2232 if(node_0_1->id_sgnbueaggregatemaximumbitrate){
2233 sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink = node_0_1->id_sgnbueaggregatemaximumbitrate->ueaggregatemaximumbitratedownlink;
2234 sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink_exists = 1;
2236 sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink_exists = 0;
2238 if(node_0_1->id_menb_ue_x2ap_id_extension){
2239 sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_0_1->id_menb_ue_x2ap_id_extension->value;
2241 sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0;
2243 node_0_2 = node_0_1->id_menbcell_id;
2244 if(node_0_1->id_menbcell_id){
2245 sgnb_addreq_for_ue->eUTRANcellIdentifier = node_0_2->eutrancellidentifier;
2246 sgnb_addreq_for_ue->pLMN_Identity = node_0_2->plmn_identity;
2247 rts_fta_process_packet(&cur_packet);
2250 // --------------------------------------------------
2251 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2253 sgnb_addreq_for_ue_bearers = (struct _sgnb_addreq_for_ue_bearers *)(cur_packet.record.packed.values);
2254 cur_packet.schema = 402;
2255 node_1_0 = node_0_0;
2256 sgnb_addreq_for_ue_bearers->timestamp_ms = timestamp;
2257 if(hdr->header->gnbid==NULL)
2258 sgnb_addreq_for_ue_bearers->gnb_id = empty_string;
2260 sgnb_addreq_for_ue_bearers->gnb_id = hdr->header->gnbid->value;
2262 node_1_1 = node_1_0->protocolies;
2263 if(node_1_0->protocolies){
2264 sgnb_addreq_for_ue_bearers->id_MeNB_UE_X2AP_ID = node_1_1->id_menb_ue_x2ap_id;
2265 node_1_2 = node_1_1->id_e_rabs_tobeadded_sgnbaddreqlist;
2266 if(node_1_1->id_e_rabs_tobeadded_sgnbaddreqlist){
2267 for(i_1_3=0;i_1_3<node_1_2->n_items; i_1_3++){
2268 node_1_3 = node_1_2->items[i_1_3];
2269 node_1_4 = node_1_3->id_e_rabs_tobeadded_sgnbaddreq_item;
2270 if(node_1_3->id_e_rabs_tobeadded_sgnbaddreq_item){
2271 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){
2272 sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateDL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_maximumbitratedl;
2274 sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateDL = 0;
2276 if(node_1_4->en_dc_resourceconfiguration){
2277 sgnb_addreq_for_ue_bearers->pDCPatSgNB = node_1_4->en_dc_resourceconfiguration->pdcpatsgnb;
2279 sgnb_addreq_for_ue_bearers->pDCPatSgNB = -1;
2281 sgnb_addreq_for_ue_bearers->drb_ID = node_1_4->drb_id;
2282 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){
2283 sgnb_addreq_for_ue_bearers->priorityLevel = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->prioritylevel;
2285 sgnb_addreq_for_ue_bearers->priorityLevel = 0;
2287 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg){
2288 sgnb_addreq_for_ue_bearers->gTP_TEID = node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg->gtp_teid;
2290 sgnb_addreq_for_ue_bearers->gTP_TEID = "";
2292 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){
2293 sgnb_addreq_for_ue_bearers->pre_emptionCapability = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptioncapability->value;
2295 sgnb_addreq_for_ue_bearers->pre_emptionCapability = -1;
2297 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){
2298 sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateUL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_guaranteedbitrateul;
2300 sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateUL = 0;
2302 if(node_1_4->en_dc_resourceconfiguration){
2303 sgnb_addreq_for_ue_bearers->mCGresources = node_1_4->en_dc_resourceconfiguration->mcgresources;
2305 sgnb_addreq_for_ue_bearers->mCGresources = -1;
2307 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg){
2308 sgnb_addreq_for_ue_bearers->transportLayerAddress = node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg->transportlayeraddress;
2310 sgnb_addreq_for_ue_bearers->transportLayerAddress = "";
2312 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){
2313 sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateUL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_guaranteedbitrateul;
2315 sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateUL = 0;
2317 if(node_1_4->en_dc_resourceconfiguration){
2318 sgnb_addreq_for_ue_bearers->sCGresources = node_1_4->en_dc_resourceconfiguration->scgresources;
2320 sgnb_addreq_for_ue_bearers->sCGresources = -1;
2322 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){
2323 sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateUL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_maximumbitrateul;
2325 sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateUL = 0;
2327 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){
2328 sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateUL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_maximumbitrateul;
2330 sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateUL = 0;
2332 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){
2333 sgnb_addreq_for_ue_bearers->pre_emptionVulnerability = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptionvulnerability->value;
2335 sgnb_addreq_for_ue_bearers->pre_emptionVulnerability = -1;
2337 sgnb_addreq_for_ue_bearers->e_RAB_ID = node_1_4->e_rab_id;
2338 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){
2339 sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateDL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_guaranteedbitratedl;
2341 sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateDL = 0;
2343 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters){
2344 sgnb_addreq_for_ue_bearers->qCI = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->qci;
2346 sgnb_addreq_for_ue_bearers->qCI = 0;
2348 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){
2349 sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateDL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_maximumbitratedl;
2351 sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateDL = 0;
2353 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){
2354 sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateDL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_guaranteedbitratedl;
2356 sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateDL = 0;
2358 rts_fta_process_packet(&cur_packet);
2363 // --------------------------------------------------
2364 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2366 sgnb_addreq_for_ue_sn_serv_ssb = (struct _sgnb_addreq_for_ue_sn_serv_ssb *)(cur_packet.record.packed.values);
2367 cur_packet.schema = 403;
2368 node_2_0 = node_1_0;
2369 sgnb_addreq_for_ue_sn_serv_ssb->timestamp_ms = timestamp;
2370 if(hdr->header->gnbid==NULL)
2371 sgnb_addreq_for_ue_sn_serv_ssb->gnb_id = empty_string;
2373 sgnb_addreq_for_ue_sn_serv_ssb->gnb_id = hdr->header->gnbid->value;
2375 node_2_1 = node_2_0->protocolies;
2376 if(node_2_0->protocolies){
2377 sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID = node_2_1->id_menb_ue_x2ap_id;
2378 if(node_2_1->id_menb_ue_x2ap_id_extension){
2379 sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = node_2_1->id_menb_ue_x2ap_id_extension->value;
2381 sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
2383 node_2_2 = node_2_1->id_menbtosgnbcontainer;
2384 if(node_2_1->id_menbtosgnbcontainer){
2385 node_2_3 = node_2_2->criticalextensionschoice1;
2386 if(node_2_2->criticalextensionschoice1){
2387 node_2_4 = node_2_3->protocolies;
2388 if(node_2_3->protocolies){
2389 node_2_5 = node_2_4->candidatecellinfolistsn;
2390 if(node_2_4->candidatecellinfolistsn){
2391 for(i_2_6=0;i_2_6<node_2_5->n_items; i_2_6++){
2392 node_2_6 = node_2_5->items[i_2_6];
2393 node_2_7 = node_2_6->measresultservingcell;
2394 if(node_2_6->measresultservingcell){
2395 if(node_2_7->physcellid){
2396 sgnb_addreq_for_ue_sn_serv_ssb->physCellId = node_2_7->physcellid->value;
2397 sgnb_addreq_for_ue_sn_serv_ssb->physCellId_exists = 1;
2399 sgnb_addreq_for_ue_sn_serv_ssb->physCellId_exists = 0;
2401 node_2_8 = node_2_7->measresult;
2402 if(node_2_7->measresult){
2403 node_2_9 = node_2_8->cellresults;
2404 if(node_2_8->cellresults){
2405 node_2_10 = node_2_9->resultsssb_cell;
2406 if(node_2_9->resultsssb_cell){
2407 if(node_2_10->rsrq){
2408 sgnb_addreq_for_ue_sn_serv_ssb->rsrq = node_2_10->rsrq->value;
2410 sgnb_addreq_for_ue_sn_serv_ssb->rsrq = 128;
2412 if(node_2_10->rsrp){
2413 sgnb_addreq_for_ue_sn_serv_ssb->rsrp = node_2_10->rsrp->value;
2415 sgnb_addreq_for_ue_sn_serv_ssb->rsrp = 128;
2417 if(node_2_10->sinr){
2418 sgnb_addreq_for_ue_sn_serv_ssb->sinr = node_2_10->sinr->value;
2420 sgnb_addreq_for_ue_sn_serv_ssb->sinr = 128;
2422 rts_fta_process_packet(&cur_packet);
2433 // --------------------------------------------------
2434 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2436 sgnb_addreq_for_ue_sn_serv_csi_rs = (struct _sgnb_addreq_for_ue_sn_serv_csi_rs *)(cur_packet.record.packed.values);
2437 cur_packet.schema = 404;
2438 node_3_0 = node_2_0;
2439 sgnb_addreq_for_ue_sn_serv_csi_rs->timestamp_ms = timestamp;
2440 if(hdr->header->gnbid==NULL)
2441 sgnb_addreq_for_ue_sn_serv_csi_rs->gnb_id = empty_string;
2443 sgnb_addreq_for_ue_sn_serv_csi_rs->gnb_id = hdr->header->gnbid->value;
2445 node_3_1 = node_3_0->protocolies;
2446 if(node_3_0->protocolies){
2447 sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID = node_3_1->id_menb_ue_x2ap_id;
2448 if(node_3_1->id_menb_ue_x2ap_id_extension){
2449 sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_3_1->id_menb_ue_x2ap_id_extension->value;
2451 sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0;
2453 node_3_2 = node_3_1->id_menbtosgnbcontainer;
2454 if(node_3_1->id_menbtosgnbcontainer){
2455 node_3_3 = node_3_2->criticalextensionschoice1;
2456 if(node_3_2->criticalextensionschoice1){
2457 node_3_4 = node_3_3->protocolies;
2458 if(node_3_3->protocolies){
2459 node_3_5 = node_3_4->candidatecellinfolistsn;
2460 if(node_3_4->candidatecellinfolistsn){
2461 for(i_3_6=0;i_3_6<node_3_5->n_items; i_3_6++){
2462 node_3_6 = node_3_5->items[i_3_6];
2463 node_3_7 = node_3_6->measresultservingcell;
2464 if(node_3_6->measresultservingcell){
2465 if(node_3_7->physcellid){
2466 sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId = node_3_7->physcellid->value;
2467 sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId_exists = 1;
2469 sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId_exists = 0;
2471 node_3_8 = node_3_7->measresult;
2472 if(node_3_7->measresult){
2473 node_3_9 = node_3_8->cellresults;
2474 if(node_3_8->cellresults){
2475 node_3_10 = node_3_9->resultscsi_rs_cell;
2476 if(node_3_9->resultscsi_rs_cell){
2477 if(node_3_10->rsrq){
2478 sgnb_addreq_for_ue_sn_serv_csi_rs->rsrq = node_3_10->rsrq->value;
2480 sgnb_addreq_for_ue_sn_serv_csi_rs->rsrq = 128;
2482 if(node_3_10->rsrp){
2483 sgnb_addreq_for_ue_sn_serv_csi_rs->rsrp = node_3_10->rsrp->value;
2485 sgnb_addreq_for_ue_sn_serv_csi_rs->rsrp = 128;
2487 if(node_3_10->sinr){
2488 sgnb_addreq_for_ue_sn_serv_csi_rs->sinr = node_3_10->sinr->value;
2490 sgnb_addreq_for_ue_sn_serv_csi_rs->sinr = 128;
2492 rts_fta_process_packet(&cur_packet);
2503 // --------------------------------------------------
2504 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2506 sgnb_addreq_for_ue_mn_serv_ssb = (struct _sgnb_addreq_for_ue_mn_serv_ssb *)(cur_packet.record.packed.values);
2507 cur_packet.schema = 405;
2508 node_4_0 = node_3_0;
2509 sgnb_addreq_for_ue_mn_serv_ssb->timestamp_ms = timestamp;
2510 if(hdr->header->gnbid==NULL)
2511 sgnb_addreq_for_ue_mn_serv_ssb->gnb_id = empty_string;
2513 sgnb_addreq_for_ue_mn_serv_ssb->gnb_id = hdr->header->gnbid->value;
2515 node_4_1 = node_4_0->protocolies;
2516 if(node_4_0->protocolies){
2517 sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID = node_4_1->id_menb_ue_x2ap_id;
2518 if(node_4_1->id_menb_ue_x2ap_id_extension){
2519 sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = node_4_1->id_menb_ue_x2ap_id_extension->value;
2521 sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
2523 node_4_2 = node_4_1->id_menbtosgnbcontainer;
2524 if(node_4_1->id_menbtosgnbcontainer){
2525 node_4_3 = node_4_2->criticalextensionschoice1;
2526 if(node_4_2->criticalextensionschoice1){
2527 node_4_4 = node_4_3->protocolies;
2528 if(node_4_3->protocolies){
2529 node_4_5 = node_4_4->candidatecellinfolistmn;
2530 if(node_4_4->candidatecellinfolistmn){
2531 for(i_4_6=0;i_4_6<node_4_5->n_items; i_4_6++){
2532 node_4_6 = node_4_5->items[i_4_6];
2533 node_4_7 = node_4_6->measresultservingcell;
2534 if(node_4_6->measresultservingcell){
2535 if(node_4_7->physcellid){
2536 sgnb_addreq_for_ue_mn_serv_ssb->physCellId = node_4_7->physcellid->value;
2537 sgnb_addreq_for_ue_mn_serv_ssb->physCellId_exists = 1;
2539 sgnb_addreq_for_ue_mn_serv_ssb->physCellId_exists = 0;
2541 node_4_8 = node_4_7->measresult;
2542 if(node_4_7->measresult){
2543 node_4_9 = node_4_8->cellresults;
2544 if(node_4_8->cellresults){
2545 node_4_10 = node_4_9->resultsssb_cell;
2546 if(node_4_9->resultsssb_cell){
2547 if(node_4_10->rsrq){
2548 sgnb_addreq_for_ue_mn_serv_ssb->rsrq = node_4_10->rsrq->value;
2550 sgnb_addreq_for_ue_mn_serv_ssb->rsrq = 128;
2552 if(node_4_10->rsrp){
2553 sgnb_addreq_for_ue_mn_serv_ssb->rsrp = node_4_10->rsrp->value;
2555 sgnb_addreq_for_ue_mn_serv_ssb->rsrp = 128;
2557 if(node_4_10->sinr){
2558 sgnb_addreq_for_ue_mn_serv_ssb->sinr = node_4_10->sinr->value;
2560 sgnb_addreq_for_ue_mn_serv_ssb->sinr = 128;
2562 rts_fta_process_packet(&cur_packet);
2573 // --------------------------------------------------
2574 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2576 sgnb_addreq_for_ue_mn_serv_csi_rs = (struct _sgnb_addreq_for_ue_mn_serv_csi_rs *)(cur_packet.record.packed.values);
2577 cur_packet.schema = 406;
2578 node_5_0 = node_4_0;
2579 sgnb_addreq_for_ue_mn_serv_csi_rs->timestamp_ms = timestamp;
2580 if(hdr->header->gnbid==NULL)
2581 sgnb_addreq_for_ue_mn_serv_csi_rs->gnb_id = empty_string;
2583 sgnb_addreq_for_ue_mn_serv_csi_rs->gnb_id = hdr->header->gnbid->value;
2585 node_5_1 = node_5_0->protocolies;
2586 if(node_5_0->protocolies){
2587 sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID = node_5_1->id_menb_ue_x2ap_id;
2588 if(node_5_1->id_menb_ue_x2ap_id_extension){
2589 sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_5_1->id_menb_ue_x2ap_id_extension->value;
2591 sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0;
2593 node_5_2 = node_5_1->id_menbtosgnbcontainer;
2594 if(node_5_1->id_menbtosgnbcontainer){
2595 node_5_3 = node_5_2->criticalextensionschoice1;
2596 if(node_5_2->criticalextensionschoice1){
2597 node_5_4 = node_5_3->protocolies;
2598 if(node_5_3->protocolies){
2599 node_5_5 = node_5_4->candidatecellinfolistmn;
2600 if(node_5_4->candidatecellinfolistmn){
2601 for(i_5_6=0;i_5_6<node_5_5->n_items; i_5_6++){
2602 node_5_6 = node_5_5->items[i_5_6];
2603 node_5_7 = node_5_6->measresultservingcell;
2604 if(node_5_6->measresultservingcell){
2605 if(node_5_7->physcellid){
2606 sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId = node_5_7->physcellid->value;
2607 sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId_exists = 1;
2609 sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId_exists = 0;
2611 node_5_8 = node_5_7->measresult;
2612 if(node_5_7->measresult){
2613 node_5_9 = node_5_8->cellresults;
2614 if(node_5_8->cellresults){
2615 node_5_10 = node_5_9->resultscsi_rs_cell;
2616 if(node_5_9->resultscsi_rs_cell){
2617 if(node_5_10->rsrq){
2618 sgnb_addreq_for_ue_mn_serv_csi_rs->rsrq = node_5_10->rsrq->value;
2620 sgnb_addreq_for_ue_mn_serv_csi_rs->rsrq = 128;
2622 if(node_5_10->rsrp){
2623 sgnb_addreq_for_ue_mn_serv_csi_rs->rsrp = node_5_10->rsrp->value;
2625 sgnb_addreq_for_ue_mn_serv_csi_rs->rsrp = 128;
2627 if(node_5_10->sinr){
2628 sgnb_addreq_for_ue_mn_serv_csi_rs->sinr = node_5_10->sinr->value;
2630 sgnb_addreq_for_ue_mn_serv_csi_rs->sinr = 128;
2632 rts_fta_process_packet(&cur_packet);
2643 // --------------------------------------------------
2644 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2646 sgnb_addreq_for_ue_sn_neigh_ssb = (struct _sgnb_addreq_for_ue_sn_neigh_ssb *)(cur_packet.record.packed.values);
2647 cur_packet.schema = 408;
2648 node_6_0 = node_5_0;
2649 sgnb_addreq_for_ue_sn_neigh_ssb->timestamp_ms = timestamp;
2650 if(hdr->header->gnbid==NULL)
2651 sgnb_addreq_for_ue_sn_neigh_ssb->gnb_id = empty_string;
2653 sgnb_addreq_for_ue_sn_neigh_ssb->gnb_id = hdr->header->gnbid->value;
2655 node_6_1 = node_6_0->protocolies;
2656 if(node_6_0->protocolies){
2657 sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID = node_6_1->id_menb_ue_x2ap_id;
2658 if(node_6_1->id_menb_ue_x2ap_id_extension){
2659 sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = node_6_1->id_menb_ue_x2ap_id_extension->value;
2661 sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
2663 node_6_2 = node_6_1->id_menbtosgnbcontainer;
2664 if(node_6_1->id_menbtosgnbcontainer){
2665 node_6_3 = node_6_2->criticalextensionschoice1;
2666 if(node_6_2->criticalextensionschoice1){
2667 node_6_4 = node_6_3->protocolies;
2668 if(node_6_3->protocolies){
2669 node_6_5 = node_6_4->candidatecellinfolistsn;
2670 if(node_6_4->candidatecellinfolistsn){
2671 for(i_6_6=0;i_6_6<node_6_5->n_items; i_6_6++){
2672 node_6_6 = node_6_5->items[i_6_6];
2673 node_6_7 = node_6_6->measresultneighcelllistnr;
2674 if(node_6_6->measresultneighcelllistnr){
2675 for(i_6_8=0;i_6_8<node_6_7->n_items; i_6_8++){
2676 node_6_8 = node_6_7->items[i_6_8];
2677 if(node_6_8->physcellid){
2678 sgnb_addreq_for_ue_sn_neigh_ssb->physCellId = node_6_8->physcellid->value;
2679 sgnb_addreq_for_ue_sn_neigh_ssb->physCellId_exists = 1;
2681 sgnb_addreq_for_ue_sn_neigh_ssb->physCellId_exists = 0;
2683 node_6_9 = node_6_8->measresult;
2684 if(node_6_8->measresult){
2685 node_6_10 = node_6_9->cellresults;
2686 if(node_6_9->cellresults){
2687 node_6_11 = node_6_10->resultsssb_cell;
2688 if(node_6_10->resultsssb_cell){
2689 if(node_6_11->rsrq){
2690 sgnb_addreq_for_ue_sn_neigh_ssb->rsrq = node_6_11->rsrq->value;
2692 sgnb_addreq_for_ue_sn_neigh_ssb->rsrq = 128;
2694 if(node_6_11->rsrp){
2695 sgnb_addreq_for_ue_sn_neigh_ssb->rsrp = node_6_11->rsrp->value;
2697 sgnb_addreq_for_ue_sn_neigh_ssb->rsrp = 128;
2699 if(node_6_11->sinr){
2700 sgnb_addreq_for_ue_sn_neigh_ssb->sinr = node_6_11->sinr->value;
2702 sgnb_addreq_for_ue_sn_neigh_ssb->sinr = 128;
2704 rts_fta_process_packet(&cur_packet);
2716 // --------------------------------------------------
2717 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2719 sgnb_addreq_for_ue_sn_neigh_csi_rs = (struct _sgnb_addreq_for_ue_sn_neigh_csi_rs *)(cur_packet.record.packed.values);
2720 cur_packet.schema = 409;
2721 node_7_0 = node_6_0;
2722 sgnb_addreq_for_ue_sn_neigh_csi_rs->timestamp_ms = timestamp;
2723 if(hdr->header->gnbid==NULL)
2724 sgnb_addreq_for_ue_sn_neigh_csi_rs->gnb_id = empty_string;
2726 sgnb_addreq_for_ue_sn_neigh_csi_rs->gnb_id = hdr->header->gnbid->value;
2728 node_7_1 = node_7_0->protocolies;
2729 if(node_7_0->protocolies){
2730 sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID = node_7_1->id_menb_ue_x2ap_id;
2731 if(node_7_1->id_menb_ue_x2ap_id_extension){
2732 sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_7_1->id_menb_ue_x2ap_id_extension->value;
2734 sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0;
2736 node_7_2 = node_7_1->id_menbtosgnbcontainer;
2737 if(node_7_1->id_menbtosgnbcontainer){
2738 node_7_3 = node_7_2->criticalextensionschoice1;
2739 if(node_7_2->criticalextensionschoice1){
2740 node_7_4 = node_7_3->protocolies;
2741 if(node_7_3->protocolies){
2742 node_7_5 = node_7_4->candidatecellinfolistsn;
2743 if(node_7_4->candidatecellinfolistsn){
2744 for(i_7_6=0;i_7_6<node_7_5->n_items; i_7_6++){
2745 node_7_6 = node_7_5->items[i_7_6];
2746 node_7_7 = node_7_6->measresultneighcelllistnr;
2747 if(node_7_6->measresultneighcelllistnr){
2748 for(i_7_8=0;i_7_8<node_7_7->n_items; i_7_8++){
2749 node_7_8 = node_7_7->items[i_7_8];
2750 if(node_7_8->physcellid){
2751 sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId = node_7_8->physcellid->value;
2752 sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId_exists = 1;
2754 sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId_exists = 0;
2756 node_7_9 = node_7_8->measresult;
2757 if(node_7_8->measresult){
2758 node_7_10 = node_7_9->cellresults;
2759 if(node_7_9->cellresults){
2760 node_7_11 = node_7_10->resultscsi_rs_cell;
2761 if(node_7_10->resultscsi_rs_cell){
2762 if(node_7_11->rsrq){
2763 sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrq = node_7_11->rsrq->value;
2765 sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrq = 128;
2767 if(node_7_11->rsrp){
2768 sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrp = node_7_11->rsrp->value;
2770 sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrp = 128;
2772 if(node_7_11->sinr){
2773 sgnb_addreq_for_ue_sn_neigh_csi_rs->sinr = node_7_11->sinr->value;
2775 sgnb_addreq_for_ue_sn_neigh_csi_rs->sinr = 128;
2777 rts_fta_process_packet(&cur_packet);
2789 // --------------------------------------------------
2790 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2792 sgnb_addreq_for_ue_mn_neigh_ssb = (struct _sgnb_addreq_for_ue_mn_neigh_ssb *)(cur_packet.record.packed.values);
2793 cur_packet.schema = 410;
2794 node_8_0 = node_7_0;
2795 sgnb_addreq_for_ue_mn_neigh_ssb->timestamp_ms = timestamp;
2796 if(hdr->header->gnbid==NULL)
2797 sgnb_addreq_for_ue_mn_neigh_ssb->gnb_id = empty_string;
2799 sgnb_addreq_for_ue_mn_neigh_ssb->gnb_id = hdr->header->gnbid->value;
2801 node_8_1 = node_8_0->protocolies;
2802 if(node_8_0->protocolies){
2803 sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID = node_8_1->id_menb_ue_x2ap_id;
2804 if(node_8_1->id_menb_ue_x2ap_id_extension){
2805 sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = node_8_1->id_menb_ue_x2ap_id_extension->value;
2807 sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
2809 node_8_2 = node_8_1->id_menbtosgnbcontainer;
2810 if(node_8_1->id_menbtosgnbcontainer){
2811 node_8_3 = node_8_2->criticalextensionschoice1;
2812 if(node_8_2->criticalextensionschoice1){
2813 node_8_4 = node_8_3->protocolies;
2814 if(node_8_3->protocolies){
2815 node_8_5 = node_8_4->candidatecellinfolistmn;
2816 if(node_8_4->candidatecellinfolistmn){
2817 for(i_8_6=0;i_8_6<node_8_5->n_items; i_8_6++){
2818 node_8_6 = node_8_5->items[i_8_6];
2819 node_8_7 = node_8_6->measresultneighcelllistnr;
2820 if(node_8_6->measresultneighcelllistnr){
2821 for(i_8_8=0;i_8_8<node_8_7->n_items; i_8_8++){
2822 node_8_8 = node_8_7->items[i_8_8];
2823 if(node_8_8->physcellid){
2824 sgnb_addreq_for_ue_mn_neigh_ssb->physCellId = node_8_8->physcellid->value;
2825 sgnb_addreq_for_ue_mn_neigh_ssb->physCellId_exists = 1;
2827 sgnb_addreq_for_ue_mn_neigh_ssb->physCellId_exists = 0;
2829 node_8_9 = node_8_8->measresult;
2830 if(node_8_8->measresult){
2831 node_8_10 = node_8_9->cellresults;
2832 if(node_8_9->cellresults){
2833 node_8_11 = node_8_10->resultsssb_cell;
2834 if(node_8_10->resultsssb_cell){
2835 if(node_8_11->rsrq){
2836 sgnb_addreq_for_ue_mn_neigh_ssb->rsrq = node_8_11->rsrq->value;
2838 sgnb_addreq_for_ue_mn_neigh_ssb->rsrq = 128;
2840 if(node_8_11->rsrp){
2841 sgnb_addreq_for_ue_mn_neigh_ssb->rsrp = node_8_11->rsrp->value;
2843 sgnb_addreq_for_ue_mn_neigh_ssb->rsrp = 128;
2845 if(node_8_11->sinr){
2846 sgnb_addreq_for_ue_mn_neigh_ssb->sinr = node_8_11->sinr->value;
2848 sgnb_addreq_for_ue_mn_neigh_ssb->sinr = 128;
2850 rts_fta_process_packet(&cur_packet);
2862 // --------------------------------------------------
2863 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2865 sgnb_addreq_for_ue_mn_neigh_csi_rs = (struct _sgnb_addreq_for_ue_mn_neigh_csi_rs *)(cur_packet.record.packed.values);
2866 cur_packet.schema = 411;
2867 node_9_0 = node_8_0;
2868 sgnb_addreq_for_ue_mn_neigh_csi_rs->timestamp_ms = timestamp;
2869 if(hdr->header->gnbid==NULL)
2870 sgnb_addreq_for_ue_mn_neigh_csi_rs->gnb_id = empty_string;
2872 sgnb_addreq_for_ue_mn_neigh_csi_rs->gnb_id = hdr->header->gnbid->value;
2874 node_9_1 = node_9_0->protocolies;
2875 if(node_9_0->protocolies){
2876 sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID = node_9_1->id_menb_ue_x2ap_id;
2877 if(node_9_1->id_menb_ue_x2ap_id_extension){
2878 sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_9_1->id_menb_ue_x2ap_id_extension->value;
2880 sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0;
2882 node_9_2 = node_9_1->id_menbtosgnbcontainer;
2883 if(node_9_1->id_menbtosgnbcontainer){
2884 node_9_3 = node_9_2->criticalextensionschoice1;
2885 if(node_9_2->criticalextensionschoice1){
2886 node_9_4 = node_9_3->protocolies;
2887 if(node_9_3->protocolies){
2888 node_9_5 = node_9_4->candidatecellinfolistmn;
2889 if(node_9_4->candidatecellinfolistmn){
2890 for(i_9_6=0;i_9_6<node_9_5->n_items; i_9_6++){
2891 node_9_6 = node_9_5->items[i_9_6];
2892 node_9_7 = node_9_6->measresultneighcelllistnr;
2893 if(node_9_6->measresultneighcelllistnr){
2894 for(i_9_8=0;i_9_8<node_9_7->n_items; i_9_8++){
2895 node_9_8 = node_9_7->items[i_9_8];
2896 if(node_9_8->physcellid){
2897 sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId = node_9_8->physcellid->value;
2898 sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId_exists = 1;
2900 sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId_exists = 0;
2902 node_9_9 = node_9_8->measresult;
2903 if(node_9_8->measresult){
2904 node_9_10 = node_9_9->cellresults;
2905 if(node_9_9->cellresults){
2906 node_9_11 = node_9_10->resultscsi_rs_cell;
2907 if(node_9_10->resultscsi_rs_cell){
2908 if(node_9_11->rsrq){
2909 sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrq = node_9_11->rsrq->value;
2911 sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrq = 128;
2913 if(node_9_11->rsrp){
2914 sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrp = node_9_11->rsrp->value;
2916 sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrp = 128;
2918 if(node_9_11->sinr){
2919 sgnb_addreq_for_ue_mn_neigh_csi_rs->sinr = node_9_11->sinr->value;
2921 sgnb_addreq_for_ue_mn_neigh_csi_rs->sinr = 128;
2923 rts_fta_process_packet(&cur_packet);
2935 uenibstreamprotobuf__sg_nbaddition_request__free_unpacked(node_0_0,NULL);
2939 gs_uint32_t process_buffer_SGNBMODCONF(gs_uint8_t * buffer, gs_uint32_t buflen){
2940 char *empty_string = "";
2941 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
2942 // ------------------------------------------
2943 // --- Variables for .proto sgnb_modification_confirm.json, path sgnb_mod_confirm.json
2944 struct _sgnb_mod_conf *sgnb_mod_conf = NULL;
2945 Uenibstreamprotobuf__SgNBModificationConfirm *node_0_0 = NULL;
2946 Uenibstreamprotobuf__SgNBModificationConfirmIEs *node_0_1 = NULL;
2948 // --------------------------------------------------
2949 // --- Specialized processing for .proto sgnb_modification_confirm.json, path sgnb_mod_confirm.json
2951 sgnb_mod_conf = (struct _sgnb_mod_conf *)(cur_packet.record.packed.values);
2952 cur_packet.schema = 1301;
2954 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
2955 if(hdr==NULL) return -1;
2957 node_0_0 = hdr->sgnbmodificationconfirm;
2958 if(node_0_0==NULL) return -2;
2959 if(hdr->header==NULL) return -3;
2961 sgnb_mod_conf->timestamp_ms = timestamp;
2962 if(hdr->header->gnbid==NULL)
2963 sgnb_mod_conf->gnb_id = empty_string;
2965 sgnb_mod_conf->gnb_id = hdr->header->gnbid->value;
2967 node_0_1 = node_0_0->protocolies;
2968 if(node_0_0->protocolies){
2969 sgnb_mod_conf->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
2970 sgnb_mod_conf->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
2971 rts_fta_process_packet(&cur_packet);
2973 uenibstreamprotobuf__sg_nbmodification_confirm__free_unpacked(node_0_0,NULL);
2977 gs_uint32_t process_buffer_SGNBMODREQ(gs_uint8_t * buffer, gs_uint32_t buflen){
2978 char *empty_string = "";
2979 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
2980 // ------------------------------------------
2981 // --- Variables for .proto sgnb_modification_request.json, path sgnb_mod_req.json
2982 struct _sgnb_mod_req *sgnb_mod_req = NULL;
2983 Uenibstreamprotobuf__SgNBModificationRequest *node_0_0 = NULL;
2984 Uenibstreamprotobuf__SgNBModificationRequestIEs *node_0_1 = NULL;
2986 // --------------------------------------------------
2987 // --- Specialized processing for .proto sgnb_modification_request.json, path sgnb_mod_req.json
2989 sgnb_mod_req = (struct _sgnb_mod_req *)(cur_packet.record.packed.values);
2990 cur_packet.schema = 1201;
2992 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
2993 if(hdr==NULL) return -1;
2995 node_0_0 = hdr->sgnbmodificationrequest;
2996 if(node_0_0==NULL) return -2;
2997 if(hdr->header==NULL) return -3;
2999 sgnb_mod_req->timestamp_ms = timestamp;
3000 if(hdr->header->gnbid==NULL)
3001 sgnb_mod_req->gnb_id = empty_string;
3003 sgnb_mod_req->gnb_id = hdr->header->gnbid->value;
3005 node_0_1 = node_0_0->protocolies;
3006 if(node_0_0->protocolies){
3007 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
3008 sgnb_mod_req->cause_protocol = node_0_1->id_cause->protocol->value;
3010 sgnb_mod_req->cause_protocol = -1;
3012 sgnb_mod_req->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3013 if(node_0_1->id_cause && node_0_1->id_cause->transport){
3014 sgnb_mod_req->cause_transport = node_0_1->id_cause->transport->value;
3016 sgnb_mod_req->cause_transport = -1;
3018 if(node_0_1->id_menbtosgnbcontainer && node_0_1->id_menbtosgnbcontainer->criticalextensionschoice1 && node_0_1->id_menbtosgnbcontainer->criticalextensionschoice1->protocolies && node_0_1->id_menbtosgnbcontainer->criticalextensionschoice1->protocolies->scgfailureinfo){
3019 sgnb_mod_req->failureType = node_0_1->id_menbtosgnbcontainer->criticalextensionschoice1->protocolies->scgfailureinfo->failuretype;
3021 sgnb_mod_req->failureType = -1;
3023 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
3024 sgnb_mod_req->cause_radio_network = node_0_1->id_cause->radionetwork->value;
3026 sgnb_mod_req->cause_radio_network = -1;
3028 sgnb_mod_req->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3029 if(node_0_1->id_cause && node_0_1->id_cause->misc){
3030 sgnb_mod_req->cause_misc = node_0_1->id_cause->misc->value;
3032 sgnb_mod_req->cause_misc = -1;
3034 rts_fta_process_packet(&cur_packet);
3036 uenibstreamprotobuf__sg_nbmodification_request__free_unpacked(node_0_0,NULL);
3040 gs_uint32_t process_buffer_SGNBMODREQACK(gs_uint8_t * buffer, gs_uint32_t buflen){
3041 char *empty_string = "";
3042 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3043 // ------------------------------------------
3044 // --- Variables for .proto sgnb_modification_request_acknowledge.json, path sgnb_mod_req_ack.json
3045 struct _sgnb_mod_req_ack *sgnb_mod_req_ack = NULL;
3046 Uenibstreamprotobuf__SgNBModificationRequestAcknowledge *node_0_0 = NULL;
3047 Uenibstreamprotobuf__SgNBModificationRequestAcknowledgeIEs *node_0_1 = NULL;
3049 // --------------------------------------------------
3050 // --- Specialized processing for .proto sgnb_modification_request_acknowledge.json, path sgnb_mod_req_ack.json
3052 sgnb_mod_req_ack = (struct _sgnb_mod_req_ack *)(cur_packet.record.packed.values);
3053 cur_packet.schema = 1701;
3055 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3056 if(hdr==NULL) return -1;
3058 node_0_0 = hdr->sgnbmodificationrequestacknowledge;
3059 if(node_0_0==NULL) return -2;
3060 if(hdr->header==NULL) return -3;
3062 sgnb_mod_req_ack->timestamp_ms = timestamp;
3063 if(hdr->header->gnbid==NULL)
3064 sgnb_mod_req_ack->gnb_id = empty_string;
3066 sgnb_mod_req_ack->gnb_id = hdr->header->gnbid->value;
3068 node_0_1 = node_0_0->protocolies;
3069 if(node_0_0->protocolies){
3070 sgnb_mod_req_ack->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3071 sgnb_mod_req_ack->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3072 rts_fta_process_packet(&cur_packet);
3074 uenibstreamprotobuf__sg_nbmodification_request_acknowledge__free_unpacked(node_0_0,NULL);
3078 gs_uint32_t process_buffer_SGNBMODREQREJECT(gs_uint8_t * buffer, gs_uint32_t buflen){
3079 char *empty_string = "";
3080 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3081 // ------------------------------------------
3082 // --- Variables for .proto sgnb_modification_request_reject.json, path sgnb_mod_req_reject.json
3083 struct _sgnb_mod_req_reject *sgnb_mod_req_reject = NULL;
3084 Uenibstreamprotobuf__SgNBModificationRequestReject *node_0_0 = NULL;
3085 Uenibstreamprotobuf__SgNBModificationRequestRejectIEs *node_0_1 = NULL;
3087 // --------------------------------------------------
3088 // --- Specialized processing for .proto sgnb_modification_request_reject.json, path sgnb_mod_req_reject.json
3090 sgnb_mod_req_reject = (struct _sgnb_mod_req_reject *)(cur_packet.record.packed.values);
3091 cur_packet.schema = 1801;
3093 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3094 if(hdr==NULL) return -1;
3096 node_0_0 = hdr->sgnbmodificationrequestreject;
3097 if(node_0_0==NULL) return -2;
3098 if(hdr->header==NULL) return -3;
3100 sgnb_mod_req_reject->timestamp_ms = timestamp;
3101 if(hdr->header->gnbid==NULL)
3102 sgnb_mod_req_reject->gnb_id = empty_string;
3104 sgnb_mod_req_reject->gnb_id = hdr->header->gnbid->value;
3106 node_0_1 = node_0_0->protocolies;
3107 if(node_0_0->protocolies){
3108 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
3109 sgnb_mod_req_reject->cause_protocol = node_0_1->id_cause->protocol->value;
3111 sgnb_mod_req_reject->cause_protocol = -1;
3113 sgnb_mod_req_reject->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3114 if(node_0_1->id_cause && node_0_1->id_cause->transport){
3115 sgnb_mod_req_reject->cause_transport = node_0_1->id_cause->transport->value;
3117 sgnb_mod_req_reject->cause_transport = -1;
3119 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
3120 sgnb_mod_req_reject->cause_radio_network = node_0_1->id_cause->radionetwork->value;
3122 sgnb_mod_req_reject->cause_radio_network = -1;
3124 sgnb_mod_req_reject->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3125 if(node_0_1->id_cause && node_0_1->id_cause->misc){
3126 sgnb_mod_req_reject->cause_misc = node_0_1->id_cause->misc->value;
3128 sgnb_mod_req_reject->cause_misc = -1;
3130 rts_fta_process_packet(&cur_packet);
3132 uenibstreamprotobuf__sg_nbmodification_request_reject__free_unpacked(node_0_0,NULL);
3136 gs_uint32_t process_buffer_SGNBMODREQUIRED(gs_uint8_t * buffer, gs_uint32_t buflen){
3137 char *empty_string = "";
3138 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3139 // ------------------------------------------
3140 // --- Variables for .proto sgnb_modification_required.json, path sgnb_mod_rqd.json
3141 struct _sgnb_mod_required *sgnb_mod_required = NULL;
3142 Uenibstreamprotobuf__SgNBModificationRequired *node_0_0 = NULL;
3143 Uenibstreamprotobuf__SgNBModificationRequiredIEs *node_0_1 = NULL;
3145 // --------------------------------------------------
3146 // --- Specialized processing for .proto sgnb_modification_required.json, path sgnb_mod_rqd.json
3148 sgnb_mod_required = (struct _sgnb_mod_required *)(cur_packet.record.packed.values);
3149 cur_packet.schema = 1901;
3151 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3152 if(hdr==NULL) return -1;
3154 node_0_0 = hdr->sgnbmodificationrequired;
3155 if(node_0_0==NULL) return -2;
3156 if(hdr->header==NULL) return -3;
3158 sgnb_mod_required->timestamp_ms = timestamp;
3159 if(hdr->header->gnbid==NULL)
3160 sgnb_mod_required->gnb_id = empty_string;
3162 sgnb_mod_required->gnb_id = hdr->header->gnbid->value;
3164 node_0_1 = node_0_0->protocolies;
3165 if(node_0_0->protocolies){
3166 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
3167 sgnb_mod_required->cause_protocol = node_0_1->id_cause->protocol->value;
3169 sgnb_mod_required->cause_protocol = -1;
3171 sgnb_mod_required->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3172 if(node_0_1->id_cause && node_0_1->id_cause->transport){
3173 sgnb_mod_required->cause_transport = node_0_1->id_cause->transport->value;
3175 sgnb_mod_required->cause_transport = -1;
3177 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
3178 sgnb_mod_required->cause_radio_network = node_0_1->id_cause->radionetwork->value;
3180 sgnb_mod_required->cause_radio_network = -1;
3182 sgnb_mod_required->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3183 if(node_0_1->id_cause && node_0_1->id_cause->misc){
3184 sgnb_mod_required->cause_misc = node_0_1->id_cause->misc->value;
3186 sgnb_mod_required->cause_misc = -1;
3188 rts_fta_process_packet(&cur_packet);
3190 uenibstreamprotobuf__sg_nbmodification_required__free_unpacked(node_0_0,NULL);
3194 gs_uint32_t process_buffer_SGNBMODREFUSE(gs_uint8_t * buffer, gs_uint32_t buflen){
3195 char *empty_string = "";
3196 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3197 // ------------------------------------------
3198 // --- Variables for .proto sgnb_modification_refuse.json, path sgnb_modification_refuse.json
3199 struct _sgnb_mod_refuse *sgnb_mod_refuse = NULL;
3200 Uenibstreamprotobuf__SgNBModificationRefuse *node_0_0 = NULL;
3201 Uenibstreamprotobuf__SgNBModificationRefuseIEs *node_0_1 = NULL;
3202 Uenibstreamprotobuf__Cause *node_0_2 = NULL;
3204 // --------------------------------------------------
3205 // --- Specialized processing for .proto sgnb_modification_refuse.json, path sgnb_modification_refuse.json
3207 sgnb_mod_refuse = (struct _sgnb_mod_refuse *)(cur_packet.record.packed.values);
3208 cur_packet.schema = 1401;
3210 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3211 if(hdr==NULL) return -1;
3213 node_0_0 = hdr->sgnbmodificationrefuse;
3214 if(node_0_0==NULL) return -2;
3215 if(hdr->header==NULL) return -3;
3217 sgnb_mod_refuse->timestamp_ms = timestamp;
3218 if(hdr->header->gnbid==NULL)
3219 sgnb_mod_refuse->gnb_id = empty_string;
3221 sgnb_mod_refuse->gnb_id = hdr->header->gnbid->value;
3223 node_0_1 = node_0_0->protocolies;
3224 if(node_0_0->protocolies){
3225 sgnb_mod_refuse->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3226 sgnb_mod_refuse->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3227 node_0_2 = node_0_1->id_cause;
3228 if(node_0_1->id_cause){
3229 if(node_0_2->radionetwork){
3230 sgnb_mod_refuse->cause_radio_network = node_0_2->radionetwork->value;
3232 sgnb_mod_refuse->cause_radio_network = -1;
3234 if(node_0_2->transport){
3235 sgnb_mod_refuse->cause_transport = node_0_2->transport->value;
3237 sgnb_mod_refuse->cause_transport = -1;
3239 if(node_0_2->protocol){
3240 sgnb_mod_refuse->cause_protocol = node_0_2->protocol->value;
3242 sgnb_mod_refuse->cause_protocol = -1;
3245 sgnb_mod_refuse->cause_misc = node_0_2->misc->value;
3247 sgnb_mod_refuse->cause_misc = -1;
3249 rts_fta_process_packet(&cur_packet);
3252 uenibstreamprotobuf__sg_nbmodification_refuse__free_unpacked(node_0_0,NULL);
3256 gs_uint32_t process_buffer_SNSTATUSXFER(gs_uint8_t * buffer, gs_uint32_t buflen){
3257 char *empty_string = "";
3258 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3259 // ------------------------------------------
3260 // --- Variables for .proto sn_status_transfer.json, path snstatusxfer.json
3261 struct _sn_status_transfer *sn_status_transfer = NULL;
3262 Uenibstreamprotobuf__SNStatusTransfer *node_0_0 = NULL;
3263 Uenibstreamprotobuf__SNStatusTransferIEs *node_0_1 = NULL;
3264 Uenibstreamprotobuf__ERABsSubjectToStatusTransferList *node_0_2 = NULL;
3265 Uenibstreamprotobuf__ERABsSubjectToStatusTransferItemIEs *node_0_3 = NULL;
3267 Uenibstreamprotobuf__ERABsSubjectToStatusTransferItem *node_0_4 = NULL;
3268 Uenibstreamprotobuf__ERABsSubjectToStatusTransferItemExtIEs *node_0_5 = NULL;
3270 Uenibstreamprotobuf__COUNTvaluePDCPSNlength18 *node_0_6 = NULL;
3272 // --------------------------------------------------
3273 // --- Specialized processing for .proto sn_status_transfer.json, path snstatusxfer.json
3275 sn_status_transfer = (struct _sn_status_transfer *)(cur_packet.record.packed.values);
3276 cur_packet.schema = 1601;
3278 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3279 if(hdr==NULL) return -1;
3281 node_0_0 = hdr->snstatustransfer;
3282 if(node_0_0==NULL) return -2;
3283 if(hdr->header==NULL) return -3;
3285 sn_status_transfer->timestamp_ms = timestamp;
3286 if(hdr->header->gnbid==NULL)
3287 sn_status_transfer->gnb_id = empty_string;
3289 sn_status_transfer->gnb_id = hdr->header->gnbid->value;
3291 node_0_1 = node_0_0->protocolies;
3292 if(node_0_0->protocolies){
3293 sn_status_transfer->id_Old_eNB_UE_X2AP_ID = node_0_1->id_old_enb_ue_x2ap_id;
3294 if(node_0_1->id_sgnb_ue_x2ap_id){
3295 sn_status_transfer->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id->value;
3297 sn_status_transfer->id_SgNB_UE_X2AP_ID = 0;
3299 node_0_2 = node_0_1->id_e_rabs_subjecttostatustransfer_list;
3300 if(node_0_1->id_e_rabs_subjecttostatustransfer_list){
3301 for(i_0_3=0;i_0_3<node_0_2->n_items; i_0_3++){
3302 node_0_3 = node_0_2->items[i_0_3];
3303 node_0_4 = node_0_3->id_e_rabs_subjecttostatustransfer_item;
3304 if(node_0_3->id_e_rabs_subjecttostatustransfer_item){
3305 sn_status_transfer->e_RAB_ID = node_0_4->e_rab_id;
3306 for(i_0_5=0;i_0_5<node_0_4->n_ie_extensions; i_0_5++){
3307 node_0_5 = node_0_4->ie_extensions[i_0_5];
3308 node_0_6 = node_0_5->id_dlcountvaluepdcp_snlength18;
3309 if(node_0_5->id_dlcountvaluepdcp_snlength18){
3310 sn_status_transfer->pDCP_SNlength18 = node_0_6->pdcp_snlength18;
3311 rts_fta_process_packet(&cur_packet);
3318 uenibstreamprotobuf__snstatus_transfer__free_unpacked(node_0_0,NULL);
3323 int init_cur_packet(){
3324 cur_packet.ptype=PTYPE_STRUCT;
3325 cur_packet.record.packed.values = (void *)(malloc(10000));
3327 if(cur_packet.record.packed.values==NULL){
3328 print_error("could not malloc a data block for cur_packet in init_cur_packet.");
3333 //---------------- END Specialized proto parsing -----------
3335 static void dproto_replay_check_messages() {
3336 if (fta_start_service(0)<0) {
3337 print_error("Error:in processing the msg queue for a replay file");
3342 // Read length bytes from the current socket into buffer.
3343 static gs_uint32_t gs_read_buffer(gs_uint8_t * buffer, gs_uint32_t length){
3348 struct timeval socket_timeout;
3351 FD_ZERO(&socket_rset);
3352 FD_SET(socket_desc,&socket_rset);
3353 FD_ZERO(&socket_eset);
3354 FD_SET(socket_desc,&socket_eset);
3355 // timeout in one millisecon
3356 socket_timeout.tv_sec=0;
3357 socket_timeout.tv_usec=1000;
3359 if ((retval=select(socket_desc+1,&socket_rset,0,&socket_eset,&socket_timeout))<=0) {
3367 while(used < length) {
3368 if ((cur=read(socket_desc,&(buffer[used]),length-used))<=0) {
3369 print_error("ERROR:could not read data from gdat stream");
3377 // query gshub and use that info to open a socket
3378 static void init_socket() {
3381 struct sockaddr_in server;
3383 if (get_hub(&gshub)!=0) {
3384 print_error("ERROR:could not find gshub for data source");
3388 if (get_streamsource(gshub,name,&srcinfo,1) !=0) {
3389 print_error("ERROR:could not find data source for stream\n");
3393 socket_desc = socket(AF_INET , SOCK_STREAM , 0);
3394 if (socket_desc == -1)
3396 print_error("ERROR:could not create socket for data stream");
3399 server.sin_addr.s_addr = srcinfo.ip;
3400 server.sin_family = AF_INET;
3401 server.sin_port = srcinfo.port;
3403 if (connect(socket_desc , (struct sockaddr *)&server , sizeof(server)) < 0)
3405 print_error("ERROR: could not open connection to data source");
3411 // proceed to the next file
3412 static void next_file() {
3415 fprintf(stderr,"Opening %s\n",name);
3417 while (lstat(name,&s)!=0) {
3418 if (errno!=ENOENT) {
3419 print_error("dproto::lstat unexpected return value");
3422 dproto_replay_check_messages();
3428 if ((pd=fopen(name,"r"))==0) {
3429 print_error("dproto::open failed ");
3432 if (singlefile==0) {
3437 // Perform initialization when reading from a file
3438 static gs_retval_t dproto_replay_init(gs_sp_t device) {
3443 gs_sp_t singlefiletmp;
3445 if ((name=get_iface_properties(device,"filename"))==0) {
3446 print_error("dproto_init::No protobuf \"Filename\" defined");
3450 if ((verbosetmp=get_iface_properties(device,"verbose"))!=0) {
3451 if (strncmp(verbosetmp,"TRUE",4)==0) {
3453 fprintf(stderr,"VERBOSE ENABLED\n");
3455 fprintf(stderr,"VERBOSE DISABLED\n");
3458 if ((singlefiletmp=get_iface_properties(device,"singlefile"))!=0) {
3459 if (strncmp(singlefiletmp,"TRUE",4)==0) {
3462 fprintf(stderr,"SINGLEFILE ENABLED\n");
3465 fprintf(stderr,"SINGLEFILE DISABLED\n");
3469 if ((delaytmp=get_iface_properties(device,"startupdelay"))!=0) {
3471 fprintf(stderr,"Startup delay of %u seconds\n",atoi(get_iface_properties(device,"startupdelay")));
3473 startupdelay=atoi(get_iface_properties(device,"startupdelay"));
3475 if ((gshubtmp=get_iface_properties(device,"gshub"))!=0) {
3477 fprintf(stderr,"GDAT format using gshub\n");
3486 // Read one message from a socket
3487 static gs_retval_t dproto_read_socket()
3492 gs_uint32_t pkg_len;
3499 if((ret=gs_read_buffer(line,28))<0) { return ret;}
3502 timestamp_s = line+12;
3503 pkg_len = atoi(pkg_len_s);
3504 timestamp = atoll(timestamp_s);
3506 if((ret=gs_read_buffer(line,pkg_len))<0) { return ret;}
3508 cur_packet.systemTime=time(0);
3509 ret = process_buffer(line, pkg_len);
3511 fprintf(stderr,"proto rejected by device %s, err=%d\n",this_device, ret);
3517 // read one message from a file
3518 static void dproto_read_tuple(){
3519 gs_uint32_t retlen=0;
3521 gs_uint32_t pkg_len=0;
3527 if (pd==0) next_file();
3529 retlen = fread(line, sizeof(char), 28, pd);
3534 timestamp_s = line+12;
3535 pkg_len = atoi(pkg_len_s);
3536 timestamp = atoll(timestamp_s);
3537 if(pkg_len >= MAXLINE){
3538 // TODO be more graceful here, but a large pkg_len likely indicates
3540 print_error("Error in dproto_read_tuple, message too long.");
3541 fprintf(stderr,"Error in dproto_read_tuple, message length is %d, max is %d\n",pkg_len, MAXLINE);
3545 retlen = fread(line, sizeof(char), pkg_len, pd);
3547 print_error("Error in dproto_read_tuple, line too short.");
3548 fprintf(stderr,"Error, read %d bytes, expecting %d\n",retlen, pkg_len);
3553 cur_packet.systemTime=time(0);
3554 ret = process_buffer(line, pkg_len);
3556 fprintf(stderr,"proto rejected by device %s, err=%d\n",this_device, ret);
3561 if (singlefile==1) {
3563 fprintf(stderr,"SINGLEFILE PROCESSING DONE!\n");
3567 fprintf(stderr,"RTS SAYS BYe\n");
3569 while(1==1) sleep(1);
3576 // Main loop for processing records from a file or socket
3577 static gs_retval_t dproto_process_file(){
3579 static unsigned totalcnt=0;
3581 for(cnt=0;cnt<5/*0000*/;cnt++) {
3584 retval=dproto_read_socket();
3585 if (retval==-1) return 0; // got a timeout so service message queue
3586 if ((retval==-2) || (ftaschema_is_eof_tuple(cur_packet.record.gdat.schema,(void *)cur_packet.record.gdat.data))) {
3587 // we signal that everything is done if we either see an EOF tuple OR the socket is closed by the peer
3589 fprintf(stderr,"Done processing waiting for things to shut down\n");
3591 // now just service message queue until we get killed or loose connectivity
3593 fta_start_service(0); // service all waiting messages
3594 usleep(1000); // sleep a millisecond
3598 dproto_read_tuple();
3601 totalcnt=totalcnt+cnt;
3603 fprintf(stderr,"Processed %u messages from %s\n",totalcnt, name);
3608 // Entry for processing this interface
3609 gs_retval_t main_dproto(gs_int32_t devicenum, gs_sp_t device, gs_int32_t mapcnt, gs_sp_t map[]) {
3613 dproto_replay_init(device); // will call init_cur_packet
3614 this_device = strdup(device); // save for error messages.
3616 /* initalize host_lib */
3618 fprintf(stderr,"Init LFTAs for %s\n",device);
3621 if (hostlib_init(LFTA,0,devicenum,mapcnt,map)<0) {
3622 fprintf(stderr,"%s::error:could not initiate host lib for clearinghouse\n", device);
3626 //--------------------------------------------
3627 //---- Generated dispatch code
3628 if(strcmp(device,"CONRELEASE")==0){
3629 process_buffer = &process_buffer_CONRELEASE;
3631 if(strcmp(device,"RATDATAUSAGE")==0){
3632 process_buffer = &process_buffer_RATDATAUSAGE;
3634 if(strcmp(device,"RECONCOMPLETE")==0){
3635 process_buffer = &process_buffer_RECONCOMPLETE;
3637 if(strcmp(device,"RELCONF")==0){
3638 process_buffer = &process_buffer_RELCONF;
3640 if(strcmp(device,"RELREQ")==0){
3641 process_buffer = &process_buffer_RELREQ;
3643 if(strcmp(device,"RELREQACK")==0){
3644 process_buffer = &process_buffer_RELREQACK;
3646 if(strcmp(device,"SGNBRELEASERQD")==0){
3647 process_buffer = &process_buffer_SGNBRELEASERQD;
3649 if(strcmp(device,"RRCXFER")==0){
3650 process_buffer = &process_buffer_RRCXFER;
3652 if(strcmp(device,"ADDREQREJECT")==0){
3653 process_buffer = &process_buffer_ADDREQREJECT;
3655 if(strcmp(device,"SGNB_ADDITION_REQ_ACK")==0){
3656 process_buffer = &process_buffer_SGNB_ADDITION_REQ_ACK;
3658 if(strcmp(device,"SGNB_ADDITION_REQ")==0){
3659 process_buffer = &process_buffer_SGNB_ADDITION_REQ;
3661 if(strcmp(device,"SGNBMODCONF")==0){
3662 process_buffer = &process_buffer_SGNBMODCONF;
3664 if(strcmp(device,"SGNBMODREQ")==0){
3665 process_buffer = &process_buffer_SGNBMODREQ;
3667 if(strcmp(device,"SGNBMODREQACK")==0){
3668 process_buffer = &process_buffer_SGNBMODREQACK;
3670 if(strcmp(device,"SGNBMODREQREJECT")==0){
3671 process_buffer = &process_buffer_SGNBMODREQREJECT;
3673 if(strcmp(device,"SGNBMODREQUIRED")==0){
3674 process_buffer = &process_buffer_SGNBMODREQUIRED;
3676 if(strcmp(device,"SGNBMODREFUSE")==0){
3677 process_buffer = &process_buffer_SGNBMODREFUSE;
3679 if(strcmp(device,"SNSTATUSXFER")==0){
3680 process_buffer = &process_buffer_SNSTATUSXFER;
3682 if(process_buffer == NULL){
3683 fprintf(stderr,"Error, interface %s not recognized\n",device);
3686 //--------------------------------------------
3689 fta_init(device); /*xxx probably should get error code back put Ted doesn't give me one*/
3691 cont=startupdelay+time(0);
3693 if (verbose) { fprintf(stderr,"Start startup delay"); }
3695 while (cont>time(NULL)) {
3696 if (fta_start_service(0)<0) {
3697 fprintf(stderr,"%s::error:in processing the msg queue\n", device);
3700 usleep(1000); /* sleep for one millisecond */
3703 if (verbose) { fprintf(stderr,"... Done\n"); }
3705 // open the connection to the data source
3706 if (gshub!=0) { init_socket();}
3708 // wait to process till we get the signal from GSHUB
3709 if (get_hub(&mygshub)!=0) {
3710 print_error("ERROR:could not find gshub for data source");
3713 while(get_startprocessing(mygshub,get_instance_name(),0)!=0) {
3715 if (fta_start_service(0)<0) {
3716 fprintf(stderr,"%s::error:in processing the msg queue\n", device);
3721 /* now we enter an endless loop to process data */
3723 fprintf(stderr,"Start processing %s\n",device);
3727 if (dproto_process_file()<0) {
3728 fprintf(stderr,"%s::error:in processing packets\n", device);
3731 /* process all messages on the message queue*/
3732 if (fta_start_service(0)<0) {
3733 fprintf(stderr,"%s::error:in processing the msg queue\n", device);