[Epic-ID: ODUHIGH-516][Task-ID: ODUHIGH-522] Generating the E2SM-KPM code
[o-du/l2.git] / src / codec_utils / E2SM_KPM / MeasurementLabel.c
1 /*
2  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3  * From ASN.1 module "E2SM-KPM-IEs"
4  *      found in "../../ASN1_Input/E2SM_KPM_V_3_0.asn1"
5  *      `asn1c -D ./../../E2_output/E2SM_KPM_v3.0_output -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
6  */
7
8 #include "MeasurementLabel.h"
9
10 #include "S-NSSAI.h"
11 /*
12  * This type is implemented using NativeEnumerated,
13  * so here we adjust the DEF accordingly.
14  */
15 /*
16  * This type is implemented using NativeEnumerated,
17  * so here we adjust the DEF accordingly.
18  */
19 /*
20  * This type is implemented using NativeEnumerated,
21  * so here we adjust the DEF accordingly.
22  */
23 /*
24  * This type is implemented using NativeEnumerated,
25  * so here we adjust the DEF accordingly.
26  */
27 /*
28  * This type is implemented using NativeEnumerated,
29  * so here we adjust the DEF accordingly.
30  */
31 /*
32  * This type is implemented using NativeEnumerated,
33  * so here we adjust the DEF accordingly.
34  */
35 /*
36  * This type is implemented using NativeEnumerated,
37  * so here we adjust the DEF accordingly.
38  */
39 static int
40 memb_aRPmax_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
41                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
42         long value;
43         
44         if(!sptr) {
45                 ASN__CTFAIL(app_key, td, sptr,
46                         "%s: value not given (%s:%d)",
47                         td->name, __FILE__, __LINE__);
48                 return -1;
49         }
50         
51         value = *(const long *)sptr;
52         
53         if((value >= 1 && value <= 15)) {
54                 /* Constraint check succeeded */
55                 return 0;
56         } else {
57                 ASN__CTFAIL(app_key, td, sptr,
58                         "%s: constraint failed (%s:%d)",
59                         td->name, __FILE__, __LINE__);
60                 return -1;
61         }
62 }
63
64 static int
65 memb_aRPmin_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
66                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
67         long value;
68         
69         if(!sptr) {
70                 ASN__CTFAIL(app_key, td, sptr,
71                         "%s: value not given (%s:%d)",
72                         td->name, __FILE__, __LINE__);
73                 return -1;
74         }
75         
76         value = *(const long *)sptr;
77         
78         if((value >= 1 && value <= 15)) {
79                 /* Constraint check succeeded */
80                 return 0;
81         } else {
82                 ASN__CTFAIL(app_key, td, sptr,
83                         "%s: constraint failed (%s:%d)",
84                         td->name, __FILE__, __LINE__);
85                 return -1;
86         }
87 }
88
89 static int
90 memb_bitrateRange_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
91                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
92         long value;
93         
94         if(!sptr) {
95                 ASN__CTFAIL(app_key, td, sptr,
96                         "%s: value not given (%s:%d)",
97                         td->name, __FILE__, __LINE__);
98                 return -1;
99         }
100         
101         value = *(const long *)sptr;
102         
103         if((value >= 1 && value <= 65535)) {
104                 /* Constraint check succeeded */
105                 return 0;
106         } else {
107                 ASN__CTFAIL(app_key, td, sptr,
108                         "%s: constraint failed (%s:%d)",
109                         td->name, __FILE__, __LINE__);
110                 return -1;
111         }
112 }
113
114 static int
115 memb_layerMU_MIMO_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
116                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
117         long value;
118         
119         if(!sptr) {
120                 ASN__CTFAIL(app_key, td, sptr,
121                         "%s: value not given (%s:%d)",
122                         td->name, __FILE__, __LINE__);
123                 return -1;
124         }
125         
126         value = *(const long *)sptr;
127         
128         if((value >= 1 && value <= 65535)) {
129                 /* Constraint check succeeded */
130                 return 0;
131         } else {
132                 ASN__CTFAIL(app_key, td, sptr,
133                         "%s: constraint failed (%s:%d)",
134                         td->name, __FILE__, __LINE__);
135                 return -1;
136         }
137 }
138
139 static int
140 memb_distBinX_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
141                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
142         long value;
143         
144         if(!sptr) {
145                 ASN__CTFAIL(app_key, td, sptr,
146                         "%s: value not given (%s:%d)",
147                         td->name, __FILE__, __LINE__);
148                 return -1;
149         }
150         
151         value = *(const long *)sptr;
152         
153         if((value >= 1 && value <= 65535)) {
154                 /* Constraint check succeeded */
155                 return 0;
156         } else {
157                 ASN__CTFAIL(app_key, td, sptr,
158                         "%s: constraint failed (%s:%d)",
159                         td->name, __FILE__, __LINE__);
160                 return -1;
161         }
162 }
163
164 static int
165 memb_distBinY_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
166                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
167         long value;
168         
169         if(!sptr) {
170                 ASN__CTFAIL(app_key, td, sptr,
171                         "%s: value not given (%s:%d)",
172                         td->name, __FILE__, __LINE__);
173                 return -1;
174         }
175         
176         value = *(const long *)sptr;
177         
178         if((value >= 1 && value <= 65535)) {
179                 /* Constraint check succeeded */
180                 return 0;
181         } else {
182                 ASN__CTFAIL(app_key, td, sptr,
183                         "%s: constraint failed (%s:%d)",
184                         td->name, __FILE__, __LINE__);
185                 return -1;
186         }
187 }
188
189 static int
190 memb_distBinZ_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
191                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
192         long value;
193         
194         if(!sptr) {
195                 ASN__CTFAIL(app_key, td, sptr,
196                         "%s: value not given (%s:%d)",
197                         td->name, __FILE__, __LINE__);
198                 return -1;
199         }
200         
201         value = *(const long *)sptr;
202         
203         if((value >= 1 && value <= 65535)) {
204                 /* Constraint check succeeded */
205                 return 0;
206         } else {
207                 ASN__CTFAIL(app_key, td, sptr,
208                         "%s: constraint failed (%s:%d)",
209                         td->name, __FILE__, __LINE__);
210                 return -1;
211         }
212 }
213
214 static int
215 memb_ssbIndex_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
216                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
217         long value;
218         
219         if(!sptr) {
220                 ASN__CTFAIL(app_key, td, sptr,
221                         "%s: value not given (%s:%d)",
222                         td->name, __FILE__, __LINE__);
223                 return -1;
224         }
225         
226         value = *(const long *)sptr;
227         
228         if((value >= 1 && value <= 65535)) {
229                 /* Constraint check succeeded */
230                 return 0;
231         } else {
232                 ASN__CTFAIL(app_key, td, sptr,
233                         "%s: constraint failed (%s:%d)",
234                         td->name, __FILE__, __LINE__);
235                 return -1;
236         }
237 }
238
239 static int
240 memb_nonGoB_BFmode_Index_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
241                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
242         long value;
243         
244         if(!sptr) {
245                 ASN__CTFAIL(app_key, td, sptr,
246                         "%s: value not given (%s:%d)",
247                         td->name, __FILE__, __LINE__);
248                 return -1;
249         }
250         
251         value = *(const long *)sptr;
252         
253         if((value >= 1 && value <= 65535)) {
254                 /* Constraint check succeeded */
255                 return 0;
256         } else {
257                 ASN__CTFAIL(app_key, td, sptr,
258                         "%s: constraint failed (%s:%d)",
259                         td->name, __FILE__, __LINE__);
260                 return -1;
261         }
262 }
263
264 static int
265 memb_mIMO_mode_Index_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
266                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
267         long value;
268         
269         if(!sptr) {
270                 ASN__CTFAIL(app_key, td, sptr,
271                         "%s: value not given (%s:%d)",
272                         td->name, __FILE__, __LINE__);
273                 return -1;
274         }
275         
276         value = *(const long *)sptr;
277         
278         if((value >= 1 && value <= 2)) {
279                 /* Constraint check succeeded */
280                 return 0;
281         } else {
282                 ASN__CTFAIL(app_key, td, sptr,
283                         "%s: constraint failed (%s:%d)",
284                         td->name, __FILE__, __LINE__);
285                 return -1;
286         }
287 }
288
289 static asn_oer_constraints_t asn_OER_type_noLabel_constr_2 CC_NOTUSED = {
290         { 0, 0 },
291         -1};
292 static asn_per_constraints_t asn_PER_type_noLabel_constr_2 CC_NOTUSED = {
293         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
294         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
295         0, 0    /* No PER value map */
296 };
297 static asn_oer_constraints_t asn_OER_type_sUM_constr_16 CC_NOTUSED = {
298         { 0, 0 },
299         -1};
300 static asn_per_constraints_t asn_PER_type_sUM_constr_16 CC_NOTUSED = {
301         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
302         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
303         0, 0    /* No PER value map */
304 };
305 static asn_oer_constraints_t asn_OER_type_preLabelOverride_constr_22 CC_NOTUSED = {
306         { 0, 0 },
307         -1};
308 static asn_per_constraints_t asn_PER_type_preLabelOverride_constr_22 CC_NOTUSED = {
309         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
310         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
311         0, 0    /* No PER value map */
312 };
313 static asn_oer_constraints_t asn_OER_type_startEndInd_constr_25 CC_NOTUSED = {
314         { 0, 0 },
315         -1};
316 static asn_per_constraints_t asn_PER_type_startEndInd_constr_25 CC_NOTUSED = {
317         { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
318         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
319         0, 0    /* No PER value map */
320 };
321 static asn_oer_constraints_t asn_OER_type_min_constr_29 CC_NOTUSED = {
322         { 0, 0 },
323         -1};
324 static asn_per_constraints_t asn_PER_type_min_constr_29 CC_NOTUSED = {
325         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
326         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
327         0, 0    /* No PER value map */
328 };
329 static asn_oer_constraints_t asn_OER_type_max_constr_32 CC_NOTUSED = {
330         { 0, 0 },
331         -1};
332 static asn_per_constraints_t asn_PER_type_max_constr_32 CC_NOTUSED = {
333         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
334         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
335         0, 0    /* No PER value map */
336 };
337 static asn_oer_constraints_t asn_OER_type_avg_constr_35 CC_NOTUSED = {
338         { 0, 0 },
339         -1};
340 static asn_per_constraints_t asn_PER_type_avg_constr_35 CC_NOTUSED = {
341         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
342         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
343         0, 0    /* No PER value map */
344 };
345 static asn_oer_constraints_t asn_OER_memb_aRPmax_constr_12 CC_NOTUSED = {
346         { 0, 0 },
347         -1};
348 static asn_per_constraints_t asn_PER_memb_aRPmax_constr_12 CC_NOTUSED = {
349         { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  1,  15 }   /* (1..15,...) */,
350         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
351         0, 0    /* No PER value map */
352 };
353 static asn_oer_constraints_t asn_OER_memb_aRPmin_constr_13 CC_NOTUSED = {
354         { 0, 0 },
355         -1};
356 static asn_per_constraints_t asn_PER_memb_aRPmin_constr_13 CC_NOTUSED = {
357         { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  1,  15 }   /* (1..15,...) */,
358         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
359         0, 0    /* No PER value map */
360 };
361 static asn_oer_constraints_t asn_OER_memb_bitrateRange_constr_14 CC_NOTUSED = {
362         { 0, 0 },
363         -1};
364 static asn_per_constraints_t asn_PER_memb_bitrateRange_constr_14 CC_NOTUSED = {
365         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
366         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
367         0, 0    /* No PER value map */
368 };
369 static asn_oer_constraints_t asn_OER_memb_layerMU_MIMO_constr_15 CC_NOTUSED = {
370         { 0, 0 },
371         -1};
372 static asn_per_constraints_t asn_PER_memb_layerMU_MIMO_constr_15 CC_NOTUSED = {
373         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
374         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
375         0, 0    /* No PER value map */
376 };
377 static asn_oer_constraints_t asn_OER_memb_distBinX_constr_19 CC_NOTUSED = {
378         { 0, 0 },
379         -1};
380 static asn_per_constraints_t asn_PER_memb_distBinX_constr_19 CC_NOTUSED = {
381         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
382         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
383         0, 0    /* No PER value map */
384 };
385 static asn_oer_constraints_t asn_OER_memb_distBinY_constr_20 CC_NOTUSED = {
386         { 0, 0 },
387         -1};
388 static asn_per_constraints_t asn_PER_memb_distBinY_constr_20 CC_NOTUSED = {
389         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
390         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
391         0, 0    /* No PER value map */
392 };
393 static asn_oer_constraints_t asn_OER_memb_distBinZ_constr_21 CC_NOTUSED = {
394         { 0, 0 },
395         -1};
396 static asn_per_constraints_t asn_PER_memb_distBinZ_constr_21 CC_NOTUSED = {
397         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
398         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
399         0, 0    /* No PER value map */
400 };
401 static asn_oer_constraints_t asn_OER_memb_ssbIndex_constr_39 CC_NOTUSED = {
402         { 0, 0 },
403         -1};
404 static asn_per_constraints_t asn_PER_memb_ssbIndex_constr_39 CC_NOTUSED = {
405         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
406         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
407         0, 0    /* No PER value map */
408 };
409 static asn_oer_constraints_t asn_OER_memb_nonGoB_BFmode_Index_constr_40 CC_NOTUSED = {
410         { 0, 0 },
411         -1};
412 static asn_per_constraints_t asn_PER_memb_nonGoB_BFmode_Index_constr_40 CC_NOTUSED = {
413         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
414         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
415         0, 0    /* No PER value map */
416 };
417 static asn_oer_constraints_t asn_OER_memb_mIMO_mode_Index_constr_41 CC_NOTUSED = {
418         { 0, 0 },
419         -1};
420 static asn_per_constraints_t asn_PER_memb_mIMO_mode_Index_constr_41 CC_NOTUSED = {
421         { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  1,  2 }    /* (1..2,...) */,
422         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
423         0, 0    /* No PER value map */
424 };
425 static const asn_INTEGER_enum_map_t asn_MAP_noLabel_value2enum_2[] = {
426         { 0,    4,      "true" }
427         /* This list is extensible */
428 };
429 static const unsigned int asn_MAP_noLabel_enum2value_2[] = {
430         0       /* true(0) */
431         /* This list is extensible */
432 };
433 static const asn_INTEGER_specifics_t asn_SPC_noLabel_specs_2 = {
434         asn_MAP_noLabel_value2enum_2,   /* "tag" => N; sorted by tag */
435         asn_MAP_noLabel_enum2value_2,   /* N => "tag"; sorted by N */
436         1,      /* Number of elements in the maps */
437         2,      /* Extensions before this member */
438         1,      /* Strict enumeration */
439         0,      /* Native long size */
440         0
441 };
442 static const ber_tlv_tag_t asn_DEF_noLabel_tags_2[] = {
443         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
444         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
445 };
446 static /* Use -fall-defs-global to expose */
447 asn_TYPE_descriptor_t asn_DEF_noLabel_2 = {
448         "noLabel",
449         "noLabel",
450         &asn_OP_NativeEnumerated,
451         asn_DEF_noLabel_tags_2,
452         sizeof(asn_DEF_noLabel_tags_2)
453                 /sizeof(asn_DEF_noLabel_tags_2[0]) - 1, /* 1 */
454         asn_DEF_noLabel_tags_2, /* Same as above */
455         sizeof(asn_DEF_noLabel_tags_2)
456                 /sizeof(asn_DEF_noLabel_tags_2[0]), /* 2 */
457         { &asn_OER_type_noLabel_constr_2, &asn_PER_type_noLabel_constr_2, NativeEnumerated_constraint },
458         0, 0,   /* Defined elsewhere */
459         &asn_SPC_noLabel_specs_2        /* Additional specs */
460 };
461
462 static const asn_INTEGER_enum_map_t asn_MAP_sUM_value2enum_16[] = {
463         { 0,    4,      "true" }
464         /* This list is extensible */
465 };
466 static const unsigned int asn_MAP_sUM_enum2value_16[] = {
467         0       /* true(0) */
468         /* This list is extensible */
469 };
470 static const asn_INTEGER_specifics_t asn_SPC_sUM_specs_16 = {
471         asn_MAP_sUM_value2enum_16,      /* "tag" => N; sorted by tag */
472         asn_MAP_sUM_enum2value_16,      /* N => "tag"; sorted by N */
473         1,      /* Number of elements in the maps */
474         2,      /* Extensions before this member */
475         1,      /* Strict enumeration */
476         0,      /* Native long size */
477         0
478 };
479 static const ber_tlv_tag_t asn_DEF_sUM_tags_16[] = {
480         (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
481         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
482 };
483 static /* Use -fall-defs-global to expose */
484 asn_TYPE_descriptor_t asn_DEF_sUM_16 = {
485         "sUM",
486         "sUM",
487         &asn_OP_NativeEnumerated,
488         asn_DEF_sUM_tags_16,
489         sizeof(asn_DEF_sUM_tags_16)
490                 /sizeof(asn_DEF_sUM_tags_16[0]) - 1, /* 1 */
491         asn_DEF_sUM_tags_16,    /* Same as above */
492         sizeof(asn_DEF_sUM_tags_16)
493                 /sizeof(asn_DEF_sUM_tags_16[0]), /* 2 */
494         { &asn_OER_type_sUM_constr_16, &asn_PER_type_sUM_constr_16, NativeEnumerated_constraint },
495         0, 0,   /* Defined elsewhere */
496         &asn_SPC_sUM_specs_16   /* Additional specs */
497 };
498
499 static const asn_INTEGER_enum_map_t asn_MAP_preLabelOverride_value2enum_22[] = {
500         { 0,    4,      "true" }
501         /* This list is extensible */
502 };
503 static const unsigned int asn_MAP_preLabelOverride_enum2value_22[] = {
504         0       /* true(0) */
505         /* This list is extensible */
506 };
507 static const asn_INTEGER_specifics_t asn_SPC_preLabelOverride_specs_22 = {
508         asn_MAP_preLabelOverride_value2enum_22, /* "tag" => N; sorted by tag */
509         asn_MAP_preLabelOverride_enum2value_22, /* N => "tag"; sorted by N */
510         1,      /* Number of elements in the maps */
511         2,      /* Extensions before this member */
512         1,      /* Strict enumeration */
513         0,      /* Native long size */
514         0
515 };
516 static const ber_tlv_tag_t asn_DEF_preLabelOverride_tags_22[] = {
517         (ASN_TAG_CLASS_CONTEXT | (16 << 2)),
518         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
519 };
520 static /* Use -fall-defs-global to expose */
521 asn_TYPE_descriptor_t asn_DEF_preLabelOverride_22 = {
522         "preLabelOverride",
523         "preLabelOverride",
524         &asn_OP_NativeEnumerated,
525         asn_DEF_preLabelOverride_tags_22,
526         sizeof(asn_DEF_preLabelOverride_tags_22)
527                 /sizeof(asn_DEF_preLabelOverride_tags_22[0]) - 1, /* 1 */
528         asn_DEF_preLabelOverride_tags_22,       /* Same as above */
529         sizeof(asn_DEF_preLabelOverride_tags_22)
530                 /sizeof(asn_DEF_preLabelOverride_tags_22[0]), /* 2 */
531         { &asn_OER_type_preLabelOverride_constr_22, &asn_PER_type_preLabelOverride_constr_22, NativeEnumerated_constraint },
532         0, 0,   /* Defined elsewhere */
533         &asn_SPC_preLabelOverride_specs_22      /* Additional specs */
534 };
535
536 static const asn_INTEGER_enum_map_t asn_MAP_startEndInd_value2enum_25[] = {
537         { 0,    5,      "start" },
538         { 1,    3,      "end" }
539         /* This list is extensible */
540 };
541 static const unsigned int asn_MAP_startEndInd_enum2value_25[] = {
542         1,      /* end(1) */
543         0       /* start(0) */
544         /* This list is extensible */
545 };
546 static const asn_INTEGER_specifics_t asn_SPC_startEndInd_specs_25 = {
547         asn_MAP_startEndInd_value2enum_25,      /* "tag" => N; sorted by tag */
548         asn_MAP_startEndInd_enum2value_25,      /* N => "tag"; sorted by N */
549         2,      /* Number of elements in the maps */
550         3,      /* Extensions before this member */
551         1,      /* Strict enumeration */
552         0,      /* Native long size */
553         0
554 };
555 static const ber_tlv_tag_t asn_DEF_startEndInd_tags_25[] = {
556         (ASN_TAG_CLASS_CONTEXT | (17 << 2)),
557         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
558 };
559 static /* Use -fall-defs-global to expose */
560 asn_TYPE_descriptor_t asn_DEF_startEndInd_25 = {
561         "startEndInd",
562         "startEndInd",
563         &asn_OP_NativeEnumerated,
564         asn_DEF_startEndInd_tags_25,
565         sizeof(asn_DEF_startEndInd_tags_25)
566                 /sizeof(asn_DEF_startEndInd_tags_25[0]) - 1, /* 1 */
567         asn_DEF_startEndInd_tags_25,    /* Same as above */
568         sizeof(asn_DEF_startEndInd_tags_25)
569                 /sizeof(asn_DEF_startEndInd_tags_25[0]), /* 2 */
570         { &asn_OER_type_startEndInd_constr_25, &asn_PER_type_startEndInd_constr_25, NativeEnumerated_constraint },
571         0, 0,   /* Defined elsewhere */
572         &asn_SPC_startEndInd_specs_25   /* Additional specs */
573 };
574
575 static const asn_INTEGER_enum_map_t asn_MAP_min_value2enum_29[] = {
576         { 0,    4,      "true" }
577         /* This list is extensible */
578 };
579 static const unsigned int asn_MAP_min_enum2value_29[] = {
580         0       /* true(0) */
581         /* This list is extensible */
582 };
583 static const asn_INTEGER_specifics_t asn_SPC_min_specs_29 = {
584         asn_MAP_min_value2enum_29,      /* "tag" => N; sorted by tag */
585         asn_MAP_min_enum2value_29,      /* N => "tag"; sorted by N */
586         1,      /* Number of elements in the maps */
587         2,      /* Extensions before this member */
588         1,      /* Strict enumeration */
589         0,      /* Native long size */
590         0
591 };
592 static const ber_tlv_tag_t asn_DEF_min_tags_29[] = {
593         (ASN_TAG_CLASS_CONTEXT | (18 << 2)),
594         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
595 };
596 static /* Use -fall-defs-global to expose */
597 asn_TYPE_descriptor_t asn_DEF_min_29 = {
598         "min",
599         "min",
600         &asn_OP_NativeEnumerated,
601         asn_DEF_min_tags_29,
602         sizeof(asn_DEF_min_tags_29)
603                 /sizeof(asn_DEF_min_tags_29[0]) - 1, /* 1 */
604         asn_DEF_min_tags_29,    /* Same as above */
605         sizeof(asn_DEF_min_tags_29)
606                 /sizeof(asn_DEF_min_tags_29[0]), /* 2 */
607         { &asn_OER_type_min_constr_29, &asn_PER_type_min_constr_29, NativeEnumerated_constraint },
608         0, 0,   /* Defined elsewhere */
609         &asn_SPC_min_specs_29   /* Additional specs */
610 };
611
612 static const asn_INTEGER_enum_map_t asn_MAP_max_value2enum_32[] = {
613         { 0,    4,      "true" }
614         /* This list is extensible */
615 };
616 static const unsigned int asn_MAP_max_enum2value_32[] = {
617         0       /* true(0) */
618         /* This list is extensible */
619 };
620 static const asn_INTEGER_specifics_t asn_SPC_max_specs_32 = {
621         asn_MAP_max_value2enum_32,      /* "tag" => N; sorted by tag */
622         asn_MAP_max_enum2value_32,      /* N => "tag"; sorted by N */
623         1,      /* Number of elements in the maps */
624         2,      /* Extensions before this member */
625         1,      /* Strict enumeration */
626         0,      /* Native long size */
627         0
628 };
629 static const ber_tlv_tag_t asn_DEF_max_tags_32[] = {
630         (ASN_TAG_CLASS_CONTEXT | (19 << 2)),
631         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
632 };
633 static /* Use -fall-defs-global to expose */
634 asn_TYPE_descriptor_t asn_DEF_max_32 = {
635         "max",
636         "max",
637         &asn_OP_NativeEnumerated,
638         asn_DEF_max_tags_32,
639         sizeof(asn_DEF_max_tags_32)
640                 /sizeof(asn_DEF_max_tags_32[0]) - 1, /* 1 */
641         asn_DEF_max_tags_32,    /* Same as above */
642         sizeof(asn_DEF_max_tags_32)
643                 /sizeof(asn_DEF_max_tags_32[0]), /* 2 */
644         { &asn_OER_type_max_constr_32, &asn_PER_type_max_constr_32, NativeEnumerated_constraint },
645         0, 0,   /* Defined elsewhere */
646         &asn_SPC_max_specs_32   /* Additional specs */
647 };
648
649 static const asn_INTEGER_enum_map_t asn_MAP_avg_value2enum_35[] = {
650         { 0,    4,      "true" }
651         /* This list is extensible */
652 };
653 static const unsigned int asn_MAP_avg_enum2value_35[] = {
654         0       /* true(0) */
655         /* This list is extensible */
656 };
657 static const asn_INTEGER_specifics_t asn_SPC_avg_specs_35 = {
658         asn_MAP_avg_value2enum_35,      /* "tag" => N; sorted by tag */
659         asn_MAP_avg_enum2value_35,      /* N => "tag"; sorted by N */
660         1,      /* Number of elements in the maps */
661         2,      /* Extensions before this member */
662         1,      /* Strict enumeration */
663         0,      /* Native long size */
664         0
665 };
666 static const ber_tlv_tag_t asn_DEF_avg_tags_35[] = {
667         (ASN_TAG_CLASS_CONTEXT | (20 << 2)),
668         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
669 };
670 static /* Use -fall-defs-global to expose */
671 asn_TYPE_descriptor_t asn_DEF_avg_35 = {
672         "avg",
673         "avg",
674         &asn_OP_NativeEnumerated,
675         asn_DEF_avg_tags_35,
676         sizeof(asn_DEF_avg_tags_35)
677                 /sizeof(asn_DEF_avg_tags_35[0]) - 1, /* 1 */
678         asn_DEF_avg_tags_35,    /* Same as above */
679         sizeof(asn_DEF_avg_tags_35)
680                 /sizeof(asn_DEF_avg_tags_35[0]), /* 2 */
681         { &asn_OER_type_avg_constr_35, &asn_PER_type_avg_constr_35, NativeEnumerated_constraint },
682         0, 0,   /* Defined elsewhere */
683         &asn_SPC_avg_specs_35   /* Additional specs */
684 };
685
686 asn_TYPE_member_t asn_MBR_MeasurementLabel_1[] = {
687         { ATF_POINTER, 24, offsetof(struct MeasurementLabel, noLabel),
688                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
689                 -1,     /* IMPLICIT tag at current level */
690                 &asn_DEF_noLabel_2,
691                 0,
692                 { 0, 0, 0 },
693                 0, 0, /* No default value */
694                 "noLabel"
695                 },
696         { ATF_POINTER, 23, offsetof(struct MeasurementLabel, plmnID),
697                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
698                 -1,     /* IMPLICIT tag at current level */
699                 &asn_DEF_PLMNIdentity,
700                 0,
701                 { 0, 0, 0 },
702                 0, 0, /* No default value */
703                 "plmnID"
704                 },
705         { ATF_POINTER, 22, offsetof(struct MeasurementLabel, sliceID),
706                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
707                 -1,     /* IMPLICIT tag at current level */
708                 &asn_DEF_S_NSSAI,
709                 0,
710                 { 0, 0, 0 },
711                 0, 0, /* No default value */
712                 "sliceID"
713                 },
714         { ATF_POINTER, 21, offsetof(struct MeasurementLabel, fiveQI),
715                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
716                 -1,     /* IMPLICIT tag at current level */
717                 &asn_DEF_FiveQI,
718                 0,
719                 { 0, 0, 0 },
720                 0, 0, /* No default value */
721                 "fiveQI"
722                 },
723         { ATF_POINTER, 20, offsetof(struct MeasurementLabel, qFI),
724                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
725                 -1,     /* IMPLICIT tag at current level */
726                 &asn_DEF_QosFlowIdentifier,
727                 0,
728                 { 0, 0, 0 },
729                 0, 0, /* No default value */
730                 "qFI"
731                 },
732         { ATF_POINTER, 19, offsetof(struct MeasurementLabel, qCI),
733                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
734                 -1,     /* IMPLICIT tag at current level */
735                 &asn_DEF_QCI,
736                 0,
737                 { 0, 0, 0 },
738                 0, 0, /* No default value */
739                 "qCI"
740                 },
741         { ATF_POINTER, 18, offsetof(struct MeasurementLabel, qCImax),
742                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
743                 -1,     /* IMPLICIT tag at current level */
744                 &asn_DEF_QCI,
745                 0,
746                 { 0, 0, 0 },
747                 0, 0, /* No default value */
748                 "qCImax"
749                 },
750         { ATF_POINTER, 17, offsetof(struct MeasurementLabel, qCImin),
751                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
752                 -1,     /* IMPLICIT tag at current level */
753                 &asn_DEF_QCI,
754                 0,
755                 { 0, 0, 0 },
756                 0, 0, /* No default value */
757                 "qCImin"
758                 },
759         { ATF_POINTER, 16, offsetof(struct MeasurementLabel, aRPmax),
760                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
761                 -1,     /* IMPLICIT tag at current level */
762                 &asn_DEF_NativeInteger,
763                 0,
764                 { &asn_OER_memb_aRPmax_constr_12, &asn_PER_memb_aRPmax_constr_12,  memb_aRPmax_constraint_1 },
765                 0, 0, /* No default value */
766                 "aRPmax"
767                 },
768         { ATF_POINTER, 15, offsetof(struct MeasurementLabel, aRPmin),
769                 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
770                 -1,     /* IMPLICIT tag at current level */
771                 &asn_DEF_NativeInteger,
772                 0,
773                 { &asn_OER_memb_aRPmin_constr_13, &asn_PER_memb_aRPmin_constr_13,  memb_aRPmin_constraint_1 },
774                 0, 0, /* No default value */
775                 "aRPmin"
776                 },
777         { ATF_POINTER, 14, offsetof(struct MeasurementLabel, bitrateRange),
778                 (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
779                 -1,     /* IMPLICIT tag at current level */
780                 &asn_DEF_NativeInteger,
781                 0,
782                 { &asn_OER_memb_bitrateRange_constr_14, &asn_PER_memb_bitrateRange_constr_14,  memb_bitrateRange_constraint_1 },
783                 0, 0, /* No default value */
784                 "bitrateRange"
785                 },
786         { ATF_POINTER, 13, offsetof(struct MeasurementLabel, layerMU_MIMO),
787                 (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
788                 -1,     /* IMPLICIT tag at current level */
789                 &asn_DEF_NativeInteger,
790                 0,
791                 { &asn_OER_memb_layerMU_MIMO_constr_15, &asn_PER_memb_layerMU_MIMO_constr_15,  memb_layerMU_MIMO_constraint_1 },
792                 0, 0, /* No default value */
793                 "layerMU-MIMO"
794                 },
795         { ATF_POINTER, 12, offsetof(struct MeasurementLabel, sUM),
796                 (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
797                 -1,     /* IMPLICIT tag at current level */
798                 &asn_DEF_sUM_16,
799                 0,
800                 { 0, 0, 0 },
801                 0, 0, /* No default value */
802                 "sUM"
803                 },
804         { ATF_POINTER, 11, offsetof(struct MeasurementLabel, distBinX),
805                 (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
806                 -1,     /* IMPLICIT tag at current level */
807                 &asn_DEF_NativeInteger,
808                 0,
809                 { &asn_OER_memb_distBinX_constr_19, &asn_PER_memb_distBinX_constr_19,  memb_distBinX_constraint_1 },
810                 0, 0, /* No default value */
811                 "distBinX"
812                 },
813         { ATF_POINTER, 10, offsetof(struct MeasurementLabel, distBinY),
814                 (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
815                 -1,     /* IMPLICIT tag at current level */
816                 &asn_DEF_NativeInteger,
817                 0,
818                 { &asn_OER_memb_distBinY_constr_20, &asn_PER_memb_distBinY_constr_20,  memb_distBinY_constraint_1 },
819                 0, 0, /* No default value */
820                 "distBinY"
821                 },
822         { ATF_POINTER, 9, offsetof(struct MeasurementLabel, distBinZ),
823                 (ASN_TAG_CLASS_CONTEXT | (15 << 2)),
824                 -1,     /* IMPLICIT tag at current level */
825                 &asn_DEF_NativeInteger,
826                 0,
827                 { &asn_OER_memb_distBinZ_constr_21, &asn_PER_memb_distBinZ_constr_21,  memb_distBinZ_constraint_1 },
828                 0, 0, /* No default value */
829                 "distBinZ"
830                 },
831         { ATF_POINTER, 8, offsetof(struct MeasurementLabel, preLabelOverride),
832                 (ASN_TAG_CLASS_CONTEXT | (16 << 2)),
833                 -1,     /* IMPLICIT tag at current level */
834                 &asn_DEF_preLabelOverride_22,
835                 0,
836                 { 0, 0, 0 },
837                 0, 0, /* No default value */
838                 "preLabelOverride"
839                 },
840         { ATF_POINTER, 7, offsetof(struct MeasurementLabel, startEndInd),
841                 (ASN_TAG_CLASS_CONTEXT | (17 << 2)),
842                 -1,     /* IMPLICIT tag at current level */
843                 &asn_DEF_startEndInd_25,
844                 0,
845                 { 0, 0, 0 },
846                 0, 0, /* No default value */
847                 "startEndInd"
848                 },
849         { ATF_POINTER, 6, offsetof(struct MeasurementLabel, min),
850                 (ASN_TAG_CLASS_CONTEXT | (18 << 2)),
851                 -1,     /* IMPLICIT tag at current level */
852                 &asn_DEF_min_29,
853                 0,
854                 { 0, 0, 0 },
855                 0, 0, /* No default value */
856                 "min"
857                 },
858         { ATF_POINTER, 5, offsetof(struct MeasurementLabel, max),
859                 (ASN_TAG_CLASS_CONTEXT | (19 << 2)),
860                 -1,     /* IMPLICIT tag at current level */
861                 &asn_DEF_max_32,
862                 0,
863                 { 0, 0, 0 },
864                 0, 0, /* No default value */
865                 "max"
866                 },
867         { ATF_POINTER, 4, offsetof(struct MeasurementLabel, avg),
868                 (ASN_TAG_CLASS_CONTEXT | (20 << 2)),
869                 -1,     /* IMPLICIT tag at current level */
870                 &asn_DEF_avg_35,
871                 0,
872                 { 0, 0, 0 },
873                 0, 0, /* No default value */
874                 "avg"
875                 },
876         { ATF_POINTER, 3, offsetof(struct MeasurementLabel, ssbIndex),
877                 (ASN_TAG_CLASS_CONTEXT | (21 << 2)),
878                 -1,     /* IMPLICIT tag at current level */
879                 &asn_DEF_NativeInteger,
880                 0,
881                 { &asn_OER_memb_ssbIndex_constr_39, &asn_PER_memb_ssbIndex_constr_39,  memb_ssbIndex_constraint_1 },
882                 0, 0, /* No default value */
883                 "ssbIndex"
884                 },
885         { ATF_POINTER, 2, offsetof(struct MeasurementLabel, nonGoB_BFmode_Index),
886                 (ASN_TAG_CLASS_CONTEXT | (22 << 2)),
887                 -1,     /* IMPLICIT tag at current level */
888                 &asn_DEF_NativeInteger,
889                 0,
890                 { &asn_OER_memb_nonGoB_BFmode_Index_constr_40, &asn_PER_memb_nonGoB_BFmode_Index_constr_40,  memb_nonGoB_BFmode_Index_constraint_1 },
891                 0, 0, /* No default value */
892                 "nonGoB-BFmode-Index"
893                 },
894         { ATF_POINTER, 1, offsetof(struct MeasurementLabel, mIMO_mode_Index),
895                 (ASN_TAG_CLASS_CONTEXT | (23 << 2)),
896                 -1,     /* IMPLICIT tag at current level */
897                 &asn_DEF_NativeInteger,
898                 0,
899                 { &asn_OER_memb_mIMO_mode_Index_constr_41, &asn_PER_memb_mIMO_mode_Index_constr_41,  memb_mIMO_mode_Index_constraint_1 },
900                 0, 0, /* No default value */
901                 "mIMO-mode-Index"
902                 },
903 };
904 static const int asn_MAP_MeasurementLabel_oms_1[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 };
905 static const ber_tlv_tag_t asn_DEF_MeasurementLabel_tags_1[] = {
906         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
907 };
908 static const asn_TYPE_tag2member_t asn_MAP_MeasurementLabel_tag2el_1[] = {
909     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* noLabel */
910     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* plmnID */
911     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sliceID */
912     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* fiveQI */
913     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* qFI */
914     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qCI */
915     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* qCImax */
916     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* qCImin */
917     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* aRPmax */
918     { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* aRPmin */
919     { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* bitrateRange */
920     { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* layerMU-MIMO */
921     { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* sUM */
922     { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* distBinX */
923     { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* distBinY */
924     { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* distBinZ */
925     { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* preLabelOverride */
926     { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* startEndInd */
927     { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* min */
928     { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* max */
929     { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 }, /* avg */
930     { (ASN_TAG_CLASS_CONTEXT | (21 << 2)), 21, 0, 0 }, /* ssbIndex */
931     { (ASN_TAG_CLASS_CONTEXT | (22 << 2)), 22, 0, 0 }, /* nonGoB-BFmode-Index */
932     { (ASN_TAG_CLASS_CONTEXT | (23 << 2)), 23, 0, 0 } /* mIMO-mode-Index */
933 };
934 asn_SEQUENCE_specifics_t asn_SPC_MeasurementLabel_specs_1 = {
935         sizeof(struct MeasurementLabel),
936         offsetof(struct MeasurementLabel, _asn_ctx),
937         asn_MAP_MeasurementLabel_tag2el_1,
938         24,     /* Count of tags in the map */
939         asn_MAP_MeasurementLabel_oms_1, /* Optional members */
940         21, 3,  /* Root/Additions */
941         21,     /* First extension addition */
942 };
943 asn_TYPE_descriptor_t asn_DEF_MeasurementLabel = {
944         "MeasurementLabel",
945         "MeasurementLabel",
946         &asn_OP_SEQUENCE,
947         asn_DEF_MeasurementLabel_tags_1,
948         sizeof(asn_DEF_MeasurementLabel_tags_1)
949                 /sizeof(asn_DEF_MeasurementLabel_tags_1[0]), /* 1 */
950         asn_DEF_MeasurementLabel_tags_1,        /* Same as above */
951         sizeof(asn_DEF_MeasurementLabel_tags_1)
952                 /sizeof(asn_DEF_MeasurementLabel_tags_1[0]), /* 1 */
953         { 0, 0, SEQUENCE_constraint },
954         asn_MBR_MeasurementLabel_1,
955         24,     /* Elements count */
956         &asn_SPC_MeasurementLabel_specs_1       /* Additional specs */
957 };
958