[Epic-ID: ODUHIGH-406][Task-ID: ODUHIGH-441]: Update name of Paging RRC Codec
[o-du/l2.git] / src / codec_utils / RRC / PTRS-UplinkConfig.c
1 /*
2  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3  * From ASN.1 module "NR-RRC-Definitions"
4  *      found in "./22April22_Paging/rrc_15.3_asn.asn1"
5  *      `asn1c -D ./22April22_Paging -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
6  */
7
8 #include "PTRS-UplinkConfig.h"
9
10 static int
11 memb_NativeInteger_constraint_3(const asn_TYPE_descriptor_t *td, const void *sptr,
12                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
13         long value;
14         
15         if(!sptr) {
16                 ASN__CTFAIL(app_key, td, sptr,
17                         "%s: value not given (%s:%d)",
18                         td->name, __FILE__, __LINE__);
19                 return -1;
20         }
21         
22         value = *(const long *)sptr;
23         
24         if((value >= 1 && value <= 276)) {
25                 /* Constraint check succeeded */
26                 return 0;
27         } else {
28                 ASN__CTFAIL(app_key, td, sptr,
29                         "%s: constraint failed (%s:%d)",
30                         td->name, __FILE__, __LINE__);
31                 return -1;
32         }
33 }
34
35 static int
36 memb_NativeInteger_constraint_5(const asn_TYPE_descriptor_t *td, const void *sptr,
37                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
38         long value;
39         
40         if(!sptr) {
41                 ASN__CTFAIL(app_key, td, sptr,
42                         "%s: value not given (%s:%d)",
43                         td->name, __FILE__, __LINE__);
44                 return -1;
45         }
46         
47         value = *(const long *)sptr;
48         
49         if((value >= 0 && value <= 29)) {
50                 /* Constraint check succeeded */
51                 return 0;
52         } else {
53                 ASN__CTFAIL(app_key, td, sptr,
54                         "%s: constraint failed (%s:%d)",
55                         td->name, __FILE__, __LINE__);
56                 return -1;
57         }
58 }
59
60 /*
61  * This type is implemented using NativeEnumerated,
62  * so here we adjust the DEF accordingly.
63  */
64 /*
65  * This type is implemented using NativeEnumerated,
66  * so here we adjust the DEF accordingly.
67  */
68 /*
69  * This type is implemented using NativeEnumerated,
70  * so here we adjust the DEF accordingly.
71  */
72 static int
73 memb_frequencyDensity_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
74                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
75         size_t size;
76         
77         if(!sptr) {
78                 ASN__CTFAIL(app_key, td, sptr,
79                         "%s: value not given (%s:%d)",
80                         td->name, __FILE__, __LINE__);
81                 return -1;
82         }
83         
84         /* Determine the number of elements */
85         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
86         
87         if((size == 2)) {
88                 /* Perform validation of the inner elements */
89                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
90         } else {
91                 ASN__CTFAIL(app_key, td, sptr,
92                         "%s: constraint failed (%s:%d)",
93                         td->name, __FILE__, __LINE__);
94                 return -1;
95         }
96 }
97
98 static int
99 memb_timeDensity_constraint_2(const asn_TYPE_descriptor_t *td, const void *sptr,
100                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
101         size_t size;
102         
103         if(!sptr) {
104                 ASN__CTFAIL(app_key, td, sptr,
105                         "%s: value not given (%s:%d)",
106                         td->name, __FILE__, __LINE__);
107                 return -1;
108         }
109         
110         /* Determine the number of elements */
111         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
112         
113         if((size == 3)) {
114                 /* Perform validation of the inner elements */
115                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
116         } else {
117                 ASN__CTFAIL(app_key, td, sptr,
118                         "%s: constraint failed (%s:%d)",
119                         td->name, __FILE__, __LINE__);
120                 return -1;
121         }
122 }
123
124 static int
125 memb_NativeInteger_constraint_20(const asn_TYPE_descriptor_t *td, const void *sptr,
126                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
127         long value;
128         
129         if(!sptr) {
130                 ASN__CTFAIL(app_key, td, sptr,
131                         "%s: value not given (%s:%d)",
132                         td->name, __FILE__, __LINE__);
133                 return -1;
134         }
135         
136         value = *(const long *)sptr;
137         
138         if((value >= 1 && value <= 276)) {
139                 /* Constraint check succeeded */
140                 return 0;
141         } else {
142                 ASN__CTFAIL(app_key, td, sptr,
143                         "%s: constraint failed (%s:%d)",
144                         td->name, __FILE__, __LINE__);
145                 return -1;
146         }
147 }
148
149 /*
150  * This type is implemented using NativeEnumerated,
151  * so here we adjust the DEF accordingly.
152  */
153 static int
154 memb_sampleDensity_constraint_19(const asn_TYPE_descriptor_t *td, const void *sptr,
155                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
156         size_t size;
157         
158         if(!sptr) {
159                 ASN__CTFAIL(app_key, td, sptr,
160                         "%s: value not given (%s:%d)",
161                         td->name, __FILE__, __LINE__);
162                 return -1;
163         }
164         
165         /* Determine the number of elements */
166         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
167         
168         if((size == 5)) {
169                 /* Perform validation of the inner elements */
170                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
171         } else {
172                 ASN__CTFAIL(app_key, td, sptr,
173                         "%s: constraint failed (%s:%d)",
174                         td->name, __FILE__, __LINE__);
175                 return -1;
176         }
177 }
178
179 static asn_oer_constraints_t asn_OER_memb_Member_constr_4 CC_NOTUSED = {
180         { 2, 1 }        /* (1..276) */,
181         -1};
182 static asn_per_constraints_t asn_PER_memb_Member_constr_4 CC_NOTUSED = {
183         { APC_CONSTRAINED,       9,  9,  1,  276 }      /* (1..276) */,
184         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
185         0, 0    /* No PER value map */
186 };
187 static asn_oer_constraints_t asn_OER_type_frequencyDensity_constr_3 CC_NOTUSED = {
188         { 0, 0 },
189         2       /* (SIZE(2..2)) */};
190 static asn_per_constraints_t asn_PER_type_frequencyDensity_constr_3 CC_NOTUSED = {
191         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
192         { APC_CONSTRAINED,       0,  0,  2,  2 }        /* (SIZE(2..2)) */,
193         0, 0    /* No PER value map */
194 };
195 static asn_oer_constraints_t asn_OER_memb_Member_constr_6 CC_NOTUSED = {
196         { 1, 1 }        /* (0..29) */,
197         -1};
198 static asn_per_constraints_t asn_PER_memb_Member_constr_6 CC_NOTUSED = {
199         { APC_CONSTRAINED,       5,  5,  0,  29 }       /* (0..29) */,
200         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
201         0, 0    /* No PER value map */
202 };
203 static asn_oer_constraints_t asn_OER_type_timeDensity_constr_5 CC_NOTUSED = {
204         { 0, 0 },
205         3       /* (SIZE(3..3)) */};
206 static asn_per_constraints_t asn_PER_type_timeDensity_constr_5 CC_NOTUSED = {
207         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
208         { APC_CONSTRAINED,       0,  0,  3,  3 }        /* (SIZE(3..3)) */,
209         0, 0    /* No PER value map */
210 };
211 static asn_oer_constraints_t asn_OER_type_maxNrofPorts_constr_7 CC_NOTUSED = {
212         { 0, 0 },
213         -1};
214 static asn_per_constraints_t asn_PER_type_maxNrofPorts_constr_7 CC_NOTUSED = {
215         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
216         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
217         0, 0    /* No PER value map */
218 };
219 static asn_oer_constraints_t asn_OER_type_resourceElementOffset_constr_10 CC_NOTUSED = {
220         { 0, 0 },
221         -1};
222 static asn_per_constraints_t asn_PER_type_resourceElementOffset_constr_10 CC_NOTUSED = {
223         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
224         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
225         0, 0    /* No PER value map */
226 };
227 static asn_oer_constraints_t asn_OER_type_ptrs_Power_constr_14 CC_NOTUSED = {
228         { 0, 0 },
229         -1};
230 static asn_per_constraints_t asn_PER_type_ptrs_Power_constr_14 CC_NOTUSED = {
231         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
232         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
233         0, 0    /* No PER value map */
234 };
235 static asn_oer_constraints_t asn_OER_memb_frequencyDensity_constr_3 CC_NOTUSED = {
236         { 0, 0 },
237         2       /* (SIZE(2..2)) */};
238 static asn_per_constraints_t asn_PER_memb_frequencyDensity_constr_3 CC_NOTUSED = {
239         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
240         { APC_CONSTRAINED,       0,  0,  2,  2 }        /* (SIZE(2..2)) */,
241         0, 0    /* No PER value map */
242 };
243 static asn_oer_constraints_t asn_OER_memb_timeDensity_constr_5 CC_NOTUSED = {
244         { 0, 0 },
245         3       /* (SIZE(3..3)) */};
246 static asn_per_constraints_t asn_PER_memb_timeDensity_constr_5 CC_NOTUSED = {
247         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
248         { APC_CONSTRAINED,       0,  0,  3,  3 }        /* (SIZE(3..3)) */,
249         0, 0    /* No PER value map */
250 };
251 static asn_oer_constraints_t asn_OER_memb_Member_constr_21 CC_NOTUSED = {
252         { 2, 1 }        /* (1..276) */,
253         -1};
254 static asn_per_constraints_t asn_PER_memb_Member_constr_21 CC_NOTUSED = {
255         { APC_CONSTRAINED,       9,  9,  1,  276 }      /* (1..276) */,
256         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
257         0, 0    /* No PER value map */
258 };
259 static asn_oer_constraints_t asn_OER_type_sampleDensity_constr_20 CC_NOTUSED = {
260         { 0, 0 },
261         5       /* (SIZE(5..5)) */};
262 static asn_per_constraints_t asn_PER_type_sampleDensity_constr_20 CC_NOTUSED = {
263         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
264         { APC_CONSTRAINED,       0,  0,  5,  5 }        /* (SIZE(5..5)) */,
265         0, 0    /* No PER value map */
266 };
267 static asn_oer_constraints_t asn_OER_type_timeDensityTransformPrecoding_constr_22 CC_NOTUSED = {
268         { 0, 0 },
269         -1};
270 static asn_per_constraints_t asn_PER_type_timeDensityTransformPrecoding_constr_22 CC_NOTUSED = {
271         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
272         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
273         0, 0    /* No PER value map */
274 };
275 static asn_oer_constraints_t asn_OER_memb_sampleDensity_constr_20 CC_NOTUSED = {
276         { 0, 0 },
277         5       /* (SIZE(5..5)) */};
278 static asn_per_constraints_t asn_PER_memb_sampleDensity_constr_20 CC_NOTUSED = {
279         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
280         { APC_CONSTRAINED,       0,  0,  5,  5 }        /* (SIZE(5..5)) */,
281         0, 0    /* No PER value map */
282 };
283 static asn_TYPE_member_t asn_MBR_frequencyDensity_3[] = {
284         { ATF_POINTER, 0, 0,
285                 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
286                 0,
287                 &asn_DEF_NativeInteger,
288                 0,
289                 { &asn_OER_memb_Member_constr_4, &asn_PER_memb_Member_constr_4,  memb_NativeInteger_constraint_3 },
290                 0, 0, /* No default value */
291                 ""
292                 },
293 };
294 static const ber_tlv_tag_t asn_DEF_frequencyDensity_tags_3[] = {
295         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
296         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
297 };
298 static asn_SET_OF_specifics_t asn_SPC_frequencyDensity_specs_3 = {
299         sizeof(struct PTRS_UplinkConfig__transformPrecoderDisabled__frequencyDensity),
300         offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled__frequencyDensity, _asn_ctx),
301         0,      /* XER encoding is XMLDelimitedItemList */
302 };
303 static /* Use -fall-defs-global to expose */
304 asn_TYPE_descriptor_t asn_DEF_frequencyDensity_3 = {
305         "frequencyDensity",
306         "frequencyDensity",
307         &asn_OP_SEQUENCE_OF,
308         asn_DEF_frequencyDensity_tags_3,
309         sizeof(asn_DEF_frequencyDensity_tags_3)
310                 /sizeof(asn_DEF_frequencyDensity_tags_3[0]) - 1, /* 1 */
311         asn_DEF_frequencyDensity_tags_3,        /* Same as above */
312         sizeof(asn_DEF_frequencyDensity_tags_3)
313                 /sizeof(asn_DEF_frequencyDensity_tags_3[0]), /* 2 */
314         { &asn_OER_type_frequencyDensity_constr_3, &asn_PER_type_frequencyDensity_constr_3, SEQUENCE_OF_constraint },
315         asn_MBR_frequencyDensity_3,
316         1,      /* Single element */
317         &asn_SPC_frequencyDensity_specs_3       /* Additional specs */
318 };
319
320 static asn_TYPE_member_t asn_MBR_timeDensity_5[] = {
321         { ATF_POINTER, 0, 0,
322                 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
323                 0,
324                 &asn_DEF_NativeInteger,
325                 0,
326                 { &asn_OER_memb_Member_constr_6, &asn_PER_memb_Member_constr_6,  memb_NativeInteger_constraint_5 },
327                 0, 0, /* No default value */
328                 ""
329                 },
330 };
331 static const ber_tlv_tag_t asn_DEF_timeDensity_tags_5[] = {
332         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
333         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
334 };
335 static asn_SET_OF_specifics_t asn_SPC_timeDensity_specs_5 = {
336         sizeof(struct PTRS_UplinkConfig__transformPrecoderDisabled__timeDensity),
337         offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled__timeDensity, _asn_ctx),
338         0,      /* XER encoding is XMLDelimitedItemList */
339 };
340 static /* Use -fall-defs-global to expose */
341 asn_TYPE_descriptor_t asn_DEF_timeDensity_5 = {
342         "timeDensity",
343         "timeDensity",
344         &asn_OP_SEQUENCE_OF,
345         asn_DEF_timeDensity_tags_5,
346         sizeof(asn_DEF_timeDensity_tags_5)
347                 /sizeof(asn_DEF_timeDensity_tags_5[0]) - 1, /* 1 */
348         asn_DEF_timeDensity_tags_5,     /* Same as above */
349         sizeof(asn_DEF_timeDensity_tags_5)
350                 /sizeof(asn_DEF_timeDensity_tags_5[0]), /* 2 */
351         { &asn_OER_type_timeDensity_constr_5, &asn_PER_type_timeDensity_constr_5, SEQUENCE_OF_constraint },
352         asn_MBR_timeDensity_5,
353         1,      /* Single element */
354         &asn_SPC_timeDensity_specs_5    /* Additional specs */
355 };
356
357 static const asn_INTEGER_enum_map_t asn_MAP_maxNrofPorts_value2enum_7[] = {
358         { 0,    2,      "n1" },
359         { 1,    2,      "n2" }
360 };
361 static const unsigned int asn_MAP_maxNrofPorts_enum2value_7[] = {
362         0,      /* n1(0) */
363         1       /* n2(1) */
364 };
365 static const asn_INTEGER_specifics_t asn_SPC_maxNrofPorts_specs_7 = {
366         asn_MAP_maxNrofPorts_value2enum_7,      /* "tag" => N; sorted by tag */
367         asn_MAP_maxNrofPorts_enum2value_7,      /* N => "tag"; sorted by N */
368         2,      /* Number of elements in the maps */
369         0,      /* Enumeration is not extensible */
370         1,      /* Strict enumeration */
371         0,      /* Native long size */
372         0
373 };
374 static const ber_tlv_tag_t asn_DEF_maxNrofPorts_tags_7[] = {
375         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
376         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
377 };
378 static /* Use -fall-defs-global to expose */
379 asn_TYPE_descriptor_t asn_DEF_maxNrofPorts_7 = {
380         "maxNrofPorts",
381         "maxNrofPorts",
382         &asn_OP_NativeEnumerated,
383         asn_DEF_maxNrofPorts_tags_7,
384         sizeof(asn_DEF_maxNrofPorts_tags_7)
385                 /sizeof(asn_DEF_maxNrofPorts_tags_7[0]) - 1, /* 1 */
386         asn_DEF_maxNrofPorts_tags_7,    /* Same as above */
387         sizeof(asn_DEF_maxNrofPorts_tags_7)
388                 /sizeof(asn_DEF_maxNrofPorts_tags_7[0]), /* 2 */
389         { &asn_OER_type_maxNrofPorts_constr_7, &asn_PER_type_maxNrofPorts_constr_7, NativeEnumerated_constraint },
390         0, 0,   /* Defined elsewhere */
391         &asn_SPC_maxNrofPorts_specs_7   /* Additional specs */
392 };
393
394 static const asn_INTEGER_enum_map_t asn_MAP_resourceElementOffset_value2enum_10[] = {
395         { 0,    8,      "offset01" },
396         { 1,    8,      "offset10" },
397         { 2,    8,      "offset11" }
398 };
399 static const unsigned int asn_MAP_resourceElementOffset_enum2value_10[] = {
400         0,      /* offset01(0) */
401         1,      /* offset10(1) */
402         2       /* offset11(2) */
403 };
404 static const asn_INTEGER_specifics_t asn_SPC_resourceElementOffset_specs_10 = {
405         asn_MAP_resourceElementOffset_value2enum_10,    /* "tag" => N; sorted by tag */
406         asn_MAP_resourceElementOffset_enum2value_10,    /* N => "tag"; sorted by N */
407         3,      /* Number of elements in the maps */
408         0,      /* Enumeration is not extensible */
409         1,      /* Strict enumeration */
410         0,      /* Native long size */
411         0
412 };
413 static const ber_tlv_tag_t asn_DEF_resourceElementOffset_tags_10[] = {
414         (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
415         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
416 };
417 static /* Use -fall-defs-global to expose */
418 asn_TYPE_descriptor_t asn_DEF_resourceElementOffset_10 = {
419         "resourceElementOffset",
420         "resourceElementOffset",
421         &asn_OP_NativeEnumerated,
422         asn_DEF_resourceElementOffset_tags_10,
423         sizeof(asn_DEF_resourceElementOffset_tags_10)
424                 /sizeof(asn_DEF_resourceElementOffset_tags_10[0]) - 1, /* 1 */
425         asn_DEF_resourceElementOffset_tags_10,  /* Same as above */
426         sizeof(asn_DEF_resourceElementOffset_tags_10)
427                 /sizeof(asn_DEF_resourceElementOffset_tags_10[0]), /* 2 */
428         { &asn_OER_type_resourceElementOffset_constr_10, &asn_PER_type_resourceElementOffset_constr_10, NativeEnumerated_constraint },
429         0, 0,   /* Defined elsewhere */
430         &asn_SPC_resourceElementOffset_specs_10 /* Additional specs */
431 };
432
433 static const asn_INTEGER_enum_map_t asn_MAP_ptrs_Power_value2enum_14[] = {
434         { 0,    3,      "p00" },
435         { 1,    3,      "p01" },
436         { 2,    3,      "p10" },
437         { 3,    3,      "p11" }
438 };
439 static const unsigned int asn_MAP_ptrs_Power_enum2value_14[] = {
440         0,      /* p00(0) */
441         1,      /* p01(1) */
442         2,      /* p10(2) */
443         3       /* p11(3) */
444 };
445 static const asn_INTEGER_specifics_t asn_SPC_ptrs_Power_specs_14 = {
446         asn_MAP_ptrs_Power_value2enum_14,       /* "tag" => N; sorted by tag */
447         asn_MAP_ptrs_Power_enum2value_14,       /* N => "tag"; sorted by N */
448         4,      /* Number of elements in the maps */
449         0,      /* Enumeration is not extensible */
450         1,      /* Strict enumeration */
451         0,      /* Native long size */
452         0
453 };
454 static const ber_tlv_tag_t asn_DEF_ptrs_Power_tags_14[] = {
455         (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
456         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
457 };
458 static /* Use -fall-defs-global to expose */
459 asn_TYPE_descriptor_t asn_DEF_ptrs_Power_14 = {
460         "ptrs-Power",
461         "ptrs-Power",
462         &asn_OP_NativeEnumerated,
463         asn_DEF_ptrs_Power_tags_14,
464         sizeof(asn_DEF_ptrs_Power_tags_14)
465                 /sizeof(asn_DEF_ptrs_Power_tags_14[0]) - 1, /* 1 */
466         asn_DEF_ptrs_Power_tags_14,     /* Same as above */
467         sizeof(asn_DEF_ptrs_Power_tags_14)
468                 /sizeof(asn_DEF_ptrs_Power_tags_14[0]), /* 2 */
469         { &asn_OER_type_ptrs_Power_constr_14, &asn_PER_type_ptrs_Power_constr_14, NativeEnumerated_constraint },
470         0, 0,   /* Defined elsewhere */
471         &asn_SPC_ptrs_Power_specs_14    /* Additional specs */
472 };
473
474 static asn_TYPE_member_t asn_MBR_transformPrecoderDisabled_2[] = {
475         { ATF_POINTER, 2, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, frequencyDensity),
476                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
477                 0,
478                 &asn_DEF_frequencyDensity_3,
479                 0,
480                 { &asn_OER_memb_frequencyDensity_constr_3, &asn_PER_memb_frequencyDensity_constr_3,  memb_frequencyDensity_constraint_2 },
481                 0, 0, /* No default value */
482                 "frequencyDensity"
483                 },
484         { ATF_POINTER, 1, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, timeDensity),
485                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
486                 0,
487                 &asn_DEF_timeDensity_5,
488                 0,
489                 { &asn_OER_memb_timeDensity_constr_5, &asn_PER_memb_timeDensity_constr_5,  memb_timeDensity_constraint_2 },
490                 0, 0, /* No default value */
491                 "timeDensity"
492                 },
493         { ATF_NOFLAGS, 0, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, maxNrofPorts),
494                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
495                 -1,     /* IMPLICIT tag at current level */
496                 &asn_DEF_maxNrofPorts_7,
497                 0,
498                 { 0, 0, 0 },
499                 0, 0, /* No default value */
500                 "maxNrofPorts"
501                 },
502         { ATF_POINTER, 1, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, resourceElementOffset),
503                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
504                 -1,     /* IMPLICIT tag at current level */
505                 &asn_DEF_resourceElementOffset_10,
506                 0,
507                 { 0, 0, 0 },
508                 0, 0, /* No default value */
509                 "resourceElementOffset"
510                 },
511         { ATF_NOFLAGS, 0, offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, ptrs_Power),
512                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
513                 -1,     /* IMPLICIT tag at current level */
514                 &asn_DEF_ptrs_Power_14,
515                 0,
516                 { 0, 0, 0 },
517                 0, 0, /* No default value */
518                 "ptrs-Power"
519                 },
520 };
521 static const int asn_MAP_transformPrecoderDisabled_oms_2[] = { 0, 1, 3 };
522 static const ber_tlv_tag_t asn_DEF_transformPrecoderDisabled_tags_2[] = {
523         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
524         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
525 };
526 static const asn_TYPE_tag2member_t asn_MAP_transformPrecoderDisabled_tag2el_2[] = {
527     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* frequencyDensity */
528     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* timeDensity */
529     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* maxNrofPorts */
530     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* resourceElementOffset */
531     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* ptrs-Power */
532 };
533 static asn_SEQUENCE_specifics_t asn_SPC_transformPrecoderDisabled_specs_2 = {
534         sizeof(struct PTRS_UplinkConfig__transformPrecoderDisabled),
535         offsetof(struct PTRS_UplinkConfig__transformPrecoderDisabled, _asn_ctx),
536         asn_MAP_transformPrecoderDisabled_tag2el_2,
537         5,      /* Count of tags in the map */
538         asn_MAP_transformPrecoderDisabled_oms_2,        /* Optional members */
539         3, 0,   /* Root/Additions */
540         -1,     /* First extension addition */
541 };
542 static /* Use -fall-defs-global to expose */
543 asn_TYPE_descriptor_t asn_DEF_transformPrecoderDisabled_2 = {
544         "transformPrecoderDisabled",
545         "transformPrecoderDisabled",
546         &asn_OP_SEQUENCE,
547         asn_DEF_transformPrecoderDisabled_tags_2,
548         sizeof(asn_DEF_transformPrecoderDisabled_tags_2)
549                 /sizeof(asn_DEF_transformPrecoderDisabled_tags_2[0]) - 1, /* 1 */
550         asn_DEF_transformPrecoderDisabled_tags_2,       /* Same as above */
551         sizeof(asn_DEF_transformPrecoderDisabled_tags_2)
552                 /sizeof(asn_DEF_transformPrecoderDisabled_tags_2[0]), /* 2 */
553         { 0, 0, SEQUENCE_constraint },
554         asn_MBR_transformPrecoderDisabled_2,
555         5,      /* Elements count */
556         &asn_SPC_transformPrecoderDisabled_specs_2      /* Additional specs */
557 };
558
559 static asn_TYPE_member_t asn_MBR_sampleDensity_20[] = {
560         { ATF_POINTER, 0, 0,
561                 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
562                 0,
563                 &asn_DEF_NativeInteger,
564                 0,
565                 { &asn_OER_memb_Member_constr_21, &asn_PER_memb_Member_constr_21,  memb_NativeInteger_constraint_20 },
566                 0, 0, /* No default value */
567                 ""
568                 },
569 };
570 static const ber_tlv_tag_t asn_DEF_sampleDensity_tags_20[] = {
571         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
572         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
573 };
574 static asn_SET_OF_specifics_t asn_SPC_sampleDensity_specs_20 = {
575         sizeof(struct PTRS_UplinkConfig__transformPrecoderEnabled__sampleDensity),
576         offsetof(struct PTRS_UplinkConfig__transformPrecoderEnabled__sampleDensity, _asn_ctx),
577         0,      /* XER encoding is XMLDelimitedItemList */
578 };
579 static /* Use -fall-defs-global to expose */
580 asn_TYPE_descriptor_t asn_DEF_sampleDensity_20 = {
581         "sampleDensity",
582         "sampleDensity",
583         &asn_OP_SEQUENCE_OF,
584         asn_DEF_sampleDensity_tags_20,
585         sizeof(asn_DEF_sampleDensity_tags_20)
586                 /sizeof(asn_DEF_sampleDensity_tags_20[0]) - 1, /* 1 */
587         asn_DEF_sampleDensity_tags_20,  /* Same as above */
588         sizeof(asn_DEF_sampleDensity_tags_20)
589                 /sizeof(asn_DEF_sampleDensity_tags_20[0]), /* 2 */
590         { &asn_OER_type_sampleDensity_constr_20, &asn_PER_type_sampleDensity_constr_20, SEQUENCE_OF_constraint },
591         asn_MBR_sampleDensity_20,
592         1,      /* Single element */
593         &asn_SPC_sampleDensity_specs_20 /* Additional specs */
594 };
595
596 static const asn_INTEGER_enum_map_t asn_MAP_timeDensityTransformPrecoding_value2enum_22[] = {
597         { 0,    2,      "d2" }
598 };
599 static const unsigned int asn_MAP_timeDensityTransformPrecoding_enum2value_22[] = {
600         0       /* d2(0) */
601 };
602 static const asn_INTEGER_specifics_t asn_SPC_timeDensityTransformPrecoding_specs_22 = {
603         asn_MAP_timeDensityTransformPrecoding_value2enum_22,    /* "tag" => N; sorted by tag */
604         asn_MAP_timeDensityTransformPrecoding_enum2value_22,    /* N => "tag"; sorted by N */
605         1,      /* Number of elements in the maps */
606         0,      /* Enumeration is not extensible */
607         1,      /* Strict enumeration */
608         0,      /* Native long size */
609         0
610 };
611 static const ber_tlv_tag_t asn_DEF_timeDensityTransformPrecoding_tags_22[] = {
612         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
613         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
614 };
615 static /* Use -fall-defs-global to expose */
616 asn_TYPE_descriptor_t asn_DEF_timeDensityTransformPrecoding_22 = {
617         "timeDensityTransformPrecoding",
618         "timeDensityTransformPrecoding",
619         &asn_OP_NativeEnumerated,
620         asn_DEF_timeDensityTransformPrecoding_tags_22,
621         sizeof(asn_DEF_timeDensityTransformPrecoding_tags_22)
622                 /sizeof(asn_DEF_timeDensityTransformPrecoding_tags_22[0]) - 1, /* 1 */
623         asn_DEF_timeDensityTransformPrecoding_tags_22,  /* Same as above */
624         sizeof(asn_DEF_timeDensityTransformPrecoding_tags_22)
625                 /sizeof(asn_DEF_timeDensityTransformPrecoding_tags_22[0]), /* 2 */
626         { &asn_OER_type_timeDensityTransformPrecoding_constr_22, &asn_PER_type_timeDensityTransformPrecoding_constr_22, NativeEnumerated_constraint },
627         0, 0,   /* Defined elsewhere */
628         &asn_SPC_timeDensityTransformPrecoding_specs_22 /* Additional specs */
629 };
630
631 static asn_TYPE_member_t asn_MBR_transformPrecoderEnabled_19[] = {
632         { ATF_NOFLAGS, 0, offsetof(struct PTRS_UplinkConfig__transformPrecoderEnabled, sampleDensity),
633                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
634                 0,
635                 &asn_DEF_sampleDensity_20,
636                 0,
637                 { &asn_OER_memb_sampleDensity_constr_20, &asn_PER_memb_sampleDensity_constr_20,  memb_sampleDensity_constraint_19 },
638                 0, 0, /* No default value */
639                 "sampleDensity"
640                 },
641         { ATF_POINTER, 1, offsetof(struct PTRS_UplinkConfig__transformPrecoderEnabled, timeDensityTransformPrecoding),
642                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
643                 -1,     /* IMPLICIT tag at current level */
644                 &asn_DEF_timeDensityTransformPrecoding_22,
645                 0,
646                 { 0, 0, 0 },
647                 0, 0, /* No default value */
648                 "timeDensityTransformPrecoding"
649                 },
650 };
651 static const int asn_MAP_transformPrecoderEnabled_oms_19[] = { 1 };
652 static const ber_tlv_tag_t asn_DEF_transformPrecoderEnabled_tags_19[] = {
653         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
654         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
655 };
656 static const asn_TYPE_tag2member_t asn_MAP_transformPrecoderEnabled_tag2el_19[] = {
657     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* sampleDensity */
658     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* timeDensityTransformPrecoding */
659 };
660 static asn_SEQUENCE_specifics_t asn_SPC_transformPrecoderEnabled_specs_19 = {
661         sizeof(struct PTRS_UplinkConfig__transformPrecoderEnabled),
662         offsetof(struct PTRS_UplinkConfig__transformPrecoderEnabled, _asn_ctx),
663         asn_MAP_transformPrecoderEnabled_tag2el_19,
664         2,      /* Count of tags in the map */
665         asn_MAP_transformPrecoderEnabled_oms_19,        /* Optional members */
666         1, 0,   /* Root/Additions */
667         -1,     /* First extension addition */
668 };
669 static /* Use -fall-defs-global to expose */
670 asn_TYPE_descriptor_t asn_DEF_transformPrecoderEnabled_19 = {
671         "transformPrecoderEnabled",
672         "transformPrecoderEnabled",
673         &asn_OP_SEQUENCE,
674         asn_DEF_transformPrecoderEnabled_tags_19,
675         sizeof(asn_DEF_transformPrecoderEnabled_tags_19)
676                 /sizeof(asn_DEF_transformPrecoderEnabled_tags_19[0]) - 1, /* 1 */
677         asn_DEF_transformPrecoderEnabled_tags_19,       /* Same as above */
678         sizeof(asn_DEF_transformPrecoderEnabled_tags_19)
679                 /sizeof(asn_DEF_transformPrecoderEnabled_tags_19[0]), /* 2 */
680         { 0, 0, SEQUENCE_constraint },
681         asn_MBR_transformPrecoderEnabled_19,
682         2,      /* Elements count */
683         &asn_SPC_transformPrecoderEnabled_specs_19      /* Additional specs */
684 };
685
686 asn_TYPE_member_t asn_MBR_PTRS_UplinkConfig_1[] = {
687         { ATF_POINTER, 2, offsetof(struct PTRS_UplinkConfig, transformPrecoderDisabled),
688                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
689                 0,
690                 &asn_DEF_transformPrecoderDisabled_2,
691                 0,
692                 { 0, 0, 0 },
693                 0, 0, /* No default value */
694                 "transformPrecoderDisabled"
695                 },
696         { ATF_POINTER, 1, offsetof(struct PTRS_UplinkConfig, transformPrecoderEnabled),
697                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
698                 0,
699                 &asn_DEF_transformPrecoderEnabled_19,
700                 0,
701                 { 0, 0, 0 },
702                 0, 0, /* No default value */
703                 "transformPrecoderEnabled"
704                 },
705 };
706 static const int asn_MAP_PTRS_UplinkConfig_oms_1[] = { 0, 1 };
707 static const ber_tlv_tag_t asn_DEF_PTRS_UplinkConfig_tags_1[] = {
708         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
709 };
710 static const asn_TYPE_tag2member_t asn_MAP_PTRS_UplinkConfig_tag2el_1[] = {
711     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transformPrecoderDisabled */
712     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* transformPrecoderEnabled */
713 };
714 asn_SEQUENCE_specifics_t asn_SPC_PTRS_UplinkConfig_specs_1 = {
715         sizeof(struct PTRS_UplinkConfig),
716         offsetof(struct PTRS_UplinkConfig, _asn_ctx),
717         asn_MAP_PTRS_UplinkConfig_tag2el_1,
718         2,      /* Count of tags in the map */
719         asn_MAP_PTRS_UplinkConfig_oms_1,        /* Optional members */
720         2, 0,   /* Root/Additions */
721         2,      /* First extension addition */
722 };
723 asn_TYPE_descriptor_t asn_DEF_PTRS_UplinkConfig = {
724         "PTRS-UplinkConfig",
725         "PTRS-UplinkConfig",
726         &asn_OP_SEQUENCE,
727         asn_DEF_PTRS_UplinkConfig_tags_1,
728         sizeof(asn_DEF_PTRS_UplinkConfig_tags_1)
729                 /sizeof(asn_DEF_PTRS_UplinkConfig_tags_1[0]), /* 1 */
730         asn_DEF_PTRS_UplinkConfig_tags_1,       /* Same as above */
731         sizeof(asn_DEF_PTRS_UplinkConfig_tags_1)
732                 /sizeof(asn_DEF_PTRS_UplinkConfig_tags_1[0]), /* 1 */
733         { 0, 0, SEQUENCE_constraint },
734         asn_MBR_PTRS_UplinkConfig_1,
735         2,      /* Elements count */
736         &asn_SPC_PTRS_UplinkConfig_specs_1      /* Additional specs */
737 };
738