2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "NR-RRC-Definitions"
4 * found in "../ASN1_Input/rrc_15_3_asn.asn1"
5 * `asn1c -D ../RRC_output_14Nov/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
8 #include "MRDC-Parameters.h"
11 * This type is implemented using NativeEnumerated,
12 * so here we adjust the DEF accordingly.
15 * This type is implemented using NativeEnumerated,
16 * so here we adjust the DEF accordingly.
19 * This type is implemented using NativeEnumerated,
20 * so here we adjust the DEF accordingly.
23 * This type is implemented using NativeEnumerated,
24 * so here we adjust the DEF accordingly.
27 * This type is implemented using NativeEnumerated,
28 * so here we adjust the DEF accordingly.
31 * This type is implemented using NativeEnumerated,
32 * so here we adjust the DEF accordingly.
35 * This type is implemented using NativeEnumerated,
36 * so here we adjust the DEF accordingly.
38 static asn_oer_constraints_t asn_OER_type_singleUL_Transmission_constr_2 CC_NOTUSED = {
41 static asn_per_constraints_t asn_PER_type_singleUL_Transmission_constr_2 CC_NOTUSED = {
42 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
43 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
44 0, 0 /* No PER value map */
46 static asn_oer_constraints_t asn_OER_type_dynamicPowerSharing_constr_4 CC_NOTUSED = {
49 static asn_per_constraints_t asn_PER_type_dynamicPowerSharing_constr_4 CC_NOTUSED = {
50 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
51 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
52 0, 0 /* No PER value map */
54 static asn_oer_constraints_t asn_OER_type_tdm_Pattern_constr_6 CC_NOTUSED = {
57 static asn_per_constraints_t asn_PER_type_tdm_Pattern_constr_6 CC_NOTUSED = {
58 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
59 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
60 0, 0 /* No PER value map */
62 static asn_oer_constraints_t asn_OER_type_ul_SharingEUTRA_NR_constr_8 CC_NOTUSED = {
65 static asn_per_constraints_t asn_PER_type_ul_SharingEUTRA_NR_constr_8 CC_NOTUSED = {
66 { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */,
67 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
68 0, 0 /* No PER value map */
70 static asn_oer_constraints_t asn_OER_type_ul_SwitchingTimeEUTRA_NR_constr_12 CC_NOTUSED = {
73 static asn_per_constraints_t asn_PER_type_ul_SwitchingTimeEUTRA_NR_constr_12 CC_NOTUSED = {
74 { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
75 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
76 0, 0 /* No PER value map */
78 static asn_oer_constraints_t asn_OER_type_simultaneousRxTxInterBandENDC_constr_15 CC_NOTUSED = {
81 static asn_per_constraints_t asn_PER_type_simultaneousRxTxInterBandENDC_constr_15 CC_NOTUSED = {
82 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
83 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
84 0, 0 /* No PER value map */
86 static asn_oer_constraints_t asn_OER_type_asyncIntraBandENDC_constr_17 CC_NOTUSED = {
89 static asn_per_constraints_t asn_PER_type_asyncIntraBandENDC_constr_17 CC_NOTUSED = {
90 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
91 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
92 0, 0 /* No PER value map */
94 static const asn_INTEGER_enum_map_t asn_MAP_singleUL_Transmission_value2enum_2[] = {
97 static const unsigned int asn_MAP_singleUL_Transmission_enum2value_2[] = {
100 static const asn_INTEGER_specifics_t asn_SPC_singleUL_Transmission_specs_2 = {
101 asn_MAP_singleUL_Transmission_value2enum_2, /* "tag" => N; sorted by tag */
102 asn_MAP_singleUL_Transmission_enum2value_2, /* N => "tag"; sorted by N */
103 1, /* Number of elements in the maps */
104 0, /* Enumeration is not extensible */
105 1, /* Strict enumeration */
106 0, /* Native long size */
109 static const ber_tlv_tag_t asn_DEF_singleUL_Transmission_tags_2[] = {
110 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
111 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
113 static /* Use -fall-defs-global to expose */
114 asn_TYPE_descriptor_t asn_DEF_singleUL_Transmission_2 = {
115 "singleUL-Transmission",
116 "singleUL-Transmission",
117 &asn_OP_NativeEnumerated,
118 asn_DEF_singleUL_Transmission_tags_2,
119 sizeof(asn_DEF_singleUL_Transmission_tags_2)
120 /sizeof(asn_DEF_singleUL_Transmission_tags_2[0]) - 1, /* 1 */
121 asn_DEF_singleUL_Transmission_tags_2, /* Same as above */
122 sizeof(asn_DEF_singleUL_Transmission_tags_2)
123 /sizeof(asn_DEF_singleUL_Transmission_tags_2[0]), /* 2 */
124 { &asn_OER_type_singleUL_Transmission_constr_2, &asn_PER_type_singleUL_Transmission_constr_2, NativeEnumerated_constraint },
125 0, 0, /* Defined elsewhere */
126 &asn_SPC_singleUL_Transmission_specs_2 /* Additional specs */
129 static const asn_INTEGER_enum_map_t asn_MAP_dynamicPowerSharing_value2enum_4[] = {
130 { 0, 9, "supported" }
132 static const unsigned int asn_MAP_dynamicPowerSharing_enum2value_4[] = {
135 static const asn_INTEGER_specifics_t asn_SPC_dynamicPowerSharing_specs_4 = {
136 asn_MAP_dynamicPowerSharing_value2enum_4, /* "tag" => N; sorted by tag */
137 asn_MAP_dynamicPowerSharing_enum2value_4, /* N => "tag"; sorted by N */
138 1, /* Number of elements in the maps */
139 0, /* Enumeration is not extensible */
140 1, /* Strict enumeration */
141 0, /* Native long size */
144 static const ber_tlv_tag_t asn_DEF_dynamicPowerSharing_tags_4[] = {
145 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
146 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
148 static /* Use -fall-defs-global to expose */
149 asn_TYPE_descriptor_t asn_DEF_dynamicPowerSharing_4 = {
150 "dynamicPowerSharing",
151 "dynamicPowerSharing",
152 &asn_OP_NativeEnumerated,
153 asn_DEF_dynamicPowerSharing_tags_4,
154 sizeof(asn_DEF_dynamicPowerSharing_tags_4)
155 /sizeof(asn_DEF_dynamicPowerSharing_tags_4[0]) - 1, /* 1 */
156 asn_DEF_dynamicPowerSharing_tags_4, /* Same as above */
157 sizeof(asn_DEF_dynamicPowerSharing_tags_4)
158 /sizeof(asn_DEF_dynamicPowerSharing_tags_4[0]), /* 2 */
159 { &asn_OER_type_dynamicPowerSharing_constr_4, &asn_PER_type_dynamicPowerSharing_constr_4, NativeEnumerated_constraint },
160 0, 0, /* Defined elsewhere */
161 &asn_SPC_dynamicPowerSharing_specs_4 /* Additional specs */
164 static const asn_INTEGER_enum_map_t asn_MAP_tdm_Pattern_value2enum_6[] = {
165 { 0, 9, "supported" }
167 static const unsigned int asn_MAP_tdm_Pattern_enum2value_6[] = {
170 static const asn_INTEGER_specifics_t asn_SPC_tdm_Pattern_specs_6 = {
171 asn_MAP_tdm_Pattern_value2enum_6, /* "tag" => N; sorted by tag */
172 asn_MAP_tdm_Pattern_enum2value_6, /* N => "tag"; sorted by N */
173 1, /* Number of elements in the maps */
174 0, /* Enumeration is not extensible */
175 1, /* Strict enumeration */
176 0, /* Native long size */
179 static const ber_tlv_tag_t asn_DEF_tdm_Pattern_tags_6[] = {
180 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
181 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
183 static /* Use -fall-defs-global to expose */
184 asn_TYPE_descriptor_t asn_DEF_tdm_Pattern_6 = {
187 &asn_OP_NativeEnumerated,
188 asn_DEF_tdm_Pattern_tags_6,
189 sizeof(asn_DEF_tdm_Pattern_tags_6)
190 /sizeof(asn_DEF_tdm_Pattern_tags_6[0]) - 1, /* 1 */
191 asn_DEF_tdm_Pattern_tags_6, /* Same as above */
192 sizeof(asn_DEF_tdm_Pattern_tags_6)
193 /sizeof(asn_DEF_tdm_Pattern_tags_6[0]), /* 2 */
194 { &asn_OER_type_tdm_Pattern_constr_6, &asn_PER_type_tdm_Pattern_constr_6, NativeEnumerated_constraint },
195 0, 0, /* Defined elsewhere */
196 &asn_SPC_tdm_Pattern_specs_6 /* Additional specs */
199 static const asn_INTEGER_enum_map_t asn_MAP_ul_SharingEUTRA_NR_value2enum_8[] = {
204 static const unsigned int asn_MAP_ul_SharingEUTRA_NR_enum2value_8[] = {
209 static const asn_INTEGER_specifics_t asn_SPC_ul_SharingEUTRA_NR_specs_8 = {
210 asn_MAP_ul_SharingEUTRA_NR_value2enum_8, /* "tag" => N; sorted by tag */
211 asn_MAP_ul_SharingEUTRA_NR_enum2value_8, /* N => "tag"; sorted by N */
212 3, /* Number of elements in the maps */
213 0, /* Enumeration is not extensible */
214 1, /* Strict enumeration */
215 0, /* Native long size */
218 static const ber_tlv_tag_t asn_DEF_ul_SharingEUTRA_NR_tags_8[] = {
219 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
220 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
222 static /* Use -fall-defs-global to expose */
223 asn_TYPE_descriptor_t asn_DEF_ul_SharingEUTRA_NR_8 = {
224 "ul-SharingEUTRA-NR",
225 "ul-SharingEUTRA-NR",
226 &asn_OP_NativeEnumerated,
227 asn_DEF_ul_SharingEUTRA_NR_tags_8,
228 sizeof(asn_DEF_ul_SharingEUTRA_NR_tags_8)
229 /sizeof(asn_DEF_ul_SharingEUTRA_NR_tags_8[0]) - 1, /* 1 */
230 asn_DEF_ul_SharingEUTRA_NR_tags_8, /* Same as above */
231 sizeof(asn_DEF_ul_SharingEUTRA_NR_tags_8)
232 /sizeof(asn_DEF_ul_SharingEUTRA_NR_tags_8[0]), /* 2 */
233 { &asn_OER_type_ul_SharingEUTRA_NR_constr_8, &asn_PER_type_ul_SharingEUTRA_NR_constr_8, NativeEnumerated_constraint },
234 0, 0, /* Defined elsewhere */
235 &asn_SPC_ul_SharingEUTRA_NR_specs_8 /* Additional specs */
238 static const asn_INTEGER_enum_map_t asn_MAP_ul_SwitchingTimeEUTRA_NR_value2enum_12[] = {
242 static const unsigned int asn_MAP_ul_SwitchingTimeEUTRA_NR_enum2value_12[] = {
246 static const asn_INTEGER_specifics_t asn_SPC_ul_SwitchingTimeEUTRA_NR_specs_12 = {
247 asn_MAP_ul_SwitchingTimeEUTRA_NR_value2enum_12, /* "tag" => N; sorted by tag */
248 asn_MAP_ul_SwitchingTimeEUTRA_NR_enum2value_12, /* N => "tag"; sorted by N */
249 2, /* Number of elements in the maps */
250 0, /* Enumeration is not extensible */
251 1, /* Strict enumeration */
252 0, /* Native long size */
255 static const ber_tlv_tag_t asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12[] = {
256 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
257 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
259 static /* Use -fall-defs-global to expose */
260 asn_TYPE_descriptor_t asn_DEF_ul_SwitchingTimeEUTRA_NR_12 = {
261 "ul-SwitchingTimeEUTRA-NR",
262 "ul-SwitchingTimeEUTRA-NR",
263 &asn_OP_NativeEnumerated,
264 asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12,
265 sizeof(asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12)
266 /sizeof(asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12[0]) - 1, /* 1 */
267 asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12, /* Same as above */
268 sizeof(asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12)
269 /sizeof(asn_DEF_ul_SwitchingTimeEUTRA_NR_tags_12[0]), /* 2 */
270 { &asn_OER_type_ul_SwitchingTimeEUTRA_NR_constr_12, &asn_PER_type_ul_SwitchingTimeEUTRA_NR_constr_12, NativeEnumerated_constraint },
271 0, 0, /* Defined elsewhere */
272 &asn_SPC_ul_SwitchingTimeEUTRA_NR_specs_12 /* Additional specs */
275 static const asn_INTEGER_enum_map_t asn_MAP_simultaneousRxTxInterBandENDC_value2enum_15[] = {
276 { 0, 9, "supported" }
278 static const unsigned int asn_MAP_simultaneousRxTxInterBandENDC_enum2value_15[] = {
281 static const asn_INTEGER_specifics_t asn_SPC_simultaneousRxTxInterBandENDC_specs_15 = {
282 asn_MAP_simultaneousRxTxInterBandENDC_value2enum_15, /* "tag" => N; sorted by tag */
283 asn_MAP_simultaneousRxTxInterBandENDC_enum2value_15, /* N => "tag"; sorted by N */
284 1, /* Number of elements in the maps */
285 0, /* Enumeration is not extensible */
286 1, /* Strict enumeration */
287 0, /* Native long size */
290 static const ber_tlv_tag_t asn_DEF_simultaneousRxTxInterBandENDC_tags_15[] = {
291 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
292 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
294 static /* Use -fall-defs-global to expose */
295 asn_TYPE_descriptor_t asn_DEF_simultaneousRxTxInterBandENDC_15 = {
296 "simultaneousRxTxInterBandENDC",
297 "simultaneousRxTxInterBandENDC",
298 &asn_OP_NativeEnumerated,
299 asn_DEF_simultaneousRxTxInterBandENDC_tags_15,
300 sizeof(asn_DEF_simultaneousRxTxInterBandENDC_tags_15)
301 /sizeof(asn_DEF_simultaneousRxTxInterBandENDC_tags_15[0]) - 1, /* 1 */
302 asn_DEF_simultaneousRxTxInterBandENDC_tags_15, /* Same as above */
303 sizeof(asn_DEF_simultaneousRxTxInterBandENDC_tags_15)
304 /sizeof(asn_DEF_simultaneousRxTxInterBandENDC_tags_15[0]), /* 2 */
305 { &asn_OER_type_simultaneousRxTxInterBandENDC_constr_15, &asn_PER_type_simultaneousRxTxInterBandENDC_constr_15, NativeEnumerated_constraint },
306 0, 0, /* Defined elsewhere */
307 &asn_SPC_simultaneousRxTxInterBandENDC_specs_15 /* Additional specs */
310 static const asn_INTEGER_enum_map_t asn_MAP_asyncIntraBandENDC_value2enum_17[] = {
311 { 0, 9, "supported" }
313 static const unsigned int asn_MAP_asyncIntraBandENDC_enum2value_17[] = {
316 static const asn_INTEGER_specifics_t asn_SPC_asyncIntraBandENDC_specs_17 = {
317 asn_MAP_asyncIntraBandENDC_value2enum_17, /* "tag" => N; sorted by tag */
318 asn_MAP_asyncIntraBandENDC_enum2value_17, /* N => "tag"; sorted by N */
319 1, /* Number of elements in the maps */
320 0, /* Enumeration is not extensible */
321 1, /* Strict enumeration */
322 0, /* Native long size */
325 static const ber_tlv_tag_t asn_DEF_asyncIntraBandENDC_tags_17[] = {
326 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
327 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
329 static /* Use -fall-defs-global to expose */
330 asn_TYPE_descriptor_t asn_DEF_asyncIntraBandENDC_17 = {
331 "asyncIntraBandENDC",
332 "asyncIntraBandENDC",
333 &asn_OP_NativeEnumerated,
334 asn_DEF_asyncIntraBandENDC_tags_17,
335 sizeof(asn_DEF_asyncIntraBandENDC_tags_17)
336 /sizeof(asn_DEF_asyncIntraBandENDC_tags_17[0]) - 1, /* 1 */
337 asn_DEF_asyncIntraBandENDC_tags_17, /* Same as above */
338 sizeof(asn_DEF_asyncIntraBandENDC_tags_17)
339 /sizeof(asn_DEF_asyncIntraBandENDC_tags_17[0]), /* 2 */
340 { &asn_OER_type_asyncIntraBandENDC_constr_17, &asn_PER_type_asyncIntraBandENDC_constr_17, NativeEnumerated_constraint },
341 0, 0, /* Defined elsewhere */
342 &asn_SPC_asyncIntraBandENDC_specs_17 /* Additional specs */
345 asn_TYPE_member_t asn_MBR_MRDC_Parameters_1[] = {
346 { ATF_POINTER, 7, offsetof(struct MRDC_Parameters, singleUL_Transmission),
347 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
348 -1, /* IMPLICIT tag at current level */
349 &asn_DEF_singleUL_Transmission_2,
352 0, 0, /* No default value */
353 "singleUL-Transmission"
355 { ATF_POINTER, 6, offsetof(struct MRDC_Parameters, dynamicPowerSharing),
356 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
357 -1, /* IMPLICIT tag at current level */
358 &asn_DEF_dynamicPowerSharing_4,
361 0, 0, /* No default value */
362 "dynamicPowerSharing"
364 { ATF_POINTER, 5, offsetof(struct MRDC_Parameters, tdm_Pattern),
365 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
366 -1, /* IMPLICIT tag at current level */
367 &asn_DEF_tdm_Pattern_6,
370 0, 0, /* No default value */
373 { ATF_POINTER, 4, offsetof(struct MRDC_Parameters, ul_SharingEUTRA_NR),
374 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
375 -1, /* IMPLICIT tag at current level */
376 &asn_DEF_ul_SharingEUTRA_NR_8,
379 0, 0, /* No default value */
382 { ATF_POINTER, 3, offsetof(struct MRDC_Parameters, ul_SwitchingTimeEUTRA_NR),
383 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
384 -1, /* IMPLICIT tag at current level */
385 &asn_DEF_ul_SwitchingTimeEUTRA_NR_12,
388 0, 0, /* No default value */
389 "ul-SwitchingTimeEUTRA-NR"
391 { ATF_POINTER, 2, offsetof(struct MRDC_Parameters, simultaneousRxTxInterBandENDC),
392 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
393 -1, /* IMPLICIT tag at current level */
394 &asn_DEF_simultaneousRxTxInterBandENDC_15,
397 0, 0, /* No default value */
398 "simultaneousRxTxInterBandENDC"
400 { ATF_POINTER, 1, offsetof(struct MRDC_Parameters, asyncIntraBandENDC),
401 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
402 -1, /* IMPLICIT tag at current level */
403 &asn_DEF_asyncIntraBandENDC_17,
406 0, 0, /* No default value */
410 static const int asn_MAP_MRDC_Parameters_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 };
411 static const ber_tlv_tag_t asn_DEF_MRDC_Parameters_tags_1[] = {
412 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
414 static const asn_TYPE_tag2member_t asn_MAP_MRDC_Parameters_tag2el_1[] = {
415 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* singleUL-Transmission */
416 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* dynamicPowerSharing */
417 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* tdm-Pattern */
418 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ul-SharingEUTRA-NR */
419 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* ul-SwitchingTimeEUTRA-NR */
420 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* simultaneousRxTxInterBandENDC */
421 { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* asyncIntraBandENDC */
423 asn_SEQUENCE_specifics_t asn_SPC_MRDC_Parameters_specs_1 = {
424 sizeof(struct MRDC_Parameters),
425 offsetof(struct MRDC_Parameters, _asn_ctx),
426 asn_MAP_MRDC_Parameters_tag2el_1,
427 7, /* Count of tags in the map */
428 asn_MAP_MRDC_Parameters_oms_1, /* Optional members */
429 7, 0, /* Root/Additions */
430 7, /* First extension addition */
432 asn_TYPE_descriptor_t asn_DEF_MRDC_Parameters = {
436 asn_DEF_MRDC_Parameters_tags_1,
437 sizeof(asn_DEF_MRDC_Parameters_tags_1)
438 /sizeof(asn_DEF_MRDC_Parameters_tags_1[0]), /* 1 */
439 asn_DEF_MRDC_Parameters_tags_1, /* Same as above */
440 sizeof(asn_DEF_MRDC_Parameters_tags_1)
441 /sizeof(asn_DEF_MRDC_Parameters_tags_1[0]), /* 1 */
442 { 0, 0, SEQUENCE_constraint },
443 asn_MBR_MRDC_Parameters_1,
444 7, /* Elements count */
445 &asn_SPC_MRDC_Parameters_specs_1 /* Additional specs */