blob: 07d1d687bda3a0f908fbfb225e1cfb12a9be6c77 [file] [log] [blame]
Harald Welteee091892015-09-10 10:22:03 +02001/*
2 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
3 * From ASN.1 module "RANAP-IEs"
4 * found in "../../asn1/ranap/RANAP-IEs.asn"
5 */
6
Neels Hofmeyrf1f2d7c2016-01-05 12:00:06 +01007#include <osmocom/ranap/RANAP_TMGI.h>
Harald Welteee091892015-09-10 10:22:03 +02008
9static int
10memb_serviceID_constraint_1(asn_TYPE_descriptor_t *td, const void *sptr,
11 asn_app_constraint_failed_f *ctfailcb, void *app_key) {
12 const OCTET_STRING_t *st = (const OCTET_STRING_t *)sptr;
13 size_t size;
14
15 if(!sptr) {
16 _ASN_CTFAIL(app_key, td, sptr,
17 "%s: value not given (%s:%d)",
18 td->name, __FILE__, __LINE__);
19 return -1;
20 }
21
22 size = st->size;
23
24 if((size == 3l)) {
25 /* Constraint check succeeded */
26 return 0;
27 } else {
28 _ASN_CTFAIL(app_key, td, sptr,
29 "%s: constraint failed (%s:%d)",
30 td->name, __FILE__, __LINE__);
31 return -1;
32 }
33}
34
35static asn_per_constraints_t asn_PER_memb_serviceID_constr_3 GCC_NOTUSED = {
36 { APC_UNCONSTRAINED, -1, -1, 0, 0 },
37 { APC_CONSTRAINED, 0, 0, 3l, 3l } /* (SIZE(3..3)) */,
38 0, 0 /* No PER value map */
39};
40static asn_TYPE_member_t asn_MBR_RANAP_TMGI_1[] = {
41 { ATF_NOFLAGS, 0, offsetof(struct RANAP_TMGI, pLMNidentity),
42 (ASN_TAG_CLASS_CONTEXT | (0 << 2)),
43 -1, /* IMPLICIT tag at current level */
44 &asn_DEF_RANAP_PLMNidentity,
45 0, /* Defer constraints checking to the member type */
46 0, /* No PER visible constraints */
47 0,
48 "pLMNidentity"
49 },
50 { ATF_NOFLAGS, 0, offsetof(struct RANAP_TMGI, serviceID),
51 (ASN_TAG_CLASS_CONTEXT | (1 << 2)),
52 -1, /* IMPLICIT tag at current level */
53 &asn_DEF_OCTET_STRING,
54 memb_serviceID_constraint_1,
55 &asn_PER_memb_serviceID_constr_3,
56 0,
57 "serviceID"
58 },
59 { ATF_POINTER, 1, offsetof(struct RANAP_TMGI, iE_Extensions),
60 (ASN_TAG_CLASS_CONTEXT | (2 << 2)),
61 -1, /* IMPLICIT tag at current level */
62 &asn_DEF_RANAP_IE_Extensions,
63 0, /* Defer constraints checking to the member type */
64 0, /* No PER visible constraints */
65 0,
66 "iE-Extensions"
67 },
68};
69static const int asn_MAP_RANAP_TMGI_oms_1[] = { 2 };
70static const ber_tlv_tag_t asn_DEF_RANAP_TMGI_tags_1[] = {
71 (ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
72};
73static const asn_TYPE_tag2member_t asn_MAP_RANAP_TMGI_tag2el_1[] = {
74 { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* pLMNidentity */
75 { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* serviceID */
76 { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* iE-Extensions */
77};
78static asn_SEQUENCE_specifics_t asn_SPC_RANAP_TMGI_specs_1 = {
79 sizeof(struct RANAP_TMGI),
80 offsetof(struct RANAP_TMGI, _asn_ctx),
81 asn_MAP_RANAP_TMGI_tag2el_1,
82 3, /* Count of tags in the map */
83 asn_MAP_RANAP_TMGI_oms_1, /* Optional members */
84 1, 0, /* Root/Additions */
85 -1, /* Start extensions */
86 -1 /* Stop extensions */
87};
88asn_TYPE_descriptor_t asn_DEF_RANAP_TMGI = {
89 "RANAP_TMGI",
90 "RANAP_TMGI",
91 SEQUENCE_free,
92 SEQUENCE_print,
93 SEQUENCE_constraint,
94 SEQUENCE_decode_ber,
95 SEQUENCE_encode_der,
96 SEQUENCE_decode_xer,
97 SEQUENCE_encode_xer,
98 SEQUENCE_decode_uper,
99 SEQUENCE_encode_uper,
100 SEQUENCE_decode_aper,
101 SEQUENCE_encode_aper,
102 0, /* Use generic outmost tag fetcher */
103 asn_DEF_RANAP_TMGI_tags_1,
104 sizeof(asn_DEF_RANAP_TMGI_tags_1)
105 /sizeof(asn_DEF_RANAP_TMGI_tags_1[0]), /* 1 */
106 asn_DEF_RANAP_TMGI_tags_1, /* Same as above */
107 sizeof(asn_DEF_RANAP_TMGI_tags_1)
108 /sizeof(asn_DEF_RANAP_TMGI_tags_1[0]), /* 1 */
109 0, /* No PER visible constraints */
110 asn_MBR_RANAP_TMGI_1,
111 3, /* Elements count */
112 &asn_SPC_RANAP_TMGI_specs_1 /* Additional specs */
113};
114