dde4039aaad5e32cf52db84f52610ccc195dbeff
[o-du/l2.git] / src / codec_utils / RRC / PUSCH-Config.h
1 /*
2  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3  * From ASN.1 module "NR-RRC-Definitions"
4  *      found in "/home/labadmin/hlal/rrc_15.3_asn.asn1"
5  *      `asn1c -D ./15_3_rrc/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
6  */
7
8 #ifndef _PUSCH_Config_H_
9 #define _PUSCH_Config_H_
10
11
12 #include <asn_application.h>
13
14 /* Including external dependencies */
15 #include <NativeInteger.h>
16 #include <NativeEnumerated.h>
17 #include <NULL.h>
18 #include <constr_CHOICE.h>
19 #include <asn_SEQUENCE_OF.h>
20 #include <constr_SEQUENCE_OF.h>
21 #include <constr_SEQUENCE.h>
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Dependencies */
28 typedef enum PUSCH_Config__txConfig {
29         PUSCH_Config__txConfig_codebook = 0,
30         PUSCH_Config__txConfig_nonCodebook      = 1
31 } e_PUSCH_Config__txConfig;
32 typedef enum PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR {
33         PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_NOTHING,      /* No components present */
34         PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_release,
35         PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR_setup
36 } PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR;
37 typedef enum PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR {
38         PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_NOTHING,      /* No components present */
39         PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_release,
40         PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR_setup
41 } PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR;
42 typedef enum PUSCH_Config__frequencyHopping {
43         PUSCH_Config__frequencyHopping_intraSlot        = 0,
44         PUSCH_Config__frequencyHopping_interSlot        = 1
45 } e_PUSCH_Config__frequencyHopping;
46 typedef enum PUSCH_Config__resourceAllocation {
47         PUSCH_Config__resourceAllocation_resourceAllocationType0        = 0,
48         PUSCH_Config__resourceAllocation_resourceAllocationType1        = 1,
49         PUSCH_Config__resourceAllocation_dynamicSwitch  = 2
50 } e_PUSCH_Config__resourceAllocation;
51 typedef enum PUSCH_Config__pusch_TimeDomainAllocationList_PR {
52         PUSCH_Config__pusch_TimeDomainAllocationList_PR_NOTHING,        /* No components present */
53         PUSCH_Config__pusch_TimeDomainAllocationList_PR_release,
54         PUSCH_Config__pusch_TimeDomainAllocationList_PR_setup
55 } PUSCH_Config__pusch_TimeDomainAllocationList_PR;
56 typedef enum PUSCH_Config__pusch_AggregationFactor {
57         PUSCH_Config__pusch_AggregationFactor_n2        = 0,
58         PUSCH_Config__pusch_AggregationFactor_n4        = 1,
59         PUSCH_Config__pusch_AggregationFactor_n8        = 2
60 } e_PUSCH_Config__pusch_AggregationFactor;
61 typedef enum PUSCH_Config__mcs_Table {
62         PUSCH_Config__mcs_Table_qam256  = 0,
63         PUSCH_Config__mcs_Table_qam64LowSE      = 1
64 } e_PUSCH_Config__mcs_Table;
65 typedef enum PUSCH_Config__mcs_TableTransformPrecoder {
66         PUSCH_Config__mcs_TableTransformPrecoder_qam256 = 0,
67         PUSCH_Config__mcs_TableTransformPrecoder_qam64LowSE     = 1
68 } e_PUSCH_Config__mcs_TableTransformPrecoder;
69 typedef enum PUSCH_Config__transformPrecoder {
70         PUSCH_Config__transformPrecoder_enabled = 0,
71         PUSCH_Config__transformPrecoder_disabled        = 1
72 } e_PUSCH_Config__transformPrecoder;
73 typedef enum PUSCH_Config__codebookSubset {
74         PUSCH_Config__codebookSubset_fullyAndPartialAndNonCoherent      = 0,
75         PUSCH_Config__codebookSubset_partialAndNonCoherent      = 1,
76         PUSCH_Config__codebookSubset_nonCoherent        = 2
77 } e_PUSCH_Config__codebookSubset;
78 typedef enum PUSCH_Config__rbg_Size {
79         PUSCH_Config__rbg_Size_config2  = 0
80 } e_PUSCH_Config__rbg_Size;
81 typedef enum PUSCH_Config__uci_OnPUSCH_PR {
82         PUSCH_Config__uci_OnPUSCH_PR_NOTHING,   /* No components present */
83         PUSCH_Config__uci_OnPUSCH_PR_release,
84         PUSCH_Config__uci_OnPUSCH_PR_setup
85 } PUSCH_Config__uci_OnPUSCH_PR;
86 typedef enum PUSCH_Config__tp_pi2BPSK {
87         PUSCH_Config__tp_pi2BPSK_enabled        = 0
88 } e_PUSCH_Config__tp_pi2BPSK;
89
90 /* Forward declarations */
91 struct PUSCH_PowerControl;
92 struct DMRS_UplinkConfig;
93 struct PUSCH_TimeDomainResourceAllocationList;
94 struct UCI_OnPUSCH;
95
96 /* PUSCH-Config */
97 typedef struct PUSCH_Config {
98         long    *dataScramblingIdentityPUSCH;   /* OPTIONAL */
99         long    *txConfig;      /* OPTIONAL */
100         struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA {
101                 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_PR present;
102                 union PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeA_u {
103                         NULL_t   release;
104                         struct DMRS_UplinkConfig        *setup;
105                 } choice;
106                 
107                 /* Context for parsing across buffer boundaries */
108                 asn_struct_ctx_t _asn_ctx;
109         } *dmrs_UplinkForPUSCH_MappingTypeA;
110         struct PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB {
111                 PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_PR present;
112                 union PUSCH_Config__dmrs_UplinkForPUSCH_MappingTypeB_u {
113                         NULL_t   release;
114                         struct DMRS_UplinkConfig        *setup;
115                 } choice;
116                 
117                 /* Context for parsing across buffer boundaries */
118                 asn_struct_ctx_t _asn_ctx;
119         } *dmrs_UplinkForPUSCH_MappingTypeB;
120         struct PUSCH_PowerControl       *pusch_PowerControl;    /* OPTIONAL */
121         long    *frequencyHopping;      /* OPTIONAL */
122         struct PUSCH_Config__frequencyHoppingOffsetLists {
123                 A_SEQUENCE_OF(long) list;
124                 
125                 /* Context for parsing across buffer boundaries */
126                 asn_struct_ctx_t _asn_ctx;
127         } *frequencyHoppingOffsetLists;
128         long     resourceAllocation;
129         struct PUSCH_Config__pusch_TimeDomainAllocationList {
130                 PUSCH_Config__pusch_TimeDomainAllocationList_PR present;
131                 union PUSCH_Config__pusch_TimeDomainAllocationList_u {
132                         NULL_t   release;
133                         struct PUSCH_TimeDomainResourceAllocationList   *setup;
134                 } choice;
135                 
136                 /* Context for parsing across buffer boundaries */
137                 asn_struct_ctx_t _asn_ctx;
138         } *pusch_TimeDomainAllocationList;
139         long    *pusch_AggregationFactor;       /* OPTIONAL */
140         long    *mcs_Table;     /* OPTIONAL */
141         long    *mcs_TableTransformPrecoder;    /* OPTIONAL */
142         long    *transformPrecoder;     /* OPTIONAL */
143         long    *codebookSubset;        /* OPTIONAL */
144         long    *maxRank;       /* OPTIONAL */
145         long    *rbg_Size;      /* OPTIONAL */
146         struct PUSCH_Config__uci_OnPUSCH {
147                 PUSCH_Config__uci_OnPUSCH_PR present;
148                 union PUSCH_Config__uci_OnPUSCH_u {
149                         NULL_t   release;
150                         struct UCI_OnPUSCH      *setup;
151                 } choice;
152                 
153                 /* Context for parsing across buffer boundaries */
154                 asn_struct_ctx_t _asn_ctx;
155         } *uci_OnPUSCH;
156         long    *tp_pi2BPSK;    /* OPTIONAL */
157         /*
158          * This type is extensible,
159          * possible extensions are below.
160          */
161         
162         /* Context for parsing across buffer boundaries */
163         asn_struct_ctx_t _asn_ctx;
164 } PUSCH_Config_t;
165
166 /* Implementation */
167 /* extern asn_TYPE_descriptor_t asn_DEF_txConfig_3;     // (Use -fall-defs-global to expose) */
168 /* extern asn_TYPE_descriptor_t asn_DEF_frequencyHopping_13;    // (Use -fall-defs-global to expose) */
169 /* extern asn_TYPE_descriptor_t asn_DEF_resourceAllocation_18;  // (Use -fall-defs-global to expose) */
170 /* extern asn_TYPE_descriptor_t asn_DEF_pusch_AggregationFactor_25;     // (Use -fall-defs-global to expose) */
171 /* extern asn_TYPE_descriptor_t asn_DEF_mcs_Table_29;   // (Use -fall-defs-global to expose) */
172 /* extern asn_TYPE_descriptor_t asn_DEF_mcs_TableTransformPrecoder_32;  // (Use -fall-defs-global to expose) */
173 /* extern asn_TYPE_descriptor_t asn_DEF_transformPrecoder_35;   // (Use -fall-defs-global to expose) */
174 /* extern asn_TYPE_descriptor_t asn_DEF_codebookSubset_38;      // (Use -fall-defs-global to expose) */
175 /* extern asn_TYPE_descriptor_t asn_DEF_rbg_Size_43;    // (Use -fall-defs-global to expose) */
176 /* extern asn_TYPE_descriptor_t asn_DEF_tp_pi2BPSK_48;  // (Use -fall-defs-global to expose) */
177 extern asn_TYPE_descriptor_t asn_DEF_PUSCH_Config;
178 extern asn_SEQUENCE_specifics_t asn_SPC_PUSCH_Config_specs_1;
179 extern asn_TYPE_member_t asn_MBR_PUSCH_Config_1[18];
180
181 #ifdef __cplusplus
182 }
183 #endif
184
185 #endif  /* _PUSCH_Config_H_ */
186 #include <asn_internal.h>