5960450481ad36891083dcd6e1a630c0ad86a579
[ric-plt/resource-status-manager.git] / RSM / asn1codec / e2ap_engine / DynamicNAICSInformation.c
1 /*
2  *
3  * Copyright 2019 AT&T Intellectual Property
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18
19
20 /*
21  * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
22  * From ASN.1 module "X2AP-IEs"
23  *      found in "../../asnFiles/X2AP-IEs.asn"
24  *      `asn1c -fcompound-names -fincludes-quoted -fno-include-deps -findirect-choice -gen-PER -no-gen-OER -D.`
25  */
26
27 #include "DynamicNAICSInformation.h"
28
29 #include "ProtocolExtensionContainer.h"
30 static int
31 memb_transmissionModes_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
32                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
33         const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
34         size_t size;
35         
36         if(!sptr) {
37                 ASN__CTFAIL(app_key, td, sptr,
38                         "%s: value not given (%s:%d)",
39                         td->name, __FILE__, __LINE__);
40                 return -1;
41         }
42         
43         if(st->size > 0) {
44                 /* Size in bits */
45                 size = 8 * st->size - (st->bits_unused & 0x07);
46         } else {
47                 size = 0;
48         }
49         
50         if((size == 8)) {
51                 /* Constraint check succeeded */
52                 return 0;
53         } else {
54                 ASN__CTFAIL(app_key, td, sptr,
55                         "%s: constraint failed (%s:%d)",
56                         td->name, __FILE__, __LINE__);
57                 return -1;
58         }
59 }
60
61 static int
62 memb_pB_information_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
63                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
64         long value;
65         
66         if(!sptr) {
67                 ASN__CTFAIL(app_key, td, sptr,
68                         "%s: value not given (%s:%d)",
69                         td->name, __FILE__, __LINE__);
70                 return -1;
71         }
72         
73         value = *(const long *)sptr;
74         
75         if((value >= 0 && value <= 3)) {
76                 /* Constraint check succeeded */
77                 return 0;
78         } else {
79                 ASN__CTFAIL(app_key, td, sptr,
80                         "%s: constraint failed (%s:%d)",
81                         td->name, __FILE__, __LINE__);
82                 return -1;
83         }
84 }
85
86 static int
87 memb_pA_list_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
88                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
89         size_t size;
90         
91         if(!sptr) {
92                 ASN__CTFAIL(app_key, td, sptr,
93                         "%s: value not given (%s:%d)",
94                         td->name, __FILE__, __LINE__);
95                 return -1;
96         }
97         
98         /* Determine the number of elements */
99         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
100         
101         if((size <= 3)) {
102                 /* Perform validation of the inner elements */
103                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
104         } else {
105                 ASN__CTFAIL(app_key, td, sptr,
106                         "%s: constraint failed (%s:%d)",
107                         td->name, __FILE__, __LINE__);
108                 return -1;
109         }
110 }
111
112 static asn_per_constraints_t asn_PER_type_pA_list_constr_4 CC_NOTUSED = {
113         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
114         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (SIZE(0..3)) */,
115         0, 0    /* No PER value map */
116 };
117 static asn_per_constraints_t asn_PER_memb_transmissionModes_constr_2 CC_NOTUSED = {
118         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
119         { APC_CONSTRAINED,       0,  0,  8,  8 }        /* (SIZE(8..8)) */,
120         0, 0    /* No PER value map */
121 };
122 static asn_per_constraints_t asn_PER_memb_pB_information_constr_3 CC_NOTUSED = {
123         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (0..3) */,
124         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
125         0, 0    /* No PER value map */
126 };
127 static asn_per_constraints_t asn_PER_memb_pA_list_constr_4 CC_NOTUSED = {
128         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
129         { APC_CONSTRAINED,       2,  2,  0,  3 }        /* (SIZE(0..3)) */,
130         0, 0    /* No PER value map */
131 };
132 static asn_TYPE_member_t asn_MBR_pA_list_4[] = {
133         { ATF_POINTER, 0, 0,
134                 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2)),
135                 0,
136                 &asn_DEF_PA_Values,
137                 0,
138                 { 0, 0, 0 },
139                 0, 0, /* No default value */
140                 ""
141                 },
142 };
143 static const ber_tlv_tag_t asn_DEF_pA_list_tags_4[] = {
144         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
145         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
146 };
147 static asn_SET_OF_specifics_t asn_SPC_pA_list_specs_4 = {
148         sizeof(struct DynamicNAICSInformation__pA_list),
149         offsetof(struct DynamicNAICSInformation__pA_list, _asn_ctx),
150         1,      /* XER encoding is XMLValueList */
151 };
152 static /* Use -fall-defs-global to expose */
153 asn_TYPE_descriptor_t asn_DEF_pA_list_4 = {
154         "pA-list",
155         "pA-list",
156         &asn_OP_SEQUENCE_OF,
157         asn_DEF_pA_list_tags_4,
158         sizeof(asn_DEF_pA_list_tags_4)
159                 /sizeof(asn_DEF_pA_list_tags_4[0]) - 1, /* 1 */
160         asn_DEF_pA_list_tags_4, /* Same as above */
161         sizeof(asn_DEF_pA_list_tags_4)
162                 /sizeof(asn_DEF_pA_list_tags_4[0]), /* 2 */
163         { 0, &asn_PER_type_pA_list_constr_4, SEQUENCE_OF_constraint },
164         asn_MBR_pA_list_4,
165         1,      /* Single element */
166         &asn_SPC_pA_list_specs_4        /* Additional specs */
167 };
168
169 asn_TYPE_member_t asn_MBR_DynamicNAICSInformation_1[] = {
170         { ATF_POINTER, 2, offsetof(struct DynamicNAICSInformation, transmissionModes),
171                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
172                 -1,     /* IMPLICIT tag at current level */
173                 &asn_DEF_BIT_STRING,
174                 0,
175                 { 0, &asn_PER_memb_transmissionModes_constr_2,  memb_transmissionModes_constraint_1 },
176                 0, 0, /* No default value */
177                 "transmissionModes"
178                 },
179         { ATF_POINTER, 1, offsetof(struct DynamicNAICSInformation, pB_information),
180                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
181                 -1,     /* IMPLICIT tag at current level */
182                 &asn_DEF_NativeInteger,
183                 0,
184                 { 0, &asn_PER_memb_pB_information_constr_3,  memb_pB_information_constraint_1 },
185                 0, 0, /* No default value */
186                 "pB-information"
187                 },
188         { ATF_NOFLAGS, 0, offsetof(struct DynamicNAICSInformation, pA_list),
189                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
190                 0,
191                 &asn_DEF_pA_list_4,
192                 0,
193                 { 0, &asn_PER_memb_pA_list_constr_4,  memb_pA_list_constraint_1 },
194                 0, 0, /* No default value */
195                 "pA-list"
196                 },
197         { ATF_POINTER, 1, offsetof(struct DynamicNAICSInformation, iE_Extensions),
198                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
199                 -1,     /* IMPLICIT tag at current level */
200                 &asn_DEF_ProtocolExtensionContainer_170P133,
201                 0,
202                 { 0, 0, 0 },
203                 0, 0, /* No default value */
204                 "iE-Extensions"
205                 },
206 };
207 static const int asn_MAP_DynamicNAICSInformation_oms_1[] = { 0, 1, 3 };
208 static const ber_tlv_tag_t asn_DEF_DynamicNAICSInformation_tags_1[] = {
209         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
210 };
211 static const asn_TYPE_tag2member_t asn_MAP_DynamicNAICSInformation_tag2el_1[] = {
212     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* transmissionModes */
213     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pB-information */
214     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* pA-list */
215     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* iE-Extensions */
216 };
217 asn_SEQUENCE_specifics_t asn_SPC_DynamicNAICSInformation_specs_1 = {
218         sizeof(struct DynamicNAICSInformation),
219         offsetof(struct DynamicNAICSInformation, _asn_ctx),
220         asn_MAP_DynamicNAICSInformation_tag2el_1,
221         4,      /* Count of tags in the map */
222         asn_MAP_DynamicNAICSInformation_oms_1,  /* Optional members */
223         3, 0,   /* Root/Additions */
224         4,      /* First extension addition */
225 };
226 asn_TYPE_descriptor_t asn_DEF_DynamicNAICSInformation = {
227         "DynamicNAICSInformation",
228         "DynamicNAICSInformation",
229         &asn_OP_SEQUENCE,
230         asn_DEF_DynamicNAICSInformation_tags_1,
231         sizeof(asn_DEF_DynamicNAICSInformation_tags_1)
232                 /sizeof(asn_DEF_DynamicNAICSInformation_tags_1[0]), /* 1 */
233         asn_DEF_DynamicNAICSInformation_tags_1, /* Same as above */
234         sizeof(asn_DEF_DynamicNAICSInformation_tags_1)
235                 /sizeof(asn_DEF_DynamicNAICSInformation_tags_1[0]), /* 1 */
236         { 0, 0, SEQUENCE_constraint },
237         asn_MBR_DynamicNAICSInformation_1,
238         4,      /* Elements count */
239         &asn_SPC_DynamicNAICSInformation_specs_1        /* Additional specs */
240 };
241