2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "NR-RRC-Definitions"
4 * found in "../../../rrc_15.3_asn.asn1"
5 * `asn1c -D ./25_02_2022_RRC/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-example`
8 #include "BandCombination.h"
10 #include "CA-ParametersEUTRA.h"
11 #include "CA-ParametersNR.h"
12 #include "MRDC-Parameters.h"
13 #include "BandParameters.h"
15 * This type is implemented using NativeEnumerated,
16 * so here we adjust the DEF accordingly.
19 memb_bandList_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
20 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
24 ASN__CTFAIL(app_key, td, sptr,
25 "%s: value not given (%s:%d)",
26 td->name, __FILE__, __LINE__);
30 /* Determine the number of elements */
31 size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
33 if((size >= 1 && size <= 32)) {
34 /* Perform validation of the inner elements */
35 return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
37 ASN__CTFAIL(app_key, td, sptr,
38 "%s: constraint failed (%s:%d)",
39 td->name, __FILE__, __LINE__);
45 memb_supportedBandwidthCombinationSet_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
46 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
47 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
51 ASN__CTFAIL(app_key, td, sptr,
52 "%s: value not given (%s:%d)",
53 td->name, __FILE__, __LINE__);
59 size = 8 * st->size - (st->bits_unused & 0x07);
64 if((size >= 1 && size <= 32)) {
65 /* Constraint check succeeded */
68 ASN__CTFAIL(app_key, td, sptr,
69 "%s: constraint failed (%s:%d)",
70 td->name, __FILE__, __LINE__);
75 static asn_oer_constraints_t asn_OER_type_bandList_constr_2 CC_NOTUSED = {
77 -1 /* (SIZE(1..32)) */};
78 static asn_per_constraints_t asn_PER_type_bandList_constr_2 CC_NOTUSED = {
79 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
80 { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */,
81 0, 0 /* No PER value map */
83 static asn_oer_constraints_t asn_OER_type_powerClass_v1530_constr_9 CC_NOTUSED = {
86 static asn_per_constraints_t asn_PER_type_powerClass_v1530_constr_9 CC_NOTUSED = {
87 { APC_CONSTRAINED, 0, 0, 0, 0 } /* (0..0) */,
88 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
89 0, 0 /* No PER value map */
91 static asn_oer_constraints_t asn_OER_memb_bandList_constr_2 CC_NOTUSED = {
93 -1 /* (SIZE(1..32)) */};
94 static asn_per_constraints_t asn_PER_memb_bandList_constr_2 CC_NOTUSED = {
95 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
96 { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */,
97 0, 0 /* No PER value map */
99 static asn_oer_constraints_t asn_OER_memb_supportedBandwidthCombinationSet_constr_8 CC_NOTUSED = {
101 -1 /* (SIZE(1..32)) */};
102 static asn_per_constraints_t asn_PER_memb_supportedBandwidthCombinationSet_constr_8 CC_NOTUSED = {
103 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
104 { APC_CONSTRAINED, 5, 5, 1, 32 } /* (SIZE(1..32)) */,
105 0, 0 /* No PER value map */
107 static asn_TYPE_member_t asn_MBR_bandList_2[] = {
109 -1 /* Ambiguous tag (CHOICE?) */,
111 &asn_DEF_BandParameters,
114 0, 0, /* No default value */
118 static const ber_tlv_tag_t asn_DEF_bandList_tags_2[] = {
119 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
120 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
122 static asn_SET_OF_specifics_t asn_SPC_bandList_specs_2 = {
123 sizeof(struct BandCombination__bandList),
124 offsetof(struct BandCombination__bandList, _asn_ctx),
125 2, /* XER encoding is XMLValueList */
127 static /* Use -fall-defs-global to expose */
128 asn_TYPE_descriptor_t asn_DEF_bandList_2 = {
132 asn_DEF_bandList_tags_2,
133 sizeof(asn_DEF_bandList_tags_2)
134 /sizeof(asn_DEF_bandList_tags_2[0]) - 1, /* 1 */
135 asn_DEF_bandList_tags_2, /* Same as above */
136 sizeof(asn_DEF_bandList_tags_2)
137 /sizeof(asn_DEF_bandList_tags_2[0]), /* 2 */
138 { &asn_OER_type_bandList_constr_2, &asn_PER_type_bandList_constr_2, SEQUENCE_OF_constraint },
140 1, /* Single element */
141 &asn_SPC_bandList_specs_2 /* Additional specs */
144 static const asn_INTEGER_enum_map_t asn_MAP_powerClass_v1530_value2enum_9[] = {
147 static const unsigned int asn_MAP_powerClass_v1530_enum2value_9[] = {
150 static const asn_INTEGER_specifics_t asn_SPC_powerClass_v1530_specs_9 = {
151 asn_MAP_powerClass_v1530_value2enum_9, /* "tag" => N; sorted by tag */
152 asn_MAP_powerClass_v1530_enum2value_9, /* N => "tag"; sorted by N */
153 1, /* Number of elements in the maps */
154 0, /* Enumeration is not extensible */
155 1, /* Strict enumeration */
156 0, /* Native long size */
159 static const ber_tlv_tag_t asn_DEF_powerClass_v1530_tags_9[] = {
160 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
161 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
163 static /* Use -fall-defs-global to expose */
164 asn_TYPE_descriptor_t asn_DEF_powerClass_v1530_9 = {
167 &asn_OP_NativeEnumerated,
168 asn_DEF_powerClass_v1530_tags_9,
169 sizeof(asn_DEF_powerClass_v1530_tags_9)
170 /sizeof(asn_DEF_powerClass_v1530_tags_9[0]) - 1, /* 1 */
171 asn_DEF_powerClass_v1530_tags_9, /* Same as above */
172 sizeof(asn_DEF_powerClass_v1530_tags_9)
173 /sizeof(asn_DEF_powerClass_v1530_tags_9[0]), /* 2 */
174 { &asn_OER_type_powerClass_v1530_constr_9, &asn_PER_type_powerClass_v1530_constr_9, NativeEnumerated_constraint },
175 0, 0, /* Defined elsewhere */
176 &asn_SPC_powerClass_v1530_specs_9 /* Additional specs */
179 asn_TYPE_member_t asn_MBR_BandCombination_1[] = {
180 { ATF_NOFLAGS, 0, offsetof(struct BandCombination, bandList),
181 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
185 { &asn_OER_memb_bandList_constr_2, &asn_PER_memb_bandList_constr_2, memb_bandList_constraint_1 },
186 0, 0, /* No default value */
189 { ATF_NOFLAGS, 0, offsetof(struct BandCombination, featureSetCombination),
190 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
191 -1, /* IMPLICIT tag at current level */
192 &asn_DEF_FeatureSetCombinationId,
195 0, 0, /* No default value */
196 "featureSetCombination"
198 { ATF_POINTER, 5, offsetof(struct BandCombination, ca_ParametersEUTRA),
199 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
200 -1, /* IMPLICIT tag at current level */
201 &asn_DEF_CA_ParametersEUTRA,
204 0, 0, /* No default value */
207 { ATF_POINTER, 4, offsetof(struct BandCombination, ca_ParametersNR),
208 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
209 -1, /* IMPLICIT tag at current level */
210 &asn_DEF_CA_ParametersNR,
213 0, 0, /* No default value */
216 { ATF_POINTER, 3, offsetof(struct BandCombination, mrdc_Parameters),
217 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
218 -1, /* IMPLICIT tag at current level */
219 &asn_DEF_MRDC_Parameters,
222 0, 0, /* No default value */
225 { ATF_POINTER, 2, offsetof(struct BandCombination, supportedBandwidthCombinationSet),
226 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
227 -1, /* IMPLICIT tag at current level */
230 { &asn_OER_memb_supportedBandwidthCombinationSet_constr_8, &asn_PER_memb_supportedBandwidthCombinationSet_constr_8, memb_supportedBandwidthCombinationSet_constraint_1 },
231 0, 0, /* No default value */
232 "supportedBandwidthCombinationSet"
234 { ATF_POINTER, 1, offsetof(struct BandCombination, powerClass_v1530),
235 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
236 -1, /* IMPLICIT tag at current level */
237 &asn_DEF_powerClass_v1530_9,
240 0, 0, /* No default value */
244 static const int asn_MAP_BandCombination_oms_1[] = { 2, 3, 4, 5, 6 };
245 static const ber_tlv_tag_t asn_DEF_BandCombination_tags_1[] = {
246 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
248 static const asn_TYPE_tag2member_t asn_MAP_BandCombination_tag2el_1[] = {
249 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* bandList */
250 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* featureSetCombination */
251 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* ca-ParametersEUTRA */
252 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* ca-ParametersNR */
253 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* mrdc-Parameters */
254 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* supportedBandwidthCombinationSet */
255 { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* powerClass-v1530 */
257 asn_SEQUENCE_specifics_t asn_SPC_BandCombination_specs_1 = {
258 sizeof(struct BandCombination),
259 offsetof(struct BandCombination, _asn_ctx),
260 asn_MAP_BandCombination_tag2el_1,
261 7, /* Count of tags in the map */
262 asn_MAP_BandCombination_oms_1, /* Optional members */
263 5, 0, /* Root/Additions */
264 -1, /* First extension addition */
266 asn_TYPE_descriptor_t asn_DEF_BandCombination = {
270 asn_DEF_BandCombination_tags_1,
271 sizeof(asn_DEF_BandCombination_tags_1)
272 /sizeof(asn_DEF_BandCombination_tags_1[0]), /* 1 */
273 asn_DEF_BandCombination_tags_1, /* Same as above */
274 sizeof(asn_DEF_BandCombination_tags_1)
275 /sizeof(asn_DEF_BandCombination_tags_1[0]), /* 1 */
276 { 0, 0, SEQUENCE_constraint },
277 asn_MBR_BandCombination_1,
278 7, /* Elements count */
279 &asn_SPC_BandCombination_specs_1 /* Additional specs */