e5bef6684e3d785d6ba685ebf4b7439c6e763912
[o-du/l2.git] / src / codec_utils / RRC / UE-MRDC-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 "/home/labadmin/hlal/rrc_15.3_asn.asn1"
5  *      `asn1c -D ./15_3_rrc/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
6  */
7
8 #include "UE-MRDC-Capability.h"
9
10 #include "MeasAndMobParametersMRDC.h"
11 #include "Phy-ParametersMRDC.h"
12 #include "GeneralParametersMRDC-XDD-Diff.h"
13 #include "UE-MRDC-CapabilityAddXDD-Mode.h"
14 #include "UE-MRDC-CapabilityAddFRX-Mode.h"
15 #include "PDCP-ParametersMRDC.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_10 CC_NOTUSED = {
44         { 0, 0 },
45         -1      /* (SIZE(1..1024)) */};
46 static asn_per_constraints_t asn_PER_type_featureSetCombinations_constr_10 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_10 CC_NOTUSED = {
52         { 0, 0 },
53         -1      /* (SIZE(1..1024)) */};
54 static asn_per_constraints_t asn_PER_memb_featureSetCombinations_constr_10 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_10[] = {
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_10[] = {
71         (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
72         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
73 };
74 static asn_SET_OF_specifics_t asn_SPC_featureSetCombinations_specs_10 = {
75         sizeof(struct UE_MRDC_Capability__featureSetCombinations),
76         offsetof(struct UE_MRDC_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_10 = {
81         "featureSetCombinations",
82         "featureSetCombinations",
83         &asn_OP_SEQUENCE_OF,
84         asn_DEF_featureSetCombinations_tags_10,
85         sizeof(asn_DEF_featureSetCombinations_tags_10)
86                 /sizeof(asn_DEF_featureSetCombinations_tags_10[0]) - 1, /* 1 */
87         asn_DEF_featureSetCombinations_tags_10, /* Same as above */
88         sizeof(asn_DEF_featureSetCombinations_tags_10)
89                 /sizeof(asn_DEF_featureSetCombinations_tags_10[0]), /* 2 */
90         { &asn_OER_type_featureSetCombinations_constr_10, &asn_PER_type_featureSetCombinations_constr_10, SEQUENCE_OF_constraint },
91         asn_MBR_featureSetCombinations_10,
92         1,      /* Single element */
93         &asn_SPC_featureSetCombinations_specs_10        /* Additional specs */
94 };
95
96 static const ber_tlv_tag_t asn_DEF_nonCriticalExtension_tags_14[] = {
97         (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
98         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
99 };
100 static asn_SEQUENCE_specifics_t asn_SPC_nonCriticalExtension_specs_14 = {
101         sizeof(struct UE_MRDC_Capability__nonCriticalExtension),
102         offsetof(struct UE_MRDC_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_14 = {
110         "nonCriticalExtension",
111         "nonCriticalExtension",
112         &asn_OP_SEQUENCE,
113         asn_DEF_nonCriticalExtension_tags_14,
114         sizeof(asn_DEF_nonCriticalExtension_tags_14)
115                 /sizeof(asn_DEF_nonCriticalExtension_tags_14[0]) - 1, /* 1 */
116         asn_DEF_nonCriticalExtension_tags_14,   /* Same as above */
117         sizeof(asn_DEF_nonCriticalExtension_tags_14)
118                 /sizeof(asn_DEF_nonCriticalExtension_tags_14[0]), /* 2 */
119         { 0, 0, SEQUENCE_constraint },
120         0, 0,   /* No members */
121         &asn_SPC_nonCriticalExtension_specs_14  /* Additional specs */
122 };
123
124 static asn_TYPE_member_t asn_MBR_UE_MRDC_Capability_1[] = {
125         { ATF_POINTER, 2, offsetof(struct UE_MRDC_Capability, measAndMobParametersMRDC),
126                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
127                 -1,     /* IMPLICIT tag at current level */
128                 &asn_DEF_MeasAndMobParametersMRDC,
129                 0,
130                 { 0, 0, 0 },
131                 0, 0, /* No default value */
132                 "measAndMobParametersMRDC"
133                 },
134         { ATF_POINTER, 1, offsetof(struct UE_MRDC_Capability, phy_ParametersMRDC_v1530),
135                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
136                 -1,     /* IMPLICIT tag at current level */
137                 &asn_DEF_Phy_ParametersMRDC,
138                 0,
139                 { 0, 0, 0 },
140                 0, 0, /* No default value */
141                 "phy-ParametersMRDC-v1530"
142                 },
143         { ATF_NOFLAGS, 0, offsetof(struct UE_MRDC_Capability, rf_ParametersMRDC),
144                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
145                 -1,     /* IMPLICIT tag at current level */
146                 &asn_DEF_RF_ParametersMRDC,
147                 0,
148                 { 0, 0, 0 },
149                 0, 0, /* No default value */
150                 "rf-ParametersMRDC"
151                 },
152         { ATF_POINTER, 9, offsetof(struct UE_MRDC_Capability, generalParametersMRDC),
153                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
154                 -1,     /* IMPLICIT tag at current level */
155                 &asn_DEF_GeneralParametersMRDC_XDD_Diff,
156                 0,
157                 { 0, 0, 0 },
158                 0, 0, /* No default value */
159                 "generalParametersMRDC"
160                 },
161         { ATF_POINTER, 8, offsetof(struct UE_MRDC_Capability, fdd_Add_UE_MRDC_Capabilities),
162                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
163                 -1,     /* IMPLICIT tag at current level */
164                 &asn_DEF_UE_MRDC_CapabilityAddXDD_Mode,
165                 0,
166                 { 0, 0, 0 },
167                 0, 0, /* No default value */
168                 "fdd-Add-UE-MRDC-Capabilities"
169                 },
170         { ATF_POINTER, 7, offsetof(struct UE_MRDC_Capability, tdd_Add_UE_MRDC_Capabilities),
171                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
172                 -1,     /* IMPLICIT tag at current level */
173                 &asn_DEF_UE_MRDC_CapabilityAddXDD_Mode,
174                 0,
175                 { 0, 0, 0 },
176                 0, 0, /* No default value */
177                 "tdd-Add-UE-MRDC-Capabilities"
178                 },
179         { ATF_POINTER, 6, offsetof(struct UE_MRDC_Capability, fr1_Add_UE_MRDC_Capabilities),
180                 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
181                 -1,     /* IMPLICIT tag at current level */
182                 &asn_DEF_UE_MRDC_CapabilityAddFRX_Mode,
183                 0,
184                 { 0, 0, 0 },
185                 0, 0, /* No default value */
186                 "fr1-Add-UE-MRDC-Capabilities"
187                 },
188         { ATF_POINTER, 5, offsetof(struct UE_MRDC_Capability, fr2_Add_UE_MRDC_Capabilities),
189                 (ASN_TAG_CLASS_CONTEXT | (7 << 2)),
190                 -1,     /* IMPLICIT tag at current level */
191                 &asn_DEF_UE_MRDC_CapabilityAddFRX_Mode,
192                 0,
193                 { 0, 0, 0 },
194                 0, 0, /* No default value */
195                 "fr2-Add-UE-MRDC-Capabilities"
196                 },
197         { ATF_POINTER, 4, offsetof(struct UE_MRDC_Capability, featureSetCombinations),
198                 (ASN_TAG_CLASS_CONTEXT | (8 << 2)),
199                 0,
200                 &asn_DEF_featureSetCombinations_10,
201                 0,
202                 { &asn_OER_memb_featureSetCombinations_constr_10, &asn_PER_memb_featureSetCombinations_constr_10,  memb_featureSetCombinations_constraint_1 },
203                 0, 0, /* No default value */
204                 "featureSetCombinations"
205                 },
206         { ATF_POINTER, 3, offsetof(struct UE_MRDC_Capability, pdcp_ParametersMRDC_v1530),
207                 (ASN_TAG_CLASS_CONTEXT | (9 << 2)),
208                 -1,     /* IMPLICIT tag at current level */
209                 &asn_DEF_PDCP_ParametersMRDC,
210                 0,
211                 { 0, 0, 0 },
212                 0, 0, /* No default value */
213                 "pdcp-ParametersMRDC-v1530"
214                 },
215         { ATF_POINTER, 2, offsetof(struct UE_MRDC_Capability, lateNonCriticalExtension),
216                 (ASN_TAG_CLASS_CONTEXT | (10 << 2)),
217                 -1,     /* IMPLICIT tag at current level */
218                 &asn_DEF_OCTET_STRING,
219                 0,
220                 { 0, 0, 0 },
221                 0, 0, /* No default value */
222                 "lateNonCriticalExtension"
223                 },
224         { ATF_POINTER, 1, offsetof(struct UE_MRDC_Capability, nonCriticalExtension),
225                 (ASN_TAG_CLASS_CONTEXT | (11 << 2)),
226                 0,
227                 &asn_DEF_nonCriticalExtension_14,
228                 0,
229                 { 0, 0, 0 },
230                 0, 0, /* No default value */
231                 "nonCriticalExtension"
232                 },
233 };
234 static const int asn_MAP_UE_MRDC_Capability_oms_1[] = { 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
235 static const ber_tlv_tag_t asn_DEF_UE_MRDC_Capability_tags_1[] = {
236         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
237 };
238 static const asn_TYPE_tag2member_t asn_MAP_UE_MRDC_Capability_tag2el_1[] = {
239     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* measAndMobParametersMRDC */
240     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* phy-ParametersMRDC-v1530 */
241     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* rf-ParametersMRDC */
242     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* generalParametersMRDC */
243     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* fdd-Add-UE-MRDC-Capabilities */
244     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* tdd-Add-UE-MRDC-Capabilities */
245     { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* fr1-Add-UE-MRDC-Capabilities */
246     { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* fr2-Add-UE-MRDC-Capabilities */
247     { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* featureSetCombinations */
248     { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* pdcp-ParametersMRDC-v1530 */
249     { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* lateNonCriticalExtension */
250     { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 } /* nonCriticalExtension */
251 };
252 static asn_SEQUENCE_specifics_t asn_SPC_UE_MRDC_Capability_specs_1 = {
253         sizeof(struct UE_MRDC_Capability),
254         offsetof(struct UE_MRDC_Capability, _asn_ctx),
255         asn_MAP_UE_MRDC_Capability_tag2el_1,
256         12,     /* Count of tags in the map */
257         asn_MAP_UE_MRDC_Capability_oms_1,       /* Optional members */
258         11, 0,  /* Root/Additions */
259         -1,     /* First extension addition */
260 };
261 asn_TYPE_descriptor_t asn_DEF_UE_MRDC_Capability = {
262         "UE-MRDC-Capability",
263         "UE-MRDC-Capability",
264         &asn_OP_SEQUENCE,
265         asn_DEF_UE_MRDC_Capability_tags_1,
266         sizeof(asn_DEF_UE_MRDC_Capability_tags_1)
267                 /sizeof(asn_DEF_UE_MRDC_Capability_tags_1[0]), /* 1 */
268         asn_DEF_UE_MRDC_Capability_tags_1,      /* Same as above */
269         sizeof(asn_DEF_UE_MRDC_Capability_tags_1)
270                 /sizeof(asn_DEF_UE_MRDC_Capability_tags_1[0]), /* 1 */
271         { 0, 0, SEQUENCE_constraint },
272         asn_MBR_UE_MRDC_Capability_1,
273         12,     /* Elements count */
274         &asn_SPC_UE_MRDC_Capability_specs_1     /* Additional specs */
275 };
276