fcbe9182a243a07b3f780c42f05cf0a62830eaea
[o-du/l2.git] / src / codec_utils / RRC / ServingCellConfigCommon.c
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 #include "ServingCellConfigCommon.h"
9
10 #include "DownlinkConfigCommon.h"
11 #include "UplinkConfigCommon.h"
12 #include "TDD-UL-DL-ConfigCommon.h"
13 #include "RateMatchPatternLTE-CRS.h"
14 #include "RateMatchPattern.h"
15 /*
16  * This type is implemented using NativeEnumerated,
17  * so here we adjust the DEF accordingly.
18  */
19 static int
20 memb_shortBitmap_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr,
21                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
22         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
23         size_t size;
24         
25         if(!sptr) {
26                 ASN__CTFAIL(app_key, td, sptr,
27                         "%s: value not given (%s:%d)",
28                         td->name, __FILE__, __LINE__);
29                 return -1;
30         }
31         
32         if(st->size > 0) {
33                 /* Size in bits */
34                 size = 8 * st->size - (st->bits_unused & 0x07);
35         } else {
36                 size = 0;
37         }
38         
39         if((size == 4)) {
40                 /* Constraint check succeeded */
41                 return 0;
42         } else {
43                 ASN__CTFAIL(app_key, td, sptr,
44                         "%s: constraint failed (%s:%d)",
45                         td->name, __FILE__, __LINE__);
46                 return -1;
47         }
48 }
49
50 static int
51 memb_mediumBitmap_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr,
52                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
53         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
54         size_t size;
55         
56         if(!sptr) {
57                 ASN__CTFAIL(app_key, td, sptr,
58                         "%s: value not given (%s:%d)",
59                         td->name, __FILE__, __LINE__);
60                 return -1;
61         }
62         
63         if(st->size > 0) {
64                 /* Size in bits */
65                 size = 8 * st->size - (st->bits_unused & 0x07);
66         } else {
67                 size = 0;
68         }
69         
70         if((size == 8)) {
71                 /* Constraint check succeeded */
72                 return 0;
73         } else {
74                 ASN__CTFAIL(app_key, td, sptr,
75                         "%s: constraint failed (%s:%d)",
76                         td->name, __FILE__, __LINE__);
77                 return -1;
78         }
79 }
80
81 static int
82 memb_longBitmap_constraint_10(const asn_TYPE_descriptor_t *td, const void *sptr,
83                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
84         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
85         size_t size;
86         
87         if(!sptr) {
88                 ASN__CTFAIL(app_key, td, sptr,
89                         "%s: value not given (%s:%d)",
90                         td->name, __FILE__, __LINE__);
91                 return -1;
92         }
93         
94         if(st->size > 0) {
95                 /* Size in bits */
96                 size = 8 * st->size - (st->bits_unused & 0x07);
97         } else {
98                 size = 0;
99         }
100         
101         if((size == 64)) {
102                 /* Constraint check succeeded */
103                 return 0;
104         } else {
105                 ASN__CTFAIL(app_key, td, sptr,
106                         "%s: constraint failed (%s:%d)",
107                         td->name, __FILE__, __LINE__);
108                 return -1;
109         }
110 }
111
112 /*
113  * This type is implemented using NativeEnumerated,
114  * so here we adjust the DEF accordingly.
115  */
116 /*
117  * This type is implemented using NativeEnumerated,
118  * so here we adjust the DEF accordingly.
119  */
120 static int
121 memb_rateMatchPatternToAddModList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
122                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
123         size_t size;
124         
125         if(!sptr) {
126                 ASN__CTFAIL(app_key, td, sptr,
127                         "%s: value not given (%s:%d)",
128                         td->name, __FILE__, __LINE__);
129                 return -1;
130         }
131         
132         /* Determine the number of elements */
133         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
134         
135         if((size >= 1 && size <= 4)) {
136                 /* Perform validation of the inner elements */
137                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
138         } else {
139                 ASN__CTFAIL(app_key, td, sptr,
140                         "%s: constraint failed (%s:%d)",
141                         td->name, __FILE__, __LINE__);
142                 return -1;
143         }
144 }
145
146 static int
147 memb_rateMatchPatternToReleaseList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
148                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
149         size_t size;
150         
151         if(!sptr) {
152                 ASN__CTFAIL(app_key, td, sptr,
153                         "%s: value not given (%s:%d)",
154                         td->name, __FILE__, __LINE__);
155                 return -1;
156         }
157         
158         /* Determine the number of elements */
159         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
160         
161         if((size >= 1 && size <= 4)) {
162                 /* Perform validation of the inner elements */
163                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
164         } else {
165                 ASN__CTFAIL(app_key, td, sptr,
166                         "%s: constraint failed (%s:%d)",
167                         td->name, __FILE__, __LINE__);
168                 return -1;
169         }
170 }
171
172 static int
173 memb_ss_PBCH_BlockPower_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
174                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
175         long value;
176         
177         if(!sptr) {
178                 ASN__CTFAIL(app_key, td, sptr,
179                         "%s: value not given (%s:%d)",
180                         td->name, __FILE__, __LINE__);
181                 return -1;
182         }
183         
184         value = *(const long *)sptr;
185         
186         if((value >= -60 && value <= 50)) {
187                 /* Constraint check succeeded */
188                 return 0;
189         } else {
190                 ASN__CTFAIL(app_key, td, sptr,
191                         "%s: constraint failed (%s:%d)",
192                         td->name, __FILE__, __LINE__);
193                 return -1;
194         }
195 }
196
197 static asn_oer_constraints_t asn_OER_type_n_TimingAdvanceOffset_constr_6 CC_NOTUSED = {
198         { 0, 0 },
199         -1};
200 static asn_per_constraints_t asn_PER_type_n_TimingAdvanceOffset_constr_6 CC_NOTUSED = {
201         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
202         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
203         0, 0    /* No PER value map */
204 };
205 static asn_oer_constraints_t asn_OER_memb_shortBitmap_constr_11 CC_NOTUSED = {
206         { 0, 0 },
207         4       /* (SIZE(4..4)) */};
208 static asn_per_constraints_t asn_PER_memb_shortBitmap_constr_11 CC_NOTUSED = {
209         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
210         { APC_CONSTRAINED,       0,  0,  4,  4 }        /* (SIZE(4..4)) */,
211         0, 0    /* No PER value map */
212 };
213 static asn_oer_constraints_t asn_OER_memb_mediumBitmap_constr_12 CC_NOTUSED = {
214         { 0, 0 },
215         8       /* (SIZE(8..8)) */};
216 static asn_per_constraints_t asn_PER_memb_mediumBitmap_constr_12 CC_NOTUSED = {
217         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
218         { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
219         0, 0    /* No PER value map */
220 };
221 static asn_oer_constraints_t asn_OER_memb_longBitmap_constr_13 CC_NOTUSED = {
222         { 0, 0 },
223         64      /* (SIZE(64..64)) */};
224 static asn_per_constraints_t asn_PER_memb_longBitmap_constr_13 CC_NOTUSED = {
225         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
226         { APC_CONSTRAINED,       0,  0,  64,  64 }      /* (SIZE(64..64)) */,
227         0, 0    /* No PER value map */
228 };
229 static asn_oer_constraints_t asn_OER_type_ssb_PositionsInBurst_constr_10 CC_NOTUSED = {
230         { 0, 0 },
231         -1};
232 static asn_per_constraints_t asn_PER_type_ssb_PositionsInBurst_constr_10 CC_NOTUSED = {
233         { APC_CONSTRAINED,       2,  2,  0,  2 }        /* (0..2) */,
234         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
235         0, 0    /* No PER value map */
236 };
237 static asn_oer_constraints_t asn_OER_type_ssb_periodicityServingCell_constr_14 CC_NOTUSED = {
238         { 0, 0 },
239         -1};
240 static asn_per_constraints_t asn_PER_type_ssb_periodicityServingCell_constr_14 CC_NOTUSED = {
241         { APC_CONSTRAINED,       3,  3,  0,  7 }        /* (0..7) */,
242         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
243         0, 0    /* No PER value map */
244 };
245 static asn_oer_constraints_t asn_OER_type_dmrs_TypeA_Position_constr_23 CC_NOTUSED = {
246         { 0, 0 },
247         -1};
248 static asn_per_constraints_t asn_PER_type_dmrs_TypeA_Position_constr_23 CC_NOTUSED = {
249         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
250         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
251         0, 0    /* No PER value map */
252 };
253 static asn_oer_constraints_t asn_OER_type_lte_CRS_ToMatchAround_constr_26 CC_NOTUSED = {
254         { 0, 0 },
255         -1};
256 static asn_per_constraints_t asn_PER_type_lte_CRS_ToMatchAround_constr_26 CC_NOTUSED = {
257         { APC_CONSTRAINED,       1,  1,  0,  1 }        /* (0..1) */,
258         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
259         0, 0    /* No PER value map */
260 };
261 static asn_oer_constraints_t asn_OER_type_rateMatchPatternToAddModList_constr_29 CC_NOTUSED = {
262         { 0, 0 },
263         -1      /* (SIZE(1..4)) */};
264 static asn_per_constraints_t asn_PER_type_rateMatchPatternToAddModList_constr_29 CC_NOTUSED = {
265         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
266         { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
267         0, 0    /* No PER value map */
268 };
269 static asn_oer_constraints_t asn_OER_type_rateMatchPatternToReleaseList_constr_31 CC_NOTUSED = {
270         { 0, 0 },
271         -1      /* (SIZE(1..4)) */};
272 static asn_per_constraints_t asn_PER_type_rateMatchPatternToReleaseList_constr_31 CC_NOTUSED = {
273         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
274         { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
275         0, 0    /* No PER value map */
276 };
277 static asn_oer_constraints_t asn_OER_memb_rateMatchPatternToAddModList_constr_29 CC_NOTUSED = {
278         { 0, 0 },
279         -1      /* (SIZE(1..4)) */};
280 static asn_per_constraints_t asn_PER_memb_rateMatchPatternToAddModList_constr_29 CC_NOTUSED = {
281         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
282         { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
283         0, 0    /* No PER value map */
284 };
285 static asn_oer_constraints_t asn_OER_memb_rateMatchPatternToReleaseList_constr_31 CC_NOTUSED = {
286         { 0, 0 },
287         -1      /* (SIZE(1..4)) */};
288 static asn_per_constraints_t asn_PER_memb_rateMatchPatternToReleaseList_constr_31 CC_NOTUSED = {
289         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
290         { APC_CONSTRAINED,       2,  2,  1,  4 }        /* (SIZE(1..4)) */,
291         0, 0    /* No PER value map */
292 };
293 static asn_oer_constraints_t asn_OER_memb_ss_PBCH_BlockPower_constr_35 CC_NOTUSED = {
294         { 1, 0 }        /* (-60..50) */,
295         -1};
296 static asn_per_constraints_t asn_PER_memb_ss_PBCH_BlockPower_constr_35 CC_NOTUSED = {
297         { APC_CONSTRAINED,       7,  7, -60,  50 }      /* (-60..50) */,
298         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
299         0, 0    /* No PER value map */
300 };
301 static const asn_INTEGER_enum_map_t asn_MAP_n_TimingAdvanceOffset_value2enum_6[] = {
302         { 0,    2,      "n0" },
303         { 1,    6,      "n25600" },
304         { 2,    6,      "n39936" }
305 };
306 static const unsigned int asn_MAP_n_TimingAdvanceOffset_enum2value_6[] = {
307         0,      /* n0(0) */
308         1,      /* n25600(1) */
309         2       /* n39936(2) */
310 };
311 static const asn_INTEGER_specifics_t asn_SPC_n_TimingAdvanceOffset_specs_6 = {
312         asn_MAP_n_TimingAdvanceOffset_value2enum_6,     /* "tag" => N; sorted by tag */
313         asn_MAP_n_TimingAdvanceOffset_enum2value_6,     /* N => "tag"; sorted by N */
314         3,      /* Number of elements in the maps */
315         0,      /* Enumeration is not extensible */
316         1,      /* Strict enumeration */
317         0,      /* Native long size */
318         0
319 };
320 static const ber_tlv_tag_t asn_DEF_n_TimingAdvanceOffset_tags_6[] = {
321         (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
322         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
323 };
324 static /* Use -fall-defs-global to expose */
325 asn_TYPE_descriptor_t asn_DEF_n_TimingAdvanceOffset_6 = {
326         "n-TimingAdvanceOffset",
327         "n-TimingAdvanceOffset",
328         &asn_OP_NativeEnumerated,
329         asn_DEF_n_TimingAdvanceOffset_tags_6,
330         sizeof(asn_DEF_n_TimingAdvanceOffset_tags_6)
331                 /sizeof(asn_DEF_n_TimingAdvanceOffset_tags_6[0]) - 1, /* 1 */
332         asn_DEF_n_TimingAdvanceOffset_tags_6,   /* Same as above */
333         sizeof(asn_DEF_n_TimingAdvanceOffset_tags_6)
334                 /sizeof(asn_DEF_n_TimingAdvanceOffset_tags_6[0]), /* 2 */
335         { &asn_OER_type_n_TimingAdvanceOffset_constr_6, &asn_PER_type_n_TimingAdvanceOffset_constr_6, NativeEnumerated_constraint },
336         0, 0,   /* Defined elsewhere */
337         &asn_SPC_n_TimingAdvanceOffset_specs_6  /* Additional specs */
338 };
339
340 static asn_TYPE_member_t asn_MBR_ssb_PositionsInBurst_10[] = {
341         { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, choice.shortBitmap),
342                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
343                 -1,     /* IMPLICIT tag at current level */
344                 &asn_DEF_BIT_STRING,
345                 0,
346                 { &asn_OER_memb_shortBitmap_constr_11, &asn_PER_memb_shortBitmap_constr_11,  memb_shortBitmap_constraint_10 },
347                 0, 0, /* No default value */
348                 "shortBitmap"
349                 },
350         { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, choice.mediumBitmap),
351                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
352                 -1,     /* IMPLICIT tag at current level */
353                 &asn_DEF_BIT_STRING,
354                 0,
355                 { &asn_OER_memb_mediumBitmap_constr_12, &asn_PER_memb_mediumBitmap_constr_12,  memb_mediumBitmap_constraint_10 },
356                 0, 0, /* No default value */
357                 "mediumBitmap"
358                 },
359         { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, choice.longBitmap),
360                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
361                 -1,     /* IMPLICIT tag at current level */
362                 &asn_DEF_BIT_STRING,
363                 0,
364                 { &asn_OER_memb_longBitmap_constr_13, &asn_PER_memb_longBitmap_constr_13,  memb_longBitmap_constraint_10 },
365                 0, 0, /* No default value */
366                 "longBitmap"
367                 },
368 };
369 static const asn_TYPE_tag2member_t asn_MAP_ssb_PositionsInBurst_tag2el_10[] = {
370     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* shortBitmap */
371     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* mediumBitmap */
372     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* longBitmap */
373 };
374 static asn_CHOICE_specifics_t asn_SPC_ssb_PositionsInBurst_specs_10 = {
375         sizeof(struct ServingCellConfigCommon__ssb_PositionsInBurst),
376         offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, _asn_ctx),
377         offsetof(struct ServingCellConfigCommon__ssb_PositionsInBurst, present),
378         sizeof(((struct ServingCellConfigCommon__ssb_PositionsInBurst *)0)->present),
379         asn_MAP_ssb_PositionsInBurst_tag2el_10,
380         3,      /* Count of tags in the map */
381         0, 0,
382         -1      /* Extensions start */
383 };
384 static /* Use -fall-defs-global to expose */
385 asn_TYPE_descriptor_t asn_DEF_ssb_PositionsInBurst_10 = {
386         "ssb-PositionsInBurst",
387         "ssb-PositionsInBurst",
388         &asn_OP_CHOICE,
389         0,      /* No effective tags (pointer) */
390         0,      /* No effective tags (count) */
391         0,      /* No tags (pointer) */
392         0,      /* No tags (count) */
393         { &asn_OER_type_ssb_PositionsInBurst_constr_10, &asn_PER_type_ssb_PositionsInBurst_constr_10, CHOICE_constraint },
394         asn_MBR_ssb_PositionsInBurst_10,
395         3,      /* Elements count */
396         &asn_SPC_ssb_PositionsInBurst_specs_10  /* Additional specs */
397 };
398
399 static const asn_INTEGER_enum_map_t asn_MAP_ssb_periodicityServingCell_value2enum_14[] = {
400         { 0,    3,      "ms5" },
401         { 1,    4,      "ms10" },
402         { 2,    4,      "ms20" },
403         { 3,    4,      "ms40" },
404         { 4,    4,      "ms80" },
405         { 5,    5,      "ms160" },
406         { 6,    6,      "spare2" },
407         { 7,    6,      "spare1" }
408 };
409 static const unsigned int asn_MAP_ssb_periodicityServingCell_enum2value_14[] = {
410         1,      /* ms10(1) */
411         5,      /* ms160(5) */
412         2,      /* ms20(2) */
413         3,      /* ms40(3) */
414         0,      /* ms5(0) */
415         4,      /* ms80(4) */
416         7,      /* spare1(7) */
417         6       /* spare2(6) */
418 };
419 static const asn_INTEGER_specifics_t asn_SPC_ssb_periodicityServingCell_specs_14 = {
420         asn_MAP_ssb_periodicityServingCell_value2enum_14,       /* "tag" => N; sorted by tag */
421         asn_MAP_ssb_periodicityServingCell_enum2value_14,       /* N => "tag"; sorted by N */
422         8,      /* Number of elements in the maps */
423         0,      /* Enumeration is not extensible */
424         1,      /* Strict enumeration */
425         0,      /* Native long size */
426         0
427 };
428 static const ber_tlv_tag_t asn_DEF_ssb_periodicityServingCell_tags_14[] = {
429         (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
430         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
431 };
432 static /* Use -fall-defs-global to expose */
433 asn_TYPE_descriptor_t asn_DEF_ssb_periodicityServingCell_14 = {
434         "ssb-periodicityServingCell",
435         "ssb-periodicityServingCell",
436         &asn_OP_NativeEnumerated,
437         asn_DEF_ssb_periodicityServingCell_tags_14,
438         sizeof(asn_DEF_ssb_periodicityServingCell_tags_14)
439                 /sizeof(asn_DEF_ssb_periodicityServingCell_tags_14[0]) - 1, /* 1 */
440         asn_DEF_ssb_periodicityServingCell_tags_14,     /* Same as above */
441         sizeof(asn_DEF_ssb_periodicityServingCell_tags_14)
442                 /sizeof(asn_DEF_ssb_periodicityServingCell_tags_14[0]), /* 2 */
443         { &asn_OER_type_ssb_periodicityServingCell_constr_14, &asn_PER_type_ssb_periodicityServingCell_constr_14, NativeEnumerated_constraint },
444         0, 0,   /* Defined elsewhere */
445         &asn_SPC_ssb_periodicityServingCell_specs_14    /* Additional specs */
446 };
447
448 static const asn_INTEGER_enum_map_t asn_MAP_dmrs_TypeA_Position_value2enum_23[] = {
449         { 0,    4,      "pos2" },
450         { 1,    4,      "pos3" }
451 };
452 static const unsigned int asn_MAP_dmrs_TypeA_Position_enum2value_23[] = {
453         0,      /* pos2(0) */
454         1       /* pos3(1) */
455 };
456 static const asn_INTEGER_specifics_t asn_SPC_dmrs_TypeA_Position_specs_23 = {
457         asn_MAP_dmrs_TypeA_Position_value2enum_23,      /* "tag" => N; sorted by tag */
458         asn_MAP_dmrs_TypeA_Position_enum2value_23,      /* N => "tag"; sorted by N */
459         2,      /* Number of elements in the maps */
460         0,      /* Enumeration is not extensible */
461         1,      /* Strict enumeration */
462         0,      /* Native long size */
463         0
464 };
465 static const ber_tlv_tag_t asn_DEF_dmrs_TypeA_Position_tags_23[] = {
466         (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
467         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
468 };
469 static /* Use -fall-defs-global to expose */
470 asn_TYPE_descriptor_t asn_DEF_dmrs_TypeA_Position_23 = {
471         "dmrs-TypeA-Position",
472         "dmrs-TypeA-Position",
473         &asn_OP_NativeEnumerated,
474         asn_DEF_dmrs_TypeA_Position_tags_23,
475         sizeof(asn_DEF_dmrs_TypeA_Position_tags_23)
476                 /sizeof(asn_DEF_dmrs_TypeA_Position_tags_23[0]) - 1, /* 1 */
477         asn_DEF_dmrs_TypeA_Position_tags_23,    /* Same as above */
478         sizeof(asn_DEF_dmrs_TypeA_Position_tags_23)
479                 /sizeof(asn_DEF_dmrs_TypeA_Position_tags_23[0]), /* 2 */
480         { &asn_OER_type_dmrs_TypeA_Position_constr_23, &asn_PER_type_dmrs_TypeA_Position_constr_23, NativeEnumerated_constraint },
481         0, 0,   /* Defined elsewhere */
482         &asn_SPC_dmrs_TypeA_Position_specs_23   /* Additional specs */
483 };
484
485 static asn_TYPE_member_t asn_MBR_lte_CRS_ToMatchAround_26[] = {
486         { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround, choice.release),
487                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
488                 -1,     /* IMPLICIT tag at current level */
489                 &asn_DEF_NULL,
490                 0,
491                 { 0, 0, 0 },
492                 0, 0, /* No default value */
493                 "release"
494                 },
495         { ATF_POINTER, 0, offsetof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround, choice.setup),
496                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
497                 -1,     /* IMPLICIT tag at current level */
498                 &asn_DEF_RateMatchPatternLTE_CRS,
499                 0,
500                 { 0, 0, 0 },
501                 0, 0, /* No default value */
502                 "setup"
503                 },
504 };
505 static const asn_TYPE_tag2member_t asn_MAP_lte_CRS_ToMatchAround_tag2el_26[] = {
506     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* release */
507     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* setup */
508 };
509 static asn_CHOICE_specifics_t asn_SPC_lte_CRS_ToMatchAround_specs_26 = {
510         sizeof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround),
511         offsetof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround, _asn_ctx),
512         offsetof(struct ServingCellConfigCommon__lte_CRS_ToMatchAround, present),
513         sizeof(((struct ServingCellConfigCommon__lte_CRS_ToMatchAround *)0)->present),
514         asn_MAP_lte_CRS_ToMatchAround_tag2el_26,
515         2,      /* Count of tags in the map */
516         0, 0,
517         -1      /* Extensions start */
518 };
519 static /* Use -fall-defs-global to expose */
520 asn_TYPE_descriptor_t asn_DEF_lte_CRS_ToMatchAround_26 = {
521         "lte-CRS-ToMatchAround",
522         "lte-CRS-ToMatchAround",
523         &asn_OP_CHOICE,
524         0,      /* No effective tags (pointer) */
525         0,      /* No effective tags (count) */
526         0,      /* No tags (pointer) */
527         0,      /* No tags (count) */
528         { &asn_OER_type_lte_CRS_ToMatchAround_constr_26, &asn_PER_type_lte_CRS_ToMatchAround_constr_26, CHOICE_constraint },
529         asn_MBR_lte_CRS_ToMatchAround_26,
530         2,      /* Elements count */
531         &asn_SPC_lte_CRS_ToMatchAround_specs_26 /* Additional specs */
532 };
533
534 static asn_TYPE_member_t asn_MBR_rateMatchPatternToAddModList_29[] = {
535         { ATF_POINTER, 0, 0,
536                 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
537                 0,
538                 &asn_DEF_RateMatchPattern,
539                 0,
540                 { 0, 0, 0 },
541                 0, 0, /* No default value */
542                 ""
543                 },
544 };
545 static const ber_tlv_tag_t asn_DEF_rateMatchPatternToAddModList_tags_29[] = {
546         (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
547         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
548 };
549 static asn_SET_OF_specifics_t asn_SPC_rateMatchPatternToAddModList_specs_29 = {
550         sizeof(struct ServingCellConfigCommon__rateMatchPatternToAddModList),
551         offsetof(struct ServingCellConfigCommon__rateMatchPatternToAddModList, _asn_ctx),
552         0,      /* XER encoding is XMLDelimitedItemList */
553 };
554 static /* Use -fall-defs-global to expose */
555 asn_TYPE_descriptor_t asn_DEF_rateMatchPatternToAddModList_29 = {
556         "rateMatchPatternToAddModList",
557         "rateMatchPatternToAddModList",
558         &asn_OP_SEQUENCE_OF,
559         asn_DEF_rateMatchPatternToAddModList_tags_29,
560         sizeof(asn_DEF_rateMatchPatternToAddModList_tags_29)
561                 /sizeof(asn_DEF_rateMatchPatternToAddModList_tags_29[0]) - 1, /* 1 */
562         asn_DEF_rateMatchPatternToAddModList_tags_29,   /* Same as above */
563         sizeof(asn_DEF_rateMatchPatternToAddModList_tags_29)
564                 /sizeof(asn_DEF_rateMatchPatternToAddModList_tags_29[0]), /* 2 */
565         { &asn_OER_type_rateMatchPatternToAddModList_constr_29, &asn_PER_type_rateMatchPatternToAddModList_constr_29, SEQUENCE_OF_constraint },
566         asn_MBR_rateMatchPatternToAddModList_29,
567         1,      /* Single element */
568         &asn_SPC_rateMatchPatternToAddModList_specs_29  /* Additional specs */
569 };
570
571 static asn_TYPE_member_t asn_MBR_rateMatchPatternToReleaseList_31[] = {
572         { ATF_POINTER, 0, 0,
573                 (ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
574                 0,
575                 &asn_DEF_RateMatchPatternId,
576                 0,
577                 { 0, 0, 0 },
578                 0, 0, /* No default value */
579                 ""
580                 },
581 };
582 static const ber_tlv_tag_t asn_DEF_rateMatchPatternToReleaseList_tags_31[] = {
583         (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
584         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
585 };
586 static asn_SET_OF_specifics_t asn_SPC_rateMatchPatternToReleaseList_specs_31 = {
587         sizeof(struct ServingCellConfigCommon__rateMatchPatternToReleaseList),
588         offsetof(struct ServingCellConfigCommon__rateMatchPatternToReleaseList, _asn_ctx),
589         0,      /* XER encoding is XMLDelimitedItemList */
590 };
591 static /* Use -fall-defs-global to expose */
592 asn_TYPE_descriptor_t asn_DEF_rateMatchPatternToReleaseList_31 = {
593         "rateMatchPatternToReleaseList",
594         "rateMatchPatternToReleaseList",
595         &asn_OP_SEQUENCE_OF,
596         asn_DEF_rateMatchPatternToReleaseList_tags_31,
597         sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_31)
598                 /sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_31[0]) - 1, /* 1 */
599         asn_DEF_rateMatchPatternToReleaseList_tags_31,  /* Same as above */
600         sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_31)
601                 /sizeof(asn_DEF_rateMatchPatternToReleaseList_tags_31[0]), /* 2 */
602         { &asn_OER_type_rateMatchPatternToReleaseList_constr_31, &asn_PER_type_rateMatchPatternToReleaseList_constr_31, SEQUENCE_OF_constraint },
603         asn_MBR_rateMatchPatternToReleaseList_31,
604         1,      /* Single element */
605         &asn_SPC_rateMatchPatternToReleaseList_specs_31 /* Additional specs */
606 };
607
608 asn_TYPE_member_t asn_MBR_ServingCellConfigCommon_1[] = {
609         { ATF_POINTER, 7, offsetof(struct ServingCellConfigCommon, physCellId),
610                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
611                 -1,     /* IMPLICIT tag at current level */
612                 &asn_DEF_PhysCellId,
613                 0,
614                 { 0, 0, 0 },
615                 0, 0, /* No default value */
616                 "physCellId"
617                 },
618         { ATF_POINTER, 6, offsetof(struct ServingCellConfigCommon, downlinkConfigCommon),
619                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
620                 -1,     /* IMPLICIT tag at current level */
621                 &asn_DEF_DownlinkConfigCommon,
622                 0,
623                 { 0, 0, 0 },
624                 0, 0, /* No default value */
625                 "downlinkConfigCommon"
626                 },
627         { ATF_POINTER, 5, offsetof(struct ServingCellConfigCommon, uplinkConfigCommon),
628                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
629                 -1,     /* IMPLICIT tag at current level */
630                 &asn_DEF_UplinkConfigCommon,
631                 0,
632                 { 0, 0, 0 },
633                 0, 0, /* No default value */
634                 "uplinkConfigCommon"
635                 },
636         { ATF_POINTER, 4, offsetof(struct ServingCellConfigCommon, supplementaryUplinkConfig),
637                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
638                 -1,     /* IMPLICIT tag at current level */
639                 &asn_DEF_UplinkConfigCommon,
640                 0,
641                 { 0, 0, 0 },
642                 0, 0, /* No default value */
643                 "supplementaryUplinkConfig"
644                 },
645         { ATF_POINTER, 3, offsetof(struct ServingCellConfigCommon, n_TimingAdvanceOffset),
646                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
647                 -1,     /* IMPLICIT tag at current level */
648                 &asn_DEF_n_TimingAdvanceOffset_6,
649                 0,
650                 { 0, 0, 0 },
651                 0, 0, /* No default value */
652                 "n-TimingAdvanceOffset"
653                 },
654         { ATF_POINTER, 2, offsetof(struct ServingCellConfigCommon, ssb_PositionsInBurst),
655                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
656                 +1,     /* EXPLICIT tag at current level */
657                 &asn_DEF_ssb_PositionsInBurst_10,
658                 0,
659                 { 0, 0, 0 },
660                 0, 0, /* No default value */
661                 "ssb-PositionsInBurst"
662                 },
663         { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommon, ssb_periodicityServingCell),
664                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
665                 -1,     /* IMPLICIT tag at current level */
666                 &asn_DEF_ssb_periodicityServingCell_14,
667                 0,
668                 { 0, 0, 0 },
669                 0, 0, /* No default value */
670                 "ssb-periodicityServingCell"
671                 },
672         { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon, dmrs_TypeA_Position),
673                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
674                 -1,     /* IMPLICIT tag at current level */
675                 &asn_DEF_dmrs_TypeA_Position_23,
676                 0,
677                 { 0, 0, 0 },
678                 0, 0, /* No default value */
679                 "dmrs-TypeA-Position"
680                 },
681         { ATF_POINTER, 5, offsetof(struct ServingCellConfigCommon, lte_CRS_ToMatchAround),
682                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
683                 +1,     /* EXPLICIT tag at current level */
684                 &asn_DEF_lte_CRS_ToMatchAround_26,
685                 0,
686                 { 0, 0, 0 },
687                 0, 0, /* No default value */
688                 "lte-CRS-ToMatchAround"
689                 },
690         { ATF_POINTER, 4, offsetof(struct ServingCellConfigCommon, rateMatchPatternToAddModList),
691                 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
692                 0,
693                 &asn_DEF_rateMatchPatternToAddModList_29,
694                 0,
695                 { &asn_OER_memb_rateMatchPatternToAddModList_constr_29, &asn_PER_memb_rateMatchPatternToAddModList_constr_29,  memb_rateMatchPatternToAddModList_constraint_1 },
696                 0, 0, /* No default value */
697                 "rateMatchPatternToAddModList"
698                 },
699         { ATF_POINTER, 3, offsetof(struct ServingCellConfigCommon, rateMatchPatternToReleaseList),
700                 (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
701                 0,
702                 &asn_DEF_rateMatchPatternToReleaseList_31,
703                 0,
704                 { &asn_OER_memb_rateMatchPatternToReleaseList_constr_31, &asn_PER_memb_rateMatchPatternToReleaseList_constr_31,  memb_rateMatchPatternToReleaseList_constraint_1 },
705                 0, 0, /* No default value */
706                 "rateMatchPatternToReleaseList"
707                 },
708         { ATF_POINTER, 2, offsetof(struct ServingCellConfigCommon, ssbSubcarrierSpacing),
709                 (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
710                 -1,     /* IMPLICIT tag at current level */
711                 &asn_DEF_SubcarrierSpacing,
712                 0,
713                 { 0, 0, 0 },
714                 0, 0, /* No default value */
715                 "ssbSubcarrierSpacing"
716                 },
717         { ATF_POINTER, 1, offsetof(struct ServingCellConfigCommon, tdd_UL_DL_ConfigurationCommon),
718                 (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
719                 -1,     /* IMPLICIT tag at current level */
720                 &asn_DEF_TDD_UL_DL_ConfigCommon,
721                 0,
722                 { 0, 0, 0 },
723                 0, 0, /* No default value */
724                 "tdd-UL-DL-ConfigurationCommon"
725                 },
726         { ATF_NOFLAGS, 0, offsetof(struct ServingCellConfigCommon, ss_PBCH_BlockPower),
727                 (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
728                 -1,     /* IMPLICIT tag at current level */
729                 &asn_DEF_NativeInteger,
730                 0,
731                 { &asn_OER_memb_ss_PBCH_BlockPower_constr_35, &asn_PER_memb_ss_PBCH_BlockPower_constr_35,  memb_ss_PBCH_BlockPower_constraint_1 },
732                 0, 0, /* No default value */
733                 "ss-PBCH-BlockPower"
734                 },
735 };
736 static const int asn_MAP_ServingCellConfigCommon_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12 };
737 static const ber_tlv_tag_t asn_DEF_ServingCellConfigCommon_tags_1[] = {
738         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
739 };
740 static const asn_TYPE_tag2member_t asn_MAP_ServingCellConfigCommon_tag2el_1[] = {
741     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* physCellId */
742     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* downlinkConfigCommon */
743     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* uplinkConfigCommon */
744     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* supplementaryUplinkConfig */
745     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* n-TimingAdvanceOffset */
746     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* ssb-PositionsInBurst */
747     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ssb-periodicityServingCell */
748     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* dmrs-TypeA-Position */
749     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* lte-CRS-ToMatchAround */
750     { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* rateMatchPatternToAddModList */
751     { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* rateMatchPatternToReleaseList */
752     { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* ssbSubcarrierSpacing */
753     { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* tdd-UL-DL-ConfigurationCommon */
754     { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 } /* ss-PBCH-BlockPower */
755 };
756 asn_SEQUENCE_specifics_t asn_SPC_ServingCellConfigCommon_specs_1 = {
757         sizeof(struct ServingCellConfigCommon),
758         offsetof(struct ServingCellConfigCommon, _asn_ctx),
759         asn_MAP_ServingCellConfigCommon_tag2el_1,
760         14,     /* Count of tags in the map */
761         asn_MAP_ServingCellConfigCommon_oms_1,  /* Optional members */
762         12, 0,  /* Root/Additions */
763         14,     /* First extension addition */
764 };
765 asn_TYPE_descriptor_t asn_DEF_ServingCellConfigCommon = {
766         "ServingCellConfigCommon",
767         "ServingCellConfigCommon",
768         &asn_OP_SEQUENCE,
769         asn_DEF_ServingCellConfigCommon_tags_1,
770         sizeof(asn_DEF_ServingCellConfigCommon_tags_1)
771                 /sizeof(asn_DEF_ServingCellConfigCommon_tags_1[0]), /* 1 */
772         asn_DEF_ServingCellConfigCommon_tags_1, /* Same as above */
773         sizeof(asn_DEF_ServingCellConfigCommon_tags_1)
774                 /sizeof(asn_DEF_ServingCellConfigCommon_tags_1[0]), /* 1 */
775         { 0, 0, SEQUENCE_constraint },
776         asn_MBR_ServingCellConfigCommon_1,
777         14,     /* Elements count */
778         &asn_SPC_ServingCellConfigCommon_specs_1        /* Additional specs */
779 };
780