[Epic-ID: ODUHIGH-405][Task-ID: ODUHIGH-423] Modified RRC asn structures
[o-du/l2.git] / src / codec_utils / RRC / FeatureSetUplinkPerCC.c
1 /*
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`
6  */
7
8 #include "FeatureSetUplinkPerCC.h"
9
10 /*
11  * This type is implemented using NativeEnumerated,
12  * so here we adjust the DEF accordingly.
13  */
14 static int
15 memb_maxNumberSRS_ResourcePerSet_constraint_6(const asn_TYPE_descriptor_t *td, const void *sptr,
16                         asn_app_constraint_failed_f *ctfailcb, void *app_key) {
17         long value;
18         
19         if(!sptr) {
20                 ASN__CTFAIL(app_key, td, sptr,
21                         "%s: value not given (%s:%d)",
22                         td->name, __FILE__, __LINE__);
23                 return -1;
24         }
25         
26         value = *(const long *)sptr;
27         
28         if((value >= 1 && value <= 2)) {
29                 /* Constraint check succeeded */
30                 return 0;
31         } else {
32                 ASN__CTFAIL(app_key, td, sptr,
33                         "%s: constraint failed (%s:%d)",
34                         td->name, __FILE__, __LINE__);
35                 return -1;
36         }
37 }
38
39 static asn_oer_constraints_t asn_OER_type_channelBW_90mhz_constr_4 CC_NOTUSED = {
40         { 0, 0 },
41         -1};
42 static asn_per_constraints_t asn_PER_type_channelBW_90mhz_constr_4 CC_NOTUSED = {
43         { APC_CONSTRAINED,       0,  0,  0,  0 }        /* (0..0) */,
44         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
45         0, 0    /* No PER value map */
46 };
47 static asn_oer_constraints_t asn_OER_memb_maxNumberSRS_ResourcePerSet_constr_8 CC_NOTUSED = {
48         { 1, 1 }        /* (1..2) */,
49         -1};
50 static asn_per_constraints_t asn_PER_memb_maxNumberSRS_ResourcePerSet_constr_8 CC_NOTUSED = {
51         { APC_CONSTRAINED,       1,  1,  1,  2 }        /* (1..2) */,
52         { APC_UNCONSTRAINED,    -1, -1,  0,  0 },
53         0, 0    /* No PER value map */
54 };
55 static const asn_INTEGER_enum_map_t asn_MAP_channelBW_90mhz_value2enum_4[] = {
56         { 0,    9,      "supported" }
57 };
58 static const unsigned int asn_MAP_channelBW_90mhz_enum2value_4[] = {
59         0       /* supported(0) */
60 };
61 static const asn_INTEGER_specifics_t asn_SPC_channelBW_90mhz_specs_4 = {
62         asn_MAP_channelBW_90mhz_value2enum_4,   /* "tag" => N; sorted by tag */
63         asn_MAP_channelBW_90mhz_enum2value_4,   /* N => "tag"; sorted by N */
64         1,      /* Number of elements in the maps */
65         0,      /* Enumeration is not extensible */
66         1,      /* Strict enumeration */
67         0,      /* Native long size */
68         0
69 };
70 static const ber_tlv_tag_t asn_DEF_channelBW_90mhz_tags_4[] = {
71         (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
72         (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
73 };
74 static /* Use -fall-defs-global to expose */
75 asn_TYPE_descriptor_t asn_DEF_channelBW_90mhz_4 = {
76         "channelBW-90mhz",
77         "channelBW-90mhz",
78         &asn_OP_NativeEnumerated,
79         asn_DEF_channelBW_90mhz_tags_4,
80         sizeof(asn_DEF_channelBW_90mhz_tags_4)
81                 /sizeof(asn_DEF_channelBW_90mhz_tags_4[0]) - 1, /* 1 */
82         asn_DEF_channelBW_90mhz_tags_4, /* Same as above */
83         sizeof(asn_DEF_channelBW_90mhz_tags_4)
84                 /sizeof(asn_DEF_channelBW_90mhz_tags_4[0]), /* 2 */
85         { &asn_OER_type_channelBW_90mhz_constr_4, &asn_PER_type_channelBW_90mhz_constr_4, NativeEnumerated_constraint },
86         0, 0,   /* Defined elsewhere */
87         &asn_SPC_channelBW_90mhz_specs_4        /* Additional specs */
88 };
89
90 static asn_TYPE_member_t asn_MBR_mimo_CB_PUSCH_6[] = {
91         { ATF_POINTER, 1, offsetof(struct FeatureSetUplinkPerCC__mimo_CB_PUSCH, maxNumberMIMO_LayersCB_PUSCH),
92                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
93                 -1,     /* IMPLICIT tag at current level */
94                 &asn_DEF_MIMO_LayersUL,
95                 0,
96                 { 0, 0, 0 },
97                 0, 0, /* No default value */
98                 "maxNumberMIMO-LayersCB-PUSCH"
99                 },
100         { ATF_NOFLAGS, 0, offsetof(struct FeatureSetUplinkPerCC__mimo_CB_PUSCH, maxNumberSRS_ResourcePerSet),
101                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
102                 -1,     /* IMPLICIT tag at current level */
103                 &asn_DEF_NativeInteger,
104                 0,
105                 { &asn_OER_memb_maxNumberSRS_ResourcePerSet_constr_8, &asn_PER_memb_maxNumberSRS_ResourcePerSet_constr_8,  memb_maxNumberSRS_ResourcePerSet_constraint_6 },
106                 0, 0, /* No default value */
107                 "maxNumberSRS-ResourcePerSet"
108                 },
109 };
110 static const int asn_MAP_mimo_CB_PUSCH_oms_6[] = { 0 };
111 static const ber_tlv_tag_t asn_DEF_mimo_CB_PUSCH_tags_6[] = {
112         (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
113         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
114 };
115 static const asn_TYPE_tag2member_t asn_MAP_mimo_CB_PUSCH_tag2el_6[] = {
116     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* maxNumberMIMO-LayersCB-PUSCH */
117     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* maxNumberSRS-ResourcePerSet */
118 };
119 static asn_SEQUENCE_specifics_t asn_SPC_mimo_CB_PUSCH_specs_6 = {
120         sizeof(struct FeatureSetUplinkPerCC__mimo_CB_PUSCH),
121         offsetof(struct FeatureSetUplinkPerCC__mimo_CB_PUSCH, _asn_ctx),
122         asn_MAP_mimo_CB_PUSCH_tag2el_6,
123         2,      /* Count of tags in the map */
124         asn_MAP_mimo_CB_PUSCH_oms_6,    /* Optional members */
125         1, 0,   /* Root/Additions */
126         -1,     /* First extension addition */
127 };
128 static /* Use -fall-defs-global to expose */
129 asn_TYPE_descriptor_t asn_DEF_mimo_CB_PUSCH_6 = {
130         "mimo-CB-PUSCH",
131         "mimo-CB-PUSCH",
132         &asn_OP_SEQUENCE,
133         asn_DEF_mimo_CB_PUSCH_tags_6,
134         sizeof(asn_DEF_mimo_CB_PUSCH_tags_6)
135                 /sizeof(asn_DEF_mimo_CB_PUSCH_tags_6[0]) - 1, /* 1 */
136         asn_DEF_mimo_CB_PUSCH_tags_6,   /* Same as above */
137         sizeof(asn_DEF_mimo_CB_PUSCH_tags_6)
138                 /sizeof(asn_DEF_mimo_CB_PUSCH_tags_6[0]), /* 2 */
139         { 0, 0, SEQUENCE_constraint },
140         asn_MBR_mimo_CB_PUSCH_6,
141         2,      /* Elements count */
142         &asn_SPC_mimo_CB_PUSCH_specs_6  /* Additional specs */
143 };
144
145 asn_TYPE_member_t asn_MBR_FeatureSetUplinkPerCC_1[] = {
146         { ATF_NOFLAGS, 0, offsetof(struct FeatureSetUplinkPerCC, supportedSubcarrierSpacingUL),
147                 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
148                 -1,     /* IMPLICIT tag at current level */
149                 &asn_DEF_SubcarrierSpacing,
150                 0,
151                 { 0, 0, 0 },
152                 0, 0, /* No default value */
153                 "supportedSubcarrierSpacingUL"
154                 },
155         { ATF_NOFLAGS, 0, offsetof(struct FeatureSetUplinkPerCC, supportedBandwidthUL),
156                 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
157                 +1,     /* EXPLICIT tag at current level */
158                 &asn_DEF_SupportedBandwidth,
159                 0,
160                 { 0, 0, 0 },
161                 0, 0, /* No default value */
162                 "supportedBandwidthUL"
163                 },
164         { ATF_POINTER, 4, offsetof(struct FeatureSetUplinkPerCC, channelBW_90mhz),
165                 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
166                 -1,     /* IMPLICIT tag at current level */
167                 &asn_DEF_channelBW_90mhz_4,
168                 0,
169                 { 0, 0, 0 },
170                 0, 0, /* No default value */
171                 "channelBW-90mhz"
172                 },
173         { ATF_POINTER, 3, offsetof(struct FeatureSetUplinkPerCC, mimo_CB_PUSCH),
174                 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
175                 0,
176                 &asn_DEF_mimo_CB_PUSCH_6,
177                 0,
178                 { 0, 0, 0 },
179                 0, 0, /* No default value */
180                 "mimo-CB-PUSCH"
181                 },
182         { ATF_POINTER, 2, offsetof(struct FeatureSetUplinkPerCC, maxNumberMIMO_LayersNonCB_PUSCH),
183                 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
184                 -1,     /* IMPLICIT tag at current level */
185                 &asn_DEF_MIMO_LayersUL,
186                 0,
187                 { 0, 0, 0 },
188                 0, 0, /* No default value */
189                 "maxNumberMIMO-LayersNonCB-PUSCH"
190                 },
191         { ATF_POINTER, 1, offsetof(struct FeatureSetUplinkPerCC, supportedModulationOrderUL),
192                 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
193                 -1,     /* IMPLICIT tag at current level */
194                 &asn_DEF_ModulationOrder,
195                 0,
196                 { 0, 0, 0 },
197                 0, 0, /* No default value */
198                 "supportedModulationOrderUL"
199                 },
200 };
201 static const int asn_MAP_FeatureSetUplinkPerCC_oms_1[] = { 2, 3, 4, 5 };
202 static const ber_tlv_tag_t asn_DEF_FeatureSetUplinkPerCC_tags_1[] = {
203         (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
204 };
205 static const asn_TYPE_tag2member_t asn_MAP_FeatureSetUplinkPerCC_tag2el_1[] = {
206     { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* supportedSubcarrierSpacingUL */
207     { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* supportedBandwidthUL */
208     { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* channelBW-90mhz */
209     { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* mimo-CB-PUSCH */
210     { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* maxNumberMIMO-LayersNonCB-PUSCH */
211     { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 } /* supportedModulationOrderUL */
212 };
213 asn_SEQUENCE_specifics_t asn_SPC_FeatureSetUplinkPerCC_specs_1 = {
214         sizeof(struct FeatureSetUplinkPerCC),
215         offsetof(struct FeatureSetUplinkPerCC, _asn_ctx),
216         asn_MAP_FeatureSetUplinkPerCC_tag2el_1,
217         6,      /* Count of tags in the map */
218         asn_MAP_FeatureSetUplinkPerCC_oms_1,    /* Optional members */
219         4, 0,   /* Root/Additions */
220         -1,     /* First extension addition */
221 };
222 asn_TYPE_descriptor_t asn_DEF_FeatureSetUplinkPerCC = {
223         "FeatureSetUplinkPerCC",
224         "FeatureSetUplinkPerCC",
225         &asn_OP_SEQUENCE,
226         asn_DEF_FeatureSetUplinkPerCC_tags_1,
227         sizeof(asn_DEF_FeatureSetUplinkPerCC_tags_1)
228                 /sizeof(asn_DEF_FeatureSetUplinkPerCC_tags_1[0]), /* 1 */
229         asn_DEF_FeatureSetUplinkPerCC_tags_1,   /* Same as above */
230         sizeof(asn_DEF_FeatureSetUplinkPerCC_tags_1)
231                 /sizeof(asn_DEF_FeatureSetUplinkPerCC_tags_1[0]), /* 1 */
232         { 0, 0, SEQUENCE_constraint },
233         asn_MBR_FeatureSetUplinkPerCC_1,
234         6,      /* Elements count */
235         &asn_SPC_FeatureSetUplinkPerCC_specs_1  /* Additional specs */
236 };
237