blob: 56d0f33b704bd5a2a360c599b37c461923af69bd [file] [log] [blame]
Harald Weltee180c162015-08-29 20:34:40 +02001/*******************************************************************************
2
3 Eurecom OpenAirInterface
4 Copyright(c) 1999 - 2012 Eurecom
5
6 This program is free software; you can redistribute it and/or modify it
7 under the terms and conditions of the GNU General Public License,
8 version 2, as published by the Free Software Foundation.
9
10 This program is distributed in the hope it will be useful, but WITHOUT
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 more details.
14
15 You should have received a copy of the GNU General Public License along with
16 this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
18
19 The full GNU General Public License is included in this distribution in
20 the file called "COPYING".
21
22 Contact Information
23 Openair Admin: openair_admin@eurecom.fr
24 Openair Tech : openair_tech@eurecom.fr
25 Forums : http://forums.eurecom.fr/openairinterface
26 Address : EURECOM, Campus SophiaTech, 450 Route des Chappes
27 06410 Biot FRANCE
28
29*******************************************************************************/
30
31/*******************************************************************************
32 * This file had been created by asn1tostruct.py script v0.5
33 * Please do not modify this file but regenerate it via script.
34 * Created on: 2015-08-29 14:31:31.110934 by laforge
35 * from ['../RUA-CommonDataTypes.asn', '../RUA-Constants.asn', '../RUA-Containers.asn', '../RUA-IEs.asn', '../RUA-PDU-Contents.asn', '../RUA-PDU-Descriptions.asn']
36 ******************************************************************************/
37#include "rua_common.h"
38#include "rua_ies_defs.h"
39
40int rua_encode_connecties(
41 Connect_t *connect,
42 ConnectIEs_t *connectIEs) {
43
44 IE_t *ie;
45
46 if ((ie = rua_new_ie(ProtocolIE_ID_id_CN_DomainIndicator,
47 Criticality_reject,
48 &asn_DEF_CN_DomainIndicator,
49 &connectIEs->cN_DomainIndicator)) == NULL) {
50 return -1;
51 }
52 ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
53
54 if ((ie = rua_new_ie(ProtocolIE_ID_id_Context_ID,
55 Criticality_reject,
56 &asn_DEF_Context_ID,
57 &connectIEs->context_ID)) == NULL) {
58 return -1;
59 }
60 ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
61
62 /* Optional field */
63 if ((connectIEs->presenceMask & CONNECTIES_INTRADOMAINNASNODESELECTOR_PRESENT)
64 == CONNECTIES_INTRADOMAINNASNODESELECTOR_PRESENT) {
65 if ((ie = rua_new_ie(ProtocolIE_ID_id_IntraDomainNasNodeSelector,
66 Criticality_ignore,
67 &asn_DEF_IntraDomainNasNodeSelector,
68 &connectIEs->intraDomainNasNodeSelector)) == NULL) {
69 return -1;
70 }
71 ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
72 }
73
74 if ((ie = rua_new_ie(ProtocolIE_ID_id_Establishment_Cause,
75 Criticality_reject,
76 &asn_DEF_Establishment_Cause,
77 &connectIEs->establishment_Cause)) == NULL) {
78 return -1;
79 }
80 ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
81
82 if ((ie = rua_new_ie(ProtocolIE_ID_id_RANAP_Message,
83 Criticality_reject,
84 &asn_DEF_RANAP_Message,
85 &connectIEs->ranaP_Message)) == NULL) {
86 return -1;
87 }
88 ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
89
90 return 0;
91}
92
93int rua_encode_disconnecties(
94 Disconnect_t *disconnect,
95 DisconnectIEs_t *disconnectIEs) {
96
97 IE_t *ie;
98
99 if ((ie = rua_new_ie(ProtocolIE_ID_id_CN_DomainIndicator,
100 Criticality_reject,
101 &asn_DEF_CN_DomainIndicator,
102 &disconnectIEs->cN_DomainIndicator)) == NULL) {
103 return -1;
104 }
105 ASN_SEQUENCE_ADD(&disconnect->disconnect_ies.list, ie);
106
107 if ((ie = rua_new_ie(ProtocolIE_ID_id_Context_ID,
108 Criticality_reject,
109 &asn_DEF_Context_ID,
110 &disconnectIEs->context_ID)) == NULL) {
111 return -1;
112 }
113 ASN_SEQUENCE_ADD(&disconnect->disconnect_ies.list, ie);
114
115 if ((ie = rua_new_ie(ProtocolIE_ID_id_Cause,
116 Criticality_reject,
117 &asn_DEF_Cause,
118 &disconnectIEs->cause)) == NULL) {
119 return -1;
120 }
121 ASN_SEQUENCE_ADD(&disconnect->disconnect_ies.list, ie);
122
123 /* Conditional field */
124 if ((disconnectIEs->presenceMask & DISCONNECTIES_RANAP_MESSAGE_PRESENT)
125 == DISCONNECTIES_RANAP_MESSAGE_PRESENT) {
126 if ((ie = rua_new_ie(ProtocolIE_ID_id_RANAP_Message,
127 Criticality_reject,
128 &asn_DEF_RANAP_Message,
129 &disconnectIEs->ranaP_Message)) == NULL) {
130 return -1;
131 }
132 ASN_SEQUENCE_ADD(&disconnect->disconnect_ies.list, ie);
133 }
134
135 return 0;
136}
137
138int rua_encode_errorindicationies(
139 ErrorIndication_t *errorIndication,
140 ErrorIndicationIEs_t *errorIndicationIEs) {
141
142 IE_t *ie;
143
144 if ((ie = rua_new_ie(ProtocolIE_ID_id_Cause,
145 Criticality_ignore,
146 &asn_DEF_Cause,
147 &errorIndicationIEs->cause)) == NULL) {
148 return -1;
149 }
150 ASN_SEQUENCE_ADD(&errorIndication->errorIndication_ies.list, ie);
151
152 /* Optional field */
153 if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_CRITICALITYDIAGNOSTICS_PRESENT)
154 == ERRORINDICATIONIES_CRITICALITYDIAGNOSTICS_PRESENT) {
155 if ((ie = rua_new_ie(ProtocolIE_ID_id_CriticalityDiagnostics,
156 Criticality_ignore,
157 &asn_DEF_CriticalityDiagnostics,
158 &errorIndicationIEs->criticalityDiagnostics)) == NULL) {
159 return -1;
160 }
161 ASN_SEQUENCE_ADD(&errorIndication->errorIndication_ies.list, ie);
162 }
163
164 return 0;
165}
166
167int rua_encode_connectionlesstransferies(
168 ConnectionlessTransfer_t *connectionlessTransfer,
169 ConnectionlessTransferIEs_t *connectionlessTransferIEs) {
170
171 IE_t *ie;
172
173 if ((ie = rua_new_ie(ProtocolIE_ID_id_RANAP_Message,
174 Criticality_reject,
175 &asn_DEF_RANAP_Message,
176 &connectionlessTransferIEs->ranaP_Message)) == NULL) {
177 return -1;
178 }
179 ASN_SEQUENCE_ADD(&connectionlessTransfer->connectionlessTransfer_ies.list, ie);
180
181 return 0;
182}
183
184int rua_encode_directtransferies(
185 DirectTransfer_t *directTransfer,
186 DirectTransferIEs_t *directTransferIEs) {
187
188 IE_t *ie;
189
190 if ((ie = rua_new_ie(ProtocolIE_ID_id_CN_DomainIndicator,
191 Criticality_reject,
192 &asn_DEF_CN_DomainIndicator,
193 &directTransferIEs->cN_DomainIndicator)) == NULL) {
194 return -1;
195 }
196 ASN_SEQUENCE_ADD(&directTransfer->directTransfer_ies.list, ie);
197
198 if ((ie = rua_new_ie(ProtocolIE_ID_id_Context_ID,
199 Criticality_reject,
200 &asn_DEF_Context_ID,
201 &directTransferIEs->context_ID)) == NULL) {
202 return -1;
203 }
204 ASN_SEQUENCE_ADD(&directTransfer->directTransfer_ies.list, ie);
205
206 if ((ie = rua_new_ie(ProtocolIE_ID_id_RANAP_Message,
207 Criticality_reject,
208 &asn_DEF_RANAP_Message,
209 &directTransferIEs->ranaP_Message)) == NULL) {
210 return -1;
211 }
212 ASN_SEQUENCE_ADD(&directTransfer->directTransfer_ies.list, ie);
213
214 return 0;
215}
216