Add generated code for RUA using eurecom asn1tostruct.py
diff --git a/asn1/rua/eurecom/rua_encoder.c b/asn1/rua/eurecom/rua_encoder.c
new file mode 100644
index 0000000..56d0f33
--- /dev/null
+++ b/asn1/rua/eurecom/rua_encoder.c
@@ -0,0 +1,216 @@
+/*******************************************************************************
+
+ Eurecom OpenAirInterface
+ Copyright(c) 1999 - 2012 Eurecom
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms and conditions of the GNU General Public License,
+ version 2, as published by the Free Software Foundation.
+
+ This program is distributed in the hope it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
+
+ The full GNU General Public License is included in this distribution in
+ the file called "COPYING".
+
+ Contact Information
+ Openair Admin: openair_admin@eurecom.fr
+ Openair Tech : openair_tech@eurecom.fr
+ Forums : http://forums.eurecom.fr/openairinterface
+ Address : EURECOM, Campus SophiaTech, 450 Route des Chappes
+ 06410 Biot FRANCE
+
+*******************************************************************************/
+
+/*******************************************************************************
+ * This file had been created by asn1tostruct.py script v0.5
+ * Please do not modify this file but regenerate it via script.
+ * Created on: 2015-08-29 14:31:31.110934 by laforge
+ * from ['../RUA-CommonDataTypes.asn', '../RUA-Constants.asn', '../RUA-Containers.asn', '../RUA-IEs.asn', '../RUA-PDU-Contents.asn', '../RUA-PDU-Descriptions.asn']
+ ******************************************************************************/
+#include "rua_common.h"
+#include "rua_ies_defs.h"
+
+int rua_encode_connecties(
+ Connect_t *connect,
+ ConnectIEs_t *connectIEs) {
+
+ IE_t *ie;
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_CN_DomainIndicator,
+ Criticality_reject,
+ &asn_DEF_CN_DomainIndicator,
+ &connectIEs->cN_DomainIndicator)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_Context_ID,
+ Criticality_reject,
+ &asn_DEF_Context_ID,
+ &connectIEs->context_ID)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
+
+ /* Optional field */
+ if ((connectIEs->presenceMask & CONNECTIES_INTRADOMAINNASNODESELECTOR_PRESENT)
+ == CONNECTIES_INTRADOMAINNASNODESELECTOR_PRESENT) {
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_IntraDomainNasNodeSelector,
+ Criticality_ignore,
+ &asn_DEF_IntraDomainNasNodeSelector,
+ &connectIEs->intraDomainNasNodeSelector)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
+ }
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_Establishment_Cause,
+ Criticality_reject,
+ &asn_DEF_Establishment_Cause,
+ &connectIEs->establishment_Cause)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_RANAP_Message,
+ Criticality_reject,
+ &asn_DEF_RANAP_Message,
+ &connectIEs->ranaP_Message)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&connect->connect_ies.list, ie);
+
+ return 0;
+}
+
+int rua_encode_disconnecties(
+ Disconnect_t *disconnect,
+ DisconnectIEs_t *disconnectIEs) {
+
+ IE_t *ie;
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_CN_DomainIndicator,
+ Criticality_reject,
+ &asn_DEF_CN_DomainIndicator,
+ &disconnectIEs->cN_DomainIndicator)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&disconnect->disconnect_ies.list, ie);
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_Context_ID,
+ Criticality_reject,
+ &asn_DEF_Context_ID,
+ &disconnectIEs->context_ID)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&disconnect->disconnect_ies.list, ie);
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_Cause,
+ Criticality_reject,
+ &asn_DEF_Cause,
+ &disconnectIEs->cause)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&disconnect->disconnect_ies.list, ie);
+
+ /* Conditional field */
+ if ((disconnectIEs->presenceMask & DISCONNECTIES_RANAP_MESSAGE_PRESENT)
+ == DISCONNECTIES_RANAP_MESSAGE_PRESENT) {
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_RANAP_Message,
+ Criticality_reject,
+ &asn_DEF_RANAP_Message,
+ &disconnectIEs->ranaP_Message)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&disconnect->disconnect_ies.list, ie);
+ }
+
+ return 0;
+}
+
+int rua_encode_errorindicationies(
+ ErrorIndication_t *errorIndication,
+ ErrorIndicationIEs_t *errorIndicationIEs) {
+
+ IE_t *ie;
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_Cause,
+ Criticality_ignore,
+ &asn_DEF_Cause,
+ &errorIndicationIEs->cause)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&errorIndication->errorIndication_ies.list, ie);
+
+ /* Optional field */
+ if ((errorIndicationIEs->presenceMask & ERRORINDICATIONIES_CRITICALITYDIAGNOSTICS_PRESENT)
+ == ERRORINDICATIONIES_CRITICALITYDIAGNOSTICS_PRESENT) {
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_CriticalityDiagnostics,
+ Criticality_ignore,
+ &asn_DEF_CriticalityDiagnostics,
+ &errorIndicationIEs->criticalityDiagnostics)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&errorIndication->errorIndication_ies.list, ie);
+ }
+
+ return 0;
+}
+
+int rua_encode_connectionlesstransferies(
+ ConnectionlessTransfer_t *connectionlessTransfer,
+ ConnectionlessTransferIEs_t *connectionlessTransferIEs) {
+
+ IE_t *ie;
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_RANAP_Message,
+ Criticality_reject,
+ &asn_DEF_RANAP_Message,
+ &connectionlessTransferIEs->ranaP_Message)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&connectionlessTransfer->connectionlessTransfer_ies.list, ie);
+
+ return 0;
+}
+
+int rua_encode_directtransferies(
+ DirectTransfer_t *directTransfer,
+ DirectTransferIEs_t *directTransferIEs) {
+
+ IE_t *ie;
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_CN_DomainIndicator,
+ Criticality_reject,
+ &asn_DEF_CN_DomainIndicator,
+ &directTransferIEs->cN_DomainIndicator)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&directTransfer->directTransfer_ies.list, ie);
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_Context_ID,
+ Criticality_reject,
+ &asn_DEF_Context_ID,
+ &directTransferIEs->context_ID)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&directTransfer->directTransfer_ies.list, ie);
+
+ if ((ie = rua_new_ie(ProtocolIE_ID_id_RANAP_Message,
+ Criticality_reject,
+ &asn_DEF_RANAP_Message,
+ &directTransferIEs->ranaP_Message)) == NULL) {
+ return -1;
+ }
+ ASN_SEQUENCE_ADD(&directTransfer->directTransfer_ies.list, ie);
+
+ return 0;
+}
+