aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/hnb-test-ranap.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/hnb-test-ranap.c')
-rw-r--r--src/tests/hnb-test-ranap.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/tests/hnb-test-ranap.c b/src/tests/hnb-test-ranap.c
new file mode 100644
index 0000000..eb90745
--- /dev/null
+++ b/src/tests/hnb-test-ranap.c
@@ -0,0 +1,48 @@
+#include <osmocom/core/msgb.h>
+#include <osmocom/ranap/ranap_ies_defs.h>
+
+static const char *printstr(OCTET_STRING_t *s)
+{
+ osmo_hexdump((char*)s->buf, s->size);
+}
+
+#define PP(octet_string_t) \
+ printf(#octet_string_t " = %s\n",\
+ printstr(&octet_string_t))
+
+void ranap_msg_dt_print(void *ctx, ranap_message *ranap_msg)
+{
+ OSMO_ASSERT(ranap_msg->procedureCode ==
+ RANAP_ProcedureCode_id_DirectTransfer);
+
+ printf("rx DirectTransfer: presence = %hx\n", ranap_msg->msg.directTransferIEs.presenceMask);
+ PP(ranap_msg->msg.directTransferIEs.nas_pdu);
+
+ // nas_pdu == '05 08 12' ==> IMEI Identity request
+ // '05 04 0d' ==> LU reject
+/*
+typedef struct RANAP_DirectTransferIEs_s {
+ uint16_t presenceMask;
+ RANAP_NAS_PDU_t nas_pdu;
+ RANAP_LAI_t lai; ///< Optional field
+ RANAP_RAC_t rac; ///< Optional field
+ RANAP_SAI_t sai; ///< Optional field
+ RANAP_SAPI_t sapi; ///< Optional field
+} RANAP_DirectTransferIEs_t;
+*/
+}
+
+void ranap_msg_dt_get(void *ctx, ranap_message *ranap_msg)
+{
+ struct msgb *m = ctx;
+ OSMO_ASSERT(ranap_msg->procedureCode ==
+ RANAP_ProcedureCode_id_DirectTransfer);
+
+ printf("rx DirectTransfer: presence = %hx\n", ranap_msg->msg.directTransferIEs.presenceMask);
+ PP(ranap_msg->msg.directTransferIEs.nas_pdu);
+
+ int len = ranap_msg->msg.directTransferIEs.nas_pdu.size;
+ char *data = ranap_msg->msg.directTransferIEs.nas_pdu.buf;
+
+ memcpy(msgb_put(m, len), data, len);
+}