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 "TypeI-MultiPanelCodebook.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 * This type is implemented using NativeEnumerated,
20 * so here we adjust the DEF accordingly.
23 memb_maxNumberResources_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
24 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
28 ASN__CTFAIL(app_key, td, sptr,
29 "%s: value not given (%s:%d)",
30 td->name, __FILE__, __LINE__);
34 value = *(const long *)sptr;
36 if((value >= 1 && value <= 64)) {
37 /* Constraint check succeeded */
40 ASN__CTFAIL(app_key, td, sptr,
41 "%s: constraint failed (%s:%d)",
42 td->name, __FILE__, __LINE__);
48 memb_totalNumberTxPorts_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
49 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
53 ASN__CTFAIL(app_key, td, sptr,
54 "%s: value not given (%s:%d)",
55 td->name, __FILE__, __LINE__);
59 value = *(const long *)sptr;
61 if((value >= 2 && value <= 256)) {
62 /* Constraint check succeeded */
65 ASN__CTFAIL(app_key, td, sptr,
66 "%s: constraint failed (%s:%d)",
67 td->name, __FILE__, __LINE__);
73 memb_maxNumberCSI_RS_PerResourceSet_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
74 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
78 ASN__CTFAIL(app_key, td, sptr,
79 "%s: value not given (%s:%d)",
80 td->name, __FILE__, __LINE__);
84 value = *(const long *)sptr;
86 if((value >= 1 && value <= 8)) {
87 /* Constraint check succeeded */
90 ASN__CTFAIL(app_key, td, sptr,
91 "%s: constraint failed (%s:%d)",
92 td->name, __FILE__, __LINE__);
97 static asn_oer_constraints_t asn_OER_type_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = {
100 static asn_per_constraints_t asn_PER_type_maxNumberTxPortsPerResource_constr_2 CC_NOTUSED = {
101 { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */,
102 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
103 0, 0 /* No PER value map */
105 static asn_oer_constraints_t asn_OER_type_supportedCodebookMode_constr_8 CC_NOTUSED = {
108 static asn_per_constraints_t asn_PER_type_supportedCodebookMode_constr_8 CC_NOTUSED = {
109 { APC_CONSTRAINED, 2, 2, 0, 2 } /* (0..2) */,
110 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
111 0, 0 /* No PER value map */
113 static asn_oer_constraints_t asn_OER_type_supportedNumberPanels_constr_12 CC_NOTUSED = {
116 static asn_per_constraints_t asn_PER_type_supportedNumberPanels_constr_12 CC_NOTUSED = {
117 { APC_CONSTRAINED, 1, 1, 0, 1 } /* (0..1) */,
118 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
119 0, 0 /* No PER value map */
121 static asn_oer_constraints_t asn_OER_memb_maxNumberResources_constr_6 CC_NOTUSED = {
122 { 1, 1 } /* (1..64) */,
124 static asn_per_constraints_t asn_PER_memb_maxNumberResources_constr_6 CC_NOTUSED = {
125 { APC_CONSTRAINED, 6, 6, 1, 64 } /* (1..64) */,
126 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
127 0, 0 /* No PER value map */
129 static asn_oer_constraints_t asn_OER_memb_totalNumberTxPorts_constr_7 CC_NOTUSED = {
130 { 2, 1 } /* (2..256) */,
132 static asn_per_constraints_t asn_PER_memb_totalNumberTxPorts_constr_7 CC_NOTUSED = {
133 { APC_CONSTRAINED, 8, 8, 2, 256 } /* (2..256) */,
134 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
135 0, 0 /* No PER value map */
137 static asn_oer_constraints_t asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = {
138 { 1, 1 } /* (1..8) */,
140 static asn_per_constraints_t asn_PER_memb_maxNumberCSI_RS_PerResourceSet_constr_15 CC_NOTUSED = {
141 { APC_CONSTRAINED, 3, 3, 1, 8 } /* (1..8) */,
142 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
143 0, 0 /* No PER value map */
145 static const asn_INTEGER_enum_map_t asn_MAP_maxNumberTxPortsPerResource_value2enum_2[] = {
150 static const unsigned int asn_MAP_maxNumberTxPortsPerResource_enum2value_2[] = {
155 static const asn_INTEGER_specifics_t asn_SPC_maxNumberTxPortsPerResource_specs_2 = {
156 asn_MAP_maxNumberTxPortsPerResource_value2enum_2, /* "tag" => N; sorted by tag */
157 asn_MAP_maxNumberTxPortsPerResource_enum2value_2, /* N => "tag"; sorted by N */
158 3, /* Number of elements in the maps */
159 0, /* Enumeration is not extensible */
160 1, /* Strict enumeration */
161 0, /* Native long size */
164 static const ber_tlv_tag_t asn_DEF_maxNumberTxPortsPerResource_tags_2[] = {
165 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
166 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
168 static /* Use -fall-defs-global to expose */
169 asn_TYPE_descriptor_t asn_DEF_maxNumberTxPortsPerResource_2 = {
170 "maxNumberTxPortsPerResource",
171 "maxNumberTxPortsPerResource",
172 &asn_OP_NativeEnumerated,
173 asn_DEF_maxNumberTxPortsPerResource_tags_2,
174 sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2)
175 /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]) - 1, /* 1 */
176 asn_DEF_maxNumberTxPortsPerResource_tags_2, /* Same as above */
177 sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2)
178 /sizeof(asn_DEF_maxNumberTxPortsPerResource_tags_2[0]), /* 2 */
179 { &asn_OER_type_maxNumberTxPortsPerResource_constr_2, &asn_PER_type_maxNumberTxPortsPerResource_constr_2, NativeEnumerated_constraint },
180 0, 0, /* Defined elsewhere */
181 &asn_SPC_maxNumberTxPortsPerResource_specs_2 /* Additional specs */
184 static const asn_INTEGER_enum_map_t asn_MAP_supportedCodebookMode_value2enum_8[] = {
189 static const unsigned int asn_MAP_supportedCodebookMode_enum2value_8[] = {
194 static const asn_INTEGER_specifics_t asn_SPC_supportedCodebookMode_specs_8 = {
195 asn_MAP_supportedCodebookMode_value2enum_8, /* "tag" => N; sorted by tag */
196 asn_MAP_supportedCodebookMode_enum2value_8, /* N => "tag"; sorted by N */
197 3, /* Number of elements in the maps */
198 0, /* Enumeration is not extensible */
199 1, /* Strict enumeration */
200 0, /* Native long size */
203 static const ber_tlv_tag_t asn_DEF_supportedCodebookMode_tags_8[] = {
204 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
205 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
207 static /* Use -fall-defs-global to expose */
208 asn_TYPE_descriptor_t asn_DEF_supportedCodebookMode_8 = {
209 "supportedCodebookMode",
210 "supportedCodebookMode",
211 &asn_OP_NativeEnumerated,
212 asn_DEF_supportedCodebookMode_tags_8,
213 sizeof(asn_DEF_supportedCodebookMode_tags_8)
214 /sizeof(asn_DEF_supportedCodebookMode_tags_8[0]) - 1, /* 1 */
215 asn_DEF_supportedCodebookMode_tags_8, /* Same as above */
216 sizeof(asn_DEF_supportedCodebookMode_tags_8)
217 /sizeof(asn_DEF_supportedCodebookMode_tags_8[0]), /* 2 */
218 { &asn_OER_type_supportedCodebookMode_constr_8, &asn_PER_type_supportedCodebookMode_constr_8, NativeEnumerated_constraint },
219 0, 0, /* Defined elsewhere */
220 &asn_SPC_supportedCodebookMode_specs_8 /* Additional specs */
223 static const asn_INTEGER_enum_map_t asn_MAP_supportedNumberPanels_value2enum_12[] = {
227 static const unsigned int asn_MAP_supportedNumberPanels_enum2value_12[] = {
231 static const asn_INTEGER_specifics_t asn_SPC_supportedNumberPanels_specs_12 = {
232 asn_MAP_supportedNumberPanels_value2enum_12, /* "tag" => N; sorted by tag */
233 asn_MAP_supportedNumberPanels_enum2value_12, /* N => "tag"; sorted by N */
234 2, /* Number of elements in the maps */
235 0, /* Enumeration is not extensible */
236 1, /* Strict enumeration */
237 0, /* Native long size */
240 static const ber_tlv_tag_t asn_DEF_supportedNumberPanels_tags_12[] = {
241 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
242 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
244 static /* Use -fall-defs-global to expose */
245 asn_TYPE_descriptor_t asn_DEF_supportedNumberPanels_12 = {
246 "supportedNumberPanels",
247 "supportedNumberPanels",
248 &asn_OP_NativeEnumerated,
249 asn_DEF_supportedNumberPanels_tags_12,
250 sizeof(asn_DEF_supportedNumberPanels_tags_12)
251 /sizeof(asn_DEF_supportedNumberPanels_tags_12[0]) - 1, /* 1 */
252 asn_DEF_supportedNumberPanels_tags_12, /* Same as above */
253 sizeof(asn_DEF_supportedNumberPanels_tags_12)
254 /sizeof(asn_DEF_supportedNumberPanels_tags_12[0]), /* 2 */
255 { &asn_OER_type_supportedNumberPanels_constr_12, &asn_PER_type_supportedNumberPanels_constr_12, NativeEnumerated_constraint },
256 0, 0, /* Defined elsewhere */
257 &asn_SPC_supportedNumberPanels_specs_12 /* Additional specs */
260 asn_TYPE_member_t asn_MBR_TypeI_MultiPanelCodebook_1[] = {
261 { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, maxNumberTxPortsPerResource),
262 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
263 -1, /* IMPLICIT tag at current level */
264 &asn_DEF_maxNumberTxPortsPerResource_2,
267 0, 0, /* No default value */
268 "maxNumberTxPortsPerResource"
270 { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, maxNumberResources),
271 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
272 -1, /* IMPLICIT tag at current level */
273 &asn_DEF_NativeInteger,
275 { &asn_OER_memb_maxNumberResources_constr_6, &asn_PER_memb_maxNumberResources_constr_6, memb_maxNumberResources_constraint_1 },
276 0, 0, /* No default value */
279 { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, totalNumberTxPorts),
280 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
281 -1, /* IMPLICIT tag at current level */
282 &asn_DEF_NativeInteger,
284 { &asn_OER_memb_totalNumberTxPorts_constr_7, &asn_PER_memb_totalNumberTxPorts_constr_7, memb_totalNumberTxPorts_constraint_1 },
285 0, 0, /* No default value */
288 { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, supportedCodebookMode),
289 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
290 -1, /* IMPLICIT tag at current level */
291 &asn_DEF_supportedCodebookMode_8,
294 0, 0, /* No default value */
295 "supportedCodebookMode"
297 { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, supportedNumberPanels),
298 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
299 -1, /* IMPLICIT tag at current level */
300 &asn_DEF_supportedNumberPanels_12,
303 0, 0, /* No default value */
304 "supportedNumberPanels"
306 { ATF_NOFLAGS, 0, offsetof(struct TypeI_MultiPanelCodebook, maxNumberCSI_RS_PerResourceSet),
307 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
308 -1, /* IMPLICIT tag at current level */
309 &asn_DEF_NativeInteger,
311 { &asn_OER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, &asn_PER_memb_maxNumberCSI_RS_PerResourceSet_constr_15, memb_maxNumberCSI_RS_PerResourceSet_constraint_1 },
312 0, 0, /* No default value */
313 "maxNumberCSI-RS-PerResourceSet"
316 static const ber_tlv_tag_t asn_DEF_TypeI_MultiPanelCodebook_tags_1[] = {
317 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
319 static const asn_TYPE_tag2member_t asn_MAP_TypeI_MultiPanelCodebook_tag2el_1[] = {
320 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberTxPortsPerResource */
321 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* maxNumberResources */
322 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* totalNumberTxPorts */
323 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* supportedCodebookMode */
324 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* supportedNumberPanels */
325 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* maxNumberCSI-RS-PerResourceSet */
327 asn_SEQUENCE_specifics_t asn_SPC_TypeI_MultiPanelCodebook_specs_1 = {
328 sizeof(struct TypeI_MultiPanelCodebook),
329 offsetof(struct TypeI_MultiPanelCodebook, _asn_ctx),
330 asn_MAP_TypeI_MultiPanelCodebook_tag2el_1,
331 6, /* Count of tags in the map */
332 0, 0, 0, /* Optional elements (not needed) */
333 -1, /* First extension addition */
335 asn_TYPE_descriptor_t asn_DEF_TypeI_MultiPanelCodebook = {
336 "TypeI-MultiPanelCodebook",
337 "TypeI-MultiPanelCodebook",
339 asn_DEF_TypeI_MultiPanelCodebook_tags_1,
340 sizeof(asn_DEF_TypeI_MultiPanelCodebook_tags_1)
341 /sizeof(asn_DEF_TypeI_MultiPanelCodebook_tags_1[0]), /* 1 */
342 asn_DEF_TypeI_MultiPanelCodebook_tags_1, /* Same as above */
343 sizeof(asn_DEF_TypeI_MultiPanelCodebook_tags_1)
344 /sizeof(asn_DEF_TypeI_MultiPanelCodebook_tags_1[0]), /* 1 */
345 { 0, 0, SEQUENCE_constraint },
346 asn_MBR_TypeI_MultiPanelCodebook_1,
347 6, /* Elements count */
348 &asn_SPC_TypeI_MultiPanelCodebook_specs_1 /* Additional specs */