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;
604 // --------------------------------------------------
605 // --- Specialized processing for .proto sgnb_release_required.json, path release_rqd.json
607 SgNB_release_rqd = (struct _SgNB_release_rqd *)(cur_packet.record.packed.values);
608 cur_packet.schema = 1001;
610 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
611 if(hdr==NULL) return -1;
613 node_0_0 = hdr->sgnbreleaserequired;
614 if(node_0_0==NULL) return -2;
615 if(hdr->header==NULL) return -3;
617 SgNB_release_rqd->timestamp_ms = timestamp;
618 if(hdr->header->gnbid==NULL)
619 SgNB_release_rqd->gnb_id = empty_string;
621 SgNB_release_rqd->gnb_id = hdr->header->gnbid->value;
623 node_0_1 = node_0_0->protocolies;
624 if(node_0_0->protocolies){
625 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
626 SgNB_release_rqd->cause_protocol = node_0_1->id_cause->protocol->value;
628 SgNB_release_rqd->cause_protocol = -1;
630 SgNB_release_rqd->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
631 if(node_0_1->id_cause && node_0_1->id_cause->transport){
632 SgNB_release_rqd->cause_transport = node_0_1->id_cause->transport->value;
634 SgNB_release_rqd->cause_transport = -1;
636 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 0){
637 SgNB_release_rqd->e_RAB_ID0 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[0]->e_rab_id;
638 SgNB_release_rqd->e_RAB_ID0_exists = 1;
640 SgNB_release_rqd->e_RAB_ID0_exists = 0;
642 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 1){
643 SgNB_release_rqd->e_RAB_ID1 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[1]->e_rab_id;
644 SgNB_release_rqd->e_RAB_ID1_exists = 1;
646 SgNB_release_rqd->e_RAB_ID1_exists = 0;
648 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 2){
649 SgNB_release_rqd->e_RAB_ID2 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[2]->e_rab_id;
650 SgNB_release_rqd->e_RAB_ID2_exists = 1;
652 SgNB_release_rqd->e_RAB_ID2_exists = 0;
654 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 3){
655 SgNB_release_rqd->e_RAB_ID3 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[3]->e_rab_id;
656 SgNB_release_rqd->e_RAB_ID3_exists = 1;
658 SgNB_release_rqd->e_RAB_ID3_exists = 0;
660 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 4){
661 SgNB_release_rqd->e_RAB_ID4 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[4]->e_rab_id;
662 SgNB_release_rqd->e_RAB_ID4_exists = 1;
664 SgNB_release_rqd->e_RAB_ID4_exists = 0;
666 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 5){
667 SgNB_release_rqd->e_RAB_ID5 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[5]->e_rab_id;
668 SgNB_release_rqd->e_RAB_ID5_exists = 1;
670 SgNB_release_rqd->e_RAB_ID5_exists = 0;
672 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 6){
673 SgNB_release_rqd->e_RAB_ID6 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[6]->e_rab_id;
674 SgNB_release_rqd->e_RAB_ID6_exists = 1;
676 SgNB_release_rqd->e_RAB_ID6_exists = 0;
678 if(node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item && node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->n_id_e_rabs_tobereleased_sgnbrelreqd_item > 7){
679 SgNB_release_rqd->e_RAB_ID7 = node_0_1->id_e_rabs_tobereleased_sgnbrelreqdlist->id_e_rabs_tobereleased_sgnbrelreqd_item[7]->e_rab_id;
680 SgNB_release_rqd->e_RAB_ID7_exists = 1;
682 SgNB_release_rqd->e_RAB_ID7_exists = 0;
684 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
685 SgNB_release_rqd->cause_radio_network = node_0_1->id_cause->radionetwork->value;
687 SgNB_release_rqd->cause_radio_network = -1;
689 SgNB_release_rqd->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
690 if(node_0_1->id_cause && node_0_1->id_cause->misc){
691 SgNB_release_rqd->cause_misc = node_0_1->id_cause->misc->value;
693 SgNB_release_rqd->cause_misc = -1;
695 rts_fta_process_packet(&cur_packet);
697 uenibstreamprotobuf__sg_nbrelease_required__free_unpacked(node_0_0,NULL);
701 gs_uint32_t process_buffer_RRCXFER(gs_uint8_t * buffer, gs_uint32_t buflen){
702 char *empty_string = "";
703 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
704 // ------------------------------------------
705 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
706 struct _serv_nr_cell *serv_nr_cell = NULL;
707 Uenibstreamprotobuf__RRCTransfer *node_0_0 = NULL;
708 Uenibstreamprotobuf__RRCTransferIEs *node_0_1 = NULL;
709 Uenibstreamprotobuf__UENRMeasurement *node_0_2 = NULL;
710 Uenibstreamprotobuf__RRCContainer *node_0_3 = NULL;
711 Uenibstreamprotobuf__ULDCCHMessageType *node_0_4 = NULL;
712 Uenibstreamprotobuf__MeasurementReport *node_0_5 = NULL;
713 Uenibstreamprotobuf__MeasurementReportIEs *node_0_6 = NULL;
714 Uenibstreamprotobuf__MeasResults *node_0_7 = NULL;
715 Uenibstreamprotobuf__MeasResultServMOList *node_0_8 = NULL;
716 Uenibstreamprotobuf__MeasResultServMO *node_0_9 = NULL;
718 Uenibstreamprotobuf__MeasResultNR *node_0_10 = NULL;
719 Uenibstreamprotobuf__MeasResult *node_0_11 = NULL;
720 Uenibstreamprotobuf__CellResults *node_0_12 = NULL;
721 Uenibstreamprotobuf__MeasQuantityResults *node_0_13 = NULL;
722 // ------------------------------------------
723 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
724 struct _nr_neighbor *nr_neighbor = NULL;
725 Uenibstreamprotobuf__RRCTransfer *node_1_0 = NULL;
726 Uenibstreamprotobuf__RRCTransferIEs *node_1_1 = NULL;
727 Uenibstreamprotobuf__UENRMeasurement *node_1_2 = NULL;
728 Uenibstreamprotobuf__RRCContainer *node_1_3 = NULL;
729 Uenibstreamprotobuf__ULDCCHMessageType *node_1_4 = NULL;
730 Uenibstreamprotobuf__MeasurementReport *node_1_5 = NULL;
731 Uenibstreamprotobuf__MeasurementReportIEs *node_1_6 = NULL;
732 Uenibstreamprotobuf__MeasResults *node_1_7 = NULL;
733 Uenibstreamprotobuf__MeasResultListNR *node_1_8 = NULL;
734 Uenibstreamprotobuf__MeasResultNR *node_1_9 = NULL;
736 Uenibstreamprotobuf__MeasResult *node_1_10 = NULL;
737 Uenibstreamprotobuf__CellResults *node_1_11 = NULL;
738 Uenibstreamprotobuf__MeasQuantityResults *node_1_12 = NULL;
739 // ------------------------------------------
740 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
741 struct _serv_cell_beam_csi *serv_cell_beam_csi = NULL;
742 Uenibstreamprotobuf__RRCTransfer *node_2_0 = NULL;
743 Uenibstreamprotobuf__RRCTransferIEs *node_2_1 = NULL;
744 Uenibstreamprotobuf__UENRMeasurement *node_2_2 = NULL;
745 Uenibstreamprotobuf__RRCContainer *node_2_3 = NULL;
746 Uenibstreamprotobuf__ULDCCHMessageType *node_2_4 = NULL;
747 Uenibstreamprotobuf__MeasurementReport *node_2_5 = NULL;
748 Uenibstreamprotobuf__MeasurementReportIEs *node_2_6 = NULL;
749 Uenibstreamprotobuf__MeasResults *node_2_7 = NULL;
750 Uenibstreamprotobuf__MeasResultServMOList *node_2_8 = NULL;
751 Uenibstreamprotobuf__MeasResultServMO *node_2_9 = NULL;
753 Uenibstreamprotobuf__MeasResultNR *node_2_10 = NULL;
754 Uenibstreamprotobuf__MeasResult *node_2_11 = NULL;
755 Uenibstreamprotobuf__RsIndexResults *node_2_12 = NULL;
756 Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_2_13 = NULL;
757 Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_2_14 = NULL;
759 Uenibstreamprotobuf__MeasQuantityResults *node_2_15 = NULL;
760 // ------------------------------------------
761 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
762 struct _neighbor_beam_csi *neighbor_beam_csi = NULL;
763 Uenibstreamprotobuf__RRCTransfer *node_3_0 = NULL;
764 Uenibstreamprotobuf__RRCTransferIEs *node_3_1 = NULL;
765 Uenibstreamprotobuf__UENRMeasurement *node_3_2 = NULL;
766 Uenibstreamprotobuf__RRCContainer *node_3_3 = NULL;
767 Uenibstreamprotobuf__ULDCCHMessageType *node_3_4 = NULL;
768 Uenibstreamprotobuf__MeasurementReport *node_3_5 = NULL;
769 Uenibstreamprotobuf__MeasurementReportIEs *node_3_6 = NULL;
770 Uenibstreamprotobuf__MeasResults *node_3_7 = NULL;
771 Uenibstreamprotobuf__MeasResultListNR *node_3_8 = NULL;
772 Uenibstreamprotobuf__MeasResultNR *node_3_9 = NULL;
774 Uenibstreamprotobuf__MeasResult *node_3_10 = NULL;
775 Uenibstreamprotobuf__RsIndexResults *node_3_11 = NULL;
776 Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_3_12 = NULL;
777 Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_3_13 = NULL;
779 Uenibstreamprotobuf__MeasQuantityResults *node_3_14 = NULL;
780 // ------------------------------------------
781 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
782 struct _serv_cell_beam_ssb *serv_cell_beam_ssb = NULL;
783 Uenibstreamprotobuf__RRCTransfer *node_4_0 = NULL;
784 Uenibstreamprotobuf__RRCTransferIEs *node_4_1 = NULL;
785 Uenibstreamprotobuf__UENRMeasurement *node_4_2 = NULL;
786 Uenibstreamprotobuf__RRCContainer *node_4_3 = NULL;
787 Uenibstreamprotobuf__ULDCCHMessageType *node_4_4 = NULL;
788 Uenibstreamprotobuf__MeasurementReport *node_4_5 = NULL;
789 Uenibstreamprotobuf__MeasurementReportIEs *node_4_6 = NULL;
790 Uenibstreamprotobuf__MeasResults *node_4_7 = NULL;
791 Uenibstreamprotobuf__MeasResultServMOList *node_4_8 = NULL;
792 Uenibstreamprotobuf__MeasResultServMO *node_4_9 = NULL;
794 Uenibstreamprotobuf__MeasResultNR *node_4_10 = NULL;
795 Uenibstreamprotobuf__MeasResult *node_4_11 = NULL;
796 Uenibstreamprotobuf__RsIndexResults *node_4_12 = NULL;
797 Uenibstreamprotobuf__ResultsPerSSBIndexList *node_4_13 = NULL;
798 Uenibstreamprotobuf__ResultsPerSSBIndex *node_4_14 = NULL;
800 Uenibstreamprotobuf__MeasQuantityResults *node_4_15 = NULL;
801 // ------------------------------------------
802 // --- Variables for .proto rrctransfer.json, path rrc_metrics.json
803 struct _neighbor_beam_ssb *neighbor_beam_ssb = NULL;
804 Uenibstreamprotobuf__RRCTransfer *node_5_0 = NULL;
805 Uenibstreamprotobuf__RRCTransferIEs *node_5_1 = NULL;
806 Uenibstreamprotobuf__UENRMeasurement *node_5_2 = NULL;
807 Uenibstreamprotobuf__RRCContainer *node_5_3 = NULL;
808 Uenibstreamprotobuf__ULDCCHMessageType *node_5_4 = NULL;
809 Uenibstreamprotobuf__MeasurementReport *node_5_5 = NULL;
810 Uenibstreamprotobuf__MeasurementReportIEs *node_5_6 = NULL;
811 Uenibstreamprotobuf__MeasResults *node_5_7 = NULL;
812 Uenibstreamprotobuf__MeasResultListNR *node_5_8 = NULL;
813 Uenibstreamprotobuf__MeasResultNR *node_5_9 = NULL;
815 Uenibstreamprotobuf__MeasResult *node_5_10 = NULL;
816 Uenibstreamprotobuf__RsIndexResults *node_5_11 = NULL;
817 Uenibstreamprotobuf__ResultsPerSSBIndexList *node_5_12 = NULL;
818 Uenibstreamprotobuf__ResultsPerSSBIndex *node_5_13 = NULL;
820 Uenibstreamprotobuf__MeasQuantityResults *node_5_14 = NULL;
822 // --------------------------------------------------
823 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
825 serv_nr_cell = (struct _serv_nr_cell *)(cur_packet.record.packed.values);
826 cur_packet.schema = 1;
828 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
829 if(hdr==NULL) return -1;
831 node_0_0 = hdr->rrctransfer;
832 if(node_0_0==NULL) return -2;
833 if(hdr->header==NULL) return -3;
835 serv_nr_cell->timestamp_ms = timestamp;
836 if(hdr->header->gnbid==NULL)
837 serv_nr_cell->gnb_id = empty_string;
839 serv_nr_cell->gnb_id = hdr->header->gnbid->value;
841 node_0_1 = node_0_0->rrctransfer_ies;
842 if(node_0_0->rrctransfer_ies){
843 serv_nr_cell->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
844 serv_nr_cell->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
845 node_0_2 = node_0_1->id_uenrmeasurement;
846 if(node_0_1->id_uenrmeasurement){
847 node_0_3 = node_0_2->uenrmeasurements;
848 if(node_0_2->uenrmeasurements){
849 node_0_4 = node_0_3->ul_dcch_message;
850 if(node_0_3->ul_dcch_message){
851 node_0_5 = node_0_4->measurementreport;
852 if(node_0_4->measurementreport){
853 node_0_6 = node_0_5->measurementreport;
854 if(node_0_5->measurementreport){
855 node_0_7 = node_0_6->measresults;
856 if(node_0_6->measresults){
857 node_0_8 = node_0_7->measresultservingmolist;
858 if(node_0_7->measresultservingmolist){
859 for(i_0_9=0;i_0_9<node_0_8->n_items; i_0_9++){
860 node_0_9 = node_0_8->items[i_0_9];
861 serv_nr_cell->servCellID = node_0_9->servcellid;
862 node_0_10 = node_0_9->measresultservingcell;
863 if(node_0_9->measresultservingcell){
864 if(node_0_10->physcellid){
865 serv_nr_cell->physCellId = node_0_10->physcellid->value;
866 serv_nr_cell->physCellId_exists = 1;
868 serv_nr_cell->physCellId_exists = 0;
870 node_0_11 = node_0_10->measresult;
871 if(node_0_10->measresult){
872 node_0_12 = node_0_11->cellresults;
873 if(node_0_11->cellresults){
874 node_0_13 = node_0_12->resultsssb_cell;
875 if(node_0_12->resultsssb_cell){
877 serv_nr_cell->rsrq = node_0_13->rsrq->value;
878 serv_nr_cell->rsrq_exists = 1;
880 serv_nr_cell->rsrq_exists = 0;
883 serv_nr_cell->rsrp = node_0_13->rsrp->value;
884 serv_nr_cell->rsrp_exists = 1;
886 serv_nr_cell->rsrp_exists = 0;
889 serv_nr_cell->sinr = node_0_13->sinr->value;
890 serv_nr_cell->sinr_exists = 1;
892 serv_nr_cell->sinr_exists = 0;
894 rts_fta_process_packet(&cur_packet);
908 // --------------------------------------------------
909 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
911 nr_neighbor = (struct _nr_neighbor *)(cur_packet.record.packed.values);
912 cur_packet.schema = 4;
914 nr_neighbor->timestamp_ms = timestamp;
915 if(hdr->header->gnbid==NULL)
916 nr_neighbor->gnb_id = empty_string;
918 nr_neighbor->gnb_id = hdr->header->gnbid->value;
920 node_1_1 = node_1_0->rrctransfer_ies;
921 if(node_1_0->rrctransfer_ies){
922 nr_neighbor->id_MeNB_UE_X2AP_ID = node_1_1->id_menb_ue_x2ap_id;
923 nr_neighbor->id_SgNB_UE_X2AP_ID = node_1_1->id_sgnb_ue_x2ap_id;
924 node_1_2 = node_1_1->id_uenrmeasurement;
925 if(node_1_1->id_uenrmeasurement){
926 node_1_3 = node_1_2->uenrmeasurements;
927 if(node_1_2->uenrmeasurements){
928 node_1_4 = node_1_3->ul_dcch_message;
929 if(node_1_3->ul_dcch_message){
930 node_1_5 = node_1_4->measurementreport;
931 if(node_1_4->measurementreport){
932 node_1_6 = node_1_5->measurementreport;
933 if(node_1_5->measurementreport){
934 node_1_7 = node_1_6->measresults;
935 if(node_1_6->measresults){
936 node_1_8 = node_1_7->measresultlistnr;
937 if(node_1_7->measresultlistnr){
938 for(i_1_9=0;i_1_9<node_1_8->n_items; i_1_9++){
939 node_1_9 = node_1_8->items[i_1_9];
940 if(node_1_9->physcellid){
941 nr_neighbor->physCellId = node_1_9->physcellid->value;
942 nr_neighbor->physCellId_exists = 1;
944 nr_neighbor->physCellId_exists = 0;
946 node_1_10 = node_1_9->measresult;
947 if(node_1_9->measresult){
948 node_1_11 = node_1_10->cellresults;
949 if(node_1_10->cellresults){
950 node_1_12 = node_1_11->resultsssb_cell;
951 if(node_1_11->resultsssb_cell){
953 nr_neighbor->rsrq = node_1_12->rsrq->value;
954 nr_neighbor->rsrq_exists = 1;
956 nr_neighbor->rsrq_exists = 0;
959 nr_neighbor->rsrp = node_1_12->rsrp->value;
960 nr_neighbor->rsrp_exists = 1;
962 nr_neighbor->rsrp_exists = 0;
965 nr_neighbor->sinr = node_1_12->sinr->value;
966 nr_neighbor->sinr_exists = 1;
968 nr_neighbor->sinr_exists = 0;
970 rts_fta_process_packet(&cur_packet);
983 // --------------------------------------------------
984 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
986 serv_cell_beam_csi = (struct _serv_cell_beam_csi *)(cur_packet.record.packed.values);
987 cur_packet.schema = 2;
989 serv_cell_beam_csi->timestamp_ms = timestamp;
990 if(hdr->header->gnbid==NULL)
991 serv_cell_beam_csi->gnb_id = empty_string;
993 serv_cell_beam_csi->gnb_id = hdr->header->gnbid->value;
995 node_2_1 = node_2_0->rrctransfer_ies;
996 if(node_2_0->rrctransfer_ies){
997 serv_cell_beam_csi->id_MeNB_UE_X2AP_ID = node_2_1->id_menb_ue_x2ap_id;
998 serv_cell_beam_csi->id_SgNB_UE_X2AP_ID = node_2_1->id_sgnb_ue_x2ap_id;
999 node_2_2 = node_2_1->id_uenrmeasurement;
1000 if(node_2_1->id_uenrmeasurement){
1001 node_2_3 = node_2_2->uenrmeasurements;
1002 if(node_2_2->uenrmeasurements){
1003 node_2_4 = node_2_3->ul_dcch_message;
1004 if(node_2_3->ul_dcch_message){
1005 node_2_5 = node_2_4->measurementreport;
1006 if(node_2_4->measurementreport){
1007 node_2_6 = node_2_5->measurementreport;
1008 if(node_2_5->measurementreport){
1009 node_2_7 = node_2_6->measresults;
1010 if(node_2_6->measresults){
1011 node_2_8 = node_2_7->measresultservingmolist;
1012 if(node_2_7->measresultservingmolist){
1013 for(i_2_9=0;i_2_9<node_2_8->n_items; i_2_9++){
1014 node_2_9 = node_2_8->items[i_2_9];
1015 serv_cell_beam_csi->servCellID = node_2_9->servcellid;
1016 node_2_10 = node_2_9->measresultservingcell;
1017 if(node_2_9->measresultservingcell){
1018 if(node_2_10->physcellid){
1019 serv_cell_beam_csi->physCellId = node_2_10->physcellid->value;
1020 serv_cell_beam_csi->physCellId_exists = 1;
1022 serv_cell_beam_csi->physCellId_exists = 0;
1024 node_2_11 = node_2_10->measresult;
1025 if(node_2_10->measresult){
1026 node_2_12 = node_2_11->rsindexresults;
1027 if(node_2_11->rsindexresults){
1028 node_2_13 = node_2_12->resultscsi_rs_indexes;
1029 if(node_2_12->resultscsi_rs_indexes){
1030 for(i_2_14=0;i_2_14<node_2_13->n_items; i_2_14++){
1031 node_2_14 = node_2_13->items[i_2_14];
1032 serv_cell_beam_csi->csi_rs_index = node_2_14->csi_rs_index;
1033 node_2_15 = node_2_14->csi_rs_results;
1034 if(node_2_14->csi_rs_results){
1035 if(node_2_15->rsrq){
1036 serv_cell_beam_csi->rsrq = node_2_15->rsrq->value;
1037 serv_cell_beam_csi->rsrq_exists = 1;
1039 serv_cell_beam_csi->rsrq_exists = 0;
1041 if(node_2_15->rsrp){
1042 serv_cell_beam_csi->rsrp = node_2_15->rsrp->value;
1043 serv_cell_beam_csi->rsrp_exists = 1;
1045 serv_cell_beam_csi->rsrp_exists = 0;
1047 if(node_2_15->sinr){
1048 serv_cell_beam_csi->sinr = node_2_15->sinr->value;
1049 serv_cell_beam_csi->sinr_exists = 1;
1051 serv_cell_beam_csi->sinr_exists = 0;
1053 rts_fta_process_packet(&cur_packet);
1069 // --------------------------------------------------
1070 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
1072 neighbor_beam_csi = (struct _neighbor_beam_csi *)(cur_packet.record.packed.values);
1073 cur_packet.schema = 5;
1074 node_3_0 = node_2_0;
1075 neighbor_beam_csi->timestamp_ms = timestamp;
1076 if(hdr->header->gnbid==NULL)
1077 neighbor_beam_csi->gnb_id = empty_string;
1079 neighbor_beam_csi->gnb_id = hdr->header->gnbid->value;
1081 node_3_1 = node_3_0->rrctransfer_ies;
1082 if(node_3_0->rrctransfer_ies){
1083 neighbor_beam_csi->id_MeNB_UE_X2AP_ID = node_3_1->id_menb_ue_x2ap_id;
1084 neighbor_beam_csi->id_SgNB_UE_X2AP_ID = node_3_1->id_sgnb_ue_x2ap_id;
1085 node_3_2 = node_3_1->id_uenrmeasurement;
1086 if(node_3_1->id_uenrmeasurement){
1087 node_3_3 = node_3_2->uenrmeasurements;
1088 if(node_3_2->uenrmeasurements){
1089 node_3_4 = node_3_3->ul_dcch_message;
1090 if(node_3_3->ul_dcch_message){
1091 node_3_5 = node_3_4->measurementreport;
1092 if(node_3_4->measurementreport){
1093 node_3_6 = node_3_5->measurementreport;
1094 if(node_3_5->measurementreport){
1095 node_3_7 = node_3_6->measresults;
1096 if(node_3_6->measresults){
1097 node_3_8 = node_3_7->measresultlistnr;
1098 if(node_3_7->measresultlistnr){
1099 for(i_3_9=0;i_3_9<node_3_8->n_items; i_3_9++){
1100 node_3_9 = node_3_8->items[i_3_9];
1101 if(node_3_9->physcellid){
1102 neighbor_beam_csi->physCellId = node_3_9->physcellid->value;
1103 neighbor_beam_csi->physCellId_exists = 1;
1105 neighbor_beam_csi->physCellId_exists = 0;
1107 node_3_10 = node_3_9->measresult;
1108 if(node_3_9->measresult){
1109 node_3_11 = node_3_10->rsindexresults;
1110 if(node_3_10->rsindexresults){
1111 node_3_12 = node_3_11->resultscsi_rs_indexes;
1112 if(node_3_11->resultscsi_rs_indexes){
1113 for(i_3_13=0;i_3_13<node_3_12->n_items; i_3_13++){
1114 node_3_13 = node_3_12->items[i_3_13];
1115 neighbor_beam_csi->csi_rs_index = node_3_13->csi_rs_index;
1116 node_3_14 = node_3_13->csi_rs_results;
1117 if(node_3_13->csi_rs_results){
1118 if(node_3_14->rsrq){
1119 neighbor_beam_csi->rsrq = node_3_14->rsrq->value;
1120 neighbor_beam_csi->rsrq_exists = 1;
1122 neighbor_beam_csi->rsrq_exists = 0;
1124 if(node_3_14->rsrp){
1125 neighbor_beam_csi->rsrp = node_3_14->rsrp->value;
1126 neighbor_beam_csi->rsrp_exists = 1;
1128 neighbor_beam_csi->rsrp_exists = 0;
1130 if(node_3_14->sinr){
1131 neighbor_beam_csi->sinr = node_3_14->sinr->value;
1132 neighbor_beam_csi->sinr_exists = 1;
1134 neighbor_beam_csi->sinr_exists = 0;
1136 rts_fta_process_packet(&cur_packet);
1151 // --------------------------------------------------
1152 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
1154 serv_cell_beam_ssb = (struct _serv_cell_beam_ssb *)(cur_packet.record.packed.values);
1155 cur_packet.schema = 3;
1156 node_4_0 = node_3_0;
1157 serv_cell_beam_ssb->timestamp_ms = timestamp;
1158 if(hdr->header->gnbid==NULL)
1159 serv_cell_beam_ssb->gnb_id = empty_string;
1161 serv_cell_beam_ssb->gnb_id = hdr->header->gnbid->value;
1163 node_4_1 = node_4_0->rrctransfer_ies;
1164 if(node_4_0->rrctransfer_ies){
1165 serv_cell_beam_ssb->id_MeNB_UE_X2AP_ID = node_4_1->id_menb_ue_x2ap_id;
1166 serv_cell_beam_ssb->id_SgNB_UE_X2AP_ID = node_4_1->id_sgnb_ue_x2ap_id;
1167 node_4_2 = node_4_1->id_uenrmeasurement;
1168 if(node_4_1->id_uenrmeasurement){
1169 node_4_3 = node_4_2->uenrmeasurements;
1170 if(node_4_2->uenrmeasurements){
1171 node_4_4 = node_4_3->ul_dcch_message;
1172 if(node_4_3->ul_dcch_message){
1173 node_4_5 = node_4_4->measurementreport;
1174 if(node_4_4->measurementreport){
1175 node_4_6 = node_4_5->measurementreport;
1176 if(node_4_5->measurementreport){
1177 node_4_7 = node_4_6->measresults;
1178 if(node_4_6->measresults){
1179 node_4_8 = node_4_7->measresultservingmolist;
1180 if(node_4_7->measresultservingmolist){
1181 for(i_4_9=0;i_4_9<node_4_8->n_items; i_4_9++){
1182 node_4_9 = node_4_8->items[i_4_9];
1183 serv_cell_beam_ssb->servCellID = node_4_9->servcellid;
1184 node_4_10 = node_4_9->measresultservingcell;
1185 if(node_4_9->measresultservingcell){
1186 if(node_4_10->physcellid){
1187 serv_cell_beam_ssb->physCellId = node_4_10->physcellid->value;
1188 serv_cell_beam_ssb->physCellId_exists = 1;
1190 serv_cell_beam_ssb->physCellId_exists = 0;
1192 node_4_11 = node_4_10->measresult;
1193 if(node_4_10->measresult){
1194 node_4_12 = node_4_11->rsindexresults;
1195 if(node_4_11->rsindexresults){
1196 node_4_13 = node_4_12->resultsssb_indexes;
1197 if(node_4_12->resultsssb_indexes){
1198 for(i_4_14=0;i_4_14<node_4_13->n_items; i_4_14++){
1199 node_4_14 = node_4_13->items[i_4_14];
1200 serv_cell_beam_ssb->ssb_Index = node_4_14->ssb_index;
1201 node_4_15 = node_4_14->ssb_results;
1202 if(node_4_14->ssb_results){
1203 if(node_4_15->rsrq){
1204 serv_cell_beam_ssb->rsrq = node_4_15->rsrq->value;
1205 serv_cell_beam_ssb->rsrq_exists = 1;
1207 serv_cell_beam_ssb->rsrq_exists = 0;
1209 if(node_4_15->rsrp){
1210 serv_cell_beam_ssb->rsrp = node_4_15->rsrp->value;
1211 serv_cell_beam_ssb->rsrp_exists = 1;
1213 serv_cell_beam_ssb->rsrp_exists = 0;
1215 if(node_4_15->sinr){
1216 serv_cell_beam_ssb->sinr = node_4_15->sinr->value;
1217 serv_cell_beam_ssb->sinr_exists = 1;
1219 serv_cell_beam_ssb->sinr_exists = 0;
1221 rts_fta_process_packet(&cur_packet);
1237 // --------------------------------------------------
1238 // --- Specialized processing for .proto rrctransfer.json, path rrc_metrics.json
1240 neighbor_beam_ssb = (struct _neighbor_beam_ssb *)(cur_packet.record.packed.values);
1241 cur_packet.schema = 6;
1242 node_5_0 = node_4_0;
1243 neighbor_beam_ssb->timestamp_ms = timestamp;
1244 if(hdr->header->gnbid==NULL)
1245 neighbor_beam_ssb->gnb_id = empty_string;
1247 neighbor_beam_ssb->gnb_id = hdr->header->gnbid->value;
1249 node_5_1 = node_5_0->rrctransfer_ies;
1250 if(node_5_0->rrctransfer_ies){
1251 neighbor_beam_ssb->id_MeNB_UE_X2AP_ID = node_5_1->id_menb_ue_x2ap_id;
1252 neighbor_beam_ssb->id_SgNB_UE_X2AP_ID = node_5_1->id_sgnb_ue_x2ap_id;
1253 node_5_2 = node_5_1->id_uenrmeasurement;
1254 if(node_5_1->id_uenrmeasurement){
1255 node_5_3 = node_5_2->uenrmeasurements;
1256 if(node_5_2->uenrmeasurements){
1257 node_5_4 = node_5_3->ul_dcch_message;
1258 if(node_5_3->ul_dcch_message){
1259 node_5_5 = node_5_4->measurementreport;
1260 if(node_5_4->measurementreport){
1261 node_5_6 = node_5_5->measurementreport;
1262 if(node_5_5->measurementreport){
1263 node_5_7 = node_5_6->measresults;
1264 if(node_5_6->measresults){
1265 node_5_8 = node_5_7->measresultlistnr;
1266 if(node_5_7->measresultlistnr){
1267 for(i_5_9=0;i_5_9<node_5_8->n_items; i_5_9++){
1268 node_5_9 = node_5_8->items[i_5_9];
1269 if(node_5_9->physcellid){
1270 neighbor_beam_ssb->physCellId = node_5_9->physcellid->value;
1271 neighbor_beam_ssb->physCellId_exists = 1;
1273 neighbor_beam_ssb->physCellId_exists = 0;
1275 node_5_10 = node_5_9->measresult;
1276 if(node_5_9->measresult){
1277 node_5_11 = node_5_10->rsindexresults;
1278 if(node_5_10->rsindexresults){
1279 node_5_12 = node_5_11->resultsssb_indexes;
1280 if(node_5_11->resultsssb_indexes){
1281 for(i_5_13=0;i_5_13<node_5_12->n_items; i_5_13++){
1282 node_5_13 = node_5_12->items[i_5_13];
1283 neighbor_beam_ssb->ssb_Index = node_5_13->ssb_index;
1284 node_5_14 = node_5_13->ssb_results;
1285 if(node_5_13->ssb_results){
1286 if(node_5_14->rsrq){
1287 neighbor_beam_ssb->rsrq = node_5_14->rsrq->value;
1288 neighbor_beam_ssb->rsrq_exists = 1;
1290 neighbor_beam_ssb->rsrq_exists = 0;
1292 if(node_5_14->rsrp){
1293 neighbor_beam_ssb->rsrp = node_5_14->rsrp->value;
1294 neighbor_beam_ssb->rsrp_exists = 1;
1296 neighbor_beam_ssb->rsrp_exists = 0;
1298 if(node_5_14->sinr){
1299 neighbor_beam_ssb->sinr = node_5_14->sinr->value;
1300 neighbor_beam_ssb->sinr_exists = 1;
1302 neighbor_beam_ssb->sinr_exists = 0;
1304 rts_fta_process_packet(&cur_packet);
1319 uenibstreamprotobuf__rrctransfer__free_unpacked(node_0_0,NULL);
1323 gs_uint32_t process_buffer_ADDREQREJECT(gs_uint8_t * buffer, gs_uint32_t buflen){
1324 char *empty_string = "";
1325 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
1326 // ------------------------------------------
1327 // --- Variables for .proto sgnb_addition_request_reject.json, path sgnb_add_req_reject.json
1328 struct _sgnb_add_req_reject *sgnb_add_req_reject = NULL;
1329 Uenibstreamprotobuf__SgNBAdditionRequestReject *node_0_0 = NULL;
1330 Uenibstreamprotobuf__Cause *node_0_1 = NULL;
1332 // --------------------------------------------------
1333 // --- Specialized processing for .proto sgnb_addition_request_reject.json, path sgnb_add_req_reject.json
1335 sgnb_add_req_reject = (struct _sgnb_add_req_reject *)(cur_packet.record.packed.values);
1336 cur_packet.schema = 701;
1338 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
1339 if(hdr==NULL) return -1;
1341 node_0_0 = hdr->sgnbadditionrequestreject;
1342 if(node_0_0==NULL) return -2;
1343 if(hdr->header==NULL) return -3;
1345 sgnb_add_req_reject->timestamp_ms = timestamp;
1346 if(hdr->header->gnbid==NULL)
1347 sgnb_add_req_reject->gnb_id = empty_string;
1349 sgnb_add_req_reject->gnb_id = hdr->header->gnbid->value;
1351 sgnb_add_req_reject->id_MeNB_UE_X2AP_ID = node_0_0->id_menb_ue_x2ap_id;
1352 sgnb_add_req_reject->id_SgNB_UE_X2AP_ID = node_0_0->id_sgnb_ue_x2ap_id;
1353 node_0_1 = node_0_0->id_cause;
1354 if(node_0_0->id_cause){
1355 if(node_0_1->radionetwork){
1356 sgnb_add_req_reject->cause_radio_network = node_0_1->radionetwork->value;
1358 sgnb_add_req_reject->cause_radio_network = -1;
1360 if(node_0_1->transport){
1361 sgnb_add_req_reject->cause_transport = node_0_1->transport->value;
1363 sgnb_add_req_reject->cause_transport = -1;
1365 if(node_0_1->protocol){
1366 sgnb_add_req_reject->cause_protocol = node_0_1->protocol->value;
1368 sgnb_add_req_reject->cause_protocol = -1;
1371 sgnb_add_req_reject->cause_misc = node_0_1->misc->value;
1373 sgnb_add_req_reject->cause_misc = -1;
1375 rts_fta_process_packet(&cur_packet);
1377 uenibstreamprotobuf__sg_nbaddition_request_reject__free_unpacked(node_0_0,NULL);
1381 gs_uint32_t process_buffer_SGNB_ADDITION_REQ_ACK(gs_uint8_t * buffer, gs_uint32_t buflen){
1382 char *empty_string = "";
1383 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
1384 // ------------------------------------------
1385 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1386 struct _eRABs_notadmitted_for_ue *eRABs_notadmitted_for_ue = NULL;
1387 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_0_0 = NULL;
1388 Uenibstreamprotobuf__ERABList *node_0_1 = NULL;
1389 Uenibstreamprotobuf__ERABItemIEs *node_0_2 = NULL;
1391 Uenibstreamprotobuf__ERABItem *node_0_3 = NULL;
1392 // ------------------------------------------
1393 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1394 struct _eRABs_acked_for_admit_for_ue *eRABs_acked_for_admit_for_ue = NULL;
1395 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_1_0 = NULL;
1396 Uenibstreamprotobuf__ERABsAdmittedToBeAddedSgNBAddReqAckList *node_1_1 = NULL;
1397 Uenibstreamprotobuf__ERABsAdmittedToBeAddedSgNBAddReqAckItem *node_1_2 = NULL;
1399 // ------------------------------------------
1400 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1401 struct _SgNB_ack_for_ue_NRfreqs *SgNB_ack_for_ue_NRfreqs = NULL;
1402 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_2_0 = NULL;
1403 Uenibstreamprotobuf__CGConfig *node_2_1 = NULL;
1404 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_2_2 = NULL;
1405 Uenibstreamprotobuf__CGConfigIEs *node_2_3 = NULL;
1406 // ------------------------------------------
1407 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1408 struct _SgNB_ack_for_add_mod_for_ue *SgNB_ack_for_add_mod_for_ue = NULL;
1409 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_3_0 = NULL;
1410 Uenibstreamprotobuf__CGConfig *node_3_1 = NULL;
1411 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_3_2 = NULL;
1412 Uenibstreamprotobuf__CGConfigIEs *node_3_3 = NULL;
1413 Uenibstreamprotobuf__RadioBearerConfig *node_3_4 = NULL;
1414 Uenibstreamprotobuf__DRBToAddModList *node_3_5 = NULL;
1415 Uenibstreamprotobuf__DRBToAddMod *node_3_6 = NULL;
1417 // ------------------------------------------
1418 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1419 struct _SgNB_ack_for_ue_measurements *SgNB_ack_for_ue_measurements = NULL;
1420 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_4_0 = NULL;
1421 Uenibstreamprotobuf__CGConfig *node_4_1 = NULL;
1422 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_4_2 = NULL;
1423 Uenibstreamprotobuf__CGConfigIEs *node_4_3 = NULL;
1424 Uenibstreamprotobuf__MeasResultList2NR *node_4_4 = NULL;
1425 Uenibstreamprotobuf__MeasResult2NR *node_4_5 = NULL;
1427 Uenibstreamprotobuf__MeasResultNR *node_4_6 = NULL;
1428 Uenibstreamprotobuf__MeasResult *node_4_7 = NULL;
1429 Uenibstreamprotobuf__CellResults *node_4_8 = NULL;
1430 Uenibstreamprotobuf__MeasQuantityResults *node_4_9 = NULL;
1431 // ------------------------------------------
1432 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1433 struct _SgNB_ack_for_ue_beam_csi *SgNB_ack_for_ue_beam_csi = NULL;
1434 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_5_0 = NULL;
1435 Uenibstreamprotobuf__CGConfig *node_5_1 = NULL;
1436 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_5_2 = NULL;
1437 Uenibstreamprotobuf__CGConfigIEs *node_5_3 = NULL;
1438 Uenibstreamprotobuf__MeasResultList2NR *node_5_4 = NULL;
1439 Uenibstreamprotobuf__MeasResult2NR *node_5_5 = NULL;
1441 Uenibstreamprotobuf__MeasResultNR *node_5_6 = NULL;
1442 Uenibstreamprotobuf__MeasResult *node_5_7 = NULL;
1443 Uenibstreamprotobuf__RsIndexResults *node_5_8 = NULL;
1444 Uenibstreamprotobuf__ResultsPerCSIRSIndexList *node_5_9 = NULL;
1445 Uenibstreamprotobuf__ResultsPerCSIRSIndex *node_5_10 = NULL;
1447 Uenibstreamprotobuf__MeasQuantityResults *node_5_11 = NULL;
1448 // ------------------------------------------
1449 // --- Variables for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1450 struct _SgNB_ack_for_ue_beam_ssb *SgNB_ack_for_ue_beam_ssb = NULL;
1451 Uenibstreamprotobuf__SgNBAdditionRequestAcknowledge *node_6_0 = NULL;
1452 Uenibstreamprotobuf__CGConfig *node_6_1 = NULL;
1453 Uenibstreamprotobuf__CGConfigCriticalExtensionsChoice1 *node_6_2 = NULL;
1454 Uenibstreamprotobuf__CGConfigIEs *node_6_3 = NULL;
1455 Uenibstreamprotobuf__MeasResultList2NR *node_6_4 = NULL;
1456 Uenibstreamprotobuf__MeasResult2NR *node_6_5 = NULL;
1458 Uenibstreamprotobuf__MeasResultNR *node_6_6 = NULL;
1459 Uenibstreamprotobuf__MeasResult *node_6_7 = NULL;
1460 Uenibstreamprotobuf__RsIndexResults *node_6_8 = NULL;
1461 Uenibstreamprotobuf__ResultsPerSSBIndexList *node_6_9 = NULL;
1462 Uenibstreamprotobuf__ResultsPerSSBIndex *node_6_10 = NULL;
1464 Uenibstreamprotobuf__MeasQuantityResults *node_6_11 = NULL;
1466 // --------------------------------------------------
1467 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1469 eRABs_notadmitted_for_ue = (struct _eRABs_notadmitted_for_ue *)(cur_packet.record.packed.values);
1470 cur_packet.schema = 501;
1472 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
1473 if(hdr==NULL) return -1;
1475 node_0_0 = hdr->sgnbadditionrequestacknowledge;
1476 if(node_0_0==NULL) return -2;
1477 if(hdr->header==NULL) return -3;
1479 eRABs_notadmitted_for_ue->timestamp_ms = timestamp;
1480 if(hdr->header->gnbid==NULL)
1481 eRABs_notadmitted_for_ue->gnb_id = empty_string;
1483 eRABs_notadmitted_for_ue->gnb_id = hdr->header->gnbid->value;
1485 eRABs_notadmitted_for_ue->id_MeNB_UE_X2AP_ID = node_0_0->id_menb_ue_x2ap_id;
1486 eRABs_notadmitted_for_ue->id_SgNB_UE_X2AP_ID = node_0_0->id_sgnb_ue_x2ap_id;
1487 if(node_0_0->id_menb_ue_x2ap_id_extension){
1488 eRABs_notadmitted_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_0_0->id_menb_ue_x2ap_id_extension->value;
1490 eRABs_notadmitted_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0;
1492 node_0_1 = node_0_0->id_e_rabs_notadmitted_list;
1493 if(node_0_0->id_e_rabs_notadmitted_list){
1494 for(i_0_2=0;i_0_2<node_0_1->n_items; i_0_2++){
1495 node_0_2 = node_0_1->items[i_0_2];
1496 node_0_3 = node_0_2->id_e_rab_item;
1497 if(node_0_2->id_e_rab_item){
1498 eRABs_notadmitted_for_ue->e_RAB_ID = node_0_3->e_rab_id;
1499 if(node_0_3->cause && node_0_3->cause->transport){
1500 eRABs_notadmitted_for_ue->cause_transport = node_0_3->cause->transport->value;
1502 eRABs_notadmitted_for_ue->cause_transport = -1;
1504 if(node_0_3->cause && node_0_3->cause->protocol){
1505 eRABs_notadmitted_for_ue->cause_protocol = node_0_3->cause->protocol->value;
1507 eRABs_notadmitted_for_ue->cause_protocol = -1;
1509 if(node_0_3->cause && node_0_3->cause->misc){
1510 eRABs_notadmitted_for_ue->cause_misc = node_0_3->cause->misc->value;
1512 eRABs_notadmitted_for_ue->cause_misc = -1;
1514 if(node_0_3->cause && node_0_3->cause->radionetwork){
1515 eRABs_notadmitted_for_ue->cause_radio_network = node_0_3->cause->radionetwork->value;
1517 eRABs_notadmitted_for_ue->cause_radio_network = -1;
1519 rts_fta_process_packet(&cur_packet);
1523 // --------------------------------------------------
1524 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1526 eRABs_acked_for_admit_for_ue = (struct _eRABs_acked_for_admit_for_ue *)(cur_packet.record.packed.values);
1527 cur_packet.schema = 502;
1528 node_1_0 = node_0_0;
1529 eRABs_acked_for_admit_for_ue->timestamp_ms = timestamp;
1530 if(hdr->header->gnbid==NULL)
1531 eRABs_acked_for_admit_for_ue->gnb_id = empty_string;
1533 eRABs_acked_for_admit_for_ue->gnb_id = hdr->header->gnbid->value;
1535 eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID = node_1_0->id_menb_ue_x2ap_id;
1536 eRABs_acked_for_admit_for_ue->id_SgNB_UE_X2AP_ID = node_1_0->id_sgnb_ue_x2ap_id;
1537 if(node_1_0->id_menb_ue_x2ap_id_extension){
1538 eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_1_0->id_menb_ue_x2ap_id_extension->value;
1540 eRABs_acked_for_admit_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0;
1542 node_1_1 = node_1_0->id_e_rabs_admitted_tobeadded_sgnbaddreqacklist;
1543 if(node_1_0->id_e_rabs_admitted_tobeadded_sgnbaddreqacklist){
1544 for(i_1_2=0;i_1_2<node_1_1->n_id_e_rabs_admitted_tobeadded_sgnbaddreqack_item; i_1_2++){
1545 node_1_2 = node_1_1->id_e_rabs_admitted_tobeadded_sgnbaddreqack_item[i_1_2];
1546 if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint){
1547 eRABs_acked_for_admit_for_ue->gTP_TEID_dl = node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint->gtp_teid;
1548 eRABs_acked_for_admit_for_ue->gTP_TEID_dl_exists = 1;
1550 eRABs_acked_for_admit_for_ue->gTP_TEID_dl_exists = 0;
1552 if(node_1_2->en_dc_resourceconfiguration){
1553 eRABs_acked_for_admit_for_ue->mCGresources = node_1_2->en_dc_resourceconfiguration->mcgresources;
1554 eRABs_acked_for_admit_for_ue->mCGresources_exists = 1;
1556 eRABs_acked_for_admit_for_ue->mCGresources_exists = 0;
1558 if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint){
1559 eRABs_acked_for_admit_for_ue->transportLayerAddress_dl = node_1_2->sgnbpdcppresent->dl_forwarding_gtptunnelendpoint->transportlayeraddress;
1560 eRABs_acked_for_admit_for_ue->transportLayerAddress_dl_exists = 1;
1562 eRABs_acked_for_admit_for_ue->transportLayerAddress_dl_exists = 0;
1564 if(node_1_2->en_dc_resourceconfiguration){
1565 eRABs_acked_for_admit_for_ue->pDCPatSgNB = node_1_2->en_dc_resourceconfiguration->pdcpatsgnb;
1566 eRABs_acked_for_admit_for_ue->pDCPatSgNB_exists = 1;
1568 eRABs_acked_for_admit_for_ue->pDCPatSgNB_exists = 0;
1570 if(node_1_2->en_dc_resourceconfiguration){
1571 eRABs_acked_for_admit_for_ue->sCGresources = node_1_2->en_dc_resourceconfiguration->scgresources;
1572 eRABs_acked_for_admit_for_ue->sCGresources_exists = 1;
1574 eRABs_acked_for_admit_for_ue->sCGresources_exists = 0;
1576 eRABs_acked_for_admit_for_ue->e_RAB_ID = node_1_2->e_rab_id;
1577 if(node_1_2->sgnbpdcppresent && node_1_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters){
1578 eRABs_acked_for_admit_for_ue->qCI = node_1_2->sgnbpdcppresent->mcg_e_rab_level_qos_parameters->qci;
1580 eRABs_acked_for_admit_for_ue->qCI = 0;
1582 rts_fta_process_packet(&cur_packet);
1585 // --------------------------------------------------
1586 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1588 SgNB_ack_for_ue_NRfreqs = (struct _SgNB_ack_for_ue_NRfreqs *)(cur_packet.record.packed.values);
1589 cur_packet.schema = 503;
1590 node_2_0 = node_1_0;
1591 SgNB_ack_for_ue_NRfreqs->timestamp_ms = timestamp;
1592 if(hdr->header->gnbid==NULL)
1593 SgNB_ack_for_ue_NRfreqs->gnb_id = empty_string;
1595 SgNB_ack_for_ue_NRfreqs->gnb_id = hdr->header->gnbid->value;
1597 SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID = node_2_0->id_menb_ue_x2ap_id;
1598 SgNB_ack_for_ue_NRfreqs->id_SgNB_UE_X2AP_ID = node_2_0->id_sgnb_ue_x2ap_id;
1599 if(node_2_0->id_menb_ue_x2ap_id_extension){
1600 SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID_Extension = node_2_0->id_menb_ue_x2ap_id_extension->value;
1602 SgNB_ack_for_ue_NRfreqs->id_MeNB_UE_X2AP_ID_Extension = 0;
1604 node_2_1 = node_2_0->id_sgnbtomenbcontainer;
1605 if(node_2_0->id_sgnbtomenbcontainer){
1606 node_2_2 = node_2_1->criticalextensionschoice1;
1607 if(node_2_1->criticalextensionschoice1){
1608 node_2_3 = node_2_2->protocolies;
1609 if(node_2_2->protocolies){
1610 if(node_2_3->scg_cellgroupconfig){
1611 SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig = node_2_3->scg_cellgroupconfig->value;
1612 SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig_exists = 1;
1614 SgNB_ack_for_ue_NRfreqs->scg_CellGroupConfig_exists = 0;
1616 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 0){
1617 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0 = node_2_3->candidateservingfreqlistnr->items[0];
1618 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0_exists = 1;
1620 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs0_exists = 0;
1622 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 1){
1623 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1 = node_2_3->candidateservingfreqlistnr->items[1];
1624 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1_exists = 1;
1626 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs1_exists = 0;
1628 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 2){
1629 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2 = node_2_3->candidateservingfreqlistnr->items[2];
1630 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2_exists = 1;
1632 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs2_exists = 0;
1634 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 3){
1635 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3 = node_2_3->candidateservingfreqlistnr->items[3];
1636 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3_exists = 1;
1638 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs3_exists = 0;
1640 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 4){
1641 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4 = node_2_3->candidateservingfreqlistnr->items[4];
1642 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4_exists = 1;
1644 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs4_exists = 0;
1646 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 5){
1647 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5 = node_2_3->candidateservingfreqlistnr->items[5];
1648 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5_exists = 1;
1650 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs5_exists = 0;
1652 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 6){
1653 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6 = node_2_3->candidateservingfreqlistnr->items[6];
1654 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6_exists = 1;
1656 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs6_exists = 0;
1658 if(node_2_3->candidateservingfreqlistnr && node_2_3->candidateservingfreqlistnr->n_items > 7){
1659 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7 = node_2_3->candidateservingfreqlistnr->items[7];
1660 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7_exists = 1;
1662 SgNB_ack_for_ue_NRfreqs->candidate_serving_cell_freqs7_exists = 0;
1664 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 0 && node_2_3->measconfigsn->measuredfrequenciessn[0]->measuredfrequency){
1665 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0 = node_2_3->measconfigsn->measuredfrequenciessn[0]->measuredfrequency->value;
1666 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0_exists = 1;
1668 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN0_exists = 0;
1670 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 1 && node_2_3->measconfigsn->measuredfrequenciessn[1]->measuredfrequency){
1671 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1 = node_2_3->measconfigsn->measuredfrequenciessn[1]->measuredfrequency->value;
1672 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1_exists = 1;
1674 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN1_exists = 0;
1676 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 2 && node_2_3->measconfigsn->measuredfrequenciessn[2]->measuredfrequency){
1677 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2 = node_2_3->measconfigsn->measuredfrequenciessn[2]->measuredfrequency->value;
1678 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2_exists = 1;
1680 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN2_exists = 0;
1682 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 3 && node_2_3->measconfigsn->measuredfrequenciessn[3]->measuredfrequency){
1683 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3 = node_2_3->measconfigsn->measuredfrequenciessn[3]->measuredfrequency->value;
1684 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3_exists = 1;
1686 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN3_exists = 0;
1688 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 4 && node_2_3->measconfigsn->measuredfrequenciessn[4]->measuredfrequency){
1689 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4 = node_2_3->measconfigsn->measuredfrequenciessn[4]->measuredfrequency->value;
1690 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4_exists = 1;
1692 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN4_exists = 0;
1694 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 5 && node_2_3->measconfigsn->measuredfrequenciessn[5]->measuredfrequency){
1695 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5 = node_2_3->measconfigsn->measuredfrequenciessn[5]->measuredfrequency->value;
1696 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5_exists = 1;
1698 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN5_exists = 0;
1700 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 6 && node_2_3->measconfigsn->measuredfrequenciessn[6]->measuredfrequency){
1701 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6 = node_2_3->measconfigsn->measuredfrequenciessn[6]->measuredfrequency->value;
1702 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6_exists = 1;
1704 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN6_exists = 0;
1706 if(node_2_3->measconfigsn && node_2_3->measconfigsn->measuredfrequenciessn && node_2_3->measconfigsn->n_measuredfrequenciessn > 7 && node_2_3->measconfigsn->measuredfrequenciessn[7]->measuredfrequency){
1707 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7 = node_2_3->measconfigsn->measuredfrequenciessn[7]->measuredfrequency->value;
1708 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7_exists = 1;
1710 SgNB_ack_for_ue_NRfreqs->measuredFrequenciesSN7_exists = 0;
1712 rts_fta_process_packet(&cur_packet);
1716 // --------------------------------------------------
1717 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1719 SgNB_ack_for_add_mod_for_ue = (struct _SgNB_ack_for_add_mod_for_ue *)(cur_packet.record.packed.values);
1720 cur_packet.schema = 504;
1721 node_3_0 = node_2_0;
1722 SgNB_ack_for_add_mod_for_ue->timestamp_ms = timestamp;
1723 if(hdr->header->gnbid==NULL)
1724 SgNB_ack_for_add_mod_for_ue->gnb_id = empty_string;
1726 SgNB_ack_for_add_mod_for_ue->gnb_id = hdr->header->gnbid->value;
1728 SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID = node_3_0->id_menb_ue_x2ap_id;
1729 SgNB_ack_for_add_mod_for_ue->id_SgNB_UE_X2AP_ID = node_3_0->id_sgnb_ue_x2ap_id;
1730 if(node_3_0->id_menb_ue_x2ap_id_extension){
1731 SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_3_0->id_menb_ue_x2ap_id_extension->value;
1733 SgNB_ack_for_add_mod_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0;
1735 node_3_1 = node_3_0->id_sgnbtomenbcontainer;
1736 if(node_3_0->id_sgnbtomenbcontainer){
1737 node_3_2 = node_3_1->criticalextensionschoice1;
1738 if(node_3_1->criticalextensionschoice1){
1739 node_3_3 = node_3_2->protocolies;
1740 if(node_3_2->protocolies){
1741 node_3_4 = node_3_3->scg_rb_config;
1742 if(node_3_3->scg_rb_config){
1743 if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 0){
1744 SgNB_ack_for_add_mod_for_ue->toRelease0 = node_3_4->drb_toreleaselist->items[0];
1745 SgNB_ack_for_add_mod_for_ue->toRelease0_exists = 1;
1747 SgNB_ack_for_add_mod_for_ue->toRelease0_exists = 0;
1749 if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 1){
1750 SgNB_ack_for_add_mod_for_ue->toRelease1 = node_3_4->drb_toreleaselist->items[1];
1751 SgNB_ack_for_add_mod_for_ue->toRelease1_exists = 1;
1753 SgNB_ack_for_add_mod_for_ue->toRelease1_exists = 0;
1755 if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 2){
1756 SgNB_ack_for_add_mod_for_ue->toRelease2 = node_3_4->drb_toreleaselist->items[2];
1757 SgNB_ack_for_add_mod_for_ue->toRelease2_exists = 1;
1759 SgNB_ack_for_add_mod_for_ue->toRelease2_exists = 0;
1761 if(node_3_4->drb_toreleaselist && node_3_4->drb_toreleaselist->n_items > 3){
1762 SgNB_ack_for_add_mod_for_ue->toRelease3 = node_3_4->drb_toreleaselist->items[3];
1763 SgNB_ack_for_add_mod_for_ue->toRelease3_exists = 1;
1765 SgNB_ack_for_add_mod_for_ue->toRelease3_exists = 0;
1767 node_3_5 = node_3_4->drb_toaddmodlist;
1768 if(node_3_4->drb_toaddmodlist){
1769 for(i_3_6=0;i_3_6<node_3_5->n_items; i_3_6++){
1770 node_3_6 = node_3_5->items[i_3_6];
1771 if(node_3_6->recoverpdcp){
1772 SgNB_ack_for_add_mod_for_ue->recoverPDCP = node_3_6->recoverpdcp->value;
1773 SgNB_ack_for_add_mod_for_ue->recoverPDCP_exists = 1;
1775 SgNB_ack_for_add_mod_for_ue->recoverPDCP_exists = 0;
1777 if(node_3_6->reestablishpdcp){
1778 SgNB_ack_for_add_mod_for_ue->reestablishPDCP = node_3_6->reestablishpdcp->value;
1779 SgNB_ack_for_add_mod_for_ue->reestablishPDCP_exists = 1;
1781 SgNB_ack_for_add_mod_for_ue->reestablishPDCP_exists = 0;
1783 SgNB_ack_for_add_mod_for_ue->drb_Identity = node_3_6->drb_identity;
1784 SgNB_ack_for_add_mod_for_ue->eps_BearerIdentity = node_3_6->eps_beareridentity;
1785 rts_fta_process_packet(&cur_packet);
1792 // --------------------------------------------------
1793 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1795 SgNB_ack_for_ue_measurements = (struct _SgNB_ack_for_ue_measurements *)(cur_packet.record.packed.values);
1796 cur_packet.schema = 505;
1797 node_4_0 = node_3_0;
1798 SgNB_ack_for_ue_measurements->timestamp_ms = timestamp;
1799 if(hdr->header->gnbid==NULL)
1800 SgNB_ack_for_ue_measurements->gnb_id = empty_string;
1802 SgNB_ack_for_ue_measurements->gnb_id = hdr->header->gnbid->value;
1804 SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID = node_4_0->id_menb_ue_x2ap_id;
1805 SgNB_ack_for_ue_measurements->id_SgNB_UE_X2AP_ID = node_4_0->id_sgnb_ue_x2ap_id;
1806 if(node_4_0->id_menb_ue_x2ap_id_extension){
1807 SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID_Extension = node_4_0->id_menb_ue_x2ap_id_extension->value;
1809 SgNB_ack_for_ue_measurements->id_MeNB_UE_X2AP_ID_Extension = 0;
1811 node_4_1 = node_4_0->id_sgnbtomenbcontainer;
1812 if(node_4_0->id_sgnbtomenbcontainer){
1813 node_4_2 = node_4_1->criticalextensionschoice1;
1814 if(node_4_1->criticalextensionschoice1){
1815 node_4_3 = node_4_2->protocolies;
1816 if(node_4_2->protocolies){
1817 node_4_4 = node_4_3->candidatecellinfolistsn;
1818 if(node_4_3->candidatecellinfolistsn){
1819 for(i_4_5=0;i_4_5<node_4_4->n_items; i_4_5++){
1820 node_4_5 = node_4_4->items[i_4_5];
1821 if(node_4_5->ssbfrequency){
1822 SgNB_ack_for_ue_measurements->ssbFrequency = node_4_5->ssbfrequency->value;
1823 SgNB_ack_for_ue_measurements->ssbFrequency_exists = 1;
1825 SgNB_ack_for_ue_measurements->ssbFrequency_exists = 0;
1827 if(node_4_5->reffreqcsi_rs){
1828 SgNB_ack_for_ue_measurements->refFreqCSI_RS = node_4_5->reffreqcsi_rs->value;
1829 SgNB_ack_for_ue_measurements->refFreqCSI_RS_exists = 1;
1831 SgNB_ack_for_ue_measurements->refFreqCSI_RS_exists = 0;
1833 node_4_6 = node_4_5->measresultservingcell;
1834 if(node_4_5->measresultservingcell){
1835 if(node_4_6->physcellid){
1836 SgNB_ack_for_ue_measurements->physCellId = node_4_6->physcellid->value;
1837 SgNB_ack_for_ue_measurements->physCellId_exists = 1;
1839 SgNB_ack_for_ue_measurements->physCellId_exists = 0;
1841 node_4_7 = node_4_6->measresult;
1842 if(node_4_6->measresult){
1843 node_4_8 = node_4_7->cellresults;
1844 if(node_4_7->cellresults){
1845 node_4_9 = node_4_8->resultscsi_rs_cell;
1846 if(node_4_8->resultscsi_rs_cell){
1848 SgNB_ack_for_ue_measurements->rsrq = node_4_9->rsrq->value;
1849 SgNB_ack_for_ue_measurements->rsrq_exists = 1;
1851 SgNB_ack_for_ue_measurements->rsrq_exists = 0;
1854 SgNB_ack_for_ue_measurements->rsrp = node_4_9->rsrp->value;
1855 SgNB_ack_for_ue_measurements->rsrp_exists = 1;
1857 SgNB_ack_for_ue_measurements->rsrp_exists = 0;
1860 SgNB_ack_for_ue_measurements->sinr = node_4_9->sinr->value;
1861 SgNB_ack_for_ue_measurements->sinr_exists = 1;
1863 SgNB_ack_for_ue_measurements->sinr_exists = 0;
1865 rts_fta_process_packet(&cur_packet);
1875 // --------------------------------------------------
1876 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1878 SgNB_ack_for_ue_beam_csi = (struct _SgNB_ack_for_ue_beam_csi *)(cur_packet.record.packed.values);
1879 cur_packet.schema = 506;
1880 node_5_0 = node_4_0;
1881 SgNB_ack_for_ue_beam_csi->timestamp_ms = timestamp;
1882 if(hdr->header->gnbid==NULL)
1883 SgNB_ack_for_ue_beam_csi->gnb_id = empty_string;
1885 SgNB_ack_for_ue_beam_csi->gnb_id = hdr->header->gnbid->value;
1887 SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID = node_5_0->id_menb_ue_x2ap_id;
1888 SgNB_ack_for_ue_beam_csi->id_SgNB_UE_X2AP_ID = node_5_0->id_sgnb_ue_x2ap_id;
1889 if(node_5_0->id_menb_ue_x2ap_id_extension){
1890 SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID_Extension = node_5_0->id_menb_ue_x2ap_id_extension->value;
1892 SgNB_ack_for_ue_beam_csi->id_MeNB_UE_X2AP_ID_Extension = 0;
1894 node_5_1 = node_5_0->id_sgnbtomenbcontainer;
1895 if(node_5_0->id_sgnbtomenbcontainer){
1896 node_5_2 = node_5_1->criticalextensionschoice1;
1897 if(node_5_1->criticalextensionschoice1){
1898 node_5_3 = node_5_2->protocolies;
1899 if(node_5_2->protocolies){
1900 node_5_4 = node_5_3->candidatecellinfolistsn;
1901 if(node_5_3->candidatecellinfolistsn){
1902 for(i_5_5=0;i_5_5<node_5_4->n_items; i_5_5++){
1903 node_5_5 = node_5_4->items[i_5_5];
1904 if(node_5_5->ssbfrequency){
1905 SgNB_ack_for_ue_beam_csi->ssbFrequency = node_5_5->ssbfrequency->value;
1906 SgNB_ack_for_ue_beam_csi->ssbFrequency_exists = 1;
1908 SgNB_ack_for_ue_beam_csi->ssbFrequency_exists = 0;
1910 if(node_5_5->reffreqcsi_rs){
1911 SgNB_ack_for_ue_beam_csi->refFreqCSI_RS = node_5_5->reffreqcsi_rs->value;
1912 SgNB_ack_for_ue_beam_csi->refFreqCSI_RS_exists = 1;
1914 SgNB_ack_for_ue_beam_csi->refFreqCSI_RS_exists = 0;
1916 node_5_6 = node_5_5->measresultservingcell;
1917 if(node_5_5->measresultservingcell){
1918 if(node_5_6->physcellid){
1919 SgNB_ack_for_ue_beam_csi->physCellId = node_5_6->physcellid->value;
1920 SgNB_ack_for_ue_beam_csi->physCellId_exists = 1;
1922 SgNB_ack_for_ue_beam_csi->physCellId_exists = 0;
1924 node_5_7 = node_5_6->measresult;
1925 if(node_5_6->measresult){
1926 node_5_8 = node_5_7->rsindexresults;
1927 if(node_5_7->rsindexresults){
1928 node_5_9 = node_5_8->resultscsi_rs_indexes;
1929 if(node_5_8->resultscsi_rs_indexes){
1930 for(i_5_10=0;i_5_10<node_5_9->n_items; i_5_10++){
1931 node_5_10 = node_5_9->items[i_5_10];
1932 SgNB_ack_for_ue_beam_csi->csi_rs_index = node_5_10->csi_rs_index;
1933 node_5_11 = node_5_10->csi_rs_results;
1934 if(node_5_10->csi_rs_results){
1935 if(node_5_11->rsrq){
1936 SgNB_ack_for_ue_beam_csi->rsrq = node_5_11->rsrq->value;
1937 SgNB_ack_for_ue_beam_csi->rsrq_exists = 1;
1939 SgNB_ack_for_ue_beam_csi->rsrq_exists = 0;
1941 if(node_5_11->rsrp){
1942 SgNB_ack_for_ue_beam_csi->rsrp = node_5_11->rsrp->value;
1943 SgNB_ack_for_ue_beam_csi->rsrp_exists = 1;
1945 SgNB_ack_for_ue_beam_csi->rsrp_exists = 0;
1947 if(node_5_11->sinr){
1948 SgNB_ack_for_ue_beam_csi->sinr = node_5_11->sinr->value;
1949 SgNB_ack_for_ue_beam_csi->sinr_exists = 1;
1951 SgNB_ack_for_ue_beam_csi->sinr_exists = 0;
1953 rts_fta_process_packet(&cur_packet);
1965 // --------------------------------------------------
1966 // --- Specialized processing for .proto sgnb_addition_request_acknowledge.json, path sgnb_addition_ack.json
1968 SgNB_ack_for_ue_beam_ssb = (struct _SgNB_ack_for_ue_beam_ssb *)(cur_packet.record.packed.values);
1969 cur_packet.schema = 507;
1970 node_6_0 = node_5_0;
1971 SgNB_ack_for_ue_beam_ssb->timestamp_ms = timestamp;
1972 if(hdr->header->gnbid==NULL)
1973 SgNB_ack_for_ue_beam_ssb->gnb_id = empty_string;
1975 SgNB_ack_for_ue_beam_ssb->gnb_id = hdr->header->gnbid->value;
1977 SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID = node_6_0->id_menb_ue_x2ap_id;
1978 SgNB_ack_for_ue_beam_ssb->id_SgNB_UE_X2AP_ID = node_6_0->id_sgnb_ue_x2ap_id;
1979 if(node_6_0->id_menb_ue_x2ap_id_extension){
1980 SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID_Extension = node_6_0->id_menb_ue_x2ap_id_extension->value;
1982 SgNB_ack_for_ue_beam_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
1984 node_6_1 = node_6_0->id_sgnbtomenbcontainer;
1985 if(node_6_0->id_sgnbtomenbcontainer){
1986 node_6_2 = node_6_1->criticalextensionschoice1;
1987 if(node_6_1->criticalextensionschoice1){
1988 node_6_3 = node_6_2->protocolies;
1989 if(node_6_2->protocolies){
1990 node_6_4 = node_6_3->candidatecellinfolistsn;
1991 if(node_6_3->candidatecellinfolistsn){
1992 for(i_6_5=0;i_6_5<node_6_4->n_items; i_6_5++){
1993 node_6_5 = node_6_4->items[i_6_5];
1994 if(node_6_5->ssbfrequency){
1995 SgNB_ack_for_ue_beam_ssb->ssbFrequency = node_6_5->ssbfrequency->value;
1996 SgNB_ack_for_ue_beam_ssb->ssbFrequency_exists = 1;
1998 SgNB_ack_for_ue_beam_ssb->ssbFrequency_exists = 0;
2000 if(node_6_5->reffreqcsi_rs){
2001 SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS = node_6_5->reffreqcsi_rs->value;
2002 SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS_exists = 1;
2004 SgNB_ack_for_ue_beam_ssb->refFreqCSI_RS_exists = 0;
2006 node_6_6 = node_6_5->measresultservingcell;
2007 if(node_6_5->measresultservingcell){
2008 if(node_6_6->physcellid){
2009 SgNB_ack_for_ue_beam_ssb->physCellId = node_6_6->physcellid->value;
2010 SgNB_ack_for_ue_beam_ssb->physCellId_exists = 1;
2012 SgNB_ack_for_ue_beam_ssb->physCellId_exists = 0;
2014 node_6_7 = node_6_6->measresult;
2015 if(node_6_6->measresult){
2016 node_6_8 = node_6_7->rsindexresults;
2017 if(node_6_7->rsindexresults){
2018 node_6_9 = node_6_8->resultsssb_indexes;
2019 if(node_6_8->resultsssb_indexes){
2020 for(i_6_10=0;i_6_10<node_6_9->n_items; i_6_10++){
2021 node_6_10 = node_6_9->items[i_6_10];
2022 SgNB_ack_for_ue_beam_ssb->ssb_Index = node_6_10->ssb_index;
2023 node_6_11 = node_6_10->ssb_results;
2024 if(node_6_10->ssb_results){
2025 if(node_6_11->rsrq){
2026 SgNB_ack_for_ue_beam_ssb->rsrq = node_6_11->rsrq->value;
2027 SgNB_ack_for_ue_beam_ssb->rsrq_exists = 1;
2029 SgNB_ack_for_ue_beam_ssb->rsrq_exists = 0;
2031 if(node_6_11->rsrp){
2032 SgNB_ack_for_ue_beam_ssb->rsrp = node_6_11->rsrp->value;
2033 SgNB_ack_for_ue_beam_ssb->rsrp_exists = 1;
2035 SgNB_ack_for_ue_beam_ssb->rsrp_exists = 0;
2037 if(node_6_11->sinr){
2038 SgNB_ack_for_ue_beam_ssb->sinr = node_6_11->sinr->value;
2039 SgNB_ack_for_ue_beam_ssb->sinr_exists = 1;
2041 SgNB_ack_for_ue_beam_ssb->sinr_exists = 0;
2043 rts_fta_process_packet(&cur_packet);
2055 uenibstreamprotobuf__sg_nbaddition_request_acknowledge__free_unpacked(node_0_0,NULL);
2059 gs_uint32_t process_buffer_SGNB_ADDITION_REQ(gs_uint8_t * buffer, gs_uint32_t buflen){
2060 char *empty_string = "";
2061 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
2062 // ------------------------------------------
2063 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2064 struct _sgnb_addreq_for_ue *sgnb_addreq_for_ue = NULL;
2065 Uenibstreamprotobuf__SgNBAdditionRequest *node_0_0 = NULL;
2066 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_0_1 = NULL;
2067 Uenibstreamprotobuf__ECGI *node_0_2 = NULL;
2068 // ------------------------------------------
2069 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2070 struct _sgnb_addreq_for_ue_bearers *sgnb_addreq_for_ue_bearers = NULL;
2071 Uenibstreamprotobuf__SgNBAdditionRequest *node_1_0 = NULL;
2072 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_1_1 = NULL;
2073 Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqList *node_1_2 = NULL;
2074 Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqItemIEs *node_1_3 = NULL;
2076 Uenibstreamprotobuf__ERABsToBeAddedSgNBAddReqItem *node_1_4 = NULL;
2077 // ------------------------------------------
2078 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2079 struct _sgnb_addreq_for_ue_sn_serv_ssb *sgnb_addreq_for_ue_sn_serv_ssb = NULL;
2080 Uenibstreamprotobuf__SgNBAdditionRequest *node_2_0 = NULL;
2081 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_2_1 = NULL;
2082 Uenibstreamprotobuf__CGConfigInfo *node_2_2 = NULL;
2083 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_2_3 = NULL;
2084 Uenibstreamprotobuf__CGConfigInfoIEs *node_2_4 = NULL;
2085 Uenibstreamprotobuf__MeasResultList2NR *node_2_5 = NULL;
2086 Uenibstreamprotobuf__MeasResult2NR *node_2_6 = NULL;
2088 Uenibstreamprotobuf__MeasResultNR *node_2_7 = NULL;
2089 Uenibstreamprotobuf__MeasResult *node_2_8 = NULL;
2090 Uenibstreamprotobuf__CellResults *node_2_9 = NULL;
2091 Uenibstreamprotobuf__MeasQuantityResults *node_2_10 = NULL;
2092 // ------------------------------------------
2093 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2094 struct _sgnb_addreq_for_ue_sn_serv_csi_rs *sgnb_addreq_for_ue_sn_serv_csi_rs = NULL;
2095 Uenibstreamprotobuf__SgNBAdditionRequest *node_3_0 = NULL;
2096 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_3_1 = NULL;
2097 Uenibstreamprotobuf__CGConfigInfo *node_3_2 = NULL;
2098 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_3_3 = NULL;
2099 Uenibstreamprotobuf__CGConfigInfoIEs *node_3_4 = NULL;
2100 Uenibstreamprotobuf__MeasResultList2NR *node_3_5 = NULL;
2101 Uenibstreamprotobuf__MeasResult2NR *node_3_6 = NULL;
2103 Uenibstreamprotobuf__MeasResultNR *node_3_7 = NULL;
2104 Uenibstreamprotobuf__MeasResult *node_3_8 = NULL;
2105 Uenibstreamprotobuf__CellResults *node_3_9 = NULL;
2106 Uenibstreamprotobuf__MeasQuantityResults *node_3_10 = NULL;
2107 // ------------------------------------------
2108 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2109 struct _sgnb_addreq_for_ue_mn_serv_ssb *sgnb_addreq_for_ue_mn_serv_ssb = NULL;
2110 Uenibstreamprotobuf__SgNBAdditionRequest *node_4_0 = NULL;
2111 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_4_1 = NULL;
2112 Uenibstreamprotobuf__CGConfigInfo *node_4_2 = NULL;
2113 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_4_3 = NULL;
2114 Uenibstreamprotobuf__CGConfigInfoIEs *node_4_4 = NULL;
2115 Uenibstreamprotobuf__MeasResultList2NR *node_4_5 = NULL;
2116 Uenibstreamprotobuf__MeasResult2NR *node_4_6 = NULL;
2118 Uenibstreamprotobuf__MeasResultNR *node_4_7 = NULL;
2119 Uenibstreamprotobuf__MeasResult *node_4_8 = NULL;
2120 Uenibstreamprotobuf__CellResults *node_4_9 = NULL;
2121 Uenibstreamprotobuf__MeasQuantityResults *node_4_10 = NULL;
2122 // ------------------------------------------
2123 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2124 struct _sgnb_addreq_for_ue_mn_serv_csi_rs *sgnb_addreq_for_ue_mn_serv_csi_rs = NULL;
2125 Uenibstreamprotobuf__SgNBAdditionRequest *node_5_0 = NULL;
2126 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_5_1 = NULL;
2127 Uenibstreamprotobuf__CGConfigInfo *node_5_2 = NULL;
2128 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_5_3 = NULL;
2129 Uenibstreamprotobuf__CGConfigInfoIEs *node_5_4 = NULL;
2130 Uenibstreamprotobuf__MeasResultList2NR *node_5_5 = NULL;
2131 Uenibstreamprotobuf__MeasResult2NR *node_5_6 = NULL;
2133 Uenibstreamprotobuf__MeasResultNR *node_5_7 = NULL;
2134 Uenibstreamprotobuf__MeasResult *node_5_8 = NULL;
2135 Uenibstreamprotobuf__CellResults *node_5_9 = NULL;
2136 Uenibstreamprotobuf__MeasQuantityResults *node_5_10 = NULL;
2137 // ------------------------------------------
2138 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2139 struct _sgnb_addreq_for_ue_sn_neigh_ssb *sgnb_addreq_for_ue_sn_neigh_ssb = NULL;
2140 Uenibstreamprotobuf__SgNBAdditionRequest *node_6_0 = NULL;
2141 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_6_1 = NULL;
2142 Uenibstreamprotobuf__CGConfigInfo *node_6_2 = NULL;
2143 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_6_3 = NULL;
2144 Uenibstreamprotobuf__CGConfigInfoIEs *node_6_4 = NULL;
2145 Uenibstreamprotobuf__MeasResultList2NR *node_6_5 = NULL;
2146 Uenibstreamprotobuf__MeasResult2NR *node_6_6 = NULL;
2148 Uenibstreamprotobuf__MeasResultListNR *node_6_7 = NULL;
2149 Uenibstreamprotobuf__MeasResultNR *node_6_8 = NULL;
2151 Uenibstreamprotobuf__MeasResult *node_6_9 = NULL;
2152 Uenibstreamprotobuf__CellResults *node_6_10 = NULL;
2153 Uenibstreamprotobuf__MeasQuantityResults *node_6_11 = NULL;
2154 // ------------------------------------------
2155 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2156 struct _sgnb_addreq_for_ue_sn_neigh_csi_rs *sgnb_addreq_for_ue_sn_neigh_csi_rs = NULL;
2157 Uenibstreamprotobuf__SgNBAdditionRequest *node_7_0 = NULL;
2158 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_7_1 = NULL;
2159 Uenibstreamprotobuf__CGConfigInfo *node_7_2 = NULL;
2160 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_7_3 = NULL;
2161 Uenibstreamprotobuf__CGConfigInfoIEs *node_7_4 = NULL;
2162 Uenibstreamprotobuf__MeasResultList2NR *node_7_5 = NULL;
2163 Uenibstreamprotobuf__MeasResult2NR *node_7_6 = NULL;
2165 Uenibstreamprotobuf__MeasResultListNR *node_7_7 = NULL;
2166 Uenibstreamprotobuf__MeasResultNR *node_7_8 = NULL;
2168 Uenibstreamprotobuf__MeasResult *node_7_9 = NULL;
2169 Uenibstreamprotobuf__CellResults *node_7_10 = NULL;
2170 Uenibstreamprotobuf__MeasQuantityResults *node_7_11 = NULL;
2171 // ------------------------------------------
2172 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2173 struct _sgnb_addreq_for_ue_mn_neigh_ssb *sgnb_addreq_for_ue_mn_neigh_ssb = NULL;
2174 Uenibstreamprotobuf__SgNBAdditionRequest *node_8_0 = NULL;
2175 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_8_1 = NULL;
2176 Uenibstreamprotobuf__CGConfigInfo *node_8_2 = NULL;
2177 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_8_3 = NULL;
2178 Uenibstreamprotobuf__CGConfigInfoIEs *node_8_4 = NULL;
2179 Uenibstreamprotobuf__MeasResultList2NR *node_8_5 = NULL;
2180 Uenibstreamprotobuf__MeasResult2NR *node_8_6 = NULL;
2182 Uenibstreamprotobuf__MeasResultListNR *node_8_7 = NULL;
2183 Uenibstreamprotobuf__MeasResultNR *node_8_8 = NULL;
2185 Uenibstreamprotobuf__MeasResult *node_8_9 = NULL;
2186 Uenibstreamprotobuf__CellResults *node_8_10 = NULL;
2187 Uenibstreamprotobuf__MeasQuantityResults *node_8_11 = NULL;
2188 // ------------------------------------------
2189 // --- Variables for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2190 struct _sgnb_addreq_for_ue_mn_neigh_csi_rs *sgnb_addreq_for_ue_mn_neigh_csi_rs = NULL;
2191 Uenibstreamprotobuf__SgNBAdditionRequest *node_9_0 = NULL;
2192 Uenibstreamprotobuf__SgNBAdditionRequestIEs *node_9_1 = NULL;
2193 Uenibstreamprotobuf__CGConfigInfo *node_9_2 = NULL;
2194 Uenibstreamprotobuf__CGConfigInfoCriticalExtensionsChoice1 *node_9_3 = NULL;
2195 Uenibstreamprotobuf__CGConfigInfoIEs *node_9_4 = NULL;
2196 Uenibstreamprotobuf__MeasResultList2NR *node_9_5 = NULL;
2197 Uenibstreamprotobuf__MeasResult2NR *node_9_6 = NULL;
2199 Uenibstreamprotobuf__MeasResultListNR *node_9_7 = NULL;
2200 Uenibstreamprotobuf__MeasResultNR *node_9_8 = NULL;
2202 Uenibstreamprotobuf__MeasResult *node_9_9 = NULL;
2203 Uenibstreamprotobuf__CellResults *node_9_10 = NULL;
2204 Uenibstreamprotobuf__MeasQuantityResults *node_9_11 = NULL;
2206 // --------------------------------------------------
2207 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2209 sgnb_addreq_for_ue = (struct _sgnb_addreq_for_ue *)(cur_packet.record.packed.values);
2210 cur_packet.schema = 401;
2212 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
2213 if(hdr==NULL) return -1;
2215 node_0_0 = hdr->sgnbadditionrequest;
2216 if(node_0_0==NULL) return -2;
2217 if(hdr->header==NULL) return -3;
2219 sgnb_addreq_for_ue->timestamp_ms = timestamp;
2220 if(hdr->header->gnbid==NULL)
2221 sgnb_addreq_for_ue->gnb_id = empty_string;
2223 sgnb_addreq_for_ue->gnb_id = hdr->header->gnbid->value;
2225 node_0_1 = node_0_0->protocolies;
2226 if(node_0_0->protocolies){
2227 sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
2228 if(node_0_1->id_sgnbueaggregatemaximumbitrate){
2229 sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink = node_0_1->id_sgnbueaggregatemaximumbitrate->ueaggregatemaximumbitratedownlink;
2230 sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink_exists = 1;
2232 sgnb_addreq_for_ue->uEaggregateMaximumBitRateDownlink_exists = 0;
2234 if(node_0_1->id_menb_ue_x2ap_id_extension){
2235 sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID_Extension = node_0_1->id_menb_ue_x2ap_id_extension->value;
2237 sgnb_addreq_for_ue->id_MeNB_UE_X2AP_ID_Extension = 0;
2239 node_0_2 = node_0_1->id_menbcell_id;
2240 if(node_0_1->id_menbcell_id){
2241 sgnb_addreq_for_ue->eUTRANcellIdentifier = node_0_2->eutrancellidentifier;
2242 sgnb_addreq_for_ue->pLMN_Identity = node_0_2->plmn_identity;
2243 rts_fta_process_packet(&cur_packet);
2246 // --------------------------------------------------
2247 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2249 sgnb_addreq_for_ue_bearers = (struct _sgnb_addreq_for_ue_bearers *)(cur_packet.record.packed.values);
2250 cur_packet.schema = 402;
2251 node_1_0 = node_0_0;
2252 sgnb_addreq_for_ue_bearers->timestamp_ms = timestamp;
2253 if(hdr->header->gnbid==NULL)
2254 sgnb_addreq_for_ue_bearers->gnb_id = empty_string;
2256 sgnb_addreq_for_ue_bearers->gnb_id = hdr->header->gnbid->value;
2258 node_1_1 = node_1_0->protocolies;
2259 if(node_1_0->protocolies){
2260 sgnb_addreq_for_ue_bearers->id_MeNB_UE_X2AP_ID = node_1_1->id_menb_ue_x2ap_id;
2261 node_1_2 = node_1_1->id_e_rabs_tobeadded_sgnbaddreqlist;
2262 if(node_1_1->id_e_rabs_tobeadded_sgnbaddreqlist){
2263 for(i_1_3=0;i_1_3<node_1_2->n_items; i_1_3++){
2264 node_1_3 = node_1_2->items[i_1_3];
2265 node_1_4 = node_1_3->id_e_rabs_tobeadded_sgnbaddreq_item;
2266 if(node_1_3->id_e_rabs_tobeadded_sgnbaddreq_item){
2267 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){
2268 sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateDL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_maximumbitratedl;
2270 sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateDL = 0;
2272 if(node_1_4->en_dc_resourceconfiguration){
2273 sgnb_addreq_for_ue_bearers->pDCPatSgNB = node_1_4->en_dc_resourceconfiguration->pdcpatsgnb;
2275 sgnb_addreq_for_ue_bearers->pDCPatSgNB = -1;
2277 sgnb_addreq_for_ue_bearers->drb_ID = node_1_4->drb_id;
2278 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){
2279 sgnb_addreq_for_ue_bearers->priorityLevel = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->prioritylevel;
2281 sgnb_addreq_for_ue_bearers->priorityLevel = 0;
2283 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg){
2284 sgnb_addreq_for_ue_bearers->gTP_TEID = node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg->gtp_teid;
2286 sgnb_addreq_for_ue_bearers->gTP_TEID = "";
2288 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){
2289 sgnb_addreq_for_ue_bearers->pre_emptionCapability = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptioncapability->value;
2291 sgnb_addreq_for_ue_bearers->pre_emptionCapability = -1;
2293 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){
2294 sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateUL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_guaranteedbitrateul;
2296 sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateUL = 0;
2298 if(node_1_4->en_dc_resourceconfiguration){
2299 sgnb_addreq_for_ue_bearers->mCGresources = node_1_4->en_dc_resourceconfiguration->mcgresources;
2301 sgnb_addreq_for_ue_bearers->mCGresources = -1;
2303 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg){
2304 sgnb_addreq_for_ue_bearers->transportLayerAddress = node_1_4->sgnbpdcppresent->menb_dl_gtp_teidatmcg->transportlayeraddress;
2306 sgnb_addreq_for_ue_bearers->transportLayerAddress = "";
2308 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){
2309 sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateUL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_guaranteedbitrateul;
2311 sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateUL = 0;
2313 if(node_1_4->en_dc_resourceconfiguration){
2314 sgnb_addreq_for_ue_bearers->sCGresources = node_1_4->en_dc_resourceconfiguration->scgresources;
2316 sgnb_addreq_for_ue_bearers->sCGresources = -1;
2318 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){
2319 sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateUL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_maximumbitrateul;
2321 sgnb_addreq_for_ue_bearers->MCG_eRAB_MaximumBitrateUL = 0;
2323 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){
2324 sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateUL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_maximumbitrateul;
2326 sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateUL = 0;
2328 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){
2329 sgnb_addreq_for_ue_bearers->pre_emptionVulnerability = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->allocationandretentionpriority->pre_emptionvulnerability->value;
2331 sgnb_addreq_for_ue_bearers->pre_emptionVulnerability = -1;
2333 sgnb_addreq_for_ue_bearers->e_RAB_ID = node_1_4->e_rab_id;
2334 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters){
2335 sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateDL = node_1_4->sgnbpdcppresent->max_mcg_admit_e_rab_level_qos_parameters->e_rab_guaranteedbitratedl;
2337 sgnb_addreq_for_ue_bearers->MCG_eRAB_GuaranteedBitrateDL = 0;
2339 if(node_1_4->sgnbpdcppresent && node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters){
2340 sgnb_addreq_for_ue_bearers->qCI = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->qci;
2342 sgnb_addreq_for_ue_bearers->qCI = 0;
2344 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){
2345 sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateDL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_maximumbitratedl;
2347 sgnb_addreq_for_ue_bearers->full_eRAB_MaximumBitrateDL = 0;
2349 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){
2350 sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateDL = node_1_4->sgnbpdcppresent->full_e_rab_level_qos_parameters->gbrqosinformation->e_rab_guaranteedbitratedl;
2352 sgnb_addreq_for_ue_bearers->full_eRAB_GuaranteedBitrateDL = 0;
2354 rts_fta_process_packet(&cur_packet);
2359 // --------------------------------------------------
2360 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2362 sgnb_addreq_for_ue_sn_serv_ssb = (struct _sgnb_addreq_for_ue_sn_serv_ssb *)(cur_packet.record.packed.values);
2363 cur_packet.schema = 403;
2364 node_2_0 = node_1_0;
2365 sgnb_addreq_for_ue_sn_serv_ssb->timestamp_ms = timestamp;
2366 if(hdr->header->gnbid==NULL)
2367 sgnb_addreq_for_ue_sn_serv_ssb->gnb_id = empty_string;
2369 sgnb_addreq_for_ue_sn_serv_ssb->gnb_id = hdr->header->gnbid->value;
2371 node_2_1 = node_2_0->protocolies;
2372 if(node_2_0->protocolies){
2373 sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID = node_2_1->id_menb_ue_x2ap_id;
2374 if(node_2_1->id_menb_ue_x2ap_id_extension){
2375 sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = node_2_1->id_menb_ue_x2ap_id_extension->value;
2377 sgnb_addreq_for_ue_sn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
2379 node_2_2 = node_2_1->id_menbtosgnbcontainer;
2380 if(node_2_1->id_menbtosgnbcontainer){
2381 node_2_3 = node_2_2->criticalextensionschoice1;
2382 if(node_2_2->criticalextensionschoice1){
2383 node_2_4 = node_2_3->protocolies;
2384 if(node_2_3->protocolies){
2385 node_2_5 = node_2_4->candidatecellinfolistsn;
2386 if(node_2_4->candidatecellinfolistsn){
2387 for(i_2_6=0;i_2_6<node_2_5->n_items; i_2_6++){
2388 node_2_6 = node_2_5->items[i_2_6];
2389 node_2_7 = node_2_6->measresultservingcell;
2390 if(node_2_6->measresultservingcell){
2391 if(node_2_7->physcellid){
2392 sgnb_addreq_for_ue_sn_serv_ssb->physCellId = node_2_7->physcellid->value;
2393 sgnb_addreq_for_ue_sn_serv_ssb->physCellId_exists = 1;
2395 sgnb_addreq_for_ue_sn_serv_ssb->physCellId_exists = 0;
2397 node_2_8 = node_2_7->measresult;
2398 if(node_2_7->measresult){
2399 node_2_9 = node_2_8->cellresults;
2400 if(node_2_8->cellresults){
2401 node_2_10 = node_2_9->resultsssb_cell;
2402 if(node_2_9->resultsssb_cell){
2403 if(node_2_10->rsrq){
2404 sgnb_addreq_for_ue_sn_serv_ssb->rsrq = node_2_10->rsrq->value;
2406 sgnb_addreq_for_ue_sn_serv_ssb->rsrq = 128;
2408 if(node_2_10->rsrp){
2409 sgnb_addreq_for_ue_sn_serv_ssb->rsrp = node_2_10->rsrp->value;
2411 sgnb_addreq_for_ue_sn_serv_ssb->rsrp = 128;
2413 if(node_2_10->sinr){
2414 sgnb_addreq_for_ue_sn_serv_ssb->sinr = node_2_10->sinr->value;
2416 sgnb_addreq_for_ue_sn_serv_ssb->sinr = 128;
2418 rts_fta_process_packet(&cur_packet);
2429 // --------------------------------------------------
2430 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2432 sgnb_addreq_for_ue_sn_serv_csi_rs = (struct _sgnb_addreq_for_ue_sn_serv_csi_rs *)(cur_packet.record.packed.values);
2433 cur_packet.schema = 404;
2434 node_3_0 = node_2_0;
2435 sgnb_addreq_for_ue_sn_serv_csi_rs->timestamp_ms = timestamp;
2436 if(hdr->header->gnbid==NULL)
2437 sgnb_addreq_for_ue_sn_serv_csi_rs->gnb_id = empty_string;
2439 sgnb_addreq_for_ue_sn_serv_csi_rs->gnb_id = hdr->header->gnbid->value;
2441 node_3_1 = node_3_0->protocolies;
2442 if(node_3_0->protocolies){
2443 sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID = node_3_1->id_menb_ue_x2ap_id;
2444 if(node_3_1->id_menb_ue_x2ap_id_extension){
2445 sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_3_1->id_menb_ue_x2ap_id_extension->value;
2447 sgnb_addreq_for_ue_sn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0;
2449 node_3_2 = node_3_1->id_menbtosgnbcontainer;
2450 if(node_3_1->id_menbtosgnbcontainer){
2451 node_3_3 = node_3_2->criticalextensionschoice1;
2452 if(node_3_2->criticalextensionschoice1){
2453 node_3_4 = node_3_3->protocolies;
2454 if(node_3_3->protocolies){
2455 node_3_5 = node_3_4->candidatecellinfolistsn;
2456 if(node_3_4->candidatecellinfolistsn){
2457 for(i_3_6=0;i_3_6<node_3_5->n_items; i_3_6++){
2458 node_3_6 = node_3_5->items[i_3_6];
2459 node_3_7 = node_3_6->measresultservingcell;
2460 if(node_3_6->measresultservingcell){
2461 if(node_3_7->physcellid){
2462 sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId = node_3_7->physcellid->value;
2463 sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId_exists = 1;
2465 sgnb_addreq_for_ue_sn_serv_csi_rs->physCellId_exists = 0;
2467 node_3_8 = node_3_7->measresult;
2468 if(node_3_7->measresult){
2469 node_3_9 = node_3_8->cellresults;
2470 if(node_3_8->cellresults){
2471 node_3_10 = node_3_9->resultscsi_rs_cell;
2472 if(node_3_9->resultscsi_rs_cell){
2473 if(node_3_10->rsrq){
2474 sgnb_addreq_for_ue_sn_serv_csi_rs->rsrq = node_3_10->rsrq->value;
2476 sgnb_addreq_for_ue_sn_serv_csi_rs->rsrq = 128;
2478 if(node_3_10->rsrp){
2479 sgnb_addreq_for_ue_sn_serv_csi_rs->rsrp = node_3_10->rsrp->value;
2481 sgnb_addreq_for_ue_sn_serv_csi_rs->rsrp = 128;
2483 if(node_3_10->sinr){
2484 sgnb_addreq_for_ue_sn_serv_csi_rs->sinr = node_3_10->sinr->value;
2486 sgnb_addreq_for_ue_sn_serv_csi_rs->sinr = 128;
2488 rts_fta_process_packet(&cur_packet);
2499 // --------------------------------------------------
2500 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2502 sgnb_addreq_for_ue_mn_serv_ssb = (struct _sgnb_addreq_for_ue_mn_serv_ssb *)(cur_packet.record.packed.values);
2503 cur_packet.schema = 405;
2504 node_4_0 = node_3_0;
2505 sgnb_addreq_for_ue_mn_serv_ssb->timestamp_ms = timestamp;
2506 if(hdr->header->gnbid==NULL)
2507 sgnb_addreq_for_ue_mn_serv_ssb->gnb_id = empty_string;
2509 sgnb_addreq_for_ue_mn_serv_ssb->gnb_id = hdr->header->gnbid->value;
2511 node_4_1 = node_4_0->protocolies;
2512 if(node_4_0->protocolies){
2513 sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID = node_4_1->id_menb_ue_x2ap_id;
2514 if(node_4_1->id_menb_ue_x2ap_id_extension){
2515 sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = node_4_1->id_menb_ue_x2ap_id_extension->value;
2517 sgnb_addreq_for_ue_mn_serv_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
2519 node_4_2 = node_4_1->id_menbtosgnbcontainer;
2520 if(node_4_1->id_menbtosgnbcontainer){
2521 node_4_3 = node_4_2->criticalextensionschoice1;
2522 if(node_4_2->criticalextensionschoice1){
2523 node_4_4 = node_4_3->protocolies;
2524 if(node_4_3->protocolies){
2525 node_4_5 = node_4_4->candidatecellinfolistmn;
2526 if(node_4_4->candidatecellinfolistmn){
2527 for(i_4_6=0;i_4_6<node_4_5->n_items; i_4_6++){
2528 node_4_6 = node_4_5->items[i_4_6];
2529 node_4_7 = node_4_6->measresultservingcell;
2530 if(node_4_6->measresultservingcell){
2531 if(node_4_7->physcellid){
2532 sgnb_addreq_for_ue_mn_serv_ssb->physCellId = node_4_7->physcellid->value;
2533 sgnb_addreq_for_ue_mn_serv_ssb->physCellId_exists = 1;
2535 sgnb_addreq_for_ue_mn_serv_ssb->physCellId_exists = 0;
2537 node_4_8 = node_4_7->measresult;
2538 if(node_4_7->measresult){
2539 node_4_9 = node_4_8->cellresults;
2540 if(node_4_8->cellresults){
2541 node_4_10 = node_4_9->resultsssb_cell;
2542 if(node_4_9->resultsssb_cell){
2543 if(node_4_10->rsrq){
2544 sgnb_addreq_for_ue_mn_serv_ssb->rsrq = node_4_10->rsrq->value;
2546 sgnb_addreq_for_ue_mn_serv_ssb->rsrq = 128;
2548 if(node_4_10->rsrp){
2549 sgnb_addreq_for_ue_mn_serv_ssb->rsrp = node_4_10->rsrp->value;
2551 sgnb_addreq_for_ue_mn_serv_ssb->rsrp = 128;
2553 if(node_4_10->sinr){
2554 sgnb_addreq_for_ue_mn_serv_ssb->sinr = node_4_10->sinr->value;
2556 sgnb_addreq_for_ue_mn_serv_ssb->sinr = 128;
2558 rts_fta_process_packet(&cur_packet);
2569 // --------------------------------------------------
2570 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2572 sgnb_addreq_for_ue_mn_serv_csi_rs = (struct _sgnb_addreq_for_ue_mn_serv_csi_rs *)(cur_packet.record.packed.values);
2573 cur_packet.schema = 406;
2574 node_5_0 = node_4_0;
2575 sgnb_addreq_for_ue_mn_serv_csi_rs->timestamp_ms = timestamp;
2576 if(hdr->header->gnbid==NULL)
2577 sgnb_addreq_for_ue_mn_serv_csi_rs->gnb_id = empty_string;
2579 sgnb_addreq_for_ue_mn_serv_csi_rs->gnb_id = hdr->header->gnbid->value;
2581 node_5_1 = node_5_0->protocolies;
2582 if(node_5_0->protocolies){
2583 sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID = node_5_1->id_menb_ue_x2ap_id;
2584 if(node_5_1->id_menb_ue_x2ap_id_extension){
2585 sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_5_1->id_menb_ue_x2ap_id_extension->value;
2587 sgnb_addreq_for_ue_mn_serv_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0;
2589 node_5_2 = node_5_1->id_menbtosgnbcontainer;
2590 if(node_5_1->id_menbtosgnbcontainer){
2591 node_5_3 = node_5_2->criticalextensionschoice1;
2592 if(node_5_2->criticalextensionschoice1){
2593 node_5_4 = node_5_3->protocolies;
2594 if(node_5_3->protocolies){
2595 node_5_5 = node_5_4->candidatecellinfolistmn;
2596 if(node_5_4->candidatecellinfolistmn){
2597 for(i_5_6=0;i_5_6<node_5_5->n_items; i_5_6++){
2598 node_5_6 = node_5_5->items[i_5_6];
2599 node_5_7 = node_5_6->measresultservingcell;
2600 if(node_5_6->measresultservingcell){
2601 if(node_5_7->physcellid){
2602 sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId = node_5_7->physcellid->value;
2603 sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId_exists = 1;
2605 sgnb_addreq_for_ue_mn_serv_csi_rs->physCellId_exists = 0;
2607 node_5_8 = node_5_7->measresult;
2608 if(node_5_7->measresult){
2609 node_5_9 = node_5_8->cellresults;
2610 if(node_5_8->cellresults){
2611 node_5_10 = node_5_9->resultscsi_rs_cell;
2612 if(node_5_9->resultscsi_rs_cell){
2613 if(node_5_10->rsrq){
2614 sgnb_addreq_for_ue_mn_serv_csi_rs->rsrq = node_5_10->rsrq->value;
2616 sgnb_addreq_for_ue_mn_serv_csi_rs->rsrq = 128;
2618 if(node_5_10->rsrp){
2619 sgnb_addreq_for_ue_mn_serv_csi_rs->rsrp = node_5_10->rsrp->value;
2621 sgnb_addreq_for_ue_mn_serv_csi_rs->rsrp = 128;
2623 if(node_5_10->sinr){
2624 sgnb_addreq_for_ue_mn_serv_csi_rs->sinr = node_5_10->sinr->value;
2626 sgnb_addreq_for_ue_mn_serv_csi_rs->sinr = 128;
2628 rts_fta_process_packet(&cur_packet);
2639 // --------------------------------------------------
2640 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2642 sgnb_addreq_for_ue_sn_neigh_ssb = (struct _sgnb_addreq_for_ue_sn_neigh_ssb *)(cur_packet.record.packed.values);
2643 cur_packet.schema = 408;
2644 node_6_0 = node_5_0;
2645 sgnb_addreq_for_ue_sn_neigh_ssb->timestamp_ms = timestamp;
2646 if(hdr->header->gnbid==NULL)
2647 sgnb_addreq_for_ue_sn_neigh_ssb->gnb_id = empty_string;
2649 sgnb_addreq_for_ue_sn_neigh_ssb->gnb_id = hdr->header->gnbid->value;
2651 node_6_1 = node_6_0->protocolies;
2652 if(node_6_0->protocolies){
2653 sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID = node_6_1->id_menb_ue_x2ap_id;
2654 if(node_6_1->id_menb_ue_x2ap_id_extension){
2655 sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = node_6_1->id_menb_ue_x2ap_id_extension->value;
2657 sgnb_addreq_for_ue_sn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
2659 node_6_2 = node_6_1->id_menbtosgnbcontainer;
2660 if(node_6_1->id_menbtosgnbcontainer){
2661 node_6_3 = node_6_2->criticalextensionschoice1;
2662 if(node_6_2->criticalextensionschoice1){
2663 node_6_4 = node_6_3->protocolies;
2664 if(node_6_3->protocolies){
2665 node_6_5 = node_6_4->candidatecellinfolistsn;
2666 if(node_6_4->candidatecellinfolistsn){
2667 for(i_6_6=0;i_6_6<node_6_5->n_items; i_6_6++){
2668 node_6_6 = node_6_5->items[i_6_6];
2669 node_6_7 = node_6_6->measresultneighcelllistnr;
2670 if(node_6_6->measresultneighcelllistnr){
2671 for(i_6_8=0;i_6_8<node_6_7->n_items; i_6_8++){
2672 node_6_8 = node_6_7->items[i_6_8];
2673 if(node_6_8->physcellid){
2674 sgnb_addreq_for_ue_sn_neigh_ssb->physCellId = node_6_8->physcellid->value;
2675 sgnb_addreq_for_ue_sn_neigh_ssb->physCellId_exists = 1;
2677 sgnb_addreq_for_ue_sn_neigh_ssb->physCellId_exists = 0;
2679 node_6_9 = node_6_8->measresult;
2680 if(node_6_8->measresult){
2681 node_6_10 = node_6_9->cellresults;
2682 if(node_6_9->cellresults){
2683 node_6_11 = node_6_10->resultsssb_cell;
2684 if(node_6_10->resultsssb_cell){
2685 if(node_6_11->rsrq){
2686 sgnb_addreq_for_ue_sn_neigh_ssb->rsrq = node_6_11->rsrq->value;
2688 sgnb_addreq_for_ue_sn_neigh_ssb->rsrq = 128;
2690 if(node_6_11->rsrp){
2691 sgnb_addreq_for_ue_sn_neigh_ssb->rsrp = node_6_11->rsrp->value;
2693 sgnb_addreq_for_ue_sn_neigh_ssb->rsrp = 128;
2695 if(node_6_11->sinr){
2696 sgnb_addreq_for_ue_sn_neigh_ssb->sinr = node_6_11->sinr->value;
2698 sgnb_addreq_for_ue_sn_neigh_ssb->sinr = 128;
2700 rts_fta_process_packet(&cur_packet);
2712 // --------------------------------------------------
2713 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2715 sgnb_addreq_for_ue_sn_neigh_csi_rs = (struct _sgnb_addreq_for_ue_sn_neigh_csi_rs *)(cur_packet.record.packed.values);
2716 cur_packet.schema = 409;
2717 node_7_0 = node_6_0;
2718 sgnb_addreq_for_ue_sn_neigh_csi_rs->timestamp_ms = timestamp;
2719 if(hdr->header->gnbid==NULL)
2720 sgnb_addreq_for_ue_sn_neigh_csi_rs->gnb_id = empty_string;
2722 sgnb_addreq_for_ue_sn_neigh_csi_rs->gnb_id = hdr->header->gnbid->value;
2724 node_7_1 = node_7_0->protocolies;
2725 if(node_7_0->protocolies){
2726 sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID = node_7_1->id_menb_ue_x2ap_id;
2727 if(node_7_1->id_menb_ue_x2ap_id_extension){
2728 sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_7_1->id_menb_ue_x2ap_id_extension->value;
2730 sgnb_addreq_for_ue_sn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0;
2732 node_7_2 = node_7_1->id_menbtosgnbcontainer;
2733 if(node_7_1->id_menbtosgnbcontainer){
2734 node_7_3 = node_7_2->criticalextensionschoice1;
2735 if(node_7_2->criticalextensionschoice1){
2736 node_7_4 = node_7_3->protocolies;
2737 if(node_7_3->protocolies){
2738 node_7_5 = node_7_4->candidatecellinfolistsn;
2739 if(node_7_4->candidatecellinfolistsn){
2740 for(i_7_6=0;i_7_6<node_7_5->n_items; i_7_6++){
2741 node_7_6 = node_7_5->items[i_7_6];
2742 node_7_7 = node_7_6->measresultneighcelllistnr;
2743 if(node_7_6->measresultneighcelllistnr){
2744 for(i_7_8=0;i_7_8<node_7_7->n_items; i_7_8++){
2745 node_7_8 = node_7_7->items[i_7_8];
2746 if(node_7_8->physcellid){
2747 sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId = node_7_8->physcellid->value;
2748 sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId_exists = 1;
2750 sgnb_addreq_for_ue_sn_neigh_csi_rs->physCellId_exists = 0;
2752 node_7_9 = node_7_8->measresult;
2753 if(node_7_8->measresult){
2754 node_7_10 = node_7_9->cellresults;
2755 if(node_7_9->cellresults){
2756 node_7_11 = node_7_10->resultscsi_rs_cell;
2757 if(node_7_10->resultscsi_rs_cell){
2758 if(node_7_11->rsrq){
2759 sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrq = node_7_11->rsrq->value;
2761 sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrq = 128;
2763 if(node_7_11->rsrp){
2764 sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrp = node_7_11->rsrp->value;
2766 sgnb_addreq_for_ue_sn_neigh_csi_rs->rsrp = 128;
2768 if(node_7_11->sinr){
2769 sgnb_addreq_for_ue_sn_neigh_csi_rs->sinr = node_7_11->sinr->value;
2771 sgnb_addreq_for_ue_sn_neigh_csi_rs->sinr = 128;
2773 rts_fta_process_packet(&cur_packet);
2785 // --------------------------------------------------
2786 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2788 sgnb_addreq_for_ue_mn_neigh_ssb = (struct _sgnb_addreq_for_ue_mn_neigh_ssb *)(cur_packet.record.packed.values);
2789 cur_packet.schema = 410;
2790 node_8_0 = node_7_0;
2791 sgnb_addreq_for_ue_mn_neigh_ssb->timestamp_ms = timestamp;
2792 if(hdr->header->gnbid==NULL)
2793 sgnb_addreq_for_ue_mn_neigh_ssb->gnb_id = empty_string;
2795 sgnb_addreq_for_ue_mn_neigh_ssb->gnb_id = hdr->header->gnbid->value;
2797 node_8_1 = node_8_0->protocolies;
2798 if(node_8_0->protocolies){
2799 sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID = node_8_1->id_menb_ue_x2ap_id;
2800 if(node_8_1->id_menb_ue_x2ap_id_extension){
2801 sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = node_8_1->id_menb_ue_x2ap_id_extension->value;
2803 sgnb_addreq_for_ue_mn_neigh_ssb->id_MeNB_UE_X2AP_ID_Extension = 0;
2805 node_8_2 = node_8_1->id_menbtosgnbcontainer;
2806 if(node_8_1->id_menbtosgnbcontainer){
2807 node_8_3 = node_8_2->criticalextensionschoice1;
2808 if(node_8_2->criticalextensionschoice1){
2809 node_8_4 = node_8_3->protocolies;
2810 if(node_8_3->protocolies){
2811 node_8_5 = node_8_4->candidatecellinfolistmn;
2812 if(node_8_4->candidatecellinfolistmn){
2813 for(i_8_6=0;i_8_6<node_8_5->n_items; i_8_6++){
2814 node_8_6 = node_8_5->items[i_8_6];
2815 node_8_7 = node_8_6->measresultneighcelllistnr;
2816 if(node_8_6->measresultneighcelllistnr){
2817 for(i_8_8=0;i_8_8<node_8_7->n_items; i_8_8++){
2818 node_8_8 = node_8_7->items[i_8_8];
2819 if(node_8_8->physcellid){
2820 sgnb_addreq_for_ue_mn_neigh_ssb->physCellId = node_8_8->physcellid->value;
2821 sgnb_addreq_for_ue_mn_neigh_ssb->physCellId_exists = 1;
2823 sgnb_addreq_for_ue_mn_neigh_ssb->physCellId_exists = 0;
2825 node_8_9 = node_8_8->measresult;
2826 if(node_8_8->measresult){
2827 node_8_10 = node_8_9->cellresults;
2828 if(node_8_9->cellresults){
2829 node_8_11 = node_8_10->resultsssb_cell;
2830 if(node_8_10->resultsssb_cell){
2831 if(node_8_11->rsrq){
2832 sgnb_addreq_for_ue_mn_neigh_ssb->rsrq = node_8_11->rsrq->value;
2834 sgnb_addreq_for_ue_mn_neigh_ssb->rsrq = 128;
2836 if(node_8_11->rsrp){
2837 sgnb_addreq_for_ue_mn_neigh_ssb->rsrp = node_8_11->rsrp->value;
2839 sgnb_addreq_for_ue_mn_neigh_ssb->rsrp = 128;
2841 if(node_8_11->sinr){
2842 sgnb_addreq_for_ue_mn_neigh_ssb->sinr = node_8_11->sinr->value;
2844 sgnb_addreq_for_ue_mn_neigh_ssb->sinr = 128;
2846 rts_fta_process_packet(&cur_packet);
2858 // --------------------------------------------------
2859 // --- Specialized processing for .proto sgnb_addition_request.json, path sgnb_addition_req.json
2861 sgnb_addreq_for_ue_mn_neigh_csi_rs = (struct _sgnb_addreq_for_ue_mn_neigh_csi_rs *)(cur_packet.record.packed.values);
2862 cur_packet.schema = 411;
2863 node_9_0 = node_8_0;
2864 sgnb_addreq_for_ue_mn_neigh_csi_rs->timestamp_ms = timestamp;
2865 if(hdr->header->gnbid==NULL)
2866 sgnb_addreq_for_ue_mn_neigh_csi_rs->gnb_id = empty_string;
2868 sgnb_addreq_for_ue_mn_neigh_csi_rs->gnb_id = hdr->header->gnbid->value;
2870 node_9_1 = node_9_0->protocolies;
2871 if(node_9_0->protocolies){
2872 sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID = node_9_1->id_menb_ue_x2ap_id;
2873 if(node_9_1->id_menb_ue_x2ap_id_extension){
2874 sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = node_9_1->id_menb_ue_x2ap_id_extension->value;
2876 sgnb_addreq_for_ue_mn_neigh_csi_rs->id_MeNB_UE_X2AP_ID_Extension = 0;
2878 node_9_2 = node_9_1->id_menbtosgnbcontainer;
2879 if(node_9_1->id_menbtosgnbcontainer){
2880 node_9_3 = node_9_2->criticalextensionschoice1;
2881 if(node_9_2->criticalextensionschoice1){
2882 node_9_4 = node_9_3->protocolies;
2883 if(node_9_3->protocolies){
2884 node_9_5 = node_9_4->candidatecellinfolistmn;
2885 if(node_9_4->candidatecellinfolistmn){
2886 for(i_9_6=0;i_9_6<node_9_5->n_items; i_9_6++){
2887 node_9_6 = node_9_5->items[i_9_6];
2888 node_9_7 = node_9_6->measresultneighcelllistnr;
2889 if(node_9_6->measresultneighcelllistnr){
2890 for(i_9_8=0;i_9_8<node_9_7->n_items; i_9_8++){
2891 node_9_8 = node_9_7->items[i_9_8];
2892 if(node_9_8->physcellid){
2893 sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId = node_9_8->physcellid->value;
2894 sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId_exists = 1;
2896 sgnb_addreq_for_ue_mn_neigh_csi_rs->physCellId_exists = 0;
2898 node_9_9 = node_9_8->measresult;
2899 if(node_9_8->measresult){
2900 node_9_10 = node_9_9->cellresults;
2901 if(node_9_9->cellresults){
2902 node_9_11 = node_9_10->resultscsi_rs_cell;
2903 if(node_9_10->resultscsi_rs_cell){
2904 if(node_9_11->rsrq){
2905 sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrq = node_9_11->rsrq->value;
2907 sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrq = 128;
2909 if(node_9_11->rsrp){
2910 sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrp = node_9_11->rsrp->value;
2912 sgnb_addreq_for_ue_mn_neigh_csi_rs->rsrp = 128;
2914 if(node_9_11->sinr){
2915 sgnb_addreq_for_ue_mn_neigh_csi_rs->sinr = node_9_11->sinr->value;
2917 sgnb_addreq_for_ue_mn_neigh_csi_rs->sinr = 128;
2919 rts_fta_process_packet(&cur_packet);
2931 uenibstreamprotobuf__sg_nbaddition_request__free_unpacked(node_0_0,NULL);
2935 gs_uint32_t process_buffer_SGNBMODCONF(gs_uint8_t * buffer, gs_uint32_t buflen){
2936 char *empty_string = "";
2937 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
2938 // ------------------------------------------
2939 // --- Variables for .proto sgnb_modification_confirm.json, path sgnb_mod_confirm.json
2940 struct _sgnb_mod_conf *sgnb_mod_conf = NULL;
2941 Uenibstreamprotobuf__SgNBModificationConfirm *node_0_0 = NULL;
2942 Uenibstreamprotobuf__SgNBModificationConfirmIEs *node_0_1 = NULL;
2944 // --------------------------------------------------
2945 // --- Specialized processing for .proto sgnb_modification_confirm.json, path sgnb_mod_confirm.json
2947 sgnb_mod_conf = (struct _sgnb_mod_conf *)(cur_packet.record.packed.values);
2948 cur_packet.schema = 1301;
2950 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
2951 if(hdr==NULL) return -1;
2953 node_0_0 = hdr->sgnbmodificationconfirm;
2954 if(node_0_0==NULL) return -2;
2955 if(hdr->header==NULL) return -3;
2957 sgnb_mod_conf->timestamp_ms = timestamp;
2958 if(hdr->header->gnbid==NULL)
2959 sgnb_mod_conf->gnb_id = empty_string;
2961 sgnb_mod_conf->gnb_id = hdr->header->gnbid->value;
2963 node_0_1 = node_0_0->protocolies;
2964 if(node_0_0->protocolies){
2965 sgnb_mod_conf->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
2966 sgnb_mod_conf->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
2967 rts_fta_process_packet(&cur_packet);
2969 uenibstreamprotobuf__sg_nbmodification_confirm__free_unpacked(node_0_0,NULL);
2973 gs_uint32_t process_buffer_SGNBMODREQ(gs_uint8_t * buffer, gs_uint32_t buflen){
2974 char *empty_string = "";
2975 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
2976 // ------------------------------------------
2977 // --- Variables for .proto sgnb_modification_request.json, path sgnb_mod_req.json
2978 struct _sgnb_mod_req *sgnb_mod_req = NULL;
2979 Uenibstreamprotobuf__SgNBModificationRequest *node_0_0 = NULL;
2980 Uenibstreamprotobuf__SgNBModificationRequestIEs *node_0_1 = NULL;
2982 // --------------------------------------------------
2983 // --- Specialized processing for .proto sgnb_modification_request.json, path sgnb_mod_req.json
2985 sgnb_mod_req = (struct _sgnb_mod_req *)(cur_packet.record.packed.values);
2986 cur_packet.schema = 1201;
2988 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
2989 if(hdr==NULL) return -1;
2991 node_0_0 = hdr->sgnbmodificationrequest;
2992 if(node_0_0==NULL) return -2;
2993 if(hdr->header==NULL) return -3;
2995 sgnb_mod_req->timestamp_ms = timestamp;
2996 if(hdr->header->gnbid==NULL)
2997 sgnb_mod_req->gnb_id = empty_string;
2999 sgnb_mod_req->gnb_id = hdr->header->gnbid->value;
3001 node_0_1 = node_0_0->protocolies;
3002 if(node_0_0->protocolies){
3003 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
3004 sgnb_mod_req->cause_protocol = node_0_1->id_cause->protocol->value;
3006 sgnb_mod_req->cause_protocol = -1;
3008 sgnb_mod_req->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3009 if(node_0_1->id_cause && node_0_1->id_cause->transport){
3010 sgnb_mod_req->cause_transport = node_0_1->id_cause->transport->value;
3012 sgnb_mod_req->cause_transport = -1;
3014 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){
3015 sgnb_mod_req->failureType = node_0_1->id_menbtosgnbcontainer->criticalextensionschoice1->protocolies->scgfailureinfo->failuretype;
3017 sgnb_mod_req->failureType = -1;
3019 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
3020 sgnb_mod_req->cause_radio_network = node_0_1->id_cause->radionetwork->value;
3022 sgnb_mod_req->cause_radio_network = -1;
3024 sgnb_mod_req->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3025 if(node_0_1->id_cause && node_0_1->id_cause->misc){
3026 sgnb_mod_req->cause_misc = node_0_1->id_cause->misc->value;
3028 sgnb_mod_req->cause_misc = -1;
3030 rts_fta_process_packet(&cur_packet);
3032 uenibstreamprotobuf__sg_nbmodification_request__free_unpacked(node_0_0,NULL);
3036 gs_uint32_t process_buffer_SGNBMODREQACK(gs_uint8_t * buffer, gs_uint32_t buflen){
3037 char *empty_string = "";
3038 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3039 // ------------------------------------------
3040 // --- Variables for .proto sgnb_modification_request_acknowledge.json, path sgnb_mod_req_ack.json
3041 struct _sgnb_mod_req_ack *sgnb_mod_req_ack = NULL;
3042 Uenibstreamprotobuf__SgNBModificationRequestAcknowledge *node_0_0 = NULL;
3043 Uenibstreamprotobuf__SgNBModificationRequestAcknowledgeIEs *node_0_1 = NULL;
3045 // --------------------------------------------------
3046 // --- Specialized processing for .proto sgnb_modification_request_acknowledge.json, path sgnb_mod_req_ack.json
3048 sgnb_mod_req_ack = (struct _sgnb_mod_req_ack *)(cur_packet.record.packed.values);
3049 cur_packet.schema = 1701;
3051 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3052 if(hdr==NULL) return -1;
3054 node_0_0 = hdr->sgnbmodificationrequestacknowledge;
3055 if(node_0_0==NULL) return -2;
3056 if(hdr->header==NULL) return -3;
3058 sgnb_mod_req_ack->timestamp_ms = timestamp;
3059 if(hdr->header->gnbid==NULL)
3060 sgnb_mod_req_ack->gnb_id = empty_string;
3062 sgnb_mod_req_ack->gnb_id = hdr->header->gnbid->value;
3064 node_0_1 = node_0_0->protocolies;
3065 if(node_0_0->protocolies){
3066 sgnb_mod_req_ack->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3067 sgnb_mod_req_ack->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3068 rts_fta_process_packet(&cur_packet);
3070 uenibstreamprotobuf__sg_nbmodification_request_acknowledge__free_unpacked(node_0_0,NULL);
3074 gs_uint32_t process_buffer_SGNBMODREQREJECT(gs_uint8_t * buffer, gs_uint32_t buflen){
3075 char *empty_string = "";
3076 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3077 // ------------------------------------------
3078 // --- Variables for .proto sgnb_modification_request_reject.json, path sgnb_mod_req_reject.json
3079 struct _sgnb_mod_req_reject *sgnb_mod_req_reject = NULL;
3080 Uenibstreamprotobuf__SgNBModificationRequestReject *node_0_0 = NULL;
3081 Uenibstreamprotobuf__SgNBModificationRequestRejectIEs *node_0_1 = NULL;
3083 // --------------------------------------------------
3084 // --- Specialized processing for .proto sgnb_modification_request_reject.json, path sgnb_mod_req_reject.json
3086 sgnb_mod_req_reject = (struct _sgnb_mod_req_reject *)(cur_packet.record.packed.values);
3087 cur_packet.schema = 1801;
3089 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3090 if(hdr==NULL) return -1;
3092 node_0_0 = hdr->sgnbmodificationrequestreject;
3093 if(node_0_0==NULL) return -2;
3094 if(hdr->header==NULL) return -3;
3096 sgnb_mod_req_reject->timestamp_ms = timestamp;
3097 if(hdr->header->gnbid==NULL)
3098 sgnb_mod_req_reject->gnb_id = empty_string;
3100 sgnb_mod_req_reject->gnb_id = hdr->header->gnbid->value;
3102 node_0_1 = node_0_0->protocolies;
3103 if(node_0_0->protocolies){
3104 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
3105 sgnb_mod_req_reject->cause_protocol = node_0_1->id_cause->protocol->value;
3107 sgnb_mod_req_reject->cause_protocol = -1;
3109 sgnb_mod_req_reject->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3110 if(node_0_1->id_cause && node_0_1->id_cause->transport){
3111 sgnb_mod_req_reject->cause_transport = node_0_1->id_cause->transport->value;
3113 sgnb_mod_req_reject->cause_transport = -1;
3115 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
3116 sgnb_mod_req_reject->cause_radio_network = node_0_1->id_cause->radionetwork->value;
3118 sgnb_mod_req_reject->cause_radio_network = -1;
3120 sgnb_mod_req_reject->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3121 if(node_0_1->id_cause && node_0_1->id_cause->misc){
3122 sgnb_mod_req_reject->cause_misc = node_0_1->id_cause->misc->value;
3124 sgnb_mod_req_reject->cause_misc = -1;
3126 rts_fta_process_packet(&cur_packet);
3128 uenibstreamprotobuf__sg_nbmodification_request_reject__free_unpacked(node_0_0,NULL);
3132 gs_uint32_t process_buffer_SGNBMODREQUIRED(gs_uint8_t * buffer, gs_uint32_t buflen){
3133 char *empty_string = "";
3134 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3135 // ------------------------------------------
3136 // --- Variables for .proto sgnb_modification_required.json, path sgnb_mod_rqd.json
3137 struct _sgnb_mod_required *sgnb_mod_required = NULL;
3138 Uenibstreamprotobuf__SgNBModificationRequired *node_0_0 = NULL;
3139 Uenibstreamprotobuf__SgNBModificationRequiredIEs *node_0_1 = NULL;
3141 // --------------------------------------------------
3142 // --- Specialized processing for .proto sgnb_modification_required.json, path sgnb_mod_rqd.json
3144 sgnb_mod_required = (struct _sgnb_mod_required *)(cur_packet.record.packed.values);
3145 cur_packet.schema = 1901;
3147 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3148 if(hdr==NULL) return -1;
3150 node_0_0 = hdr->sgnbmodificationrequired;
3151 if(node_0_0==NULL) return -2;
3152 if(hdr->header==NULL) return -3;
3154 sgnb_mod_required->timestamp_ms = timestamp;
3155 if(hdr->header->gnbid==NULL)
3156 sgnb_mod_required->gnb_id = empty_string;
3158 sgnb_mod_required->gnb_id = hdr->header->gnbid->value;
3160 node_0_1 = node_0_0->protocolies;
3161 if(node_0_0->protocolies){
3162 if(node_0_1->id_cause && node_0_1->id_cause->protocol){
3163 sgnb_mod_required->cause_protocol = node_0_1->id_cause->protocol->value;
3165 sgnb_mod_required->cause_protocol = -1;
3167 sgnb_mod_required->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3168 if(node_0_1->id_cause && node_0_1->id_cause->transport){
3169 sgnb_mod_required->cause_transport = node_0_1->id_cause->transport->value;
3171 sgnb_mod_required->cause_transport = -1;
3173 if(node_0_1->id_cause && node_0_1->id_cause->radionetwork){
3174 sgnb_mod_required->cause_radio_network = node_0_1->id_cause->radionetwork->value;
3176 sgnb_mod_required->cause_radio_network = -1;
3178 sgnb_mod_required->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3179 if(node_0_1->id_cause && node_0_1->id_cause->misc){
3180 sgnb_mod_required->cause_misc = node_0_1->id_cause->misc->value;
3182 sgnb_mod_required->cause_misc = -1;
3184 rts_fta_process_packet(&cur_packet);
3186 uenibstreamprotobuf__sg_nbmodification_required__free_unpacked(node_0_0,NULL);
3190 gs_uint32_t process_buffer_SGNBMODREFUSE(gs_uint8_t * buffer, gs_uint32_t buflen){
3191 char *empty_string = "";
3192 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3193 // ------------------------------------------
3194 // --- Variables for .proto sgnb_modification_refuse.json, path sgnb_modification_refuse.json
3195 struct _sgnb_mod_refuse *sgnb_mod_refuse = NULL;
3196 Uenibstreamprotobuf__SgNBModificationRefuse *node_0_0 = NULL;
3197 Uenibstreamprotobuf__SgNBModificationRefuseIEs *node_0_1 = NULL;
3198 Uenibstreamprotobuf__Cause *node_0_2 = NULL;
3200 // --------------------------------------------------
3201 // --- Specialized processing for .proto sgnb_modification_refuse.json, path sgnb_modification_refuse.json
3203 sgnb_mod_refuse = (struct _sgnb_mod_refuse *)(cur_packet.record.packed.values);
3204 cur_packet.schema = 1401;
3206 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3207 if(hdr==NULL) return -1;
3209 node_0_0 = hdr->sgnbmodificationrefuse;
3210 if(node_0_0==NULL) return -2;
3211 if(hdr->header==NULL) return -3;
3213 sgnb_mod_refuse->timestamp_ms = timestamp;
3214 if(hdr->header->gnbid==NULL)
3215 sgnb_mod_refuse->gnb_id = empty_string;
3217 sgnb_mod_refuse->gnb_id = hdr->header->gnbid->value;
3219 node_0_1 = node_0_0->protocolies;
3220 if(node_0_0->protocolies){
3221 sgnb_mod_refuse->id_MeNB_UE_X2AP_ID = node_0_1->id_menb_ue_x2ap_id;
3222 sgnb_mod_refuse->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id;
3223 node_0_2 = node_0_1->id_cause;
3224 if(node_0_1->id_cause){
3225 if(node_0_2->radionetwork){
3226 sgnb_mod_refuse->cause_radio_network = node_0_2->radionetwork->value;
3228 sgnb_mod_refuse->cause_radio_network = -1;
3230 if(node_0_2->transport){
3231 sgnb_mod_refuse->cause_transport = node_0_2->transport->value;
3233 sgnb_mod_refuse->cause_transport = -1;
3235 if(node_0_2->protocol){
3236 sgnb_mod_refuse->cause_protocol = node_0_2->protocol->value;
3238 sgnb_mod_refuse->cause_protocol = -1;
3241 sgnb_mod_refuse->cause_misc = node_0_2->misc->value;
3243 sgnb_mod_refuse->cause_misc = -1;
3245 rts_fta_process_packet(&cur_packet);
3248 uenibstreamprotobuf__sg_nbmodification_refuse__free_unpacked(node_0_0,NULL);
3252 gs_uint32_t process_buffer_SNSTATUSXFER(gs_uint8_t * buffer, gs_uint32_t buflen){
3253 char *empty_string = "";
3254 Uenibstreamprotobuf__X2APStreaming *hdr = NULL;
3255 // ------------------------------------------
3256 // --- Variables for .proto sn_status_transfer.json, path snstatusxfer.json
3257 struct _sn_status_transfer *sn_status_transfer = NULL;
3258 Uenibstreamprotobuf__SNStatusTransfer *node_0_0 = NULL;
3259 Uenibstreamprotobuf__SNStatusTransferIEs *node_0_1 = NULL;
3260 Uenibstreamprotobuf__ERABsSubjectToStatusTransferList *node_0_2 = NULL;
3261 Uenibstreamprotobuf__ERABsSubjectToStatusTransferItemIEs *node_0_3 = NULL;
3263 Uenibstreamprotobuf__ERABsSubjectToStatusTransferItem *node_0_4 = NULL;
3264 Uenibstreamprotobuf__ERABsSubjectToStatusTransferItemExtIEs *node_0_5 = NULL;
3266 Uenibstreamprotobuf__COUNTvaluePDCPSNlength18 *node_0_6 = NULL;
3268 // --------------------------------------------------
3269 // --- Specialized processing for .proto sn_status_transfer.json, path snstatusxfer.json
3271 sn_status_transfer = (struct _sn_status_transfer *)(cur_packet.record.packed.values);
3272 cur_packet.schema = 1601;
3274 hdr = uenibstreamprotobuf__x2_apstreaming__unpack(NULL, buflen, buffer);
3275 if(hdr==NULL) return -1;
3277 node_0_0 = hdr->snstatustransfer;
3278 if(node_0_0==NULL) return -2;
3279 if(hdr->header==NULL) return -3;
3281 sn_status_transfer->timestamp_ms = timestamp;
3282 if(hdr->header->gnbid==NULL)
3283 sn_status_transfer->gnb_id = empty_string;
3285 sn_status_transfer->gnb_id = hdr->header->gnbid->value;
3287 node_0_1 = node_0_0->protocolies;
3288 if(node_0_0->protocolies){
3289 sn_status_transfer->id_Old_eNB_UE_X2AP_ID = node_0_1->id_old_enb_ue_x2ap_id;
3290 if(node_0_1->id_sgnb_ue_x2ap_id){
3291 sn_status_transfer->id_SgNB_UE_X2AP_ID = node_0_1->id_sgnb_ue_x2ap_id->value;
3293 sn_status_transfer->id_SgNB_UE_X2AP_ID = 0;
3295 node_0_2 = node_0_1->id_e_rabs_subjecttostatustransfer_list;
3296 if(node_0_1->id_e_rabs_subjecttostatustransfer_list){
3297 for(i_0_3=0;i_0_3<node_0_2->n_items; i_0_3++){
3298 node_0_3 = node_0_2->items[i_0_3];
3299 node_0_4 = node_0_3->id_e_rabs_subjecttostatustransfer_item;
3300 if(node_0_3->id_e_rabs_subjecttostatustransfer_item){
3301 sn_status_transfer->e_RAB_ID = node_0_4->e_rab_id;
3302 for(i_0_5=0;i_0_5<node_0_4->n_ie_extensions; i_0_5++){
3303 node_0_5 = node_0_4->ie_extensions[i_0_5];
3304 node_0_6 = node_0_5->id_dlcountvaluepdcp_snlength18;
3305 if(node_0_5->id_dlcountvaluepdcp_snlength18){
3306 sn_status_transfer->pDCP_SNlength18 = node_0_6->pdcp_snlength18;
3307 rts_fta_process_packet(&cur_packet);
3314 uenibstreamprotobuf__snstatus_transfer__free_unpacked(node_0_0,NULL);
3319 int init_cur_packet(){
3320 cur_packet.ptype=PTYPE_STRUCT;
3321 cur_packet.record.packed.values = (void *)(malloc(10000));
3323 if(cur_packet.record.packed.values==NULL){
3324 print_error("could not malloc a data block for cur_packet in init_cur_packet.");
3329 //---------------- END Specialized proto parsing -----------
3331 static void dproto_replay_check_messages() {
3332 if (fta_start_service(0)<0) {
3333 print_error("Error:in processing the msg queue for a replay file");
3338 // Read length bytes from the current socket into buffer.
3339 static gs_uint32_t gs_read_buffer(gs_uint8_t * buffer, gs_uint32_t length){
3344 struct timeval socket_timeout;
3347 FD_ZERO(&socket_rset);
3348 FD_SET(socket_desc,&socket_rset);
3349 FD_ZERO(&socket_eset);
3350 FD_SET(socket_desc,&socket_eset);
3351 // timeout in one millisecon
3352 socket_timeout.tv_sec=0;
3353 socket_timeout.tv_usec=1000;
3355 if ((retval=select(socket_desc+1,&socket_rset,0,&socket_eset,&socket_timeout))<=0) {
3363 while(used < length) {
3364 if ((cur=read(socket_desc,&(buffer[used]),length-used))<=0) {
3365 print_error("ERROR:could not read data from gdat stream");
3373 // query gshub and use that info to open a socket
3374 static void init_socket() {
3377 struct sockaddr_in server;
3379 if (get_hub(&gshub)!=0) {
3380 print_error("ERROR:could not find gshub for data source");
3384 if (get_streamsource(gshub,name,&srcinfo,1) !=0) {
3385 print_error("ERROR:could not find data source for stream\n");
3389 socket_desc = socket(AF_INET , SOCK_STREAM , 0);
3390 if (socket_desc == -1)
3392 print_error("ERROR:could not create socket for data stream");
3395 server.sin_addr.s_addr = srcinfo.ip;
3396 server.sin_family = AF_INET;
3397 server.sin_port = srcinfo.port;
3399 if (connect(socket_desc , (struct sockaddr *)&server , sizeof(server)) < 0)
3401 print_error("ERROR: could not open connection to data source");
3407 // proceed to the next file
3408 static void next_file() {
3411 fprintf(stderr,"Opening %s\n",name);
3413 while (lstat(name,&s)!=0) {
3414 if (errno!=ENOENT) {
3415 print_error("dproto::lstat unexpected return value");
3418 dproto_replay_check_messages();
3424 if ((pd=fopen(name,"r"))==0) {
3425 print_error("dproto::open failed ");
3428 if (singlefile==0) {
3433 // Perform initialization when reading from a file
3434 static gs_retval_t dproto_replay_init(gs_sp_t device) {
3439 gs_sp_t singlefiletmp;
3441 if ((name=get_iface_properties(device,"filename"))==0) {
3442 print_error("dproto_init::No protobuf \"Filename\" defined");
3446 if ((verbosetmp=get_iface_properties(device,"verbose"))!=0) {
3447 if (strncmp(verbosetmp,"TRUE",4)==0) {
3449 fprintf(stderr,"VERBOSE ENABLED\n");
3451 fprintf(stderr,"VERBOSE DISABLED\n");
3454 if ((singlefiletmp=get_iface_properties(device,"singlefile"))!=0) {
3455 if (strncmp(singlefiletmp,"TRUE",4)==0) {
3458 fprintf(stderr,"SINGLEFILE ENABLED\n");
3461 fprintf(stderr,"SINGLEFILE DISABLED\n");
3465 if ((delaytmp=get_iface_properties(device,"startupdelay"))!=0) {
3467 fprintf(stderr,"Startup delay of %u seconds\n",atoi(get_iface_properties(device,"startupdelay")));
3469 startupdelay=atoi(get_iface_properties(device,"startupdelay"));
3471 if ((gshubtmp=get_iface_properties(device,"gshub"))!=0) {
3473 fprintf(stderr,"GDAT format using gshub\n");
3482 // Read one message from a socket
3483 static gs_retval_t dproto_read_socket()
3488 gs_uint32_t pkg_len;
3495 if((ret=gs_read_buffer(line,28))<0) { return ret;}
3498 timestamp_s = line+12;
3499 pkg_len = atoi(pkg_len_s);
3500 timestamp = atoll(timestamp_s);
3502 if((ret=gs_read_buffer(line,pkg_len))<0) { return ret;}
3504 cur_packet.systemTime=time(0);
3505 ret = process_buffer(line, pkg_len);
3507 fprintf(stderr,"proto rejected by device %s, err=%d\n",this_device, ret);
3513 // read one message from a file
3514 static void dproto_read_tuple(){
3515 gs_uint32_t retlen=0;
3517 gs_uint32_t pkg_len=0;
3523 if (pd==0) next_file();
3525 retlen = fread(line, sizeof(char), 28, pd);
3530 timestamp_s = line+12;
3531 pkg_len = atoi(pkg_len_s);
3532 timestamp = atoll(timestamp_s);
3533 if(pkg_len >= MAXLINE){
3534 // TODO be more graceful here, but a large pkg_len likely indicates
3536 print_error("Error in dproto_read_tuple, message too long.");
3537 fprintf(stderr,"Error in dproto_read_tuple, message length is %d, max is %d\n",pkg_len, MAXLINE);
3541 retlen = fread(line, sizeof(char), pkg_len, pd);
3543 print_error("Error in dproto_read_tuple, line too short.");
3544 fprintf(stderr,"Error, read %d bytes, expecting %d\n",retlen, pkg_len);
3549 cur_packet.systemTime=time(0);
3550 ret = process_buffer(line, pkg_len);
3552 fprintf(stderr,"proto rejected by device %s, err=%d\n",this_device, ret);
3557 if (singlefile==1) {
3559 fprintf(stderr,"SINGLEFILE PROCESSING DONE!\n");
3563 fprintf(stderr,"RTS SAYS BYe\n");
3565 while(1==1) sleep(1);
3572 // Main loop for processing records from a file or socket
3573 static gs_retval_t dproto_process_file(){
3575 static unsigned totalcnt=0;
3577 for(cnt=0;cnt<5/*0000*/;cnt++) {
3580 retval=dproto_read_socket();
3581 if (retval==-1) return 0; // got a timeout so service message queue
3582 if ((retval==-2) || (ftaschema_is_eof_tuple(cur_packet.record.gdat.schema,(void *)cur_packet.record.gdat.data))) {
3583 // we signal that everything is done if we either see an EOF tuple OR the socket is closed by the peer
3585 fprintf(stderr,"Done processing waiting for things to shut down\n");
3587 // now just service message queue until we get killed or loose connectivity
3589 fta_start_service(0); // service all waiting messages
3590 usleep(1000); // sleep a millisecond
3594 dproto_read_tuple();
3597 totalcnt=totalcnt+cnt;
3599 fprintf(stderr,"Processed %u messages from %s\n",totalcnt, name);
3604 // Entry for processing this interface
3605 gs_retval_t main_dproto(gs_int32_t devicenum, gs_sp_t device, gs_int32_t mapcnt, gs_sp_t map[]) {
3609 dproto_replay_init(device); // will call init_cur_packet
3610 this_device = strdup(device); // save for error messages.
3612 /* initalize host_lib */
3614 fprintf(stderr,"Init LFTAs for %s\n",device);
3617 if (hostlib_init(LFTA,0,devicenum,mapcnt,map)<0) {
3618 fprintf(stderr,"%s::error:could not initiate host lib for clearinghouse\n", device);
3622 //--------------------------------------------
3623 //---- Generated dispatch code
3624 if(strcmp(device,"CONRELEASE")==0){
3625 process_buffer = &process_buffer_CONRELEASE;
3627 if(strcmp(device,"RATDATAUSAGE")==0){
3628 process_buffer = &process_buffer_RATDATAUSAGE;
3630 if(strcmp(device,"RECONCOMPLETE")==0){
3631 process_buffer = &process_buffer_RECONCOMPLETE;
3633 if(strcmp(device,"RELCONF")==0){
3634 process_buffer = &process_buffer_RELCONF;
3636 if(strcmp(device,"RELREQ")==0){
3637 process_buffer = &process_buffer_RELREQ;
3639 if(strcmp(device,"RELREQACK")==0){
3640 process_buffer = &process_buffer_RELREQACK;
3642 if(strcmp(device,"SGNBRELEASERQD")==0){
3643 process_buffer = &process_buffer_SGNBRELEASERQD;
3645 if(strcmp(device,"RRCXFER")==0){
3646 process_buffer = &process_buffer_RRCXFER;
3648 if(strcmp(device,"ADDREQREJECT")==0){
3649 process_buffer = &process_buffer_ADDREQREJECT;
3651 if(strcmp(device,"SGNB_ADDITION_REQ_ACK")==0){
3652 process_buffer = &process_buffer_SGNB_ADDITION_REQ_ACK;
3654 if(strcmp(device,"SGNB_ADDITION_REQ")==0){
3655 process_buffer = &process_buffer_SGNB_ADDITION_REQ;
3657 if(strcmp(device,"SGNBMODCONF")==0){
3658 process_buffer = &process_buffer_SGNBMODCONF;
3660 if(strcmp(device,"SGNBMODREQ")==0){
3661 process_buffer = &process_buffer_SGNBMODREQ;
3663 if(strcmp(device,"SGNBMODREQACK")==0){
3664 process_buffer = &process_buffer_SGNBMODREQACK;
3666 if(strcmp(device,"SGNBMODREQREJECT")==0){
3667 process_buffer = &process_buffer_SGNBMODREQREJECT;
3669 if(strcmp(device,"SGNBMODREQUIRED")==0){
3670 process_buffer = &process_buffer_SGNBMODREQUIRED;
3672 if(strcmp(device,"SGNBMODREFUSE")==0){
3673 process_buffer = &process_buffer_SGNBMODREFUSE;
3675 if(strcmp(device,"SNSTATUSXFER")==0){
3676 process_buffer = &process_buffer_SNSTATUSXFER;
3678 if(process_buffer == NULL){
3679 fprintf(stderr,"Error, interface %s not recognized\n",device);
3682 //--------------------------------------------
3685 fta_init(device); /*xxx probably should get error code back put Ted doesn't give me one*/
3687 cont=startupdelay+time(0);
3689 if (verbose) { fprintf(stderr,"Start startup delay"); }
3691 while (cont>time(NULL)) {
3692 if (fta_start_service(0)<0) {
3693 fprintf(stderr,"%s::error:in processing the msg queue\n", device);
3696 usleep(1000); /* sleep for one millisecond */
3699 if (verbose) { fprintf(stderr,"... Done\n"); }
3701 // open the connection to the data source
3702 if (gshub!=0) { init_socket();}
3704 // wait to process till we get the signal from GSHUB
3705 if (get_hub(&mygshub)!=0) {
3706 print_error("ERROR:could not find gshub for data source");
3709 while(get_startprocessing(mygshub,get_instance_name(),0)!=0) {
3711 if (fta_start_service(0)<0) {
3712 fprintf(stderr,"%s::error:in processing the msg queue\n", device);
3717 /* now we enter an endless loop to process data */
3719 fprintf(stderr,"Start processing %s\n",device);
3723 if (dproto_process_file()<0) {
3724 fprintf(stderr,"%s::error:in processing packets\n", device);
3727 /* process all messages on the message queue*/
3728 if (fta_start_service(0)<0) {
3729 fprintf(stderr,"%s::error:in processing the msg queue\n", device);