first dispatch of RUA into RANAP

This is becoming more and more of a hack, as asn1c + asn1tostruct.py
don't really deal well with the RANAP syntax :(
diff --git a/src/hnbgw_rua.c b/src/hnbgw_rua.c
index a5e46f0..3af564b 100644
--- a/src/hnbgw_rua.c
+++ b/src/hnbgw_rua.c
@@ -8,6 +8,7 @@
 #include "asn1helpers.h"
 
 #include "hnbgw.h"
+#include "hnbgw_ranap.h"
 #include "rua_common.h"
 #include "rua_ies_defs.h"
 
@@ -87,7 +88,7 @@
 }
 
 
-static int rua_rx_init_connect(struct hnb_context *hnb, ANY_t *in)
+static int rua_rx_init_connect(struct msgb *msg, ANY_t *in)
 {
 	RUA_ConnectIEs_t ies;
 	uint32_t context_id;
@@ -102,9 +103,10 @@
 	DEBUGP(DMAIN, "Connect.req(ctx=0x%x, %s)\n", context_id,
 		ies.establishment_Cause == RUA_Establishment_Cause_emergency_call
 		? "emergency" : "normal");
+	/* FIXME */
 }
 
-static int rua_rx_init_disconnect(struct hnb_context *hnb, ANY_t *in)
+static int rua_rx_init_disconnect(struct msgb *msg, ANY_t *in)
 {
 	RUA_DisconnectIEs_t ies;
 	uint32_t context_id;
@@ -118,9 +120,10 @@
 
 	DEBUGP(DMAIN, "Disconnect.req(ctx=0x%x,cause=%s)\n", context_id,
 		rua_cause_str(&ies.cause));
+	/* FIXME */
 }
 
-static int rua_rx_init_dt(struct hnb_context *hnb, ANY_t *in)
+static int rua_rx_init_dt(struct msgb *msg, ANY_t *in)
 {
 	RUA_DirectTransferIEs_t ies;
 	uint32_t context_id;
@@ -133,10 +136,11 @@
 	context_id = asn1bitstr_to_u32(&ies.context_ID);
 
 	DEBUGP(DMAIN, "Data.req(ctx=0x%x)\n", context_id);
+	/* FIXME */
 
 }
 
-static int rua_rx_init_udt(struct hnb_context *hnb, ANY_t *in)
+static int rua_rx_init_udt(struct msgb *msg, ANY_t *in)
 {
 	RUA_ConnectionlessTransferIEs_t ies;
 	int rc;
@@ -147,9 +151,15 @@
 
 	DEBUGP(DMAIN, "UData.req()\n");
 
+	/* FIXME: pass on to RANAP */
+	rc = hnbgw_ranap_rx(msg, ies.ranaP_Message.buf, ies.ranaP_Message.size);
+	/* FIXME: what to do with the asn1c-allocated memory */
+
+	return rc;
 }
 
-static int rua_rx_init_err_ind(struct hnb_context *hnb, ANY_t *in)
+
+static int rua_rx_init_err_ind(struct msgb *msg, ANY_t *in)
 {
 	RUA_ErrorIndicationIEs_t ies;
 	int rc;
@@ -160,25 +170,25 @@
 
 }
 
-static int rua_rx_initiating_msg(struct hnb_context *hnb, RUA_InitiatingMessage_t *imsg)
+static int rua_rx_initiating_msg(struct msgb *msg, RUA_InitiatingMessage_t *imsg)
 {
 	int rc;
 
 	switch (imsg->procedureCode) {
 	case RUA_ProcedureCode_id_Connect:
-		rc = rua_rx_init_connect(hnb, &imsg->value);
+		rc = rua_rx_init_connect(msg, &imsg->value);
 		break;
 	case RUA_ProcedureCode_id_DirectTransfer:
-		rc = rua_rx_init_dt(hnb, &imsg->value);
+		rc = rua_rx_init_dt(msg, &imsg->value);
 		break;
 	case RUA_ProcedureCode_id_Disconnect:
-		rc = rua_rx_init_disconnect(hnb, &imsg->value);
+		rc = rua_rx_init_disconnect(msg, &imsg->value);
 		break;
 	case RUA_ProcedureCode_id_ConnectionlessTransfer:
-		rc = rua_rx_init_udt(hnb, &imsg->value);
+		rc = rua_rx_init_udt(msg, &imsg->value);
 		break;
 	case RUA_ProcedureCode_id_ErrorIndication:
-		rc = rua_rx_init_err_ind(hnb, &imsg->value);
+		rc = rua_rx_init_err_ind(msg, &imsg->value);
 		break;
 	case RUA_ProcedureCode_id_privateMessage:
 		break;
@@ -187,18 +197,18 @@
 	}
 }
 
-static int rua_rx_successful_outcome_msg(struct hnb_context *hnb, RUA_SuccessfulOutcome_t *msg)
+static int rua_rx_successful_outcome_msg(struct msgb *msg, RUA_SuccessfulOutcome_t *in)
 {
 
 }
 
-static int rua_rx_unsuccessful_outcome_msg(struct hnb_context *hnb, RUA_UnsuccessfulOutcome_t *msg)
+static int rua_rx_unsuccessful_outcome_msg(struct msgb *msg, RUA_UnsuccessfulOutcome_t *in)
 {
 
 }
 
 
-static int _hnbgw_rua_rx(struct hnb_context *hnb, RUA_RUA_PDU_t *pdu)
+static int _hnbgw_rua_rx(struct msgb *msg, RUA_RUA_PDU_t *pdu)
 {
 	int rc;
 
@@ -206,13 +216,13 @@
 	 * that's not possible */
 	switch (pdu->present) {
 	case RUA_RUA_PDU_PR_initiatingMessage:
-		rc = rua_rx_initiating_msg(hnb, &pdu->choice.initiatingMessage);
+		rc = rua_rx_initiating_msg(msg, &pdu->choice.initiatingMessage);
 		break;
 	case RUA_RUA_PDU_PR_successfulOutcome:
-		rc = rua_rx_successful_outcome_msg(hnb, &pdu->choice.successfulOutcome);
+		rc = rua_rx_successful_outcome_msg(msg, &pdu->choice.successfulOutcome);
 		break;
 	case RUA_RUA_PDU_PR_unsuccessfulOutcome:
-		rc = rua_rx_unsuccessful_outcome_msg(hnb, &pdu->choice.unsuccessfulOutcome);
+		rc = rua_rx_unsuccessful_outcome_msg(msg, &pdu->choice.unsuccessfulOutcome);
 		break;
 	default:
 		return -1;
@@ -235,7 +245,7 @@
 		return rc;
 	}
 
-	rc = _hnbgw_rua_rx(hnb, pdu);
+	rc = _hnbgw_rua_rx(msg, pdu);
 
 	return rc;
 }