Merge "Cell down alarm notification [Issue-Id: ODUHIGH-430]"
[o-du/l2.git] / src / codec_utils / RRC / EventTriggerConfigInterRAT.c
1 /*
2  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3  * From ASN.1 module "NR-RRC-Definitions"
4  *      found in "./22April22_Paging/rrc_15.3_asn.asn1"
5  *      `asn1c -D ./22April22_Paging -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
6  */
7
8 #include "EventTriggerConfigInterRAT.h"
9
10 /*
11  * This type is implemented using NativeEnumerated,
12  * so here we adjust the DEF accordingly.
13  */
14 static int
15 memb_maxReportCells_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
16                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
17         long value;
18         
19         if(!sptr) {
20                 ASN__CTFAIL(app_key, td, sptr,
21                         "%s: value not given (%s:%d)",
22                         td->name, __FILE__, __LINE__);
23                 return -1;
24         }
25         
26         value = *(const long *)sptr;
27         
28         if((value >= 1 && value <= 8)) {
29                 /* Constraint check succeeded */
30                 return 0;
31         } else {
32                 ASN__CTFAIL(app_key, td, sptr,
33                         "%s: constraint failed (%s:%d)",
34                         td->name, __FILE__, __LINE__);
35                 return -1;
36         }
37 }
38
39 static asn_oer_constraints_t asn_OER_type_eventId_constr_2 CC_NOTUSED = {
40         { 0, 0 },
41         -1};
42 static asn_per_constraints_t asn_PER_type_eventId_constr_2 CC_NOTUSED = {
43         { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
44         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
45         0, 0    /* No PER value map */
46 };
47 static asn_oer_constraints_t asn_OER_type_reportAmount_constr_19 CC_NOTUSED = {
48         { 0, 0 },
49         -1};
50 static asn_per_constraints_t asn_PER_type_reportAmount_constr_19 CC_NOTUSED = {
51         { APC_CONSTRAINED,       3,  3,  0,  7 }        /* (0..7) */,
52         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
53         0, 0    /* No PER value map */
54 };
55 static asn_oer_constraints_t asn_OER_memb_maxReportCells_constr_29 CC_NOTUSED = {
56         { 1, 1 }        /* (1..8) */,
57         -1};
58 static asn_per_constraints_t asn_PER_memb_maxReportCells_constr_29 CC_NOTUSED = {
59         { APC_CONSTRAINED,       3,  3,  1,  8 }        /* (1..8) */,
60         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
61         0, 0    /* No PER value map */
62 };
63 static asn_TYPE_member_t asn_MBR_eventB1_3[] = {
64         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB1, b1_ThresholdEUTRA),
65                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
66                 +1,     /* EXPLICIT tag at current level */
67                 &asn_DEF_MeasTriggerQuantityEUTRA,
68                 0,
69                 { 0, 0, 0 },
70                 0, 0, /* No default value */
71                 "b1-ThresholdEUTRA"
72                 },
73         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB1, reportOnLeave),
74                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
75                 -1,     /* IMPLICIT tag at current level */
76                 &asn_DEF_BOOLEAN,
77                 0,
78                 { 0, 0, 0 },
79                 0, 0, /* No default value */
80                 "reportOnLeave"
81                 },
82         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB1, hysteresis),
83                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
84                 -1,     /* IMPLICIT tag at current level */
85                 &asn_DEF_Hysteresis,
86                 0,
87                 { 0, 0, 0 },
88                 0, 0, /* No default value */
89                 "hysteresis"
90                 },
91         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB1, timeToTrigger),
92                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
93                 -1,     /* IMPLICIT tag at current level */
94                 &asn_DEF_TimeToTrigger,
95                 0,
96                 { 0, 0, 0 },
97                 0, 0, /* No default value */
98                 "timeToTrigger"
99                 },
100 };
101 static const ber_tlv_tag_t asn_DEF_eventB1_tags_3[] = {
102         (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
103         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
104 };
105 static const asn_TYPE_tag2member_t asn_MAP_eventB1_tag2el_3[] = {
106     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* b1-ThresholdEUTRA */
107     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportOnLeave */
108     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* hysteresis */
109     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* timeToTrigger */
110 };
111 static asn_SEQUENCE_specifics_t asn_SPC_eventB1_specs_3 = {
112         sizeof(struct EventTriggerConfigInterRAT__eventId__eventB1),
113         offsetof(struct EventTriggerConfigInterRAT__eventId__eventB1, _asn_ctx),
114         asn_MAP_eventB1_tag2el_3,
115         4,      /* Count of tags in the map */
116         0, 0, 0,        /* Optional elements (not needed) */
117         4,      /* First extension addition */
118 };
119 static /* Use -fall-defs-global to expose */
120 asn_TYPE_descriptor_t asn_DEF_eventB1_3 = {
121         "eventB1",
122         "eventB1",
123         &asn_OP_SEQUENCE,
124         asn_DEF_eventB1_tags_3,
125         sizeof(asn_DEF_eventB1_tags_3)
126                 /sizeof(asn_DEF_eventB1_tags_3[0]) - 1, /* 1 */
127         asn_DEF_eventB1_tags_3, /* Same as above */
128         sizeof(asn_DEF_eventB1_tags_3)
129                 /sizeof(asn_DEF_eventB1_tags_3[0]), /* 2 */
130         { 0, 0, SEQUENCE_constraint },
131         asn_MBR_eventB1_3,
132         4,      /* Elements count */
133         &asn_SPC_eventB1_specs_3        /* Additional specs */
134 };
135
136 static asn_TYPE_member_t asn_MBR_eventB2_9[] = {
137         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, b2_Threshold1),
138                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
139                 +1,     /* EXPLICIT tag at current level */
140                 &asn_DEF_MeasTriggerQuantity,
141                 0,
142                 { 0, 0, 0 },
143                 0, 0, /* No default value */
144                 "b2-Threshold1"
145                 },
146         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, b2_Threshold2EUTRA),
147                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
148                 +1,     /* EXPLICIT tag at current level */
149                 &asn_DEF_MeasTriggerQuantityEUTRA,
150                 0,
151                 { 0, 0, 0 },
152                 0, 0, /* No default value */
153                 "b2-Threshold2EUTRA"
154                 },
155         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, reportOnLeave),
156                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
157                 -1,     /* IMPLICIT tag at current level */
158                 &asn_DEF_BOOLEAN,
159                 0,
160                 { 0, 0, 0 },
161                 0, 0, /* No default value */
162                 "reportOnLeave"
163                 },
164         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, hysteresis),
165                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
166                 -1,     /* IMPLICIT tag at current level */
167                 &asn_DEF_Hysteresis,
168                 0,
169                 { 0, 0, 0 },
170                 0, 0, /* No default value */
171                 "hysteresis"
172                 },
173         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, timeToTrigger),
174                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
175                 -1,     /* IMPLICIT tag at current level */
176                 &asn_DEF_TimeToTrigger,
177                 0,
178                 { 0, 0, 0 },
179                 0, 0, /* No default value */
180                 "timeToTrigger"
181                 },
182 };
183 static const ber_tlv_tag_t asn_DEF_eventB2_tags_9[] = {
184         (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
185         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
186 };
187 static const asn_TYPE_tag2member_t asn_MAP_eventB2_tag2el_9[] = {
188     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* b2-Threshold1 */
189     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* b2-Threshold2EUTRA */
190     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportOnLeave */
191     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* hysteresis */
192     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* timeToTrigger */
193 };
194 static asn_SEQUENCE_specifics_t asn_SPC_eventB2_specs_9 = {
195         sizeof(struct EventTriggerConfigInterRAT__eventId__eventB2),
196         offsetof(struct EventTriggerConfigInterRAT__eventId__eventB2, _asn_ctx),
197         asn_MAP_eventB2_tag2el_9,
198         5,      /* Count of tags in the map */
199         0, 0, 0,        /* Optional elements (not needed) */
200         5,      /* First extension addition */
201 };
202 static /* Use -fall-defs-global to expose */
203 asn_TYPE_descriptor_t asn_DEF_eventB2_9 = {
204         "eventB2",
205         "eventB2",
206         &asn_OP_SEQUENCE,
207         asn_DEF_eventB2_tags_9,
208         sizeof(asn_DEF_eventB2_tags_9)
209                 /sizeof(asn_DEF_eventB2_tags_9[0]) - 1, /* 1 */
210         asn_DEF_eventB2_tags_9, /* Same as above */
211         sizeof(asn_DEF_eventB2_tags_9)
212                 /sizeof(asn_DEF_eventB2_tags_9[0]), /* 2 */
213         { 0, 0, SEQUENCE_constraint },
214         asn_MBR_eventB2_9,
215         5,      /* Elements count */
216         &asn_SPC_eventB2_specs_9        /* Additional specs */
217 };
218
219 static asn_TYPE_member_t asn_MBR_eventId_2[] = {
220         { ATF_POINTER, 0, offsetof(struct EventTriggerConfigInterRAT__eventId, choice.eventB1),
221                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
222                 0,
223                 &asn_DEF_eventB1_3,
224                 0,
225                 { 0, 0, 0 },
226                 0, 0, /* No default value */
227                 "eventB1"
228                 },
229         { ATF_POINTER, 0, offsetof(struct EventTriggerConfigInterRAT__eventId, choice.eventB2),
230                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
231                 0,
232                 &asn_DEF_eventB2_9,
233                 0,
234                 { 0, 0, 0 },
235                 0, 0, /* No default value */
236                 "eventB2"
237                 },
238 };
239 static const asn_TYPE_tag2member_t asn_MAP_eventId_tag2el_2[] = {
240     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventB1 */
241     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* eventB2 */
242 };
243 static asn_CHOICE_specifics_t asn_SPC_eventId_specs_2 = {
244         sizeof(struct EventTriggerConfigInterRAT__eventId),
245         offsetof(struct EventTriggerConfigInterRAT__eventId, _asn_ctx),
246         offsetof(struct EventTriggerConfigInterRAT__eventId, present),
247         sizeof(((struct EventTriggerConfigInterRAT__eventId *)0)->present),
248         asn_MAP_eventId_tag2el_2,
249         2,      /* Count of tags in the map */
250         0, 0,
251         2       /* Extensions start */
252 };
253 static /* Use -fall-defs-global to expose */
254 asn_TYPE_descriptor_t asn_DEF_eventId_2 = {
255         "eventId",
256         "eventId",
257         &asn_OP_CHOICE,
258         0,      /* No effective tags (pointer) */
259         0,      /* No effective tags (count) */
260         0,      /* No tags (pointer) */
261         0,      /* No tags (count) */
262         { &asn_OER_type_eventId_constr_2, &asn_PER_type_eventId_constr_2, CHOICE_constraint },
263         asn_MBR_eventId_2,
264         2,      /* Elements count */
265         &asn_SPC_eventId_specs_2        /* Additional specs */
266 };
267
268 static const asn_INTEGER_enum_map_t asn_MAP_reportAmount_value2enum_19[] = {
269         { 0,    2,      "r1" },
270         { 1,    2,      "r2" },
271         { 2,    2,      "r4" },
272         { 3,    2,      "r8" },
273         { 4,    3,      "r16" },
274         { 5,    3,      "r32" },
275         { 6,    3,      "r64" },
276         { 7,    8,      "infinity" }
277 };
278 static const unsigned int asn_MAP_reportAmount_enum2value_19[] = {
279         7,      /* infinity(7) */
280         0,      /* r1(0) */
281         4,      /* r16(4) */
282         1,      /* r2(1) */
283         5,      /* r32(5) */
284         2,      /* r4(2) */
285         6,      /* r64(6) */
286         3       /* r8(3) */
287 };
288 static const asn_INTEGER_specifics_t asn_SPC_reportAmount_specs_19 = {
289         asn_MAP_reportAmount_value2enum_19,     /* "tag" => N; sorted by tag */
290         asn_MAP_reportAmount_enum2value_19,     /* N => "tag"; sorted by N */
291         8,      /* Number of elements in the maps */
292         0,      /* Enumeration is not extensible */
293         1,      /* Strict enumeration */
294         0,      /* Native long size */
295         0
296 };
297 static const ber_tlv_tag_t asn_DEF_reportAmount_tags_19[] = {
298         (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
299         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
300 };
301 static /* Use -fall-defs-global to expose */
302 asn_TYPE_descriptor_t asn_DEF_reportAmount_19 = {
303         "reportAmount",
304         "reportAmount",
305         &asn_OP_NativeEnumerated,
306         asn_DEF_reportAmount_tags_19,
307         sizeof(asn_DEF_reportAmount_tags_19)
308                 /sizeof(asn_DEF_reportAmount_tags_19[0]) - 1, /* 1 */
309         asn_DEF_reportAmount_tags_19,   /* Same as above */
310         sizeof(asn_DEF_reportAmount_tags_19)
311                 /sizeof(asn_DEF_reportAmount_tags_19[0]), /* 2 */
312         { &asn_OER_type_reportAmount_constr_19, &asn_PER_type_reportAmount_constr_19, NativeEnumerated_constraint },
313         0, 0,   /* Defined elsewhere */
314         &asn_SPC_reportAmount_specs_19  /* Additional specs */
315 };
316
317 asn_TYPE_member_t asn_MBR_EventTriggerConfigInterRAT_1[] = {
318         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, eventId),
319                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
320                 +1,     /* EXPLICIT tag at current level */
321                 &asn_DEF_eventId_2,
322                 0,
323                 { 0, 0, 0 },
324                 0, 0, /* No default value */
325                 "eventId"
326                 },
327         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, rsType),
328                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
329                 -1,     /* IMPLICIT tag at current level */
330                 &asn_DEF_NR_RS_Type,
331                 0,
332                 { 0, 0, 0 },
333                 0, 0, /* No default value */
334                 "rsType"
335                 },
336         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, reportInterval),
337                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
338                 -1,     /* IMPLICIT tag at current level */
339                 &asn_DEF_ReportInterval,
340                 0,
341                 { 0, 0, 0 },
342                 0, 0, /* No default value */
343                 "reportInterval"
344                 },
345         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, reportAmount),
346                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
347                 -1,     /* IMPLICIT tag at current level */
348                 &asn_DEF_reportAmount_19,
349                 0,
350                 { 0, 0, 0 },
351                 0, 0, /* No default value */
352                 "reportAmount"
353                 },
354         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, reportQuantity),
355                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
356                 -1,     /* IMPLICIT tag at current level */
357                 &asn_DEF_MeasReportQuantity,
358                 0,
359                 { 0, 0, 0 },
360                 0, 0, /* No default value */
361                 "reportQuantity"
362                 },
363         { ATF_NOFLAGS, 0, offsetof(struct EventTriggerConfigInterRAT, maxReportCells),
364                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
365                 -1,     /* IMPLICIT tag at current level */
366                 &asn_DEF_NativeInteger,
367                 0,
368                 { &asn_OER_memb_maxReportCells_constr_29, &asn_PER_memb_maxReportCells_constr_29,  memb_maxReportCells_constraint_1 },
369                 0, 0, /* No default value */
370                 "maxReportCells"
371                 },
372 };
373 static const ber_tlv_tag_t asn_DEF_EventTriggerConfigInterRAT_tags_1[] = {
374         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
375 };
376 static const asn_TYPE_tag2member_t asn_MAP_EventTriggerConfigInterRAT_tag2el_1[] = {
377     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* eventId */
378     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* rsType */
379     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* reportInterval */
380     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* reportAmount */
381     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* reportQuantity */
382     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* maxReportCells */
383 };
384 asn_SEQUENCE_specifics_t asn_SPC_EventTriggerConfigInterRAT_specs_1 = {
385         sizeof(struct EventTriggerConfigInterRAT),
386         offsetof(struct EventTriggerConfigInterRAT, _asn_ctx),
387         asn_MAP_EventTriggerConfigInterRAT_tag2el_1,
388         6,      /* Count of tags in the map */
389         0, 0, 0,        /* Optional elements (not needed) */
390         6,      /* First extension addition */
391 };
392 asn_TYPE_descriptor_t asn_DEF_EventTriggerConfigInterRAT = {
393         "EventTriggerConfigInterRAT",
394         "EventTriggerConfigInterRAT",
395         &asn_OP_SEQUENCE,
396         asn_DEF_EventTriggerConfigInterRAT_tags_1,
397         sizeof(asn_DEF_EventTriggerConfigInterRAT_tags_1)
398                 /sizeof(asn_DEF_EventTriggerConfigInterRAT_tags_1[0]), /* 1 */
399         asn_DEF_EventTriggerConfigInterRAT_tags_1,      /* Same as above */
400         sizeof(asn_DEF_EventTriggerConfigInterRAT_tags_1)
401                 /sizeof(asn_DEF_EventTriggerConfigInterRAT_tags_1[0]), /* 1 */
402         { 0, 0, SEQUENCE_constraint },
403         asn_MBR_EventTriggerConfigInterRAT_1,
404         6,      /* Elements count */
405         &asn_SPC_EventTriggerConfigInterRAT_specs_1     /* Additional specs */
406 };
407