2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "E2SM-RC-IEs"
4 * found in "e2sm-rc-nov2021.asn"
5 * `asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
11 memb_macroNgENB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
12 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
13 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
17 ASN__CTFAIL(app_key, td, sptr,
18 "%s: value not given (%s:%d)",
19 td->name, __FILE__, __LINE__);
25 size = 8 * st->size - (st->bits_unused & 0x07);
31 /* Constraint check succeeded */
34 ASN__CTFAIL(app_key, td, sptr,
35 "%s: constraint failed (%s:%d)",
36 td->name, __FILE__, __LINE__);
42 memb_shortMacroNgENB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
43 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
44 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
48 ASN__CTFAIL(app_key, td, sptr,
49 "%s: value not given (%s:%d)",
50 td->name, __FILE__, __LINE__);
56 size = 8 * st->size - (st->bits_unused & 0x07);
62 /* Constraint check succeeded */
65 ASN__CTFAIL(app_key, td, sptr,
66 "%s: constraint failed (%s:%d)",
67 td->name, __FILE__, __LINE__);
73 memb_longMacroNgENB_ID_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
74 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
75 const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
79 ASN__CTFAIL(app_key, td, sptr,
80 "%s: value not given (%s:%d)",
81 td->name, __FILE__, __LINE__);
87 size = 8 * st->size - (st->bits_unused & 0x07);
93 /* Constraint check succeeded */
96 ASN__CTFAIL(app_key, td, sptr,
97 "%s: constraint failed (%s:%d)",
98 td->name, __FILE__, __LINE__);
103 static asn_oer_constraints_t asn_OER_memb_macroNgENB_ID_constr_2 CC_NOTUSED = {
105 20 /* (SIZE(20..20)) */};
106 static asn_per_constraints_t asn_PER_memb_macroNgENB_ID_constr_2 CC_NOTUSED = {
107 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
108 { APC_CONSTRAINED, 0, 0, 20, 20 } /* (SIZE(20..20)) */,
109 0, 0 /* No PER value map */
111 static asn_oer_constraints_t asn_OER_memb_shortMacroNgENB_ID_constr_3 CC_NOTUSED = {
113 18 /* (SIZE(18..18)) */};
114 static asn_per_constraints_t asn_PER_memb_shortMacroNgENB_ID_constr_3 CC_NOTUSED = {
115 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
116 { APC_CONSTRAINED, 0, 0, 18, 18 } /* (SIZE(18..18)) */,
117 0, 0 /* No PER value map */
119 static asn_oer_constraints_t asn_OER_memb_longMacroNgENB_ID_constr_4 CC_NOTUSED = {
121 21 /* (SIZE(21..21)) */};
122 static asn_per_constraints_t asn_PER_memb_longMacroNgENB_ID_constr_4 CC_NOTUSED = {
123 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
124 { APC_CONSTRAINED, 0, 0, 21, 21 } /* (SIZE(21..21)) */,
125 0, 0 /* No PER value map */
127 static asn_oer_constraints_t asn_OER_type_NgENB_ID_constr_1 CC_NOTUSED = {
130 asn_per_constraints_t asn_PER_type_NgENB_ID_constr_1 CC_NOTUSED = {
131 { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */,
132 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
133 0, 0 /* No PER value map */
135 asn_TYPE_member_t asn_MBR_NgENB_ID_1[] = {
136 { ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.macroNgENB_ID),
137 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
138 -1, /* IMPLICIT tag at current level */
141 { &asn_OER_memb_macroNgENB_ID_constr_2, &asn_PER_memb_macroNgENB_ID_constr_2, memb_macroNgENB_ID_constraint_1 },
142 0, 0, /* No default value */
145 { ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.shortMacroNgENB_ID),
146 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
147 -1, /* IMPLICIT tag at current level */
150 { &asn_OER_memb_shortMacroNgENB_ID_constr_3, &asn_PER_memb_shortMacroNgENB_ID_constr_3, memb_shortMacroNgENB_ID_constraint_1 },
151 0, 0, /* No default value */
154 { ATF_NOFLAGS, 0, offsetof(struct NgENB_ID, choice.longMacroNgENB_ID),
155 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
156 -1, /* IMPLICIT tag at current level */
159 { &asn_OER_memb_longMacroNgENB_ID_constr_4, &asn_PER_memb_longMacroNgENB_ID_constr_4, memb_longMacroNgENB_ID_constraint_1 },
160 0, 0, /* No default value */
164 static const asn_TYPE_tag2member_t asn_MAP_NgENB_ID_tag2el_1[] = {
165 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* macroNgENB-ID */
166 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* shortMacroNgENB-ID */
167 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* longMacroNgENB-ID */
169 asn_CHOICE_specifics_t asn_SPC_NgENB_ID_specs_1 = {
170 sizeof(struct NgENB_ID),
171 offsetof(struct NgENB_ID, _asn_ctx),
172 offsetof(struct NgENB_ID, present),
173 sizeof(((struct NgENB_ID *)0)->present),
174 asn_MAP_NgENB_ID_tag2el_1,
175 3, /* Count of tags in the map */
177 3 /* Extensions start */
179 asn_TYPE_descriptor_t asn_DEF_NgENB_ID = {
183 0, /* No effective tags (pointer) */
184 0, /* No effective tags (count) */
185 0, /* No tags (pointer) */
186 0, /* No tags (count) */
187 { &asn_OER_type_NgENB_ID_constr_1, &asn_PER_type_NgENB_ID_constr_1, CHOICE_constraint },
189 3, /* Elements count */
190 &asn_SPC_NgENB_ID_specs_1 /* Additional specs */