2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
3 * From ASN.1 module "X2AP-IEs"
4 * found in "X2AP-15-4-0.asn1"
5 * `asn1c -D ./asn1_n1 -pdu=auto -fno-include-deps -fcompound-names -findirect-choice -gen-PER -gen-OER -no-gen-example`
8 #include "E-RABUsageReport-Item.h"
10 #include "ProtocolExtensionContainer.h"
12 memb_startTimeStamp_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
13 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
14 const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
18 ASN__CTFAIL(app_key, td, sptr,
19 "%s: value not given (%s:%d)",
20 td->name, __FILE__, __LINE__);
27 /* Constraint check succeeded */
30 ASN__CTFAIL(app_key, td, sptr,
31 "%s: constraint failed (%s:%d)",
32 td->name, __FILE__, __LINE__);
38 memb_endTimeStamp_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
39 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
40 const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
44 ASN__CTFAIL(app_key, td, sptr,
45 "%s: value not given (%s:%d)",
46 td->name, __FILE__, __LINE__);
53 /* Constraint check succeeded */
56 ASN__CTFAIL(app_key, td, sptr,
57 "%s: constraint failed (%s:%d)",
58 td->name, __FILE__, __LINE__);
64 memb_usageCountUL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
65 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
66 const INTEGER_t *st = (const INTEGER_t *)sptr;
70 ASN__CTFAIL(app_key, td, sptr,
71 "%s: value not given (%s:%d)",
72 td->name, __FILE__, __LINE__);
76 if(asn_INTEGER2long(st, &value)) {
77 ASN__CTFAIL(app_key, td, sptr,
78 "%s: value too large (%s:%d)",
79 td->name, __FILE__, __LINE__);
83 if((value >= 0 && value <= 18446744073709551615U)) {
84 /* Constraint check succeeded */
87 ASN__CTFAIL(app_key, td, sptr,
88 "%s: constraint failed (%s:%d)",
89 td->name, __FILE__, __LINE__);
95 memb_usageCountDL_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
96 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
97 const INTEGER_t *st = (const INTEGER_t *)sptr;
101 ASN__CTFAIL(app_key, td, sptr,
102 "%s: value not given (%s:%d)",
103 td->name, __FILE__, __LINE__);
107 if(asn_INTEGER2long(st, &value)) {
108 ASN__CTFAIL(app_key, td, sptr,
109 "%s: value too large (%s:%d)",
110 td->name, __FILE__, __LINE__);
114 if((value >= 0 && value <= 18446744073709551615U)) {
115 /* Constraint check succeeded */
118 ASN__CTFAIL(app_key, td, sptr,
119 "%s: constraint failed (%s:%d)",
120 td->name, __FILE__, __LINE__);
125 static asn_oer_constraints_t asn_OER_memb_startTimeStamp_constr_2 CC_NOTUSED = {
127 4 /* (SIZE(4..4)) */};
128 static asn_per_constraints_t asn_PER_memb_startTimeStamp_constr_2 CC_NOTUSED = {
129 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
130 { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */,
131 0, 0 /* No PER value map */
133 static asn_oer_constraints_t asn_OER_memb_endTimeStamp_constr_3 CC_NOTUSED = {
135 4 /* (SIZE(4..4)) */};
136 static asn_per_constraints_t asn_PER_memb_endTimeStamp_constr_3 CC_NOTUSED = {
137 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
138 { APC_CONSTRAINED, 0, 0, 4, 4 } /* (SIZE(4..4)) */,
139 0, 0 /* No PER value map */
141 static asn_oer_constraints_t asn_OER_memb_usageCountUL_constr_4 CC_NOTUSED = {
142 { 8, 1 } /* (0..18446744073709551615U) */,
144 static asn_per_constraints_t asn_PER_memb_usageCountUL_constr_4 CC_NOTUSED = {
145 { APC_CONSTRAINED, 64, -1, 0, 18446744073709551615U } /* (0..18446744073709551615U) */,
146 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
147 0, 0 /* No PER value map */
149 static asn_oer_constraints_t asn_OER_memb_usageCountDL_constr_5 CC_NOTUSED = {
150 { 8, 1 } /* (0..18446744073709551615U) */,
152 static asn_per_constraints_t asn_PER_memb_usageCountDL_constr_5 CC_NOTUSED = {
153 { APC_CONSTRAINED, 64, -1, 0, 18446744073709551615U } /* (0..18446744073709551615U) */,
154 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
155 0, 0 /* No PER value map */
157 static asn_TYPE_member_t asn_MBR_E_RABUsageReport_Item_1[] = {
158 { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, startTimeStamp),
159 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
160 -1, /* IMPLICIT tag at current level */
161 &asn_DEF_OCTET_STRING,
163 { &asn_OER_memb_startTimeStamp_constr_2, &asn_PER_memb_startTimeStamp_constr_2, memb_startTimeStamp_constraint_1 },
164 0, 0, /* No default value */
167 { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, endTimeStamp),
168 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
169 -1, /* IMPLICIT tag at current level */
170 &asn_DEF_OCTET_STRING,
172 { &asn_OER_memb_endTimeStamp_constr_3, &asn_PER_memb_endTimeStamp_constr_3, memb_endTimeStamp_constraint_1 },
173 0, 0, /* No default value */
176 { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, usageCountUL),
177 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
178 -1, /* IMPLICIT tag at current level */
181 { &asn_OER_memb_usageCountUL_constr_4, &asn_PER_memb_usageCountUL_constr_4, memb_usageCountUL_constraint_1 },
182 0, 0, /* No default value */
185 { ATF_NOFLAGS, 0, offsetof(struct E_RABUsageReport_Item, usageCountDL),
186 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
187 -1, /* IMPLICIT tag at current level */
190 { &asn_OER_memb_usageCountDL_constr_5, &asn_PER_memb_usageCountDL_constr_5, memb_usageCountDL_constraint_1 },
191 0, 0, /* No default value */
194 { ATF_POINTER, 1, offsetof(struct E_RABUsageReport_Item, iE_Extensions),
195 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
196 -1, /* IMPLICIT tag at current level */
197 &asn_DEF_ProtocolExtensionContainer_7683P141,
200 0, 0, /* No default value */
204 static const int asn_MAP_E_RABUsageReport_Item_oms_1[] = { 4 };
205 static const ber_tlv_tag_t asn_DEF_E_RABUsageReport_Item_tags_1[] = {
206 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
208 static const asn_TYPE_tag2member_t asn_MAP_E_RABUsageReport_Item_tag2el_1[] = {
209 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* startTimeStamp */
210 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* endTimeStamp */
211 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* usageCountUL */
212 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* usageCountDL */
213 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 } /* iE-Extensions */
215 static asn_SEQUENCE_specifics_t asn_SPC_E_RABUsageReport_Item_specs_1 = {
216 sizeof(struct E_RABUsageReport_Item),
217 offsetof(struct E_RABUsageReport_Item, _asn_ctx),
218 asn_MAP_E_RABUsageReport_Item_tag2el_1,
219 5, /* Count of tags in the map */
220 asn_MAP_E_RABUsageReport_Item_oms_1, /* Optional members */
221 1, 0, /* Root/Additions */
222 5, /* First extension addition */
224 asn_TYPE_descriptor_t asn_DEF_E_RABUsageReport_Item = {
225 "E-RABUsageReport-Item",
226 "E-RABUsageReport-Item",
228 asn_DEF_E_RABUsageReport_Item_tags_1,
229 sizeof(asn_DEF_E_RABUsageReport_Item_tags_1)
230 /sizeof(asn_DEF_E_RABUsageReport_Item_tags_1[0]), /* 1 */
231 asn_DEF_E_RABUsageReport_Item_tags_1, /* Same as above */
232 sizeof(asn_DEF_E_RABUsageReport_Item_tags_1)
233 /sizeof(asn_DEF_E_RABUsageReport_Item_tags_1[0]), /* 1 */
234 { 0, 0, SEQUENCE_constraint },
235 asn_MBR_E_RABUsageReport_Item_1,
236 5, /* Elements count */
237 &asn_SPC_E_RABUsageReport_Item_specs_1 /* Additional specs */