[Epic-ID: ODUHIGH-406][Task-ID: ODUHIGH-441]: Update name of Paging RRC Codec
[o-du/l2.git] / src / codec_utils / RRC / UE-NR-Capability.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 "UE-NR-Capability.h"
9
10 #include "RLC-Parameters.h"
11 #include "MAC-Parameters.h"
12 #include "MeasAndMobParameters.h"
13 #include "UE-NR-CapabilityAddXDD-Mode.h"
14 #include "UE-NR-CapabilityAddFRX-Mode.h"
15 #include "FeatureSets.h"
16 #include "FeatureSetCombination.h"
17 static int
18 memb_featureSetCombinations_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
19                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
20         size_t size;
21         
22         if(!sptr) {
23                 ASN__CTFAIL(app_key, td, sptr,
24                         "%s: value not given (%s:%d)",
25                         td->name, __FILE__, __LINE__);
26                 return -1;
27         }
28         
29         /* Determine the number of elements */
30         size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
31         
32         if((size >= 1 && size <= 1024)) {
33                 /* Perform validation of the inner elements */
34                 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
35         } else {
36                 ASN__CTFAIL(app_key, td, sptr,
37                         "%s: constraint failed (%s:%d)",
38                         td->name, __FILE__, __LINE__);
39                 return -1;
40         }
41 }
42
43 static asn_oer_constraints_t asn_OER_type_featureSetCombinations_constr_14 CC_NOTUSED = {
44         { 0, 0 },
45         -1      /* (SIZE(1..1024)) */};
46 static asn_per_constraints_t asn_PER_type_featureSetCombinations_constr_14 CC_NOTUSED = {
47         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
48         { APC_CONSTRAINED,       10,  10,  1,  1024 }   /* (SIZE(1..1024)) */,
49         0, 0    /* No PER value map */
50 };
51 static asn_oer_constraints_t asn_OER_memb_featureSetCombinations_constr_14 CC_NOTUSED = {
52         { 0, 0 },
53         -1      /* (SIZE(1..1024)) */};
54 static asn_per_constraints_t asn_PER_memb_featureSetCombinations_constr_14 CC_NOTUSED = {
55         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
56         { APC_CONSTRAINED,       10,  10,  1,  1024 }   /* (SIZE(1..1024)) */,
57         0, 0    /* No PER value map */
58 };
59 static asn_TYPE_member_t asn_MBR_featureSetCombinations_14[] = {
60         { ATF_POINTER, 0, 0,
61                 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
62                 0,
63                 &asn_DEF_FeatureSetCombination,
64                 0,
65                 { 0, 0, 0 },
66                 0, 0, /* No default value */
67                 ""
68                 },
69 };
70 static const ber_tlv_tag_t asn_DEF_featureSetCombinations_tags_14[] = {
71         (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
72         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
73 };
74 static asn_SET_OF_specifics_t asn_SPC_featureSetCombinations_specs_14 = {
75         sizeof(struct UE_NR_Capability__featureSetCombinations),
76         offsetof(struct UE_NR_Capability__featureSetCombinations, _asn_ctx),
77         0,      /* XER encoding is XMLDelimitedItemList */
78 };
79 static /* Use -fall-defs-global to expose */
80 asn_TYPE_descriptor_t asn_DEF_featureSetCombinations_14 = {
81         "featureSetCombinations",
82         "featureSetCombinations",
83         &asn_OP_SEQUENCE_OF,
84         asn_DEF_featureSetCombinations_tags_14,
85         sizeof(asn_DEF_featureSetCombinations_tags_14)
86                 /sizeof(asn_DEF_featureSetCombinations_tags_14[0]) - 1, /* 1 */
87         asn_DEF_featureSetCombinations_tags_14, /* Same as above */
88         sizeof(asn_DEF_featureSetCombinations_tags_14)
89                 /sizeof(asn_DEF_featureSetCombinations_tags_14[0]), /* 2 */
90         { &asn_OER_type_featureSetCombinations_constr_14, &asn_PER_type_featureSetCombinations_constr_14, SEQUENCE_OF_constraint },
91         asn_MBR_featureSetCombinations_14,
92         1,      /* Single element */
93         &asn_SPC_featureSetCombinations_specs_14        /* Additional specs */
94 };
95
96 static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_17[] = {
97         (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
98         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
99 };
100 static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_17 = {
101         sizeof(struct UE_NR_Capability__nonCriticalExtension),
102         offsetof(struct UE_NR_Capability__nonCriticalExtension, _asn_ctx),
103         0,      /* No top level tags */
104         0,      /* No tags in the map */
105         0, 0, 0,        /* Optional elements (not needed) */
106         -1,     /* First extension addition */
107 };
108 static /* Use -fall-defs-global to expose */
109 asn_TYPE_descriptor_t asn_DEF_nonCriticalExtension_17 = {
110         "nonCriticalExtension",
111         "nonCriticalExtension",
112         &asn_OP_SEQUENCE,
113         asn_DEF_nonCriticalExtension_tags_17,
114         sizeof(asn_DEF_nonCriticalExtension_tags_17)
115                 /sizeof(asn_DEF_nonCriticalExtension_tags_17[0]) - 1, /* 1 */
116         asn_DEF_nonCriticalExtension_tags_17,   /* Same as above */
117         sizeof(asn_DEF_nonCriticalExtension_tags_17)
118                 /sizeof(asn_DEF_nonCriticalExtension_tags_17[0]), /* 2 */
119         { 0, 0, SEQUENCE_constraint },
120         0, 0,   /* No members */
121         &asn_SPC_nonCriticalExtension_specs_17  /* Additional specs */
122 };
123
124 static asn_TYPE_member_t asn_MBR_UE_NR_Capability_1[] = {
125         { ATF_NOFLAGS, 0, offsetof(struct UE_NR_Capability, accessStratumRelease),
126                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
127                 -1,     /* IMPLICIT tag at current level */
128                 &asn_DEF_AccessStratumRelease,
129                 0,
130                 { 0, 0, 0 },
131                 0, 0, /* No default value */
132                 "accessStratumRelease"
133                 },
134         { ATF_NOFLAGS, 0, offsetof(struct UE_NR_Capability, pdcp_Parameters),
135                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
136                 -1,     /* IMPLICIT tag at current level */
137                 &asn_DEF_PDCP_Parameters,
138                 0,
139                 { 0, 0, 0 },
140                 0, 0, /* No default value */
141                 "pdcp-Parameters"
142                 },
143         { ATF_POINTER, 2, offsetof(struct UE_NR_Capability, rlc_Parameters),
144                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
145                 -1,     /* IMPLICIT tag at current level */
146                 &asn_DEF_RLC_Parameters,
147                 0,
148                 { 0, 0, 0 },
149                 0, 0, /* No default value */
150                 "rlc-Parameters"
151                 },
152         { ATF_POINTER, 1, offsetof(struct UE_NR_Capability, mac_Parameters),
153                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
154                 -1,     /* IMPLICIT tag at current level */
155                 &asn_DEF_MAC_Parameters,
156                 0,
157                 { 0, 0, 0 },
158                 0, 0, /* No default value */
159                 "mac-Parameters"
160                 },
161         { ATF_NOFLAGS, 0, offsetof(struct UE_NR_Capability, phy_Parameters),
162                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
163                 -1,     /* IMPLICIT tag at current level */
164                 &asn_DEF_Phy_Parameters,
165                 0,
166                 { 0, 0, 0 },
167                 0, 0, /* No default value */
168                 "phy-Parameters"
169                 },
170         { ATF_NOFLAGS, 0, offsetof(struct UE_NR_Capability, rf_Parameters),
171                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
172                 -1,     /* IMPLICIT tag at current level */
173                 &asn_DEF_RF_Parameters,
174                 0,
175                 { 0, 0, 0 },
176                 0, 0, /* No default value */
177                 "rf-Parameters"
178                 },
179         { ATF_POINTER, 9, offsetof(struct UE_NR_Capability, measAndMobParameters),
180                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
181                 -1,     /* IMPLICIT tag at current level */
182                 &asn_DEF_MeasAndMobParameters,
183                 0,
184                 { 0, 0, 0 },
185                 0, 0, /* No default value */
186                 "measAndMobParameters"
187                 },
188         { ATF_POINTER, 8, offsetof(struct UE_NR_Capability, fdd_Add_UE_NR_Capabilities),
189                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
190                 -1,     /* IMPLICIT tag at current level */
191                 &asn_DEF_UE_NR_CapabilityAddXDD_Mode,
192                 0,
193                 { 0, 0, 0 },
194                 0, 0, /* No default value */
195                 "fdd-Add-UE-NR-Capabilities"
196                 },
197         { ATF_POINTER, 7, offsetof(struct UE_NR_Capability, tdd_Add_UE_NR_Capabilities),
198                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
199                 -1,     /* IMPLICIT tag at current level */
200                 &asn_DEF_UE_NR_CapabilityAddXDD_Mode,
201                 0,
202                 { 0, 0, 0 },
203                 0, 0, /* No default value */
204                 "tdd-Add-UE-NR-Capabilities"
205                 },
206         { ATF_POINTER, 6, offsetof(struct UE_NR_Capability, fr1_Add_UE_NR_Capabilities),
207                 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
208                 -1,     /* IMPLICIT tag at current level */
209                 &asn_DEF_UE_NR_CapabilityAddFRX_Mode,
210                 0,
211                 { 0, 0, 0 },
212                 0, 0, /* No default value */
213                 "fr1-Add-UE-NR-Capabilities"
214                 },
215         { ATF_POINTER, 5, offsetof(struct UE_NR_Capability, fr2_Add_UE_NR_Capabilities),
216                 (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
217                 -1,     /* IMPLICIT tag at current level */
218                 &asn_DEF_UE_NR_CapabilityAddFRX_Mode,
219                 0,
220                 { 0, 0, 0 },
221                 0, 0, /* No default value */
222                 "fr2-Add-UE-NR-Capabilities"
223                 },
224         { ATF_POINTER, 4, offsetof(struct UE_NR_Capability, featureSets),
225                 (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
226                 -1,     /* IMPLICIT tag at current level */
227                 &asn_DEF_FeatureSets,
228                 0,
229                 { 0, 0, 0 },
230                 0, 0, /* No default value */
231                 "featureSets"
232                 },
233         { ATF_POINTER, 3, offsetof(struct UE_NR_Capability, featureSetCombinations),
234                 (ASN_TAG_CLASS_CONTEXT | (12 << 2)),
235                 0,
236                 &asn_DEF_featureSetCombinations_14,
237                 0,
238                 { &asn_OER_memb_featureSetCombinations_constr_14, &asn_PER_memb_featureSetCombinations_constr_14,  memb_featureSetCombinations_constraint_1 },
239                 0, 0, /* No default value */
240                 "featureSetCombinations"
241                 },
242         { ATF_POINTER, 2, offsetof(struct UE_NR_Capability, lateNonCriticalExtension),
243                 (ASN_TAG_CLASS_CONTEXT | (13 << 2)),
244                 -1,     /* IMPLICIT tag at current level */
245                 &asn_DEF_OCTET_STRING,
246                 0,
247                 { 0, 0, 0 },
248                 0, 0, /* No default value */
249                 "lateNonCriticalExtension"
250                 },
251         { ATF_POINTER, 1, offsetof(struct UE_NR_Capability, nonCriticalExtension),
252                 (ASN_TAG_CLASS_CONTEXT | (14 << 2)),
253                 0,
254                 &asn_DEF_nonCriticalExtension_17,
255                 0,
256                 { 0, 0, 0 },
257                 0, 0, /* No default value */
258                 "nonCriticalExtension"
259                 },
260 };
261 static const int asn_MAP_UE_NR_Capability_oms_1[] = { 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
262 static const ber_tlv_tag_t asn_DEF_UE_NR_Capability_tags_1[] = {
263         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
264 };
265 static const asn_TYPE_tag2member_t asn_MAP_UE_NR_Capability_tag2el_1[] = {
266     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* accessStratumRelease */
267     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pdcp-Parameters */
268     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rlc-Parameters */
269     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mac-Parameters */
270     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* phy-Parameters */
271     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* rf-Parameters */
272     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* measAndMobParameters */
273     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* fdd-Add-UE-NR-Capabilities */
274     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* tdd-Add-UE-NR-Capabilities */
275     { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* fr1-Add-UE-NR-Capabilities */
276     { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* fr2-Add-UE-NR-Capabilities */
277     { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* featureSets */
278     { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* featureSetCombinations */
279     { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* lateNonCriticalExtension */
280     { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 } /* nonCriticalExtension */
281 };
282 static asn_SEQUENCE_specifics_t asn_SPC_UE_NR_Capability_specs_1 = {
283         sizeof(struct UE_NR_Capability),
284         offsetof(struct UE_NR_Capability, _asn_ctx),
285         asn_MAP_UE_NR_Capability_tag2el_1,
286         15,     /* Count of tags in the map */
287         asn_MAP_UE_NR_Capability_oms_1, /* Optional members */
288         11, 0,  /* Root/Additions */
289         -1,     /* First extension addition */
290 };
291 asn_TYPE_descriptor_t asn_DEF_UE_NR_Capability = {
292         "UE-NR-Capability",
293         "UE-NR-Capability",
294         &asn_OP_SEQUENCE,
295         asn_DEF_UE_NR_Capability_tags_1,
296         sizeof(asn_DEF_UE_NR_Capability_tags_1)
297                 /sizeof(asn_DEF_UE_NR_Capability_tags_1[0]), /* 1 */
298         asn_DEF_UE_NR_Capability_tags_1,        /* Same as above */
299         sizeof(asn_DEF_UE_NR_Capability_tags_1)
300                 /sizeof(asn_DEF_UE_NR_Capability_tags_1[0]), /* 1 */
301         { 0, 0, SEQUENCE_constraint },
302         asn_MBR_UE_NR_Capability_1,
303         15,     /* Elements count */
304         &asn_SPC_UE_NR_Capability_specs_1       /* Additional specs */
305 };
306