2 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
\r
3 * From ASN.1 module "X2AP-IEs"
\r
4 * found in "../../asn_defs/asn1/x2ap-modified-15-05.asn"
\r
5 * `asn1c -fcompound-names -fno-include-deps -findirect-choice -gen-PER -no-gen-OER`
\r
8 #include "Subscription-Based-UE-DifferentiationInfo.h"
\r
10 #include "ScheduledCommunicationTime.h"
\r
11 #include "ProtocolExtensionContainer.h"
\r
13 * This type is implemented using NativeEnumerated,
\r
14 * so here we adjust the DEF accordingly.
\r
17 * This type is implemented using NativeEnumerated,
\r
18 * so here we adjust the DEF accordingly.
\r
21 * This type is implemented using NativeEnumerated,
\r
22 * so here we adjust the DEF accordingly.
\r
25 * This type is implemented using NativeEnumerated,
\r
26 * so here we adjust the DEF accordingly.
\r
29 memb_periodicTime_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
\r
30 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
\r
34 ASN__CTFAIL(app_key, td, sptr,
\r
35 "%s: value not given (%s:%d)",
\r
36 td->name, __FILE__, __LINE__);
\r
40 value = *(const long *)sptr;
\r
42 if((value >= 1 && value <= 3600)) {
\r
43 /* Constraint check succeeded */
\r
46 ASN__CTFAIL(app_key, td, sptr,
\r
47 "%s: constraint failed (%s:%d)",
\r
48 td->name, __FILE__, __LINE__);
\r
53 static asn_per_constraints_t asn_PER_type_periodicCommunicationIndicator_constr_2 CC_NOTUSED = {
\r
54 { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */,
\r
55 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
\r
56 0, 0 /* No PER value map */
\r
58 static asn_per_constraints_t asn_PER_type_stationaryIndication_constr_8 CC_NOTUSED = {
\r
59 { APC_CONSTRAINED | APC_EXTENSIBLE, 1, 1, 0, 1 } /* (0..1,...) */,
\r
60 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
\r
61 0, 0 /* No PER value map */
\r
63 static asn_per_constraints_t asn_PER_type_trafficProfile_constr_12 CC_NOTUSED = {
\r
64 { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */,
\r
65 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
\r
66 0, 0 /* No PER value map */
\r
68 static asn_per_constraints_t asn_PER_type_batteryIndication_constr_17 CC_NOTUSED = {
\r
69 { APC_CONSTRAINED | APC_EXTENSIBLE, 2, 2, 0, 2 } /* (0..2,...) */,
\r
70 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
\r
71 0, 0 /* No PER value map */
\r
73 static asn_per_constraints_t asn_PER_memb_periodicTime_constr_6 CC_NOTUSED = {
\r
74 { APC_CONSTRAINED | APC_EXTENSIBLE, 12, 12, 1, 3600 } /* (1..3600,...) */,
\r
75 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
\r
76 0, 0 /* No PER value map */
\r
78 static const asn_INTEGER_enum_map_t asn_MAP_periodicCommunicationIndicator_value2enum_2[] = {
\r
79 { 0, 12, "periodically" },
\r
80 { 1, 8, "ondemand" }
\r
81 /* This list is extensible */
\r
83 static const unsigned int asn_MAP_periodicCommunicationIndicator_enum2value_2[] = {
\r
84 1, /* ondemand(1) */
\r
85 0 /* periodically(0) */
\r
86 /* This list is extensible */
\r
88 static const asn_INTEGER_specifics_t asn_SPC_periodicCommunicationIndicator_specs_2 = {
\r
89 asn_MAP_periodicCommunicationIndicator_value2enum_2, /* "tag" => N; sorted by tag */
\r
90 asn_MAP_periodicCommunicationIndicator_enum2value_2, /* N => "tag"; sorted by N */
\r
91 2, /* Number of elements in the maps */
\r
92 3, /* Extensions before this member */
\r
93 1, /* Strict enumeration */
\r
94 0, /* Native long size */
\r
97 static const ber_tlv_tag_t asn_DEF_periodicCommunicationIndicator_tags_2[] = {
\r
98 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
\r
99 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
\r
101 static /* Use -fall-defs-global to expose */
\r
102 asn_TYPE_descriptor_t asn_DEF_periodicCommunicationIndicator_2 = {
\r
103 "periodicCommunicationIndicator",
\r
104 "periodicCommunicationIndicator",
\r
105 &asn_OP_NativeEnumerated,
\r
106 asn_DEF_periodicCommunicationIndicator_tags_2,
\r
107 sizeof(asn_DEF_periodicCommunicationIndicator_tags_2)
\r
108 /sizeof(asn_DEF_periodicCommunicationIndicator_tags_2[0]) - 1, /* 1 */
\r
109 asn_DEF_periodicCommunicationIndicator_tags_2, /* Same as above */
\r
110 sizeof(asn_DEF_periodicCommunicationIndicator_tags_2)
\r
111 /sizeof(asn_DEF_periodicCommunicationIndicator_tags_2[0]), /* 2 */
\r
112 { 0, &asn_PER_type_periodicCommunicationIndicator_constr_2, NativeEnumerated_constraint },
\r
113 0, 0, /* Defined elsewhere */
\r
114 &asn_SPC_periodicCommunicationIndicator_specs_2 /* Additional specs */
\r
117 static const asn_INTEGER_enum_map_t asn_MAP_stationaryIndication_value2enum_8[] = {
\r
118 { 0, 10, "stationary" },
\r
120 /* This list is extensible */
\r
122 static const unsigned int asn_MAP_stationaryIndication_enum2value_8[] = {
\r
124 0 /* stationary(0) */
\r
125 /* This list is extensible */
\r
127 static const asn_INTEGER_specifics_t asn_SPC_stationaryIndication_specs_8 = {
\r
128 asn_MAP_stationaryIndication_value2enum_8, /* "tag" => N; sorted by tag */
\r
129 asn_MAP_stationaryIndication_enum2value_8, /* N => "tag"; sorted by N */
\r
130 2, /* Number of elements in the maps */
\r
131 3, /* Extensions before this member */
\r
132 1, /* Strict enumeration */
\r
133 0, /* Native long size */
\r
136 static const ber_tlv_tag_t asn_DEF_stationaryIndication_tags_8[] = {
\r
137 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
\r
138 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
\r
140 static /* Use -fall-defs-global to expose */
\r
141 asn_TYPE_descriptor_t asn_DEF_stationaryIndication_8 = {
\r
142 "stationaryIndication",
\r
143 "stationaryIndication",
\r
144 &asn_OP_NativeEnumerated,
\r
145 asn_DEF_stationaryIndication_tags_8,
\r
146 sizeof(asn_DEF_stationaryIndication_tags_8)
\r
147 /sizeof(asn_DEF_stationaryIndication_tags_8[0]) - 1, /* 1 */
\r
148 asn_DEF_stationaryIndication_tags_8, /* Same as above */
\r
149 sizeof(asn_DEF_stationaryIndication_tags_8)
\r
150 /sizeof(asn_DEF_stationaryIndication_tags_8[0]), /* 2 */
\r
151 { 0, &asn_PER_type_stationaryIndication_constr_8, NativeEnumerated_constraint },
\r
152 0, 0, /* Defined elsewhere */
\r
153 &asn_SPC_stationaryIndication_specs_8 /* Additional specs */
\r
156 static const asn_INTEGER_enum_map_t asn_MAP_trafficProfile_value2enum_12[] = {
\r
157 { 0, 13, "single-packet" },
\r
158 { 1, 12, "dual-packets" },
\r
159 { 2, 16, "multiple-packets" }
\r
160 /* This list is extensible */
\r
162 static const unsigned int asn_MAP_trafficProfile_enum2value_12[] = {
\r
163 1, /* dual-packets(1) */
\r
164 2, /* multiple-packets(2) */
\r
165 0 /* single-packet(0) */
\r
166 /* This list is extensible */
\r
168 static const asn_INTEGER_specifics_t asn_SPC_trafficProfile_specs_12 = {
\r
169 asn_MAP_trafficProfile_value2enum_12, /* "tag" => N; sorted by tag */
\r
170 asn_MAP_trafficProfile_enum2value_12, /* N => "tag"; sorted by N */
\r
171 3, /* Number of elements in the maps */
\r
172 4, /* Extensions before this member */
\r
173 1, /* Strict enumeration */
\r
174 0, /* Native long size */
\r
177 static const ber_tlv_tag_t asn_DEF_trafficProfile_tags_12[] = {
\r
178 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
\r
179 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
\r
181 static /* Use -fall-defs-global to expose */
\r
182 asn_TYPE_descriptor_t asn_DEF_trafficProfile_12 = {
\r
185 &asn_OP_NativeEnumerated,
\r
186 asn_DEF_trafficProfile_tags_12,
\r
187 sizeof(asn_DEF_trafficProfile_tags_12)
\r
188 /sizeof(asn_DEF_trafficProfile_tags_12[0]) - 1, /* 1 */
\r
189 asn_DEF_trafficProfile_tags_12, /* Same as above */
\r
190 sizeof(asn_DEF_trafficProfile_tags_12)
\r
191 /sizeof(asn_DEF_trafficProfile_tags_12[0]), /* 2 */
\r
192 { 0, &asn_PER_type_trafficProfile_constr_12, NativeEnumerated_constraint },
\r
193 0, 0, /* Defined elsewhere */
\r
194 &asn_SPC_trafficProfile_specs_12 /* Additional specs */
\r
197 static const asn_INTEGER_enum_map_t asn_MAP_batteryIndication_value2enum_17[] = {
\r
198 { 0, 15, "battery-powered" },
\r
199 { 1, 47, "battery-powered-not-rechargeable-or-replaceable" },
\r
200 { 2, 19, "not-battery-powered" }
\r
201 /* This list is extensible */
\r
203 static const unsigned int asn_MAP_batteryIndication_enum2value_17[] = {
\r
204 0, /* battery-powered(0) */
\r
205 1, /* battery-powered-not-rechargeable-or-replaceable(1) */
\r
206 2 /* not-battery-powered(2) */
\r
207 /* This list is extensible */
\r
209 static const asn_INTEGER_specifics_t asn_SPC_batteryIndication_specs_17 = {
\r
210 asn_MAP_batteryIndication_value2enum_17, /* "tag" => N; sorted by tag */
\r
211 asn_MAP_batteryIndication_enum2value_17, /* N => "tag"; sorted by N */
\r
212 3, /* Number of elements in the maps */
\r
213 4, /* Extensions before this member */
\r
214 1, /* Strict enumeration */
\r
215 0, /* Native long size */
\r
218 static const ber_tlv_tag_t asn_DEF_batteryIndication_tags_17[] = {
\r
219 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
\r
220 (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
\r
222 static /* Use -fall-defs-global to expose */
\r
223 asn_TYPE_descriptor_t asn_DEF_batteryIndication_17 = {
\r
224 "batteryIndication",
\r
225 "batteryIndication",
\r
226 &asn_OP_NativeEnumerated,
\r
227 asn_DEF_batteryIndication_tags_17,
\r
228 sizeof(asn_DEF_batteryIndication_tags_17)
\r
229 /sizeof(asn_DEF_batteryIndication_tags_17[0]) - 1, /* 1 */
\r
230 asn_DEF_batteryIndication_tags_17, /* Same as above */
\r
231 sizeof(asn_DEF_batteryIndication_tags_17)
\r
232 /sizeof(asn_DEF_batteryIndication_tags_17[0]), /* 2 */
\r
233 { 0, &asn_PER_type_batteryIndication_constr_17, NativeEnumerated_constraint },
\r
234 0, 0, /* Defined elsewhere */
\r
235 &asn_SPC_batteryIndication_specs_17 /* Additional specs */
\r
238 static asn_TYPE_member_t asn_MBR_Subscription_Based_UE_DifferentiationInfo_1[] = {
\r
239 { ATF_POINTER, 7, offsetof(struct Subscription_Based_UE_DifferentiationInfo, periodicCommunicationIndicator),
\r
240 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
\r
241 -1, /* IMPLICIT tag at current level */
\r
242 &asn_DEF_periodicCommunicationIndicator_2,
\r
245 0, 0, /* No default value */
\r
246 "periodicCommunicationIndicator"
\r
248 { ATF_POINTER, 6, offsetof(struct Subscription_Based_UE_DifferentiationInfo, periodicTime),
\r
249 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
\r
250 -1, /* IMPLICIT tag at current level */
\r
251 &asn_DEF_NativeInteger,
\r
253 { 0, &asn_PER_memb_periodicTime_constr_6, memb_periodicTime_constraint_1 },
\r
254 0, 0, /* No default value */
\r
257 { ATF_POINTER, 5, offsetof(struct Subscription_Based_UE_DifferentiationInfo, scheduledCommunicationTime),
\r
258 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
\r
259 -1, /* IMPLICIT tag at current level */
\r
260 &asn_DEF_ScheduledCommunicationTime,
\r
263 0, 0, /* No default value */
\r
264 "scheduledCommunicationTime"
\r
266 { ATF_POINTER, 4, offsetof(struct Subscription_Based_UE_DifferentiationInfo, stationaryIndication),
\r
267 (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
\r
268 -1, /* IMPLICIT tag at current level */
\r
269 &asn_DEF_stationaryIndication_8,
\r
272 0, 0, /* No default value */
\r
273 "stationaryIndication"
\r
275 { ATF_POINTER, 3, offsetof(struct Subscription_Based_UE_DifferentiationInfo, trafficProfile),
\r
276 (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
\r
277 -1, /* IMPLICIT tag at current level */
\r
278 &asn_DEF_trafficProfile_12,
\r
281 0, 0, /* No default value */
\r
284 { ATF_POINTER, 2, offsetof(struct Subscription_Based_UE_DifferentiationInfo, batteryIndication),
\r
285 (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
\r
286 -1, /* IMPLICIT tag at current level */
\r
287 &asn_DEF_batteryIndication_17,
\r
290 0, 0, /* No default value */
\r
291 "batteryIndication"
\r
293 { ATF_POINTER, 1, offsetof(struct Subscription_Based_UE_DifferentiationInfo, iE_Extensions),
\r
294 (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
\r
295 -1, /* IMPLICIT tag at current level */
\r
296 &asn_DEF_ProtocolExtensionContainer_8231P196,
\r
299 0, 0, /* No default value */
\r
303 static const int asn_MAP_Subscription_Based_UE_DifferentiationInfo_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 };
\r
304 static const ber_tlv_tag_t asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[] = {
\r
305 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
\r
307 static const asn_TYPE_tag2member_t asn_MAP_Subscription_Based_UE_DifferentiationInfo_tag2el_1[] = {
\r
308 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodicCommunicationIndicator */
\r
309 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* periodicTime */
\r
310 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scheduledCommunicationTime */
\r
311 { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* stationaryIndication */
\r
312 { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* trafficProfile */
\r
313 { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* batteryIndication */
\r
314 { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
\r
316 static asn_SEQUENCE_specifics_t asn_SPC_Subscription_Based_UE_DifferentiationInfo_specs_1 = {
\r
317 sizeof(struct Subscription_Based_UE_DifferentiationInfo),
\r
318 offsetof(struct Subscription_Based_UE_DifferentiationInfo, _asn_ctx),
\r
319 asn_MAP_Subscription_Based_UE_DifferentiationInfo_tag2el_1,
\r
320 7, /* Count of tags in the map */
\r
321 asn_MAP_Subscription_Based_UE_DifferentiationInfo_oms_1, /* Optional members */
\r
322 7, 0, /* Root/Additions */
\r
323 7, /* First extension addition */
\r
325 asn_TYPE_descriptor_t asn_DEF_Subscription_Based_UE_DifferentiationInfo = {
\r
326 "Subscription-Based-UE-DifferentiationInfo",
\r
327 "Subscription-Based-UE-DifferentiationInfo",
\r
329 asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1,
\r
330 sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1)
\r
331 /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[0]), /* 1 */
\r
332 asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1, /* Same as above */
\r
333 sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1)
\r
334 /sizeof(asn_DEF_Subscription_Based_UE_DifferentiationInfo_tags_1[0]), /* 1 */
\r
335 { 0, 0, SEQUENCE_constraint },
\r
336 asn_MBR_Subscription_Based_UE_DifferentiationInfo_1,
\r
337 7, /* Elements count */
\r
338 &asn_SPC_Subscription_Based_UE_DifferentiationInfo_specs_1 /* Additional specs */
\r