ISSUE ID:- RICAPP-216
[ric-app/bouncer.git] / Bouncer / e2sm_kpm / lib / 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 "kpmv2.asn"
5  *      `asn1c -pdu=auto -fincludes-quoted -fcompound-names -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -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 asn_per_constraints_t asn_PER_type_noLabel_constr_2 CC_NOTUSED = {
215         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
216         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
217         0, 0    /* No PER value map */
218 };
219 static asn_per_constraints_t asn_PER_type_sUM_constr_16 CC_NOTUSED = {
220         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
221         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
222         0, 0    /* No PER value map */
223 };
224 static asn_per_constraints_t asn_PER_type_preLabelOverride_constr_22 CC_NOTUSED = {
225         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
226         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
227         0, 0    /* No PER value map */
228 };
229 static asn_per_constraints_t asn_PER_type_startEndInd_constr_25 CC_NOTUSED = {
230         { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
231         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
232         0, 0    /* No PER value map */
233 };
234 static asn_per_constraints_t asn_PER_type_min_constr_29 CC_NOTUSED = {
235         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
236         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
237         0, 0    /* No PER value map */
238 };
239 static asn_per_constraints_t asn_PER_type_max_constr_32 CC_NOTUSED = {
240         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
241         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
242         0, 0    /* No PER value map */
243 };
244 static asn_per_constraints_t asn_PER_type_avg_constr_35 CC_NOTUSED = {
245         { APC_CONSTRAINED | APC_EXTENSIBLE,  0,  0,  0,  0 }    /* (0..0,...) */,
246         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
247         0, 0    /* No PER value map */
248 };
249 static asn_per_constraints_t asn_PER_memb_aRPmax_constr_12 CC_NOTUSED = {
250         { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  1,  15 }   /* (1..15,...) */,
251         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
252         0, 0    /* No PER value map */
253 };
254 static asn_per_constraints_t asn_PER_memb_aRPmin_constr_13 CC_NOTUSED = {
255         { APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  1,  15 }   /* (1..15,...) */,
256         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
257         0, 0    /* No PER value map */
258 };
259 static asn_per_constraints_t asn_PER_memb_bitrateRange_constr_14 CC_NOTUSED = {
260         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
261         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
262         0, 0    /* No PER value map */
263 };
264 static asn_per_constraints_t asn_PER_memb_layerMU_MIMO_constr_15 CC_NOTUSED = {
265         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
266         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
267         0, 0    /* No PER value map */
268 };
269 static asn_per_constraints_t asn_PER_memb_distBinX_constr_19 CC_NOTUSED = {
270         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
271         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
272         0, 0    /* No PER value map */
273 };
274 static asn_per_constraints_t asn_PER_memb_distBinY_constr_20 CC_NOTUSED = {
275         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
276         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
277         0, 0    /* No PER value map */
278 };
279 static asn_per_constraints_t asn_PER_memb_distBinZ_constr_21 CC_NOTUSED = {
280         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
281         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
282         0, 0    /* No PER value map */
283 };
284 static const asn_INTEGER_enum_map_t asn_MAP_noLabel_value2enum_2[] = {
285         { 0,    4,      "true" }
286         /* This list is extensible */
287 };
288 static const unsigned int asn_MAP_noLabel_enum2value_2[] = {
289         0       /* true(0) */
290         /* This list is extensible */
291 };
292 static const asn_INTEGER_specifics_t asn_SPC_noLabel_specs_2 = {
293         asn_MAP_noLabel_value2enum_2,   /* "tag" => N; sorted by tag */
294         asn_MAP_noLabel_enum2value_2,   /* N => "tag"; sorted by N */
295         1,      /* Number of elements in the maps */
296         2,      /* Extensions before this member */
297         1,      /* Strict enumeration */
298         0,      /* Native long size */
299         0
300 };
301 static const ber_tlv_tag_t asn_DEF_noLabel_tags_2[] = {
302         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
303         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
304 };
305 static /* Use -fall-defs-global to expose */
306 asn_TYPE_descriptor_t asn_DEF_noLabel_2 = {
307         "noLabel",
308         "noLabel",
309         &asn_OP_NativeEnumerated,
310         asn_DEF_noLabel_tags_2,
311         sizeof(asn_DEF_noLabel_tags_2)
312                 /sizeof(asn_DEF_noLabel_tags_2[0]) - 1, /* 1 */
313         asn_DEF_noLabel_tags_2, /* Same as above */
314         sizeof(asn_DEF_noLabel_tags_2)
315                 /sizeof(asn_DEF_noLabel_tags_2[0]), /* 2 */
316         { 0, &asn_PER_type_noLabel_constr_2, NativeEnumerated_constraint },
317         0, 0,   /* Defined elsewhere */
318         &asn_SPC_noLabel_specs_2        /* Additional specs */
319 };
320
321 static const asn_INTEGER_enum_map_t asn_MAP_sUM_value2enum_16[] = {
322         { 0,    4,      "true" }
323         /* This list is extensible */
324 };
325 static const unsigned int asn_MAP_sUM_enum2value_16[] = {
326         0       /* true(0) */
327         /* This list is extensible */
328 };
329 static const asn_INTEGER_specifics_t asn_SPC_sUM_specs_16 = {
330         asn_MAP_sUM_value2enum_16,      /* "tag" => N; sorted by tag */
331         asn_MAP_sUM_enum2value_16,      /* N => "tag"; sorted by N */
332         1,      /* Number of elements in the maps */
333         2,      /* Extensions before this member */
334         1,      /* Strict enumeration */
335         0,      /* Native long size */
336         0
337 };
338 static const ber_tlv_tag_t asn_DEF_sUM_tags_16[] = {
339         (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
340         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
341 };
342 static /* Use -fall-defs-global to expose */
343 asn_TYPE_descriptor_t asn_DEF_sUM_16 = {
344         "sUM",
345         "sUM",
346         &asn_OP_NativeEnumerated,
347         asn_DEF_sUM_tags_16,
348         sizeof(asn_DEF_sUM_tags_16)
349                 /sizeof(asn_DEF_sUM_tags_16[0]) - 1, /* 1 */
350         asn_DEF_sUM_tags_16,    /* Same as above */
351         sizeof(asn_DEF_sUM_tags_16)
352                 /sizeof(asn_DEF_sUM_tags_16[0]), /* 2 */
353         { 0, &asn_PER_type_sUM_constr_16, NativeEnumerated_constraint },
354         0, 0,   /* Defined elsewhere */
355         &asn_SPC_sUM_specs_16   /* Additional specs */
356 };
357
358 static const asn_INTEGER_enum_map_t asn_MAP_preLabelOverride_value2enum_22[] = {
359         { 0,    4,      "true" }
360         /* This list is extensible */
361 };
362 static const unsigned int asn_MAP_preLabelOverride_enum2value_22[] = {
363         0       /* true(0) */
364         /* This list is extensible */
365 };
366 static const asn_INTEGER_specifics_t asn_SPC_preLabelOverride_specs_22 = {
367         asn_MAP_preLabelOverride_value2enum_22, /* "tag" => N; sorted by tag */
368         asn_MAP_preLabelOverride_enum2value_22, /* N => "tag"; sorted by N */
369         1,      /* Number of elements in the maps */
370         2,      /* Extensions before this member */
371         1,      /* Strict enumeration */
372         0,      /* Native long size */
373         0
374 };
375 static const ber_tlv_tag_t asn_DEF_preLabelOverride_tags_22[] = {
376         (ASN_TAG_CLASS_CONTEXT | (16 << 2)),
377         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
378 };
379 static /* Use -fall-defs-global to expose */
380 asn_TYPE_descriptor_t asn_DEF_preLabelOverride_22 = {
381         "preLabelOverride",
382         "preLabelOverride",
383         &asn_OP_NativeEnumerated,
384         asn_DEF_preLabelOverride_tags_22,
385         sizeof(asn_DEF_preLabelOverride_tags_22)
386                 /sizeof(asn_DEF_preLabelOverride_tags_22[0]) - 1, /* 1 */
387         asn_DEF_preLabelOverride_tags_22,       /* Same as above */
388         sizeof(asn_DEF_preLabelOverride_tags_22)
389                 /sizeof(asn_DEF_preLabelOverride_tags_22[0]), /* 2 */
390         { 0, &asn_PER_type_preLabelOverride_constr_22, NativeEnumerated_constraint },
391         0, 0,   /* Defined elsewhere */
392         &asn_SPC_preLabelOverride_specs_22      /* Additional specs */
393 };
394
395 static const asn_INTEGER_enum_map_t asn_MAP_startEndInd_value2enum_25[] = {
396         { 0,    5,      "start" },
397         { 1,    3,      "end" }
398         /* This list is extensible */
399 };
400 static const unsigned int asn_MAP_startEndInd_enum2value_25[] = {
401         1,      /* end(1) */
402         0       /* start(0) */
403         /* This list is extensible */
404 };
405 static const asn_INTEGER_specifics_t asn_SPC_startEndInd_specs_25 = {
406         asn_MAP_startEndInd_value2enum_25,      /* "tag" => N; sorted by tag */
407         asn_MAP_startEndInd_enum2value_25,      /* N => "tag"; sorted by N */
408         2,      /* Number of elements in the maps */
409         3,      /* Extensions before this member */
410         1,      /* Strict enumeration */
411         0,      /* Native long size */
412         0
413 };
414 static const ber_tlv_tag_t asn_DEF_startEndInd_tags_25[] = {
415         (ASN_TAG_CLASS_CONTEXT | (17 << 2)),
416         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
417 };
418 static /* Use -fall-defs-global to expose */
419 asn_TYPE_descriptor_t asn_DEF_startEndInd_25 = {
420         "startEndInd",
421         "startEndInd",
422         &asn_OP_NativeEnumerated,
423         asn_DEF_startEndInd_tags_25,
424         sizeof(asn_DEF_startEndInd_tags_25)
425                 /sizeof(asn_DEF_startEndInd_tags_25[0]) - 1, /* 1 */
426         asn_DEF_startEndInd_tags_25,    /* Same as above */
427         sizeof(asn_DEF_startEndInd_tags_25)
428                 /sizeof(asn_DEF_startEndInd_tags_25[0]), /* 2 */
429         { 0, &asn_PER_type_startEndInd_constr_25, NativeEnumerated_constraint },
430         0, 0,   /* Defined elsewhere */
431         &asn_SPC_startEndInd_specs_25   /* Additional specs */
432 };
433
434 static const asn_INTEGER_enum_map_t asn_MAP_min_value2enum_29[] = {
435         { 0,    4,      "true" }
436         /* This list is extensible */
437 };
438 static const unsigned int asn_MAP_min_enum2value_29[] = {
439         0       /* true(0) */
440         /* This list is extensible */
441 };
442 static const asn_INTEGER_specifics_t asn_SPC_min_specs_29 = {
443         asn_MAP_min_value2enum_29,      /* "tag" => N; sorted by tag */
444         asn_MAP_min_enum2value_29,      /* N => "tag"; sorted by N */
445         1,      /* Number of elements in the maps */
446         2,      /* Extensions before this member */
447         1,      /* Strict enumeration */
448         0,      /* Native long size */
449         0
450 };
451 static const ber_tlv_tag_t asn_DEF_min_tags_29[] = {
452         (ASN_TAG_CLASS_CONTEXT | (18 << 2)),
453         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
454 };
455 static /* Use -fall-defs-global to expose */
456 asn_TYPE_descriptor_t asn_DEF_min_29 = {
457         "min",
458         "min",
459         &asn_OP_NativeEnumerated,
460         asn_DEF_min_tags_29,
461         sizeof(asn_DEF_min_tags_29)
462                 /sizeof(asn_DEF_min_tags_29[0]) - 1, /* 1 */
463         asn_DEF_min_tags_29,    /* Same as above */
464         sizeof(asn_DEF_min_tags_29)
465                 /sizeof(asn_DEF_min_tags_29[0]), /* 2 */
466         { 0, &asn_PER_type_min_constr_29, NativeEnumerated_constraint },
467         0, 0,   /* Defined elsewhere */
468         &asn_SPC_min_specs_29   /* Additional specs */
469 };
470
471 static const asn_INTEGER_enum_map_t asn_MAP_max_value2enum_32[] = {
472         { 0,    4,      "true" }
473         /* This list is extensible */
474 };
475 static const unsigned int asn_MAP_max_enum2value_32[] = {
476         0       /* true(0) */
477         /* This list is extensible */
478 };
479 static const asn_INTEGER_specifics_t asn_SPC_max_specs_32 = {
480         asn_MAP_max_value2enum_32,      /* "tag" => N; sorted by tag */
481         asn_MAP_max_enum2value_32,      /* N => "tag"; sorted by N */
482         1,      /* Number of elements in the maps */
483         2,      /* Extensions before this member */
484         1,      /* Strict enumeration */
485         0,      /* Native long size */
486         0
487 };
488 static const ber_tlv_tag_t asn_DEF_max_tags_32[] = {
489         (ASN_TAG_CLASS_CONTEXT | (19 << 2)),
490         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
491 };
492 static /* Use -fall-defs-global to expose */
493 asn_TYPE_descriptor_t asn_DEF_max_32 = {
494         "max",
495         "max",
496         &asn_OP_NativeEnumerated,
497         asn_DEF_max_tags_32,
498         sizeof(asn_DEF_max_tags_32)
499                 /sizeof(asn_DEF_max_tags_32[0]) - 1, /* 1 */
500         asn_DEF_max_tags_32,    /* Same as above */
501         sizeof(asn_DEF_max_tags_32)
502                 /sizeof(asn_DEF_max_tags_32[0]), /* 2 */
503         { 0, &asn_PER_type_max_constr_32, NativeEnumerated_constraint },
504         0, 0,   /* Defined elsewhere */
505         &asn_SPC_max_specs_32   /* Additional specs */
506 };
507
508 static const asn_INTEGER_enum_map_t asn_MAP_avg_value2enum_35[] = {
509         { 0,    4,      "true" }
510         /* This list is extensible */
511 };
512 static const unsigned int asn_MAP_avg_enum2value_35[] = {
513         0       /* true(0) */
514         /* This list is extensible */
515 };
516 static const asn_INTEGER_specifics_t asn_SPC_avg_specs_35 = {
517         asn_MAP_avg_value2enum_35,      /* "tag" => N; sorted by tag */
518         asn_MAP_avg_enum2value_35,      /* N => "tag"; sorted by N */
519         1,      /* Number of elements in the maps */
520         2,      /* Extensions before this member */
521         1,      /* Strict enumeration */
522         0,      /* Native long size */
523         0
524 };
525 static const ber_tlv_tag_t asn_DEF_avg_tags_35[] = {
526         (ASN_TAG_CLASS_CONTEXT | (20 << 2)),
527         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
528 };
529 static /* Use -fall-defs-global to expose */
530 asn_TYPE_descriptor_t asn_DEF_avg_35 = {
531         "avg",
532         "avg",
533         &asn_OP_NativeEnumerated,
534         asn_DEF_avg_tags_35,
535         sizeof(asn_DEF_avg_tags_35)
536                 /sizeof(asn_DEF_avg_tags_35[0]) - 1, /* 1 */
537         asn_DEF_avg_tags_35,    /* Same as above */
538         sizeof(asn_DEF_avg_tags_35)
539                 /sizeof(asn_DEF_avg_tags_35[0]), /* 2 */
540         { 0, &asn_PER_type_avg_constr_35, NativeEnumerated_constraint },
541         0, 0,   /* Defined elsewhere */
542         &asn_SPC_avg_specs_35   /* Additional specs */
543 };
544
545 asn_TYPE_member_t asn_MBR_MeasurementLabel_1[] = {
546         { ATF_POINTER, 21, offsetof(struct MeasurementLabel, noLabel),
547                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
548                 -1,     /* IMPLICIT tag at current level */
549                 &asn_DEF_noLabel_2,
550                 0,
551                 { 0, 0, 0 },
552                 0, 0, /* No default value */
553                 "noLabel"
554                 },
555         { ATF_POINTER, 20, offsetof(struct MeasurementLabel, plmnID),
556                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
557                 -1,     /* IMPLICIT tag at current level */
558                 &asn_DEF_PLMNIdentity,
559                 0,
560                 { 0, 0, 0 },
561                 0, 0, /* No default value */
562                 "plmnID"
563                 },
564         { ATF_POINTER, 19, offsetof(struct MeasurementLabel, sliceID),
565                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
566                 -1,     /* IMPLICIT tag at current level */
567                 &asn_DEF_S_NSSAI,
568                 0,
569                 { 0, 0, 0 },
570                 0, 0, /* No default value */
571                 "sliceID"
572                 },
573         { ATF_POINTER, 18, offsetof(struct MeasurementLabel, fiveQI),
574                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
575                 -1,     /* IMPLICIT tag at current level */
576                 &asn_DEF_FiveQI,
577                 0,
578                 { 0, 0, 0 },
579                 0, 0, /* No default value */
580                 "fiveQI"
581                 },
582         { ATF_POINTER, 17, offsetof(struct MeasurementLabel, qFI),
583                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
584                 -1,     /* IMPLICIT tag at current level */
585                 &asn_DEF_QosFlowIdentifier,
586                 0,
587                 { 0, 0, 0 },
588                 0, 0, /* No default value */
589                 "qFI"
590                 },
591         { ATF_POINTER, 16, offsetof(struct MeasurementLabel, qCI),
592                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
593                 -1,     /* IMPLICIT tag at current level */
594                 &asn_DEF_QCI,
595                 0,
596                 { 0, 0, 0 },
597                 0, 0, /* No default value */
598                 "qCI"
599                 },
600         { ATF_POINTER, 15, offsetof(struct MeasurementLabel, qCImax),
601                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
602                 -1,     /* IMPLICIT tag at current level */
603                 &asn_DEF_QCI,
604                 0,
605                 { 0, 0, 0 },
606                 0, 0, /* No default value */
607                 "qCImax"
608                 },
609         { ATF_POINTER, 14, offsetof(struct MeasurementLabel, qCImin),
610                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
611                 -1,     /* IMPLICIT tag at current level */
612                 &asn_DEF_QCI,
613                 0,
614                 { 0, 0, 0 },
615                 0, 0, /* No default value */
616                 "qCImin"
617                 },
618         { ATF_POINTER, 13, offsetof(struct MeasurementLabel, aRPmax),
619                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
620                 -1,     /* IMPLICIT tag at current level */
621                 &asn_DEF_NativeInteger,
622                 0,
623                 { 0, &asn_PER_memb_aRPmax_constr_12,  memb_aRPmax_constraint_1 },
624                 0, 0, /* No default value */
625                 "aRPmax"
626                 },
627         { ATF_POINTER, 12, offsetof(struct MeasurementLabel, aRPmin),
628                 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
629                 -1,     /* IMPLICIT tag at current level */
630                 &asn_DEF_NativeInteger,
631                 0,
632                 { 0, &asn_PER_memb_aRPmin_constr_13,  memb_aRPmin_constraint_1 },
633                 0, 0, /* No default value */
634                 "aRPmin"
635                 },
636         { ATF_POINTER, 11, offsetof(struct MeasurementLabel, bitrateRange),
637                 (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
638                 -1,     /* IMPLICIT tag at current level */
639                 &asn_DEF_NativeInteger,
640                 0,
641                 { 0, &asn_PER_memb_bitrateRange_constr_14,  memb_bitrateRange_constraint_1 },
642                 0, 0, /* No default value */
643                 "bitrateRange"
644                 },
645         { ATF_POINTER, 10, offsetof(struct MeasurementLabel, layerMU_MIMO),
646                 (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
647                 -1,     /* IMPLICIT tag at current level */
648                 &asn_DEF_NativeInteger,
649                 0,
650                 { 0, &asn_PER_memb_layerMU_MIMO_constr_15,  memb_layerMU_MIMO_constraint_1 },
651                 0, 0, /* No default value */
652                 "layerMU-MIMO"
653                 },
654         { ATF_POINTER, 9, offsetof(struct MeasurementLabel, sUM),
655                 (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
656                 -1,     /* IMPLICIT tag at current level */
657                 &asn_DEF_sUM_16,
658                 0,
659                 { 0, 0, 0 },
660                 0, 0, /* No default value */
661                 "sUM"
662                 },
663         { ATF_POINTER, 8, offsetof(struct MeasurementLabel, distBinX),
664                 (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
665                 -1,     /* IMPLICIT tag at current level */
666                 &asn_DEF_NativeInteger,
667                 0,
668                 { 0, &asn_PER_memb_distBinX_constr_19,  memb_distBinX_constraint_1 },
669                 0, 0, /* No default value */
670                 "distBinX"
671                 },
672         { ATF_POINTER, 7, offsetof(struct MeasurementLabel, distBinY),
673                 (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
674                 -1,     /* IMPLICIT tag at current level */
675                 &asn_DEF_NativeInteger,
676                 0,
677                 { 0, &asn_PER_memb_distBinY_constr_20,  memb_distBinY_constraint_1 },
678                 0, 0, /* No default value */
679                 "distBinY"
680                 },
681         { ATF_POINTER, 6, offsetof(struct MeasurementLabel, distBinZ),
682                 (ASN_TAG_CLASS_CONTEXT | (15 << 2)),
683                 -1,     /* IMPLICIT tag at current level */
684                 &asn_DEF_NativeInteger,
685                 0,
686                 { 0, &asn_PER_memb_distBinZ_constr_21,  memb_distBinZ_constraint_1 },
687                 0, 0, /* No default value */
688                 "distBinZ"
689                 },
690         { ATF_POINTER, 5, offsetof(struct MeasurementLabel, preLabelOverride),
691                 (ASN_TAG_CLASS_CONTEXT | (16 << 2)),
692                 -1,     /* IMPLICIT tag at current level */
693                 &asn_DEF_preLabelOverride_22,
694                 0,
695                 { 0, 0, 0 },
696                 0, 0, /* No default value */
697                 "preLabelOverride"
698                 },
699         { ATF_POINTER, 4, offsetof(struct MeasurementLabel, startEndInd),
700                 (ASN_TAG_CLASS_CONTEXT | (17 << 2)),
701                 -1,     /* IMPLICIT tag at current level */
702                 &asn_DEF_startEndInd_25,
703                 0,
704                 { 0, 0, 0 },
705                 0, 0, /* No default value */
706                 "startEndInd"
707                 },
708         { ATF_POINTER, 3, offsetof(struct MeasurementLabel, min),
709                 (ASN_TAG_CLASS_CONTEXT | (18 << 2)),
710                 -1,     /* IMPLICIT tag at current level */
711                 &asn_DEF_min_29,
712                 0,
713                 { 0, 0, 0 },
714                 0, 0, /* No default value */
715                 "min"
716                 },
717         { ATF_POINTER, 2, offsetof(struct MeasurementLabel, max),
718                 (ASN_TAG_CLASS_CONTEXT | (19 << 2)),
719                 -1,     /* IMPLICIT tag at current level */
720                 &asn_DEF_max_32,
721                 0,
722                 { 0, 0, 0 },
723                 0, 0, /* No default value */
724                 "max"
725                 },
726         { ATF_POINTER, 1, offsetof(struct MeasurementLabel, avg),
727                 (ASN_TAG_CLASS_CONTEXT | (20 << 2)),
728                 -1,     /* IMPLICIT tag at current level */
729                 &asn_DEF_avg_35,
730                 0,
731                 { 0, 0, 0 },
732                 0, 0, /* No default value */
733                 "avg"
734                 },
735 };
736 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 };
737 static const ber_tlv_tag_t asn_DEF_MeasurementLabel_tags_1[] = {
738         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
739 };
740 static const asn_TYPE_tag2member_t asn_MAP_MeasurementLabel_tag2el_1[] = {
741     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* noLabel */
742     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* plmnID */
743     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* sliceID */
744     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* fiveQI */
745     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* qFI */
746     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* qCI */
747     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* qCImax */
748     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* qCImin */
749     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* aRPmax */
750     { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* aRPmin */
751     { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* bitrateRange */
752     { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* layerMU-MIMO */
753     { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* sUM */
754     { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* distBinX */
755     { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* distBinY */
756     { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* distBinZ */
757     { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 }, /* preLabelOverride */
758     { (ASN_TAG_CLASS_CONTEXT | (17 << 2)), 17, 0, 0 }, /* startEndInd */
759     { (ASN_TAG_CLASS_CONTEXT | (18 << 2)), 18, 0, 0 }, /* min */
760     { (ASN_TAG_CLASS_CONTEXT | (19 << 2)), 19, 0, 0 }, /* max */
761     { (ASN_TAG_CLASS_CONTEXT | (20 << 2)), 20, 0, 0 } /* avg */
762 };
763 asn_SEQUENCE_specifics_t asn_SPC_MeasurementLabel_specs_1 = {
764         sizeof(struct MeasurementLabel),
765         offsetof(struct MeasurementLabel, _asn_ctx),
766         asn_MAP_MeasurementLabel_tag2el_1,
767         21,     /* Count of tags in the map */
768         asn_MAP_MeasurementLabel_oms_1, /* Optional members */
769         21, 0,  /* Root/Additions */
770         21,     /* First extension addition */
771 };
772 asn_TYPE_descriptor_t asn_DEF_MeasurementLabel = {
773         "MeasurementLabel",
774         "MeasurementLabel",
775         &asn_OP_SEQUENCE,
776         asn_DEF_MeasurementLabel_tags_1,
777         sizeof(asn_DEF_MeasurementLabel_tags_1)
778                 /sizeof(asn_DEF_MeasurementLabel_tags_1[0]), /* 1 */
779         asn_DEF_MeasurementLabel_tags_1,        /* Same as above */
780         sizeof(asn_DEF_MeasurementLabel_tags_1)
781                 /sizeof(asn_DEF_MeasurementLabel_tags_1[0]), /* 1 */
782         { 0, 0, SEQUENCE_constraint },
783         asn_MBR_MeasurementLabel_1,
784         21,     /* Elements count */
785         &asn_SPC_MeasurementLabel_specs_1       /* Additional specs */
786 };
787