diff options
Diffstat (limited to 'src/tests/hnb-test-ranap.c')
-rw-r--r-- | src/tests/hnb-test-ranap.c | 48 |
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); +} |