2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "NR-RRC-Definitions"
4 * found in "../ASN1_Input/rrc_15_3_asn.asn1"
5 * `asn1c -D ../RRC_output_14Nov/ -fcompound-names -fno-include-deps -findirect-choice -gen-PER`
8 #include "TypeII-CodebookPortSelection.h"
11 * This type is implemented using NativeEnumerated,
12 * so here we adjust the DEF accordingly.
15 * This type is implemented using NativeEnumerated,
16 * so here we adjust the DEF accordingly.
19 memb_maxNumberResources_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 value = *(const long *)sptr;
32 if((value >= 1 && value <= 64)) {
33 /* Constraint check succeeded */
36 ASN__CTFAIL(app_key, td, sptr,
37 "%s: constraint failed (%s:%d)",
38 td->name, __FILE__, __LINE__);
44 memb_totalNumberTxPorts_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
45 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
49 ASN__CTFAIL(app_key, td, sptr,
50 "%s: value not given (%s:%d)",
51 td->name, __FILE__, __LINE__);
55 value = *(const long *)sptr;
57 if((value >= 2 && value <= 256)) {
58 /* Constraint check succeeded */
61 ASN__CTFAIL(app_key, td, sptr,
62 "%s: constraint failed (%s:%d)",
63 td->name, __FILE__, __LINE__);
69 memb_parameterLx_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
70 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
74 ASN__CTFAIL(app_key, td, sptr,
75 "%s: value not given (%s:%d)",
76 td->name, __FILE__, __LINE__);
80 value = *(const long *)sptr;
82 if((value >= 2 && value <= 4)) {
83 /* Constraint check succeeded */
86 ASN__CTFAIL(app_key, td, sptr,
87 "%s: constraint failed (%s:%d)",
88 td->name, __FILE__, __LINE__);
94 memb_maxNumberCSI_RS_PerResourceSet_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
95 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
99 ASN__CTFAIL(app_key, td, sptr,
100 "%s: value not given (%s:%d)",
101 td->name, __FILE__, __LINE__);
105 value = *(const long *)sptr;
107 if((value >= 1 && value <= 8)) {
108 /* Constraint check succeeded */
111 ASN__CTFAIL(app_key, td, sptr,
112 "%s: constraint failed (%s:%d)",
113 td->name, __FILE__, __LINE__);
118 static asn_oer_constraints_t asn_OER_type_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = {
121 static asn_per_constraints_t asn_PER_type_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = {
122 { APC_CONSTRAINED, 3, 3, 0, 5 } /* (0..5) */,
123 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
124 0, 0 /* No PER value map */
126 static asn_oer_constraints_t asn_OER_type_amplitudeScalingType_constr_12 CC_NOTUSED = {
129 static asn_per_constraints_t asn_PER_type_amplitudeScalingType_constr_12 CC_NOTUSED = {
130 { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
131 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
132 0, 0 /* No PER value map */
134 static asn_oer_constraints_t asn_OER_memb_maxNumberResources_constr_9 CC_NOTUSED = {
135 { 1, 1 } /* (1..64) */,
137 static asn_per_constraints_t asn_PER_memb_maxNumberResources_constr_9 CC_NOTUSED = {
138 { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */,
139 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
140 0, 0 /* No PER value map */
142 static asn_oer_constraints_t asn_OER_memb_totalNumberTxPorts_constr_10 CC_NOTUSED = {
143 { 2, 1 } /* (2..256) */,
145 static asn_per_constraints_t asn_PER_memb_totalNumberTxPorts_constr_10 CC_NOTUSED = {
146 { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */,
147 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
148 0, 0 /* No PER value map */
150 static asn_oer_constraints_t asn_OER_memb_parameterLx_constr_11 CC_NOTUSED = {
151 { 1, 1 } /* (2..4) */,
153 static asn_per_constraints_t asn_PER_memb_parameterLx_constr_11 CC_NOTUSED = {
154 { APC_CONSTRAINED, 2, 2, 2, 4 } /* (2..4) */,
155 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
156 0, 0 /* No PER value map */
158 static asn_oer_constraints_t asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = {
159 { 1, 1 } /* (1..8) */,
161 static asn_per_constraints_t asn_PER_memb_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = {
162 { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */,
163 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
164 0, 0 /* No PER value map */
166 static const asn_INTEGER_enum_map_t asn_MAP_maxNumberTxPortsPerResource_value2enum_2[] = {
174 static const unsigned int asn_MAP_maxNumberTxPortsPerResource_enum2value_2[] = {
182 static const asn_INTEGER_specifics_t asn_SPC_maxNumberTxPortsPerResource_specs_2 = {
183 asn_MAP_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */
184 asn_MAP_maxNumberTxPortsPerResource_enum2value_2, /* N => "tag"; sorted by N */
185 6, /* Number of elements in the maps */
186 0, /* Enumeration is not extensible */
187 1, /* Strict enumeration */
188 0, /* Native long size */
191 static const ber_tlv_tag_t asn_DEF_maxNumberTxPortsPerResource_tags_2[] = {
192 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
193 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
195 static /* Use -fall-defs-global to expose */
196 asn_TYPE_descriptor_t asn_DEF_maxNumberTxPortsPerResource_2 = {
197 "maxNumberTxPortsPerResource",
198 "maxNumberTxPortsPerResource",
199 &asn_OP_NativeEnumerated,
200 asn_DEF_maxNumberTxPortsPerResource_tags_2,
201 sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2)
202 /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */
203 asn_DEF_maxNumberTxPortsPerResource_tags_2, /* Same as above */
204 sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2)
205 /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */
206 { &asn_OER_type_maxNumberTxPortsPerResource_constr_2, &asn_PER_type_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint },
207 0, 0, /* Defined elsewhere */
208 &asn_SPC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */
211 static const asn_INTEGER_enum_map_t asn_MAP_amplitudeScalingType_value2enum_12[] = {
212 { 0, 8, "wideband" },
213 { 1, 18, "widebandAndSubband" }
215 static const unsigned int asn_MAP_amplitudeScalingType_enum2value_12[] = {
217 1 /* widebandAndSubband(1) */
219 static const asn_INTEGER_specifics_t asn_SPC_amplitudeScalingType_specs_12 = {
220 asn_MAP_amplitudeScalingType_value2enum_12, /* "tag" => N; sorted by tag */
221 asn_MAP_amplitudeScalingType_enum2value_12, /* N => "tag"; sorted by N */
222 2, /* Number of elements in the maps */
223 0, /* Enumeration is not extensible */
224 1, /* Strict enumeration */
225 0, /* Native long size */
228 static const ber_tlv_tag_t asn_DEF_amplitudeScalingType_tags_12[] = {
229 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
230 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
232 static /* Use -fall-defs-global to expose */
233 asn_TYPE_descriptor_t asn_DEF_amplitudeScalingType_12 = {
234 "amplitudeScalingType",
235 "amplitudeScalingType",
236 &asn_OP_NativeEnumerated,
237 asn_DEF_amplitudeScalingType_tags_12,
238 sizeof(asn_DEF_amplitudeScalingType_tags_12)
239 /sizeof(asn_DEF_amplitudeScalingType_tags_12[0]) - 1, /* 1 */
240 asn_DEF_amplitudeScalingType_tags_12, /* Same as above */
241 sizeof(asn_DEF_amplitudeScalingType_tags_12)
242 /sizeof(asn_DEF_amplitudeScalingType_tags_12[0]), /* 2 */
243 { &asn_OER_type_amplitudeScalingType_constr_12, &asn_PER_type_amplitudeScalingType_constr_12, NativeEnumerated_constraint },
244 0, 0, /* Defined elsewhere */
245 &asn_SPC_amplitudeScalingType_specs_12 /* Additional specs */
248 asn_TYPE_member_t asn_MBR_TypeII_CodebookPortSelection_1[] = {
249 { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, maxNumberTxPortsPerResource),
250 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
251 -1, /* IMPLICIT tag at current level */
252 &asn_DEF_maxNumberTxPortsPerResource_2,
255 0, 0, /* No default value */
256 "maxNumberTxPortsPerResource"
258 { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, maxNumberResources),
259 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
260 -1, /* IMPLICIT tag at current level */
261 &asn_DEF_NativeInteger,
263 { &asn_OER_memb_maxNumberResources_constr_9, &asn_PER_memb_maxNumberResources_constr_9, memb_maxNumberResources_constraint_1 },
264 0, 0, /* No default value */
267 { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, totalNumberTxPorts),
268 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
269 -1, /* IMPLICIT tag at current level */
270 &asn_DEF_NativeInteger,
272 { &asn_OER_memb_totalNumberTxPorts_constr_10, &asn_PER_memb_totalNumberTxPorts_constr_10, memb_totalNumberTxPorts_constraint_1 },
273 0, 0, /* No default value */
276 { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, parameterLx),
277 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
278 -1, /* IMPLICIT tag at current level */
279 &asn_DEF_NativeInteger,
281 { &asn_OER_memb_parameterLx_constr_11, &asn_PER_memb_parameterLx_constr_11, memb_parameterLx_constraint_1 },
282 0, 0, /* No default value */
285 { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, amplitudeScalingType),
286 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
287 -1, /* IMPLICIT tag at current level */
288 &asn_DEF_amplitudeScalingType_12,
291 0, 0, /* No default value */
292 "amplitudeScalingType"
294 { ATF_NOFLAGS, 0, offsetof(struct TypeII_CodebookPortSelection, maxNumberCSI_RS_PerResourceSet),
295 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
296 -1, /* IMPLICIT tag at current level */
297 &asn_DEF_NativeInteger,
299 { &asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, &asn_PER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, memb_maxNumberCSI_RS_PerResourceSet_constraint_1 },
300 0, 0, /* No default value */
301 "maxNumberCSI-RS-PerResourceSet"
304 static const ber_tlv_tag_t asn_DEF_TypeII_CodebookPortSelection_tags_1[] = {
305 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
307 static const asn_TYPE_tag2member_t asn_MAP_TypeII_CodebookPortSelection_tag2el_1[] = {
308 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberTxPortsPerResource */
309 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberResources */
310 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* totalNumberTxPorts */
311 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* parameterLx */
312 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* amplitudeScalingType */
313 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* maxNumberCSI-RS-PerResourceSet */
315 asn_SEQUENCE_specifics_t asn_SPC_TypeII_CodebookPortSelection_specs_1 = {
316 sizeof(struct TypeII_CodebookPortSelection),
317 offsetof(struct TypeII_CodebookPortSelection, _asn_ctx),
318 asn_MAP_TypeII_CodebookPortSelection_tag2el_1,
319 6, /* Count of tags in the map */
320 0, 0, 0, /* Optional elements (not needed) */
321 -1, /* First extension addition */
323 asn_TYPE_descriptor_t asn_DEF_TypeII_CodebookPortSelection = {
324 "TypeII-CodebookPortSelection",
325 "TypeII-CodebookPortSelection",
327 asn_DEF_TypeII_CodebookPortSelection_tags_1,
328 sizeof(asn_DEF_TypeII_CodebookPortSelection_tags_1)
329 /sizeof(asn_DEF_TypeII_CodebookPortSelection_tags_1[0]), /* 1 */
330 asn_DEF_TypeII_CodebookPortSelection_tags_1, /* Same as above */
331 sizeof(asn_DEF_TypeII_CodebookPortSelection_tags_1)
332 /sizeof(asn_DEF_TypeII_CodebookPortSelection_tags_1[0]), /* 1 */
333 { 0, 0, SEQUENCE_constraint },
334 asn_MBR_TypeII_CodebookPortSelection_1,
335 6, /* Elements count */
336 &asn_SPC_TypeII_CodebookPortSelection_specs_1 /* Additional specs */