Back RUA/RANAP integration until RANAP Reset works for cs+ps

The hNodeB is now actively transmitting and we are getting up to the
HNBAP UE-REGISTER.req with the IMSI of the MS.
diff --git a/src/hnbgw_rua.c b/src/hnbgw_rua.c
index 3af564b..69d5e69 100644
--- a/src/hnbgw_rua.c
+++ b/src/hnbgw_rua.c
@@ -21,73 +21,35 @@
 	return osmo_wqueue_enqueue(&ctx->wqueue, msg);
 }
 
-static const struct value_string rua_cause_radio_vals[] = {
-	{ RUA_CauseRadioNetwork_normal,		 "normal" },
-	{ RUA_CauseRadioNetwork_connect_failed,	 "connect failed" },
-	{ RUA_CauseRadioNetwork_network_release, "network release" },
-	{ RUA_CauseRadioNetwork_unspecified,	 "unspecified" },
-	{ 0, NULL }
-};
-
-static const struct value_string rua_cause_transp_vals[] = {
-	{ RUA_CauseTransport_transport_resource_unavailable, "resource unavailable" },
-	{ RUA_CauseTransport_unspecified, "unspecified" },
-	{ 0, NULL }
-};
-
-static const struct value_string rua_cause_prot_vals[] = {
-	{ RUA_CauseProtocol_transfer_syntax_error, "syntax error" },
-	{ RUA_CauseProtocol_abstract_syntax_error_reject,
-		"abstract syntax error; reject" },
-	{ RUA_CauseProtocol_abstract_syntax_error_ignore_and_notify,
-		"abstract syntax error; ignore and notify" },
-	{ RUA_CauseProtocol_message_not_compatible_with_receiver_state,
-		"message not compatible with receiver state" },
-	{ RUA_CauseProtocol_semantic_error, "semantic error" },
-	{ RUA_CauseProtocol_unspecified, "unspecified" },
-	{ RUA_CauseProtocol_abstract_syntax_error_falsely_constructed_message,
-		"falsely constructed message" },
-	{ 0, NULL }
-};
-
-static const struct value_string rua_cause_misc_vals[] = {
-	{ RUA_CauseMisc_processing_overload,	"processing overload" },
-	{ RUA_CauseMisc_hardware_failure,	"hardware failure" },
-	{ RUA_CauseMisc_o_and_m_intervention,	"OAM intervention" },
-	{ RUA_CauseMisc_unspecified, 		"unspecified" },
-	{ 0, NULL }
-};
-
-static char *rua_cause_str(RUA_Cause_t *cause)
+int rua_tx_udt(struct msgb *inmsg)
 {
-	static char buf[32];
+	RUA_ConnectionlessTransfer_t out;
+	RUA_ConnectionlessTransferIEs_t ies;
+	struct msgb *msg;
+	int rc;
 
-	switch (cause->present) {
-	case RUA_Cause_PR_radioNetwork:
-		snprintf(buf, sizeof(buf), "radio(%s)",
-			 get_value_string(rua_cause_radio_vals,
-					 cause->choice.radioNetwork));
-		break;
-	case RUA_Cause_PR_transport:
-		snprintf(buf, sizeof(buf), "transport(%s)",
-			get_value_string(rua_cause_transp_vals,
-					cause->choice.transport));
-		break;
-	case RUA_Cause_PR_protocol:
-		snprintf(buf, sizeof(buf), "protocol(%s)",
-			get_value_string(rua_cause_prot_vals,
-					cause->choice.protocol));
-		break;
-	case RUA_Cause_PR_misc:
-		snprintf(buf, sizeof(buf), "misc(%s)",
-			get_value_string(rua_cause_misc_vals,
-					cause->choice.misc));
-		break;
-	}
-	return buf;
+	memset(&ies, 0, sizeof(ies));
+	ies.ranaP_Message.buf = inmsg->data;
+	ies.ranaP_Message.size = msgb_length(inmsg);
+
+	/* FIXME: msgb_free(msg)? ownership not yet clear */
+
+	memset(&out, 0, sizeof(out));
+	rc = rua_encode_connectionlesstransferies(&out, &ies);
+	if (rc < 0)
+		return rc;
+
+	msg = rua_generate_initiating_message(RUA_ProcedureCode_id_ConnectionlessTransfer,
+					      RUA_Criticality_reject,
+					      &asn_DEF_RUA_ConnectionlessTransfer,
+					      &out);
+	msg->dst = inmsg->dst;
+
+	DEBUGP(DMAIN, "transmitting RUA payload of %u bytes\n", msgb_length(msg));
+
+	return hnbgw_rua_tx(msg->dst, msg);
 }
 
-
 static int rua_rx_init_connect(struct msgb *msg, ANY_t *in)
 {
 	RUA_ConnectIEs_t ies;