-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathpacket-nfapi.c
More file actions
executable file
·6069 lines (5411 loc) · 317 KB
/
packet-nfapi.c
File metadata and controls
executable file
·6069 lines (5411 loc) · 317 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
* Copyright 2017 Cisco Systems, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "config.h"
#include <windows.h>
#include <stdio.h>
#include <stdint.h>
#include <epan/packet.h>
#include <epan/exceptions.h>
#include <epan/prefs.h>
#include <epan/expert.h>
#include <epan/reassemble.h>
#define NFAPI_HEADER_LENGTH 8
#define NFAPI_P7_HEADER_LENGTH 16
typedef int(*Decode_operation)(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset);
static const value_string nfapi_error_vals[] = {
{ 0x0, "MSG_OK" },
{ 0x1, "MSG_INVALID_STATE" },
{ 0x2, "MSG_INVALID_CONFIG" },
{ 0x3, "SFN_OUT_OF_SYNC" },
{ 0x4, "MSG_SUBFRAME_ERR" },
{ 0x5, "MSG_BCH_MISSING" },
{ 0x6, "MSG_BCH_MISSING" },
{ 0x7, "MSG_HI_ERR" },
{ 0x8, "MSG_TX_ERR" },
{ 0, NULL },
};
static const value_string nfapi_p4_error_vals[] = {
{ 100, "MSG_OK" },
{ 101, "MSG_INVALID_STATE" },
{ 102, "MSG_INVALID_CONFIG" },
{ 103, "MSG_RAT_NOT_SUPPORTED" },
{ 200, "MSG_NMM_STOP_OK" },
{ 201, "MSG_NMM_STOP_IGNORED" },
{ 202, "MSG_NMM_STOP_INVALID_STATE" },
{ 300, "MSG_PROCEDURE_COMPLETE" },
{ 301, "MSG_PROCEDURE_STOPPED" },
{ 302, "MSG_PARTIAL_RESULTS" },
{ 303, "MSG_TIMEOUT" },
{ 0, NULL },
};
static const value_string nfapi_rat_type_vals[] = {
{ 0, "LTE" },
{ 1, "UTRAN" },
{ 2, "GERAN" },
{ 0, NULL },
};
typedef enum{
UN_ALIGNED_SYNCHRONIZATION = 0,
INTERNAL_PNF_FRAME_ALIGNMENT,
ABSOLUTE_TIME_ALIGNED_SYNCHRONIZATION
} nfapi_sync_mode_e;
static const value_string nfapi_sync_mode_vals[] = {
{ UN_ALIGNED_SYNCHRONIZATION, "UN-ALIGNED SYNCHRONIZATION" },
{ INTERNAL_PNF_FRAME_ALIGNMENT, "INTERNAL PNF FRAME ALIGNMENT" },
{ ABSOLUTE_TIME_ALIGNED_SYNCHRONIZATION, "ABSOLUTE TIME ALIGNED SYNCHRONIZATION" }
};
typedef enum {
NONE = 0,
GPS,
GLONASS,
BEIDOU
} location_mode_e;
static const value_string location_mode_vals[] = {
{ NONE, "NONE" },
{ GPS, "GPS" },
{ GLONASS, "GLONASS" },
{ BEIDOU, "BeiDou" },
{ 0, NULL }
};
static const value_string nfapi_uplink_rs_hopping_vals[] = {
{ 0, "RS_NO_HOPPING" },
{ 1, "RS_GROUP_HOPPING" },
{ 2, "RS_SEQUENCE_HOPPING" },
{ 0, NULL }
};
static const value_string nfapi_laa_carrier_type_vals[] = {
{ 0, "No multi carrier support" },
{ 1, "Mode A1" },
{ 2, "Mode A12" },
{ 3, "Mode B1" },
{ 4, "Mode B2" },
{ 0, NULL }
};
static const value_string nfapi_mutli_carrier_lbt_support_vals[] = {
{ 0, "Multi carrier Mode A1" },
{ 1, "Multi carrier Mode A2" },
{ 2, "Multi carrier Mode B1" },
{ 3, "Multi carrier Mode B2" },
{ 0, NULL }
};
static const value_string nfapi_lbt_dl_req_pdu_type[] = {
{ 0, "LBT_PDSCH_REQ PDU" },
{ 1, "LBT_DRS_REQ PDU" },
{ 0, NULL }
};
static const value_string nfapi_lbt_dl_ind_pdu_type[] = {
{ 0, "LBT_PDSCH_RSP PDU" },
{ 1, "LBT_DRS_RSP PDU" },
{ 0, NULL }
};
/* These are definitions where data 0 & 1 represent/provide a string name*/
static const true_false_string true_false_strname = {
"FALSE",
"TRUE"
};
static const true_false_string nfapi_csi_report_type_strname = {
"Aperiodic",
"Periodic"
};
static const true_false_string nfapi_control_type_string_name = {
"RI",
"CQI/PMI"
};
static const true_false_string transport_block_to_codeword_swap_flag = {
"SWAPPED",
"NO_SWAPPING"
};
static const true_false_string virtual_resource_block_assignment_flag = {
"DISTRIBUTED",
"LOCALIZED"
};
static const true_false_string ngap_string_name = {
"N-GAP 2",
"N-GAP 1"
};
static const true_false_string nprb_strname = {
"= 3",
"= 2"
};
static const true_false_string cyclic_prefix_type_strname = {
"CP_EXTENDED",
"CP_NORMAL"
};
static const true_false_string support_strname = {
"Support",
"No Support"
};
static const true_false_string partial_sf_support_strname =
{
"End partial SF support",
"Start partial SF support"
};
static const true_false_string phich_duration_strname = {
"PHICH_D_EXTENDED",
"PHICH_D_NORMAL"
};
static const true_false_string high_speed_flag_strname = {
"HS_RESTRICTED_SET",
"HS_UNRESTRICTED_SET"
};
static const true_false_string hopping_mode_strname = {
"HM_INTRA_INTER_SF",
"HM_INTER_SF"
};
static const true_false_string enabled_disabled_strname = {
"Enabled",
"Disabled"
};
static const true_false_string srs_simult_tx_strname = {
"Simultaneous Transmission",
"No Simultaneous Transmission"
};
static const true_false_string crc_flag_strname = {
"CRC_ERROR",
"CRC_CORRECT"
};
static const true_false_string hi_value_strname = {
"HI_ACK",
"HI_NACK"
};
static const true_false_string flag_tb2_strname = {
"HI_PRESENT",
"HI_NOT_PRESENT"
};
static const true_false_string nfapi_multi_carrier_tx_strname = {
"Transmit on channel access win (no self-deferral)",
"Mutual transmission (self-deferral support for current carrier)",
};
static const true_false_string nfapi_multi_carrier_freeze_strname = {
"Absence of other technology is guaranteed",
"Absence of other technology isn’t guaranteed",
};
static const value_string nfapi_dl_config_pdu_type_vals[] = {
{ 0, "DL_CONFIG_DCI_DL_PDU" },
{ 1, "DL_CONFIG_BCH_PDU" },
{ 2, "DL_CONFIG_MCH_PDU" },
{ 3, "DL_CONFIG_DLSCH_PDU" },
{ 4, "DL_CONFIG_PCH_PDU" },
{ 5, "DL_CONFIG_PRS_PDU" },
{ 6, "DL_CONFIG_CSI_RS_PDU" },
{ 7, "DL_CONFIG_EPDCCH_DL_PDU" },
{ 8, "DL_CONFIG_EPDCCH_DL_PDU" },
{ 0, NULL }
};
static const value_string nfapi_duplex_mode_vals[] = {
{ 0, "TDD" },
{ 1, "FDD" },
{ 2, "HD-FDD" },
{ 0, NULL }
};
static const value_string modulation_vals[] = {
{ 2, "QPSK" },
{ 4, "16QAM" },
{ 6, "64QAM" },
{ 8, "256QAM" },
{ 0, NULL }
};
static const value_string pch_modulation_vals[] = {
{ 0, "QPSK" },
{ 0, NULL }
};
static const value_string ue_mode_vals[] = {
{ 0, "non LC/CE UE" },
{ 1, "LC/CE UE" },
{ 0, NULL }
};
static const value_string csi_rs_class_vals[] = {
{ 0, "not used" },
{ 1, "Class A" },
{ 1, "Class B" },
{ 0, NULL }
};
static const value_string csi_rs_cdm_type_vals[] = {
{ 0, "cdm 2" },
{ 1, "cdm 4" },
{ 0, NULL }
};
static const value_string antenna_ports_vals[] = {
{ 0, "1 antenna ports" },
{ 1, "2 antenna ports" },
{ 2, "4 antenna ports" },
{ 0, NULL }
};
static const value_string combs_vals[] = {
{ 0, "2 TC" },
{ 1, "4 TC" },
{ 0, NULL }
};
static const value_string resource_allocation_type_vals[] = {
{ 0, "type 0" },
{ 1, "type 1" },
{ 2, "type 2 1A/1B/1D" },
{ 3, "type 2 1C" },
{ 4, "type 2 6-1A" },
{ 5, "type UEModeB" },
{ 0, NULL }
};
static const value_string transmission_scheme_vals[] = {
{ 0, "SINGLE_ANTENNA_PORT_0" },
{ 1, "TX_DIVERSITY" },
{ 2, "LARGE_DELAY_CDD" },
{ 3, "CLOSED_LOOP_SPATIAL_MULTIPLEXING" },
{ 4, "MULTI_USER_MIMO" },
{ 5, "CLOSED_LOOP_RANK_1_PRECODING" },
{ 6, "SINGLE_ANTENNA_PORT_5" },
{ 7, "SINGLE_ANTENNA_PORT_7" },
{ 8, "SINGLE_ANTENNA_PORT_8" },
{ 9, "DUAL_LAYER_TX_PORT_7_AND_8" },
{ 10, "UP_TO_8_LAYER_TX" },
{ 11, "SINGLE_ANTENNA_PORT_11" },
{ 12, "SINGLE_ANTENNA_PORT_13" },
{ 13, "SINGLE_ANTENNA_PORT_11_13" },
{ 0, NULL }
};
static const value_string ul_transmission_scheme_vals[] = {
{ 0, "SINGLE_ANTENNA_PORT_10" },
{ 1, "CLOSED_LOOP_SPATIAL_MULTIPLEXING" },
};
static const value_string dci_format_vals[] = {
{ 0, "1" },
{ 1, "1A" },
{ 2, "1B" },
{ 3, "1C" },
{ 4, "1D" },
{ 5, "2" },
{ 6, "2A" },
{ 7, "2B" },
{ 8, "2C" },
{ 9, "2D" },
{ 0, NULL }
};
static const value_string pa_vals[] = {
{ 0, "-6dB" },
{ 1, "-4.77dB" },
{ 2, "-3dB" },
{ 3, "-1.77dB" },
{ 4, "0dB" },
{ 5, "1dB" },
{ 6, "2dB" },
{ 7, "3dB" },
{ 0, NULL }
};
static const value_string transmission_mode_vals[] = {
{ 1, "Mode 1" },
{ 2, "Mode 2" },
{ 3, "Mode 3" },
{ 4, "Mode 4" },
{ 5, "Mode 5" },
{ 6, "Mode 6" },
{ 7, "Mode 7" },
{ 8, "Mode 8" },
{ 9, "Mode 9" },
{ 10, "Mode 10" },
{ 0, NULL }
};
static const value_string nfapi_ul_config_pdu_type_vals[] = {
{ 0, "ULSCH" },
{ 1, "ULSCH_CQI_RI" },
{ 2, "ULSCH_HARQ" },
{ 3, "ULSCH_CQI_HARQ_RI" },
{ 4, "UCI_CQI" },
{ 5, "UCI_SR" },
{ 6, "UCI_HARQ" },
{ 7, "UCI_SR_HARQ" },
{ 8, "UCI_CQI_HARQ" },
{ 9, "UCI_CQI_SR" },
{ 10, "UCI_CQI_SR_HARQ" },
{ 11, "SRS" },
{ 12, "HARQ_BUFFER" },
{ 13, "ULSCH_UCI_CSI" },
{ 14, "ULSCH_UCI_HARQ" },
{ 15, "ULSCH_CSI_UCI_HARQ" },
{ 0, NULL }
};
typedef enum {
NFAPI_ACK_NACK_MODE_BUNDLING = 0,
NFAPI_ACK_NACK_MODE_MULTIPLEXING,
NFAPI_ACK_NACK_MODE_FORMAT_1B_WITH_CHAN_SEL,
NFAPI_ACK_NACK_MODE_FORMAT_3,
} nfapi_ack_nack_mode_e;
static const value_string nfapi_ack_nack_mode_vals[] = {
{ NFAPI_ACK_NACK_MODE_BUNDLING, "Bundling" },
{ NFAPI_ACK_NACK_MODE_MULTIPLEXING, "Multiplexing" },
{ NFAPI_ACK_NACK_MODE_FORMAT_1B_WITH_CHAN_SEL, "Format 1b with channel selection" },
{ NFAPI_ACK_NACK_MODE_FORMAT_3, "Format 3" },
{ 0, NULL }
};
typedef enum {
NFAPI_ANTENNA_PORT1 = 0,
NFAPI_ANTENNA_PORT2,
NFAPI_ANTENNA_PORT4,
} nfapi_antenna_port_e;
static const value_string nfapi_antenna_port_vals[] = {
{ NFAPI_ANTENNA_PORT1, "1 " },
{ NFAPI_ANTENNA_PORT2, "2 " },
{ NFAPI_ANTENNA_PORT4, "4 " },
{ 0, NULL }
};
typedef enum{
PHICH_R_ONE_SIXTH = 0,
PHICH_R_HALF,
PHICH_R_ONE,
PHICH_R_TWO
} nfapi_phich_resource_e;
static const value_string nfapi_phich_resource_vals[] = {
{ PHICH_R_ONE_SIXTH, "PHICH_R_ONE_SIXTH " },
{ PHICH_R_HALF, "PHICH_R_HALF" },
{ PHICH_R_ONE, "PHICH_R_ONE" },
{ PHICH_R_TWO, "PHICH_R_TWO" },
{ 0, NULL }
};
static const value_string local_distributed_vals[] = {
{ 0, "localized" },
{ 1, "distributed" },
{ 0, NULL }
};
static const value_string transport_block_to_codeword_swap_flag_vals[] = {
{ 0, "no swapping" },
{ 1, "swapped" },
{ 0, NULL }
};
static const value_string ngap_vals[] = {
{ 0, "Ngap1" },
{ 1, "Ngap2" },
{ 0, NULL }
};
static const value_string true_false_vals[] = {
{ 0, "false" },
{ 1, "true" },
{ 0, NULL }
};
static const value_string exhustive_search_vals[] = {
{ 0, "non-exhaustive search" },
{ 1, "exhaustive search" },
{ 0, NULL }
};
static const value_string not_used_enabled_vals[] = {
{ 0, "not used" },
{ 1, "enabled" },
{ 0, NULL }
};
static const value_string hopping_vals[] = {
{ 0, "no hopping" },
{ 1, "hopping enabled" },
{ 0, NULL }
};
static const value_string rnti_type_vals[] = {
{ 1, "C-RNTI" },
{ 2, "RA-RNTI, P-RNTI, SI-RNTI, SC-RNTI, G-RNTI" },
{ 3, "SPS-CRNTI" },
{ 0, NULL }
};
static const value_string primary_cells_type_vals[] = {
{ 1, "TDD" },
{ 2, "FDD" },
{ 3, "HD_FDD" },
{ 0, NULL }
};
static const value_string ul_rssi_supported_vals[] = {
{ 0, "Uplink RSSI not supported" },
{ 1, "Uplink RSSI supported" },
{ 0, NULL}
};
typedef enum
{
NMM_NONE = 0,
NMM_ONLY,
NMM_IN_CONFIGURED_STATE,
NMM_IN_RUNNING_STATE,
NMM_IN_CONFIGURED_AND_RUNNING_STATE
} nmm_modes_supported_e;
static const value_string nmm_modes_supported_vals[] =
{
{ NMM_NONE, "NONE" },
{ NMM_ONLY, "NMM_ONLY" },
{ NMM_IN_CONFIGURED_STATE, "NMM_IN_CONFIGURED_STATE" },
{ NMM_IN_RUNNING_STATE, "NMM_IN_RUNNING_STATE" },
{ NMM_IN_CONFIGURED_AND_RUNNING_STATE, "NMM_IN_CONFIGURED_AND_RUNNING_STAT" },
{ 0, NULL }
};
static int proto_nfapi = -1;
/* These are for the subtrees */
static gint ett_nfapi_message_tree = -1;
static gint ett_nfapi_p4_p5_message_header = -1;
static gint ett_nfapi_p7_message_header = -1;
static gint ett_nfapi_tlv_tree = -1;
static gint ett_nfapi_tl = -1;
static gint ett_nfapi_pnf_param_response = -1;
static gint ett_nfapi_pnf_phy = -1;
static gint ett_nfapi_pnf_phy_rel10 = -1;
static gint ett_nfapi_pnf_phy_rel11 = -1;
static gint ett_nfapi_pnf_phy_rel12 = -1;
static gint ett_nfapi_pnf_phy_rel13 = -1;
static gint ett_nfapi_pnf_rf = -1;
static gint ett_nfapi_phy_rf_config_info = -1;
static gint ett_nfapi_pnf_phy_rf_config = -1;
static gint ett_nfapi_pnf_phy_rf_config_instance = -1;
static gint ett_nfapi_phy_state = -1;
static gint ett_nfapi_l1_status = -1;
static gint ett_nfapi_rf_bands = -1;
static gint ett_nfapi_tx_antenna_ports = -1;
static gint ett_nfapi_harq_ack_nack_data = -1;
static gint ett_nfapi_harq_data = -1;
static gint ett_nfapi_cc = -1;
static gint ett_nfapi_rbs = -1;
static gint ett_nfapi_antennas = -1;
static gint ett_nfapi_dl_config_dci_dl_pdu_rel8 = -1;
static gint ett_nfapi_dl_config_dci_dl_pdu_rel9 = -1;
static gint ett_nfapi_dl_config_dci_dl_pdu_rel10 = -1;
static gint ett_nfapi_dl_config_dci_dl_pdu = -1;
static gint ett_nfapi_dl_config_request_pdu = -1;
static gint ett_nfapi_dl_config_request_body = -1;
static gint ett_nfapi_dl_config_request_pdu_list = -1;
static gint ett_nfapi_ul_config_request_pdu_list = -1;
static gint ett_nfapi_hi_dci0_request_pdu_list = -1;
static gint ett_nfapi_tx_request_pdu_list = -1;
static gint ett_nfapi_rx_indication_pdu_list = -1;
static gint ett_nfapi_harq_indication_pdu_list = -1;
static gint ett_nfapi_crc_indication_pdu_list = -1;
static gint ett_nfapi_sr_indication_pdu_list = -1;
static gint ett_nfapi_cqi_indication_pdu_list = -1;
static gint ett_nfapi_preamble_indication_pdu_list = -1;
static gint ett_nfapi_srs_indication_pdu_list = -1;
static gint ett_nfapi_lbt_dl_config_pdu_list = -1;
static gint ett_nfapi_lbt_dl_indication_pdu_list = -1;
static gint ett_nfapi_dl_node_sync = -1;
static gint ett_nfapi_ul_node_sync = -1;
static gint ett_nfapi_timing_info = -1;
static gint ett_nfapi_dl_config_request_dlsch_pdu_rel8 = -1;
static gint ett_nfapi_subbands = -1;
static gint ett_nfapi_dl_config_request_dlsch_pdu_rel9 = -1;
static gint ett_nfapi_dl_config_request_dlsch_pdu_rel10 = -1;
static gint ett_nfapi_dl_config_bch_pdu_rel8 = -1;
static gint ett_nfapi_dl_config_mch_pdu_rel8 = -1;
static gint ett_nfapi_dl_config_pch_pdu_rel8 = -1;
static gint ett_nfapi_dl_config_prs_pdu_rel9 = -1;
static gint ett_nfapi_dl_config_csi_rs_pdu_rel10 = -1;
static gint ett_nfapi_ul_config_request_body = -1;
static gint ett_nfapi_ul_config_harq_buffer_pdu = -1;
static gint ett_nfapi_ul_config_ue_information_rel8 = -1;
static gint ett_nfapi_ul_config_sr_information_pdu_rel8 = -1;
static gint ett_nfapi_ul_config_ulsch_pdu_rel8 = -1;
static gint ett_nfapi_ul_config_ulsch_pdu_rel10 = -1;
static gint ett_nfapi_ul_config_cqi_ri_information_rel8 = -1;
static gint ett_nfapi_ul_config_cqi_ri_information_rel9 = -1;
static gint ett_nfapi_ul_config_ulsch_harq_information_rel10 = -1;
static gint ett_nfapi_ul_config_initial_transmission_parameters_rel8 = -1;
static gint ett_nfapi_ul_config_cqi_information_rel8 = -1;
static gint ett_nfapi_ul_config_cqi_information_rel10 = -1;
static gint ett_nfapi_ul_config_sr_information_rel8 = -1;
static gint ett_nfapi_ul_config_sr_information_rel10 = -1;
static gint ett_nfapi_ul_config_harq_information_rel10_tdd = -1;
static gint ett_nfapi_ul_config_harq_information_rel8_fdd = -1;
static gint ett_nfapi_ul_config_harq_information_rel9_fdd = -1;
static gint ett_nfapi_ul_config_srs_pdu_rel8 = -1;
static gint ett_nfapi_ul_config_srs_pdu_rel10 = -1;
static gint ett_nfapi_crc_indication_body = -1;
static gint ett_nfapi_bf_vector_antennas = -1;
static gint ett_nfapi_bf_vectors = -1;
static gint ett_nfapi_csi_rs_resource_configs = -1;
static gint ett_nfapi_csi_rs_bf_vector = -1;
static gint ett_nfapi_epdcch_prbs = -1;
static gint ett_nfapi_precoding = -1;
static gint ett_nfapi_earfcn_list = -1;
static gint ett_nfapi_uarfcn_list = -1;
static gint ett_nfapi_arfcn_list = -1;
static gint ett_nfapi_rssi_list = -1;
static gint ett_nfapi_pci_list = -1;
static gint ett_nfapi_psc_list = -1;
static gint ett_nfapi_lte_cells_found_list = -1;
static gint ett_nfapi_utran_cells_found_list = -1;
static gint ett_nfapi_geran_cells_found_list = -1;
static gint ett_nfapi_si_periodicity_list = -1;
static expert_field ei_invalid_range = EI_INIT;
static expert_field ei_power_invalid = EI_INIT;
static expert_field ei_ref_sig_power_invalid = EI_INIT;
static int hf_nfapi_message_tree = -1;
static int hf_nfapi_p4_p5_message_header = -1;
static int hf_nfapi_p4_p5_message_header_phy_id = -1;
static int hf_nfapi_p4_p5_message_header_message_id = -1;
static int hf_nfapi_p4_p5_message_header_message_length = -1;
static int hf_nfapi_p4_p5_message_header_spare = -1;
static int hf_nfapi_p7_message_header = -1;
static int hf_nfapi_p7_message_header_phy_id = -1;
static int hf_nfapi_p7_message_header_message_id = -1;
static int hf_nfapi_p7_message_header_message_length = -1;
static int hf_nfapi_p7_message_header_m = -1;
static int hf_nfapi_p7_message_header_segment = -1;
static int hf_nfapi_p7_message_header_sequence_number = -1;
static int hf_nfapi_p7_message_header_checksum = -1;
static int hf_nfapi_p7_message_header_transmit_timestamp = -1;
static int hf_nfapi_tlv_tree = -1;
static int hf_nfapi_tl = -1;
static int hf_nfapi_tl_tag = -1;
static int hf_nfapi_tl_length = -1;
static int hf_nfapi_tag_uint8_value = -1;
static int hf_nfapi_tag_uint16_value = -1;
static int hf_nfapi_pnf_param_general = -1;
static int hf_nfapi_sync_mode = -1;
static int hf_nfapi_location_mode = -1;
static int hf_nfapi_location_coordinates = -1;
static int hf_nfapi_location_coordinates_length = -1;
static int hf_nfapi_dl_config_timing = -1;
static int hf_nfapi_tx_timing = -1;
static int hf_nfapi_ul_config_timing = -1;
static int hf_nfapi_hi_dci0_timing = -1;
static int hf_nfapi_maximum_number_phys = -1;
static int hf_nfapi_maximum_total_bandwidth = -1;
static int hf_nfapi_maximum_total_number_dl_layers = -1;
static int hf_nfapi_maximum_total_number_ul_layers = -1;
static int hf_nfapi_shared_bands = -1;
static int hf_nfapi_shared_pa = -1;
static int hf_nfapi_maximum_total_power = -1;
static int hf_nfapi_oui= -1;
static int hf_nfapi_pdu = -1;
static int hf_nfapi_pnf_phy = -1;
static int hf_nfapi_pnf_phy_nfapi_tl = -1; /* structure hf_nfapi_tl*/
static int hf_nfapi_pnf_phy_number_phy = -1;
static int hf_nfapi_pnf_phy_config_index = -1;
static int hf_nfapi_number_of_rf_exclusions = -1;
static int hf_nfapi_dl_bandwidth_support = -1;
static int hf_nfapi_ul_bandwidth_support = -1;
static int hf_nfapi_downlink_channel_bandwidth_supported = -1;
static int hf_nfapi_uplink_channel_bandwidth_supported = -1;
static int hf_nfapi_number_of_dl_layers_supported = -1;
static int hf_nfapi_number_of_ul_layers_supported = -1;
static int hf_nfapi_maximum_3gpp_release_supported = -1;
static int hf_nfapi_nmm_modes_supported = -1;
static int hf_nfapi_pnf_rf = -1;
static int hf_nfapi_pnf_rf_nfapi_tl = -1;
static int hf_nfapi_number_of_rfs = -1;
static int hf_nfapi_rf_config_index = -1;
static int hf_nfapi_band = -1;
static int hf_nfapi_maximum_transmit_power = -1;
static int hf_nfapi_earfcn = -1;
static int hf_nfapi_minimum_transmit_power = -1;
static int hf_nfapi_number_of_antennas_suppported = -1;
static int hf_nfapi_minimum_downlink_frequency = -1;
static int hf_nfapi_maximum_downlink_frequency = -1;
static int hf_nfapi_minimum_uplink_frequency = -1;
static int hf_nfapi_maximum_uplink_frequency = -1;
static int hf_nfapi_number_of_rf_bands = -1;
static int hf_nfapi_nmm_uplink_rssi_supported = -1;
static int hf_nfapi_phy_rf_config_info = -1;
static int hf_nfapi_phy_rf_config_info_phy_id = -1;
static int hf_nfapi_phy_rf_config_info_band = -1;
static int hf_nfapi_pnf_phy_rf_config = -1;
static int hf_nfapi_pnf_phy_rf_config_number_phy_rf_config_info = -1;
static int hf_nfapi_pnf_phy_rf_config_array_phy_rf_config_info = -1;
static int hf_nfapi_pnf_phy_rel10 = -1;
static int hf_nfapi_transmission_mode7_supported = -1;
static int hi_nfapi_transmission_mode8_supported = -1;
static int hi_nfapi_two_antennas_ports_for_pucch = -1;
static int hi_nfapi_transmission_mode_9_supported = -1;
static int hi_nfapi_simultaneous_pucch_pusch = -1;
static int hi_nfapi_for_layer_tx_with_tm3_and_tm4 = -1;
static int hf_nfapi_pnf_phy_rel11 = -1;
static int hf_nfapi_epdcch_supported = -1;
static int hi_nfapi_multi_ack_csi_reporting = -1;
static int hi_nfapi_pucch_tx_diversity_with_channel_selection = -1;
static int hi_nfapi_ul_comp_supported = -1;
static int hi_nfapi_transmission_mode_5_supported = -1;
static int hf_nfapi_pnf_phy_rel12 = -1;
static int hf_nfapi_csi_subframe_set = -1;
static int hi_nfapi_enhanced_4tx_codebook = -1;
static int hi_nfapi_drs_supported = -1;
static int hi_nfapi_ul_64qam_supported = -1;
static int hi_nfapi_transmission_mode_10_supported = -1;
static int hi_nfapi_alternative_tbs_indices = -1;
static int hf_nfapi_pnf_phy_rel13 = -1;
static int hf_nfapi_pucch_format_4_supported = -1;
static int hf_nfapi_pucch_format_5_supported = -1;
static int hf_nfapi_more_than_5_ca_supported = -1;
static int hf_nfapi_laa_supported = -1;
static int hf_nfapi_laa_ending_in_dwpts_supported = -1;
static int hf_nfapi_laa_starting_in_second_slot_supported = -1;
static int hf_nfapi_beamforming_supported = -1;
static int hf_nfapi_csi_rs_enhancements_supported = -1;
static int hf_nfapi_drms_enhancements_supported = -1;
static int hf_nfapi_srs_enhancements_supported = -1;
// P5 Message Structures
static int hf_nfapi_pnf_param_response_pnf_param_general = -1;
static int hf_nfapi_pnf_param_response_pnf_phy = -1;
static int hf_nfapi_pnf_param_response_pnf_rf = -1;
static int hf_nfapi_pnf_param_request = -1;
static int hf_nfapi_pnf_param_response = -1;
static int hf_nfapi_pnf_config_request = -1;
static int hf_nfapi_pnf_config_response = -1;
static int hf_nfapi_pnf_start_request = -1;
static int hf_nfapi_pnf_start_response = -1;
static int hf_nfapi_pnf_stop_request = -1;
static int hf_nfapi_pnf_stop_response = -1;
static int hf_nfapi_param_response = -1;
static int hf_nfapi_start_request = -1;
static int hf_nfapi_start_response = -1;
static int hf_nfapi_stop_request = -1;
static int hf_nfapi_stop_response = -1;
static int hf_nfapi_uint8_tag = -1;
static int hf_nfapi_uint16_tag = -1;
static int hf_nfapi_error_code = -1;
static int hf_nfapi_p4_error_code = -1;
static int hf_nfapi_rat_type = -1;
static int hf_nfapi_num_tlv = -1;
static int hf_nfapi_phy_state = -1;
// static int hf_nfapi_bandwidth_support = -1;
static int hf_nfapi_modulation_support = -1;
static int hf_nfapi_phy_antenna_capability = -1;
static int hf_nfapi_release_capability = -1;
static int hf_nfapi_mbsfn_capability = -1;
static int hf_nfapi_laa_capability = -1;
static int hf_nfapi_pd_sensing_lbt_support = -1;
static int hf_nfapi_multi_carrier_lbt_support = -1;
static int hf_nfapi_partial_sf_support = -1;
/* nfapi nfapi */
static int hf_nfapi_pnf_address = -1;
static int hf_nfapi_pnf_address_ipv4 = -1;
static int hf_nfapi_pnf_address_ipv6 = -1;
static int hf_nfapi_vnf_address = -1;
static int hf_nfapi_vnf_address_ipv4 = -1;
static int hf_nfapi_vnf_address_ipv6 = -1;
static int hf_nfapi_pnf_port = -1;
static int hf_nfapi_vnf_port = -1;
static int hf_nfapi_dl_ue_per_sf = -1;
static int hf_nfapi_ul_ue_per_sf = -1;
static int hf_nfapi_rf_bands = -1;
static int hf_nfapi_rf_bands_nfapi_tl = -1;
static int hf_nfapi_rf_bands_count = -1;
static int hf_nfapi_rf_bands_value = -1;
static int hf_nfapi_timing_window = -1;
static int hf_nfapi_timing_info_mode = -1;
static int hf_nfapi_timing_info_period = -1;
static int hf_nfapi_max_transmit_power = -1;
/* subframe config */
static int hf_nfapi_duplex_mode = -1;
static int hf_nfapi_pcfich_power_offset = -1;
static int hf_nfapi_pb = -1;
static int hf_nfapi_dl_cyclic_prefix_type = -1;
static int hf_nfapi_ul_cyclic_prefix_type = -1;
static int hf_nfapi_tx_antenna_ports = -1;
static int hf_nfapi_rx_antenna_ports = -1;
/* RF Config */
static int hf_nfapi_downlink_channel_bandwidth = -1;
static int hf_nfapi_uplink_channel_bandwidth = -1;
static int hf_nfapi_reference_signal_power = -1;
/* PHICH config*/
static int hf_nfapi_phich_resource = -1;
static int hf_nfapi_phich_duration = -1;
static int hf_nfapi_phich_power_offset = -1;
static int hf_nfapi_value_float = -1;
/* SCH Config */
static int hf_nfapi_primary_synchronization_signal_epre_eprers = -1;
static int hf_nfapi_secondary_synchronization_signal_epre_eprers = -1;
static int hf_nfapi_physical_cell_id = -1;
/* PRACH config */
static int hf_nfapi_configuration_index = -1;
static int hf_nfapi_root_sequence_index = -1;
static int hf_nfapi_zero_correlation_zone_configuration = -1;
static int hf_nfapi_high_speed_flag = -1;
static int hf_nfapi_frequency_offset = -1;
/* PUSCH config */
static int hf_nfapi_hopping_mode = -1;
static int hf_nfapi_hopping_offset = -1;
/* PUCCH config */
static int hf_nfapi_delta_pucch_shift = -1;
static int hf_nfapi_n_cqi_rb = -1;
static int hf_nfapi_n_an_cs = -1;
static int hf_nfapi_n1_pucch_an = -1;
/* SRS config */
static int hf_nfapi_bandwidth_configuration = -1;
static int hf_nfapi_max_up_pts = -1;
static int hf_nfapi_srs_subframe_configuration = -1;
static int hf_nfapi_srs_acknack_srs_simultaneous_transmission = -1;
/* uplink reference signal config */
static int hf_nfapi_uplink_rs_hopping = -1;
static int hf_nfapi_group_assignment = -1;
static int hf_nfapi_cyclic_shift_1_for_drms = -1;
/* tdd frame structure */
static int hf_nfapi_subframe_assignment = -1;
static int hf_nfapi_special_subframe_patterns = -1;
/* laa config */
static int hf_nfapi_ed_threshold_for_lbt_for_pdsch = -1;
static int hf_nfapi_ed_threshold_for_lbt_for_drs = -1;
static int hf_nfapi_pd_threshold = -1;
static int hf_nfapi_multi_carrier_type = -1;
static int hf_nfapi_multi_carrier_tx = -1;
static int hf_nfapi_multi_carrier_freeze = -1;
static int hf_nfapi_tx_antenna_ports_for_drs = -1;
static int hf_nfapi_transmission_power_for_drs = -1;
/* eMTC config */
static int hf_nfapi_pbch_repetitions_enabled_r13 = -1;
static int hf_nfapi_prach_cat_m_root_sequence_index = -1;
static int hf_nfapi_prach_cat_m_zero_correlation_zone_configuration = -1;
static int hf_nfapi_prach_cat_m_high_speed_flag = -1;
static int hf_nfapi_prach_ce_level_0_enable = -1;
static int hf_nfapi_prach_ce_level_0_configuration_index = -1;
static int hf_nfapi_prach_ce_level_0_frequency_offset = -1;
static int hf_nfapi_prach_ce_level_0_number_of_repetitions_per_attempt = -1;
static int hf_nfapi_prach_ce_level_0_starting_subframe_periodicity = -1;
static int hf_nfapi_prach_ce_level_0_hopping_enabled = -1;
static int hf_nfapi_prach_ce_level_0_hopping_offset = -1;
static int hf_nfapi_prach_ce_level_1_enable = -1;
static int hf_nfapi_prach_ce_level_1_configuration_index = -1;
static int hf_nfapi_prach_ce_level_1_frequency_offset = -1;
static int hf_nfapi_prach_ce_level_1_number_of_repetitions_per_attempt = -1;
static int hf_nfapi_prach_ce_level_1_starting_subframe_periodicity = -1;
static int hf_nfapi_prach_ce_level_1_hopping_enabled = -1;
static int hf_nfapi_prach_ce_level_1_hopping_offset = -1;
static int hf_nfapi_prach_ce_level_2_enable = -1;
static int hf_nfapi_prach_ce_level_2_configuration_index = -1;
static int hf_nfapi_prach_ce_level_2_frequency_offset = -1;
static int hf_nfapi_prach_ce_level_2_number_of_repetitions_per_attempt = -1;
static int hf_nfapi_prach_ce_level_2_starting_subframe_periodicity = -1;
static int hf_nfapi_prach_ce_level_2_hopping_enabled = -1;
static int hf_nfapi_prach_ce_level_2_hopping_offset = -1;
static int hf_nfapi_prach_ce_level_3_enable = -1;
static int hf_nfapi_prach_ce_level_3_configuration_index = -1;
static int hf_nfapi_prach_ce_level_3_frequency_offset = -1;
static int hf_nfapi_prach_ce_level_3_number_of_repetitions_per_attempt = -1;
static int hf_nfapi_prach_ce_level_3_starting_subframe_periodicity = -1;
static int hf_nfapi_prach_ce_level_3_hopping_enabled = -1;
static int hf_nfapi_prach_ce_level_3_hopping_offset = -1;
static int hf_nfapi_pucch_internal_ul_hopping_config_common_mode_b = -1;
static int hf_nfapi_pucch_internal_ul_hopping_config_common_mode_a = -1;
static int hf_nfapi_dl_modulation_support = -1;
static int hf_nfapi_ul_modulation_support = -1;
/* 123 config */
static int hf_nfapi_data_report_mode = -1;
static int hf_nfapi_sfnsf = -1;
// P7 Sub Structures
static int hf_nfapi_dl_config_dci_dl_pdu_rel8 = -1;
static int hf_nfapi_dci_format = -1;
static int hf_nfapi_cce_idx = -1;
static int hf_nfapi_aggregation_level = -1;
static int hf_nfapi_mcs_1 = -1;
static int hf_nfapi_redundancy_version_1 = -1;
static int hf_nfapi_new_data_indicator_1 = -1;
static int hf_nfapi_mcs_2 = -1;
static int hf_nfapi_redundancy_version_2 = -1;
static int hf_nfapi_new_data_indicator_2 = -1;
static int hf_nfapi_harq_process = -1;
static int hf_nfapi_tpmi = -1;
static int hf_nfapi_pmi = -1;
static int hf_nfapi_precoding_information = -1;
static int hf_nfapi_tpc = -1;
static int hf_nfapi_downlink_assignment_index = -1;
static int hf_nfapi_transport_block_size_index = -1;
static int hf_nfapi_downlink_power_offset = -1;
static int hf_nfapi_allocate_prach_flag = -1;
static int hf_nfapi_preamble_index = -1;
static int hf_nfapi_prach_mask_index = -1;
static int hf_nfapi_rnti_type = -1;
static int hf_nfapi_dl_config_dci_dl_pdu_rel9 = -1;
static int hf_nfapi_mcch_flag = -1;
static int hf_nfapi_mcch_change_notification = -1;
static int hf_nfapi_scrambling_identity = -1;
static int hf_nfapi_dl_config_dci_dl_pdu_rel10 = -1;
static int hf_nfapi_cross_carrier_scheduling_flag = -1;
static int hf_nfapi_carrier_indicator = -1;
static int hf_nfapi_srs_flag = -1;
static int hf_nfapi_srs_request = -1;
static int hf_nfapi_antenna_ports_scrambling_and_layers = -1;
static int hf_nfapi_total_dci_length_including_padding = -1;
static int hf_nfapi_n_dl_rb = -1;
static int hf_nfapi_dl_config_dci_dl_pdu_rel11 = -1;
static int hf_nfapi_harq_ack_resource_offset = -1;
static int hf_nfapi_pdsch_re_mapping_and_quasi_co_location_indicator = -1;
static int hf_nfapi_dl_config_dci_dl_pdu_rel12 = -1;
static int hf_nfapi_primary_cell_type = -1;
static int hf_nfapi_ul_dl_configuration_flag = -1;
static int hf_nfapi_number_of_ul_dl_configurations = -1;
static int hf_nfapi_ul_dl_configuration_index = -1;
static int hf_nfapi_dl_config_dci_dl_pdu_rel13 = -1;
static int hf_nfapi_laa_end_partial_sf_flag = -1;
static int hf_nfapi_laa_end_partial_sf_configuration = -1;
static int hf_nfapi_initial_lbt_sf = -1;
static int hf_nfapi_codebooksize_determination_r13 = -1;
static int hf_nfapi_rel13_drms_table_flag = -1;
static int hf_nfapi_dl_config_dci_dl_pdu = -1;
static int hf_nfapi_dl_config_dci_dl_pdu_nfapi_dl_config_dci_dl_pdu_rel8 = -1;
static int hf_nfapi_dl_config_dci_dl_pdu_nfapi_dl_config_dci_dl_pdu_rel9 = -1;
static int hf_nfapi_dl_config_dci_dl_pdu_nfapi_dl_config_dci_dl_pdu_rel10 = -1;
static int hf_nfapi_bf_vector_antennas = -1;
static int hf_nfapi_subbands = -1;
static int hf_nfapi_bf_vectors = -1;
static int hf_nfapi_csi_rs_resource_config = -1;
static int hf_nfapi_csi_rs_number_if_nzp_configurations = -1;
static int hf_nfapi_csi_rs_resource_configs = -1;
static int hf_nfapi_pdsch_start = -1;
static int hf_nfapi_drms_config_flag = -1;
static int hf_nfapi_drms_scrambling = -1;
static int hf_nfapi_csi_config_flag = -1;