Coverage Report

Created: 2026-11-12 06:28

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/open5gs/lib/asn1c/s1ap/S1AP_Subscription-Based-UE-DifferentiationInfo.c
Line
Count
Source
1
/*
2
 * Generated by asn1c-v1.4-43-gb7926896-2026-05-03 (https://github.com/mouse07410/asn1c)
3
 * From ASN.1 module "S1AP-IEs"
4
 *  found in "../support/s1ap-r19.1.0/36413-j10.asn"
5
 *  `asn1c -pdu=all -fprefix=S1AP_ -fcompound-names -findirect-choice -fno-include-deps -no-gen-BER -no-gen-XER -no-gen-JER -no-gen-CBOR -no-gen-OER -no-gen-UPER`
6
 */
7
8
#include "S1AP_Subscription-Based-UE-DifferentiationInfo.h"
9
10
#include "S1AP_ScheduledCommunicationTime.h"
11
#include "S1AP_ProtocolExtensionContainer.h"
12
#ifndef ASN1C_NO_UNSUFFIXED_PDU_ALIAS
13
#if defined(__ELF__) && (defined(__GNUC__) || defined(__clang__))
14
extern asn_TYPE_descriptor_t asn_DEF_S1AP_periodicCommunicationIndicator __attribute__((weak, alias("asn_DEF_S1AP_periodicCommunicationIndicator_2")));
15
#else
16
static asn_TYPE_descriptor_t asn_DEF_S1AP_periodicCommunicationIndicator_2;
17
static asn_TYPE_descriptor_t asn_DEF_S1AP_periodicCommunicationIndicator;
18
__attribute__((constructor)) static void asn_DEF_S1AP_periodicCommunicationIndicator_2_alias_init(void) {
19
  asn_DEF_S1AP_periodicCommunicationIndicator = asn_DEF_S1AP_periodicCommunicationIndicator_2;
20
}
21
#endif
22
#endif /* ASN1C_NO_UNSUFFIXED_PDU_ALIAS */
23
/*
24
 * This type is implemented using NativeEnumerated,
25
 * so here we adjust the DEF accordingly.
26
 */
27
#ifndef ASN1C_NO_UNSUFFIXED_PDU_ALIAS
28
#if defined(__ELF__) && (defined(__GNUC__) || defined(__clang__))
29
extern asn_TYPE_descriptor_t asn_DEF_S1AP_stationaryIndication __attribute__((weak, alias("asn_DEF_S1AP_stationaryIndication_8")));
30
#else
31
static asn_TYPE_descriptor_t asn_DEF_S1AP_stationaryIndication_8;
32
static asn_TYPE_descriptor_t asn_DEF_S1AP_stationaryIndication;
33
__attribute__((constructor)) static void asn_DEF_S1AP_stationaryIndication_8_alias_init(void) {
34
  asn_DEF_S1AP_stationaryIndication = asn_DEF_S1AP_stationaryIndication_8;
35
}
36
#endif
37
#endif /* ASN1C_NO_UNSUFFIXED_PDU_ALIAS */
38
/*
39
 * This type is implemented using NativeEnumerated,
40
 * so here we adjust the DEF accordingly.
41
 */
42
#ifndef ASN1C_NO_UNSUFFIXED_PDU_ALIAS
43
#if defined(__ELF__) && (defined(__GNUC__) || defined(__clang__))
44
extern asn_TYPE_descriptor_t asn_DEF_S1AP_trafficProfile __attribute__((weak, alias("asn_DEF_S1AP_trafficProfile_12")));
45
#else
46
static asn_TYPE_descriptor_t asn_DEF_S1AP_trafficProfile_12;
47
static asn_TYPE_descriptor_t asn_DEF_S1AP_trafficProfile;
48
__attribute__((constructor)) static void asn_DEF_S1AP_trafficProfile_12_alias_init(void) {
49
  asn_DEF_S1AP_trafficProfile = asn_DEF_S1AP_trafficProfile_12;
50
}
51
#endif
52
#endif /* ASN1C_NO_UNSUFFIXED_PDU_ALIAS */
53
/*
54
 * This type is implemented using NativeEnumerated,
55
 * so here we adjust the DEF accordingly.
56
 */
57
#ifndef ASN1C_NO_UNSUFFIXED_PDU_ALIAS
58
#if defined(__ELF__) && (defined(__GNUC__) || defined(__clang__))
59
extern asn_TYPE_descriptor_t asn_DEF_S1AP_batteryIndication __attribute__((weak, alias("asn_DEF_S1AP_batteryIndication_17")));
60
#else
61
static asn_TYPE_descriptor_t asn_DEF_S1AP_batteryIndication_17;
62
static asn_TYPE_descriptor_t asn_DEF_S1AP_batteryIndication;
63
__attribute__((constructor)) static void asn_DEF_S1AP_batteryIndication_17_alias_init(void) {
64
  asn_DEF_S1AP_batteryIndication = asn_DEF_S1AP_batteryIndication_17;
65
}
66
#endif
67
#endif /* ASN1C_NO_UNSUFFIXED_PDU_ALIAS */
68
/*
69
 * This type is implemented using NativeEnumerated,
70
 * so here we adjust the DEF accordingly.
71
 */
72
static int
73
memb_S1AP_periodicTime_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
74
0
      asn_app_constraint_failed_f *ctfailcb, void *app_key) {
75
0
  long value;
76
  
77
0
  if(!sptr) {
78
0
    ASN__CTFAIL(app_key, td, sptr,
79
0
      "%s: value not given (%s:%d)",
80
0
      td->name, __FILE__, __LINE__);
81
0
    return -1;
82
0
  }
83
  
84
0
  value = *(const long *)sptr;
85
  
86
0
  if((value >= 1L && value <= 3600L)) {
87
    /* Constraint check succeeded */
88
0
    return 0;
89
0
  } else {
90
0
    ASN__CTFAIL(app_key, td, sptr,
91
0
      "%s: constraint failed (%s:%d)",
92
0
      td->name, __FILE__, __LINE__);
93
0
    return -1;
94
0
  }
95
0
}
96
97
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
98
static asn_per_constraints_t asn_PER_type_S1AP_periodicCommunicationIndicator_constr_2 CC_NOTUSED = {
99
  { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }  /* (0..1,...) */,
100
  { APC_UNCONSTRAINED,  -1, -1,  0,  0 },
101
  0, 0  /* No PER value map */
102
};
103
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
104
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
105
static asn_per_constraints_t asn_PER_type_S1AP_stationaryIndication_constr_8 CC_NOTUSED = {
106
  { APC_CONSTRAINED | APC_EXTENSIBLE,  1,  1,  0,  1 }  /* (0..1,...) */,
107
  { APC_UNCONSTRAINED,  -1, -1,  0,  0 },
108
  0, 0  /* No PER value map */
109
};
110
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
111
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
112
static asn_per_constraints_t asn_PER_type_S1AP_trafficProfile_constr_12 CC_NOTUSED = {
113
  { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }  /* (0..2,...) */,
114
  { APC_UNCONSTRAINED,  -1, -1,  0,  0 },
115
  0, 0  /* No PER value map */
116
};
117
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
118
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
119
static asn_per_constraints_t asn_PER_type_S1AP_batteryIndication_constr_17 CC_NOTUSED = {
120
  { APC_CONSTRAINED | APC_EXTENSIBLE,  2,  2,  0,  2 }  /* (0..2,...) */,
121
  { APC_UNCONSTRAINED,  -1, -1,  0,  0 },
122
  0, 0  /* No PER value map */
123
};
124
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
125
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
126
static asn_per_constraints_t asn_PER_memb_S1AP_periodicTime_constr_6 CC_NOTUSED = {
127
  { APC_CONSTRAINED | APC_EXTENSIBLE,  12,  12,  1,  3600 } /* (1..3600,...) */,
128
  { APC_UNCONSTRAINED,  -1, -1,  0,  0 },
129
  0, 0  /* No PER value map */
130
};
131
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
132
static const asn_INTEGER_enum_map_t asn_MAP_S1AP_periodicCommunicationIndicator_value2enum_2[] = {
133
  { 0,  12, "periodically" },
134
  { 1,  8,  "ondemand" }
135
  /* This list is extensible */
136
};
137
static int asn_validate_S1AP_periodicCommunicationIndicator_2(const asn_TYPE_descriptor_t *td,
138
                       const void *sptr,
139
                       asn_app_constraint_failed_f *ctfailcb,
140
0
                       void* app_key) {
141
0
    if(! sptr) { return -1; }
142
0
    e_S1AP_Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator value = *(e_S1AP_Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator*)sptr;
143
0
    switch(value) {
144
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator_periodically:
145
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__periodicCommunicationIndicator_ondemand:
146
0
        return 0;
147
0
    }
148
0
    return -1;
149
0
}
150
static const unsigned int asn_MAP_S1AP_periodicCommunicationIndicator_enum2value_2[] = {
151
  1,  /* ondemand(1) */
152
  0 /* periodically(0) */
153
  /* This list is extensible */
154
};
155
static const asn_INTEGER_specifics_t asn_SPC_S1AP_periodicCommunicationIndicator_specs_2 = {
156
  asn_MAP_S1AP_periodicCommunicationIndicator_value2enum_2, /* "tag" => N; sorted by tag */
157
  asn_MAP_S1AP_periodicCommunicationIndicator_enum2value_2, /* N => "tag"; sorted by N */
158
  2,  /* Number of elements in the maps */
159
  3,  /* Extensions before this member */
160
  1,  /* Strict enumeration */
161
  0,  /* Native long size */
162
  0
163
};
164
static const ber_tlv_tag_t asn_DEF_S1AP_periodicCommunicationIndicator_tags_2[] = {
165
  (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
166
  (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
167
};
168
static /* Use -fall-defs-global to expose */
169
asn_TYPE_descriptor_t asn_DEF_S1AP_periodicCommunicationIndicator_2 = {
170
  "periodicCommunicationIndicator",
171
  "periodicCommunicationIndicator",
172
  &asn_OP_NativeEnumerated,
173
  asn_DEF_S1AP_periodicCommunicationIndicator_tags_2,
174
  sizeof(asn_DEF_S1AP_periodicCommunicationIndicator_tags_2)
175
    /sizeof(asn_DEF_S1AP_periodicCommunicationIndicator_tags_2[0]) - 1, /* 1 */
176
  asn_DEF_S1AP_periodicCommunicationIndicator_tags_2, /* Same as above */
177
  sizeof(asn_DEF_S1AP_periodicCommunicationIndicator_tags_2)
178
    /sizeof(asn_DEF_S1AP_periodicCommunicationIndicator_tags_2[0]), /* 2 */
179
  {
180
#if !defined(ASN_DISABLE_OER_SUPPORT)
181
    0,
182
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
183
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
184
    &asn_PER_type_S1AP_periodicCommunicationIndicator_constr_2,
185
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
186
#if !defined(ASN_DISABLE_JER_SUPPORT)
187
    0,
188
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
189
    asn_validate_S1AP_periodicCommunicationIndicator_2
190
  },
191
  0, 0, /* Defined elsewhere */
192
  &asn_SPC_S1AP_periodicCommunicationIndicator_specs_2  /* Additional specs */
193
};
194
195
static const asn_INTEGER_enum_map_t asn_MAP_S1AP_stationaryIndication_value2enum_8[] = {
196
  { 0,  10, "stationary" },
197
  { 1,  6,  "mobile" }
198
  /* This list is extensible */
199
};
200
static int asn_validate_S1AP_stationaryIndication_8(const asn_TYPE_descriptor_t *td,
201
                       const void *sptr,
202
                       asn_app_constraint_failed_f *ctfailcb,
203
0
                       void* app_key) {
204
0
    if(! sptr) { return -1; }
205
0
    e_S1AP_Subscription_Based_UE_DifferentiationInfo__stationaryIndication value = *(e_S1AP_Subscription_Based_UE_DifferentiationInfo__stationaryIndication*)sptr;
206
0
    switch(value) {
207
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__stationaryIndication_stationary:
208
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__stationaryIndication_mobile:
209
0
        return 0;
210
0
    }
211
0
    return -1;
212
0
}
213
static const unsigned int asn_MAP_S1AP_stationaryIndication_enum2value_8[] = {
214
  1,  /* mobile(1) */
215
  0 /* stationary(0) */
216
  /* This list is extensible */
217
};
218
static const asn_INTEGER_specifics_t asn_SPC_S1AP_stationaryIndication_specs_8 = {
219
  asn_MAP_S1AP_stationaryIndication_value2enum_8, /* "tag" => N; sorted by tag */
220
  asn_MAP_S1AP_stationaryIndication_enum2value_8, /* N => "tag"; sorted by N */
221
  2,  /* Number of elements in the maps */
222
  3,  /* Extensions before this member */
223
  1,  /* Strict enumeration */
224
  0,  /* Native long size */
225
  0
226
};
227
static const ber_tlv_tag_t asn_DEF_S1AP_stationaryIndication_tags_8[] = {
228
  (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
229
  (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
230
};
231
static /* Use -fall-defs-global to expose */
232
asn_TYPE_descriptor_t asn_DEF_S1AP_stationaryIndication_8 = {
233
  "stationaryIndication",
234
  "stationaryIndication",
235
  &asn_OP_NativeEnumerated,
236
  asn_DEF_S1AP_stationaryIndication_tags_8,
237
  sizeof(asn_DEF_S1AP_stationaryIndication_tags_8)
238
    /sizeof(asn_DEF_S1AP_stationaryIndication_tags_8[0]) - 1, /* 1 */
239
  asn_DEF_S1AP_stationaryIndication_tags_8, /* Same as above */
240
  sizeof(asn_DEF_S1AP_stationaryIndication_tags_8)
241
    /sizeof(asn_DEF_S1AP_stationaryIndication_tags_8[0]), /* 2 */
242
  {
243
#if !defined(ASN_DISABLE_OER_SUPPORT)
244
    0,
245
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
246
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
247
    &asn_PER_type_S1AP_stationaryIndication_constr_8,
248
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
249
#if !defined(ASN_DISABLE_JER_SUPPORT)
250
    0,
251
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
252
    asn_validate_S1AP_stationaryIndication_8
253
  },
254
  0, 0, /* Defined elsewhere */
255
  &asn_SPC_S1AP_stationaryIndication_specs_8  /* Additional specs */
256
};
257
258
static const asn_INTEGER_enum_map_t asn_MAP_S1AP_trafficProfile_value2enum_12[] = {
259
  { 0,  13, "single-packet" },
260
  { 1,  12, "dual-packets" },
261
  { 2,  16, "multiple-packets" }
262
  /* This list is extensible */
263
};
264
static int asn_validate_S1AP_trafficProfile_12(const asn_TYPE_descriptor_t *td,
265
                       const void *sptr,
266
                       asn_app_constraint_failed_f *ctfailcb,
267
0
                       void* app_key) {
268
0
    if(! sptr) { return -1; }
269
0
    e_S1AP_Subscription_Based_UE_DifferentiationInfo__trafficProfile value = *(e_S1AP_Subscription_Based_UE_DifferentiationInfo__trafficProfile*)sptr;
270
0
    switch(value) {
271
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__trafficProfile_single_packet:
272
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__trafficProfile_dual_packets:
273
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__trafficProfile_multiple_packets:
274
0
        return 0;
275
0
    }
276
0
    return -1;
277
0
}
278
static const unsigned int asn_MAP_S1AP_trafficProfile_enum2value_12[] = {
279
  1,  /* dual-packets(1) */
280
  2,  /* multiple-packets(2) */
281
  0 /* single-packet(0) */
282
  /* This list is extensible */
283
};
284
static const asn_INTEGER_specifics_t asn_SPC_S1AP_trafficProfile_specs_12 = {
285
  asn_MAP_S1AP_trafficProfile_value2enum_12,  /* "tag" => N; sorted by tag */
286
  asn_MAP_S1AP_trafficProfile_enum2value_12,  /* N => "tag"; sorted by N */
287
  3,  /* Number of elements in the maps */
288
  4,  /* Extensions before this member */
289
  1,  /* Strict enumeration */
290
  0,  /* Native long size */
291
  0
292
};
293
static const ber_tlv_tag_t asn_DEF_S1AP_trafficProfile_tags_12[] = {
294
  (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
295
  (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
296
};
297
static /* Use -fall-defs-global to expose */
298
asn_TYPE_descriptor_t asn_DEF_S1AP_trafficProfile_12 = {
299
  "trafficProfile",
300
  "trafficProfile",
301
  &asn_OP_NativeEnumerated,
302
  asn_DEF_S1AP_trafficProfile_tags_12,
303
  sizeof(asn_DEF_S1AP_trafficProfile_tags_12)
304
    /sizeof(asn_DEF_S1AP_trafficProfile_tags_12[0]) - 1, /* 1 */
305
  asn_DEF_S1AP_trafficProfile_tags_12,  /* Same as above */
306
  sizeof(asn_DEF_S1AP_trafficProfile_tags_12)
307
    /sizeof(asn_DEF_S1AP_trafficProfile_tags_12[0]), /* 2 */
308
  {
309
#if !defined(ASN_DISABLE_OER_SUPPORT)
310
    0,
311
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
312
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
313
    &asn_PER_type_S1AP_trafficProfile_constr_12,
314
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
315
#if !defined(ASN_DISABLE_JER_SUPPORT)
316
    0,
317
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
318
    asn_validate_S1AP_trafficProfile_12
319
  },
320
  0, 0, /* Defined elsewhere */
321
  &asn_SPC_S1AP_trafficProfile_specs_12 /* Additional specs */
322
};
323
324
static const asn_INTEGER_enum_map_t asn_MAP_S1AP_batteryIndication_value2enum_17[] = {
325
  { 0,  15, "battery-powered" },
326
  { 1,  47, "battery-powered-not-rechargeable-or-replaceable" },
327
  { 2,  19, "not-battery-powered" }
328
  /* This list is extensible */
329
};
330
static int asn_validate_S1AP_batteryIndication_17(const asn_TYPE_descriptor_t *td,
331
                       const void *sptr,
332
                       asn_app_constraint_failed_f *ctfailcb,
333
0
                       void* app_key) {
334
0
    if(! sptr) { return -1; }
335
0
    e_S1AP_Subscription_Based_UE_DifferentiationInfo__batteryIndication value = *(e_S1AP_Subscription_Based_UE_DifferentiationInfo__batteryIndication*)sptr;
336
0
    switch(value) {
337
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__batteryIndication_battery_powered:
338
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__batteryIndication_battery_powered_not_rechargeable_or_replaceable:
339
0
    case S1AP_Subscription_Based_UE_DifferentiationInfo__batteryIndication_not_battery_powered:
340
0
        return 0;
341
0
    }
342
0
    return -1;
343
0
}
344
static const unsigned int asn_MAP_S1AP_batteryIndication_enum2value_17[] = {
345
  0,  /* battery-powered(0) */
346
  1,  /* battery-powered-not-rechargeable-or-replaceable(1) */
347
  2 /* not-battery-powered(2) */
348
  /* This list is extensible */
349
};
350
static const asn_INTEGER_specifics_t asn_SPC_S1AP_batteryIndication_specs_17 = {
351
  asn_MAP_S1AP_batteryIndication_value2enum_17, /* "tag" => N; sorted by tag */
352
  asn_MAP_S1AP_batteryIndication_enum2value_17, /* N => "tag"; sorted by N */
353
  3,  /* Number of elements in the maps */
354
  4,  /* Extensions before this member */
355
  1,  /* Strict enumeration */
356
  0,  /* Native long size */
357
  0
358
};
359
static const ber_tlv_tag_t asn_DEF_S1AP_batteryIndication_tags_17[] = {
360
  (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
361
  (ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
362
};
363
static /* Use -fall-defs-global to expose */
364
asn_TYPE_descriptor_t asn_DEF_S1AP_batteryIndication_17 = {
365
  "batteryIndication",
366
  "batteryIndication",
367
  &asn_OP_NativeEnumerated,
368
  asn_DEF_S1AP_batteryIndication_tags_17,
369
  sizeof(asn_DEF_S1AP_batteryIndication_tags_17)
370
    /sizeof(asn_DEF_S1AP_batteryIndication_tags_17[0]) - 1, /* 1 */
371
  asn_DEF_S1AP_batteryIndication_tags_17, /* Same as above */
372
  sizeof(asn_DEF_S1AP_batteryIndication_tags_17)
373
    /sizeof(asn_DEF_S1AP_batteryIndication_tags_17[0]), /* 2 */
374
  {
375
#if !defined(ASN_DISABLE_OER_SUPPORT)
376
    0,
377
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
378
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
379
    &asn_PER_type_S1AP_batteryIndication_constr_17,
380
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
381
#if !defined(ASN_DISABLE_JER_SUPPORT)
382
    0,
383
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
384
    asn_validate_S1AP_batteryIndication_17
385
  },
386
  0, 0, /* Defined elsewhere */
387
  &asn_SPC_S1AP_batteryIndication_specs_17  /* Additional specs */
388
};
389
390
asn_TYPE_member_t asn_MBR_S1AP_Subscription_Based_UE_DifferentiationInfo_1[] = {
391
  { ATF_POINTER, 7, offsetof(struct S1AP_Subscription_Based_UE_DifferentiationInfo, periodicCommunicationIndicator),
392
    (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
393
    -1, /* IMPLICIT tag at current level */
394
    &asn_DEF_S1AP_periodicCommunicationIndicator_2,
395
    0,
396
    {
397
#if !defined(ASN_DISABLE_OER_SUPPORT)
398
      0,
399
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
400
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
401
      0,
402
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
403
#if !defined(ASN_DISABLE_JER_SUPPORT)
404
      0,
405
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
406
      0
407
    },
408
    0, 0, /* No default value */
409
    "periodicCommunicationIndicator"
410
    },
411
  { ATF_POINTER, 6, offsetof(struct S1AP_Subscription_Based_UE_DifferentiationInfo, periodicTime),
412
    (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
413
    -1, /* IMPLICIT tag at current level */
414
    &asn_DEF_NativeInteger,
415
    0,
416
    {
417
#if !defined(ASN_DISABLE_OER_SUPPORT)
418
      0,
419
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
420
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
421
      &asn_PER_memb_S1AP_periodicTime_constr_6,
422
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
423
#if !defined(ASN_DISABLE_JER_SUPPORT)
424
      0,
425
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
426
      memb_S1AP_periodicTime_constraint_1
427
    },
428
    0, 0, /* No default value */
429
    "periodicTime"
430
    },
431
  { ATF_POINTER, 5, offsetof(struct S1AP_Subscription_Based_UE_DifferentiationInfo, scheduledCommunicationTime),
432
    (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
433
    -1, /* IMPLICIT tag at current level */
434
    &asn_DEF_S1AP_ScheduledCommunicationTime,
435
    0,
436
    {
437
#if !defined(ASN_DISABLE_OER_SUPPORT)
438
      0,
439
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
440
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
441
      0,
442
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
443
#if !defined(ASN_DISABLE_JER_SUPPORT)
444
      0,
445
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
446
      0
447
    },
448
    0, 0, /* No default value */
449
    "scheduledCommunicationTime"
450
    },
451
  { ATF_POINTER, 4, offsetof(struct S1AP_Subscription_Based_UE_DifferentiationInfo, stationaryIndication),
452
    (ASN_TAG_CLASS_CONTEXT | (3 << 2)),
453
    -1, /* IMPLICIT tag at current level */
454
    &asn_DEF_S1AP_stationaryIndication_8,
455
    0,
456
    {
457
#if !defined(ASN_DISABLE_OER_SUPPORT)
458
      0,
459
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
460
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
461
      0,
462
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
463
#if !defined(ASN_DISABLE_JER_SUPPORT)
464
      0,
465
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
466
      0
467
    },
468
    0, 0, /* No default value */
469
    "stationaryIndication"
470
    },
471
  { ATF_POINTER, 3, offsetof(struct S1AP_Subscription_Based_UE_DifferentiationInfo, trafficProfile),
472
    (ASN_TAG_CLASS_CONTEXT | (4 << 2)),
473
    -1, /* IMPLICIT tag at current level */
474
    &asn_DEF_S1AP_trafficProfile_12,
475
    0,
476
    {
477
#if !defined(ASN_DISABLE_OER_SUPPORT)
478
      0,
479
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
480
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
481
      0,
482
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
483
#if !defined(ASN_DISABLE_JER_SUPPORT)
484
      0,
485
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
486
      0
487
    },
488
    0, 0, /* No default value */
489
    "trafficProfile"
490
    },
491
  { ATF_POINTER, 2, offsetof(struct S1AP_Subscription_Based_UE_DifferentiationInfo, batteryIndication),
492
    (ASN_TAG_CLASS_CONTEXT | (5 << 2)),
493
    -1, /* IMPLICIT tag at current level */
494
    &asn_DEF_S1AP_batteryIndication_17,
495
    0,
496
    {
497
#if !defined(ASN_DISABLE_OER_SUPPORT)
498
      0,
499
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
500
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
501
      0,
502
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
503
#if !defined(ASN_DISABLE_JER_SUPPORT)
504
      0,
505
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
506
      0
507
    },
508
    0, 0, /* No default value */
509
    "batteryIndication"
510
    },
511
  { ATF_POINTER, 1, offsetof(struct S1AP_Subscription_Based_UE_DifferentiationInfo, iE_Extensions),
512
    (ASN_TAG_CLASS_CONTEXT | (6 << 2)),
513
    -1, /* IMPLICIT tag at current level */
514
    &asn_DEF_S1AP_ProtocolExtensionContainer_8386P138,
515
    0,
516
    {
517
#if !defined(ASN_DISABLE_OER_SUPPORT)
518
      0,
519
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
520
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
521
      0,
522
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
523
#if !defined(ASN_DISABLE_JER_SUPPORT)
524
      0,
525
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
526
      0
527
    },
528
    0, 0, /* No default value */
529
    "iE-Extensions"
530
    },
531
};
532
static const int asn_MAP_S1AP_Subscription_Based_UE_DifferentiationInfo_oms_1[] = { 0, 1, 2, 3, 4, 5, 6 };
533
static const ber_tlv_tag_t asn_DEF_S1AP_Subscription_Based_UE_DifferentiationInfo_tags_1[] = {
534
  (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
535
};
536
static const asn_TYPE_tag2member_t asn_MAP_S1AP_Subscription_Based_UE_DifferentiationInfo_tag2el_1[] = {
537
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodicCommunicationIndicator */
538
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* periodicTime */
539
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* scheduledCommunicationTime */
540
    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* stationaryIndication */
541
    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* trafficProfile */
542
    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* batteryIndication */
543
    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 } /* iE-Extensions */
544
};
545
asn_SEQUENCE_specifics_t asn_SPC_S1AP_Subscription_Based_UE_DifferentiationInfo_specs_1 = {
546
  sizeof(struct S1AP_Subscription_Based_UE_DifferentiationInfo),
547
  offsetof(struct S1AP_Subscription_Based_UE_DifferentiationInfo, _asn_ctx),
548
  asn_MAP_S1AP_Subscription_Based_UE_DifferentiationInfo_tag2el_1,
549
  7,  /* Count of tags in the map */
550
  asn_MAP_S1AP_Subscription_Based_UE_DifferentiationInfo_oms_1, /* Optional members */
551
  7, 0, /* Root/Additions */
552
  7,  /* First extension addition */
553
};
554
asn_TYPE_descriptor_t asn_DEF_S1AP_Subscription_Based_UE_DifferentiationInfo = {
555
  "Subscription-Based-UE-DifferentiationInfo",
556
  "Subscription-Based-UE-DifferentiationInfo",
557
  &asn_OP_SEQUENCE,
558
  asn_DEF_S1AP_Subscription_Based_UE_DifferentiationInfo_tags_1,
559
  sizeof(asn_DEF_S1AP_Subscription_Based_UE_DifferentiationInfo_tags_1)
560
    /sizeof(asn_DEF_S1AP_Subscription_Based_UE_DifferentiationInfo_tags_1[0]), /* 1 */
561
  asn_DEF_S1AP_Subscription_Based_UE_DifferentiationInfo_tags_1,  /* Same as above */
562
  sizeof(asn_DEF_S1AP_Subscription_Based_UE_DifferentiationInfo_tags_1)
563
    /sizeof(asn_DEF_S1AP_Subscription_Based_UE_DifferentiationInfo_tags_1[0]), /* 1 */
564
  {
565
#if !defined(ASN_DISABLE_OER_SUPPORT)
566
    0,
567
#endif  /* !defined(ASN_DISABLE_OER_SUPPORT) */
568
#if !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT)
569
    0,
570
#endif  /* !defined(ASN_DISABLE_UPER_SUPPORT) || !defined(ASN_DISABLE_APER_SUPPORT) */
571
#if !defined(ASN_DISABLE_JER_SUPPORT)
572
    0,
573
#endif  /* !defined(ASN_DISABLE_JER_SUPPORT) */
574
    SEQUENCE_constraint
575
  },
576
  asn_MBR_S1AP_Subscription_Based_UE_DifferentiationInfo_1,
577
  7,  /* Elements count */
578
  &asn_SPC_S1AP_Subscription_Based_UE_DifferentiationInfo_specs_1 /* Additional specs */
579
};
580