ISSUE ID:- RICAPP-216
[ric-app/bouncer.git] / Bouncer / e2sm_rc / lib / NeighborCell-Item-Choice-NR.c
1 /*
2  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3  * From ASN.1 module "E2SM-RC-IEs"
4  *      found in "e2sm_rc.asn"
5  *      `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example`
6  */
7
8 #include "NeighborCell-Item-Choice-NR.h"
9
10 /*
11  * This type is implemented using NativeEnumerated,
12  * so here we adjust the DEF accordingly.
13  */
14 /*
15  * This type is implemented using NativeEnumerated,
16  * so here we adjust the DEF accordingly.
17  */
18 /*
19  * This type is implemented using NativeEnumerated,
20  * so here we adjust the DEF accordingly.
21  */
22 static int
23 memb_version_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
24                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
25         long value;
26         
27         if(!sptr) {
28                 ASN__CTFAIL(app_key, td, sptr,
29                         "%s: value not given (%s:%d)",
30                         td->name, __FILE__, __LINE__);
31                 return -1;
32         }
33         
34         value = *(const long *)sptr;
35         
36         if((value >= 1 && value <= 65535)) {
37                 /* Constraint check succeeded */
38                 return 0;
39         } else {
40                 ASN__CTFAIL(app_key, td, sptr,
41                         "%s: constraint failed (%s:%d)",
42                         td->name, __FILE__, __LINE__);
43                 return -1;
44         }
45 }
46
47 static asn_oer_constraints_t asn_OER_type_nR_mode_info_constr_5 CC_NOTUSED = {
48         { 0, 0 },
49         -1};
50 static asn_per_constraints_t asn_PER_type_nR_mode_info_constr_5 CC_NOTUSED = {
51         { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
52         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
53         0, 0    /* No PER value map */
54 };
55 static asn_oer_constraints_t asn_OER_type_x2_Xn_established_constr_10 CC_NOTUSED = {
56         { 0, 0 },
57         -1};
58 static asn_per_constraints_t asn_PER_type_x2_Xn_established_constr_10 CC_NOTUSED = {
59         { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
60         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
61         0, 0    /* No PER value map */
62 };
63 static asn_oer_constraints_t asn_OER_type_hO_validated_constr_14 CC_NOTUSED = {
64         { 0, 0 },
65         -1};
66 static asn_per_constraints_t asn_PER_type_hO_validated_constr_14 CC_NOTUSED = {
67         { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }    /* (0..1,...) */,
68         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
69         0, 0    /* No PER value map */
70 };
71 static asn_oer_constraints_t asn_OER_memb_version_constr_18 CC_NOTUSED = {
72         { 0, 0 },
73         -1};
74 static asn_per_constraints_t asn_PER_memb_version_constr_18 CC_NOTUSED = {
75         { APC_CONSTRAINED | APC_EXTENSIBLE,  16,  16,  1,  65535 }      /* (1..65535,...) */,
76         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
77         0, 0    /* No PER value map */
78 };
79 static const asn_INTEGER_enum_map_t asn_MAP_nR_mode_info_value2enum_5[] = {
80         { 0,    3,      "fdd" },
81         { 1,    3,      "tdd" }
82         /* This list is extensible */
83 };
84 static const unsigned int asn_MAP_nR_mode_info_enum2value_5[] = {
85         0,      /* fdd(0) */
86         1       /* tdd(1) */
87         /* This list is extensible */
88 };
89 static const asn_INTEGER_specifics_t asn_SPC_nR_mode_info_specs_5 = {
90         asn_MAP_nR_mode_info_value2enum_5,      /* "tag" => N; sorted by tag */
91         asn_MAP_nR_mode_info_enum2value_5,      /* N => "tag"; sorted by N */
92         2,      /* Number of elements in the maps */
93         3,      /* Extensions before this member */
94         1,      /* Strict enumeration */
95         0,      /* Native long size */
96         0
97 };
98 static const ber_tlv_tag_t asn_DEF_nR_mode_info_tags_5[] = {
99         (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
100         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
101 };
102 static /* Use -fall-defs-global to expose */
103 asn_TYPE_descriptor_t asn_DEF_nR_mode_info_5 = {
104         "nR-mode-info",
105         "nR-mode-info",
106         &asn_OP_NativeEnumerated,
107         asn_DEF_nR_mode_info_tags_5,
108         sizeof(asn_DEF_nR_mode_info_tags_5)
109                 /sizeof(asn_DEF_nR_mode_info_tags_5[0]) - 1, /* 1 */
110         asn_DEF_nR_mode_info_tags_5,    /* Same as above */
111         sizeof(asn_DEF_nR_mode_info_tags_5)
112                 /sizeof(asn_DEF_nR_mode_info_tags_5[0]), /* 2 */
113         { &asn_OER_type_nR_mode_info_constr_5, &asn_PER_type_nR_mode_info_constr_5, NativeEnumerated_constraint },
114         0, 0,   /* Defined elsewhere */
115         &asn_SPC_nR_mode_info_specs_5   /* Additional specs */
116 };
117
118 static const asn_INTEGER_enum_map_t asn_MAP_x2_Xn_established_value2enum_10[] = {
119         { 0,    4,      "true" },
120         { 1,    5,      "false" }
121         /* This list is extensible */
122 };
123 static const unsigned int asn_MAP_x2_Xn_established_enum2value_10[] = {
124         1,      /* false(1) */
125         0       /* true(0) */
126         /* This list is extensible */
127 };
128 static const asn_INTEGER_specifics_t asn_SPC_x2_Xn_established_specs_10 = {
129         asn_MAP_x2_Xn_established_value2enum_10,        /* "tag" => N; sorted by tag */
130         asn_MAP_x2_Xn_established_enum2value_10,        /* N => "tag"; sorted by N */
131         2,      /* Number of elements in the maps */
132         3,      /* Extensions before this member */
133         1,      /* Strict enumeration */
134         0,      /* Native long size */
135         0
136 };
137 static const ber_tlv_tag_t asn_DEF_x2_Xn_established_tags_10[] = {
138         (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
139         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
140 };
141 static /* Use -fall-defs-global to expose */
142 asn_TYPE_descriptor_t asn_DEF_x2_Xn_established_10 = {
143         "x2-Xn-established",
144         "x2-Xn-established",
145         &asn_OP_NativeEnumerated,
146         asn_DEF_x2_Xn_established_tags_10,
147         sizeof(asn_DEF_x2_Xn_established_tags_10)
148                 /sizeof(asn_DEF_x2_Xn_established_tags_10[0]) - 1, /* 1 */
149         asn_DEF_x2_Xn_established_tags_10,      /* Same as above */
150         sizeof(asn_DEF_x2_Xn_established_tags_10)
151                 /sizeof(asn_DEF_x2_Xn_established_tags_10[0]), /* 2 */
152         { &asn_OER_type_x2_Xn_established_constr_10, &asn_PER_type_x2_Xn_established_constr_10, NativeEnumerated_constraint },
153         0, 0,   /* Defined elsewhere */
154         &asn_SPC_x2_Xn_established_specs_10     /* Additional specs */
155 };
156
157 static const asn_INTEGER_enum_map_t asn_MAP_hO_validated_value2enum_14[] = {
158         { 0,    4,      "true" },
159         { 1,    5,      "false" }
160         /* This list is extensible */
161 };
162 static const unsigned int asn_MAP_hO_validated_enum2value_14[] = {
163         1,      /* false(1) */
164         0       /* true(0) */
165         /* This list is extensible */
166 };
167 static const asn_INTEGER_specifics_t asn_SPC_hO_validated_specs_14 = {
168         asn_MAP_hO_validated_value2enum_14,     /* "tag" => N; sorted by tag */
169         asn_MAP_hO_validated_enum2value_14,     /* N => "tag"; sorted by N */
170         2,      /* Number of elements in the maps */
171         3,      /* Extensions before this member */
172         1,      /* Strict enumeration */
173         0,      /* Native long size */
174         0
175 };
176 static const ber_tlv_tag_t asn_DEF_hO_validated_tags_14[] = {
177         (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
178         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
179 };
180 static /* Use -fall-defs-global to expose */
181 asn_TYPE_descriptor_t asn_DEF_hO_validated_14 = {
182         "hO-validated",
183         "hO-validated",
184         &asn_OP_NativeEnumerated,
185         asn_DEF_hO_validated_tags_14,
186         sizeof(asn_DEF_hO_validated_tags_14)
187                 /sizeof(asn_DEF_hO_validated_tags_14[0]) - 1, /* 1 */
188         asn_DEF_hO_validated_tags_14,   /* Same as above */
189         sizeof(asn_DEF_hO_validated_tags_14)
190                 /sizeof(asn_DEF_hO_validated_tags_14[0]), /* 2 */
191         { &asn_OER_type_hO_validated_constr_14, &asn_PER_type_hO_validated_constr_14, NativeEnumerated_constraint },
192         0, 0,   /* Defined elsewhere */
193         &asn_SPC_hO_validated_specs_14  /* Additional specs */
194 };
195
196 asn_TYPE_member_t asn_MBR_NeighborCell_Item_Choice_NR_1[] = {
197         { ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_CGI),
198                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
199                 -1,     /* IMPLICIT tag at current level */
200                 &asn_DEF_NR_CGI,
201                 0,
202                 { 0, 0, 0 },
203                 0, 0, /* No default value */
204                 "nR-CGI"
205                 },
206         { ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_PCI),
207                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
208                 -1,     /* IMPLICIT tag at current level */
209                 &asn_DEF_NR_PCI,
210                 0,
211                 { 0, 0, 0 },
212                 0, 0, /* No default value */
213                 "nR-PCI"
214                 },
215         { ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, fiveGS_TAC),
216                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
217                 -1,     /* IMPLICIT tag at current level */
218                 &asn_DEF_FiveGS_TAC,
219                 0,
220                 { 0, 0, 0 },
221                 0, 0, /* No default value */
222                 "fiveGS-TAC"
223                 },
224         { ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_mode_info),
225                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
226                 -1,     /* IMPLICIT tag at current level */
227                 &asn_DEF_nR_mode_info_5,
228                 0,
229                 { 0, 0, 0 },
230                 0, 0, /* No default value */
231                 "nR-mode-info"
232                 },
233         { ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, nR_FreqInfo),
234                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
235                 -1,     /* IMPLICIT tag at current level */
236                 &asn_DEF_NRFrequencyInfo,
237                 0,
238                 { 0, 0, 0 },
239                 0, 0, /* No default value */
240                 "nR-FreqInfo"
241                 },
242         { ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, x2_Xn_established),
243                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
244                 -1,     /* IMPLICIT tag at current level */
245                 &asn_DEF_x2_Xn_established_10,
246                 0,
247                 { 0, 0, 0 },
248                 0, 0, /* No default value */
249                 "x2-Xn-established"
250                 },
251         { ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, hO_validated),
252                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
253                 -1,     /* IMPLICIT tag at current level */
254                 &asn_DEF_hO_validated_14,
255                 0,
256                 { 0, 0, 0 },
257                 0, 0, /* No default value */
258                 "hO-validated"
259                 },
260         { ATF_NOFLAGS, 0, offsetof(struct NeighborCell_Item_Choice_NR, version),
261                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
262                 -1,     /* IMPLICIT tag at current level */
263                 &asn_DEF_NativeInteger,
264                 0,
265                 { &asn_OER_memb_version_constr_18, &asn_PER_memb_version_constr_18,  memb_version_constraint_1 },
266                 0, 0, /* No default value */
267                 "version"
268                 },
269 };
270 static const ber_tlv_tag_t asn_DEF_NeighborCell_Item_Choice_NR_tags_1[] = {
271         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
272 };
273 static const asn_TYPE_tag2member_t asn_MAP_NeighborCell_Item_Choice_NR_tag2el_1[] = {
274     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* nR-CGI */
275     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* nR-PCI */
276     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* fiveGS-TAC */
277     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* nR-mode-info */
278     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* nR-FreqInfo */
279     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* x2-Xn-established */
280     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* hO-validated */
281     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* version */
282 };
283 asn_SEQUENCE_specifics_t asn_SPC_NeighborCell_Item_Choice_NR_specs_1 = {
284         sizeof(struct NeighborCell_Item_Choice_NR),
285         offsetof(struct NeighborCell_Item_Choice_NR, _asn_ctx),
286         asn_MAP_NeighborCell_Item_Choice_NR_tag2el_1,
287         8,      /* Count of tags in the map */
288         0, 0, 0,        /* Optional elements (not needed) */
289         8,      /* First extension addition */
290 };
291 asn_TYPE_descriptor_t asn_DEF_NeighborCell_Item_Choice_NR = {
292         "NeighborCell-Item-Choice-NR",
293         "NeighborCell-Item-Choice-NR",
294         &asn_OP_SEQUENCE,
295         asn_DEF_NeighborCell_Item_Choice_NR_tags_1,
296         sizeof(asn_DEF_NeighborCell_Item_Choice_NR_tags_1)
297                 /sizeof(asn_DEF_NeighborCell_Item_Choice_NR_tags_1[0]), /* 1 */
298         asn_DEF_NeighborCell_Item_Choice_NR_tags_1,     /* Same as above */
299         sizeof(asn_DEF_NeighborCell_Item_Choice_NR_tags_1)
300                 /sizeof(asn_DEF_NeighborCell_Item_Choice_NR_tags_1[0]), /* 1 */
301         { 0, 0, SEQUENCE_constraint },
302         asn_MBR_NeighborCell_Item_Choice_NR_1,
303         8,      /* Elements count */
304         &asn_SPC_NeighborCell_Item_Choice_NR_specs_1    /* Additional specs */
305 };
306