aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-01-11 15:19:38 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2016-02-24 20:51:04 +0100
commit0968a588362efdebb24183c0e5f164346d3fed34 (patch)
tree53031c95d3302c71e916aa2bb9d5461e2e03098a
parenta0d21479a775583cd3dc2bb55295b089284a1b07 (diff)
hnb-test: some rua rx printfs
-rw-r--r--src/tests/dummy_cn_sua.c2
-rw-r--r--src/tests/hnb-test.c67
2 files changed, 66 insertions, 3 deletions
diff --git a/src/tests/dummy_cn_sua.c b/src/tests/dummy_cn_sua.c
index ccd40ca..a830892 100644
--- a/src/tests/dummy_cn_sua.c
+++ b/src/tests/dummy_cn_sua.c
@@ -192,6 +192,8 @@ static void cn_ranap_handle_co(void *ctx, ranap_message *message)
static int ranap_handle_cl_reset_req(void *ctx, RANAP_ResetIEs_t *ies)
{
/* FIXME: send reset response */
+
+ LOGP(DRANAP, LOGL_ERROR, "Rx Reset Request\n");
}
static int ranap_handle_cl_err_ind(void *ctx, RANAP_ErrorIndicationIEs_t *ies)
diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c
index 6ec5abd..e836830 100644
--- a/src/tests/hnb-test.c
+++ b/src/tests/hnb-test.c
@@ -56,6 +56,8 @@
#include <osmocom/ranap/ranap_msg_factory.h>
+#include <osmocom/rua/RUA_RUA-PDU.h>
+
static void *tall_hnb_ctx;
struct hnb_test g_hnb_test = {
@@ -206,6 +208,65 @@ int hnb_test_hnbap_rx(struct hnb_test *hnb, struct msgb *msg)
return rc;
}
+int hnb_test_rua_rx(struct hnb_test *hnb, struct msgb *msg)
+{
+ RUA_RUA_PDU_t _pdu, *pdu = &_pdu;
+ asn_dec_rval_t dec_ret;
+ int rc;
+
+ memset(pdu, 0, sizeof(*pdu));
+ dec_ret = aper_decode(NULL, &asn_DEF_RUA_RUA_PDU, (void **) &pdu,
+ msg->data, msgb_length(msg), 0, 0);
+ if (dec_ret.code != RC_OK) {
+ LOGP(DMAIN, LOGL_ERROR, "Error in ASN.1 decode\n");
+ return rc;
+ }
+
+ switch (pdu->present) {
+ case RUA_RUA_PDU_PR_successfulOutcome:
+ printf("RUA_RUA_PDU_PR_successfulOutcome\n");
+ break;
+ case RUA_RUA_PDU_PR_initiatingMessage:
+ printf("RUA_RUA_PDU_PR_initiatingMessage\n");
+ break;
+ case RUA_RUA_PDU_PR_NOTHING:
+ printf("RUA_RUA_PDU_PR_NOTHING\n");
+ break;
+ case RUA_RUA_PDU_PR_unsuccessfulOutcome:
+ printf("RUA_RUA_PDU_PR_unsuccessfulOutcome\n");
+ break;
+ default:
+ printf("Unexpected RUA message received\n");
+ break;
+ }
+
+ switch (pdu->choice.successfulOutcome.procedureCode) {
+ case RUA_ProcedureCode_id_ConnectionlessTransfer:
+ printf("RUA rx Connectionless Transfer\n");
+ break;
+ case RUA_ProcedureCode_id_Connect:
+ printf("RUA rx Connect\n");
+ break;
+ case RUA_ProcedureCode_id_DirectTransfer:
+ printf("RUA rx DirectTransfer\n");
+ break;
+ case RUA_ProcedureCode_id_Disconnect:
+ printf("RUA rx Disconnect\n");
+ break;
+ case RUA_ProcedureCode_id_ErrorIndication:
+ printf("RUA rx ErrorIndication\n");
+ break;
+ case RUA_ProcedureCode_id_privateMessage:
+ printf("RUA rx privateMessage\n");
+ break;
+ default:
+ printf("RUA rx unknown message\n");
+ break;
+ }
+
+ return rc;
+}
+
static int hnb_read_cb(struct osmo_fd *fd)
{
struct hnb_test *hnb_test = fd->data;
@@ -246,12 +307,12 @@ static int hnb_read_cb(struct osmo_fd *fd)
switch (sinfo.sinfo_ppid) {
case IUH_PPI_HNBAP:
- printf("HNBAP mesage received\n");
+ printf("HNBAP message received\n");
rc = hnb_test_hnbap_rx(hnb_test, msg);
break;
case IUH_PPI_RUA:
- printf("RUA mesage received\n");
-// rc = hnbgw_rua_rx(hnb, msg);
+ printf("RUA message received\n");
+ rc = hnb_test_rua_rx(hnb_test, msg);
break;
case IUH_PPI_SABP:
case IUH_PPI_RNA: