Neels Hofmeyr | b984f36 | 2016-02-18 01:18:20 +0100 | [diff] [blame] | 1 | #include <osmocom/core/msgb.h> |
| 2 | #include <osmocom/ranap/ranap_ies_defs.h> |
| 3 | |
| 4 | static const char *printstr(OCTET_STRING_t *s) |
| 5 | { |
Neels Hofmeyr | c164a97 | 2016-02-29 09:25:46 +0100 | [diff] [blame] | 6 | return osmo_hexdump((char*)s->buf, s->size); |
Neels Hofmeyr | b984f36 | 2016-02-18 01:18:20 +0100 | [diff] [blame] | 7 | } |
| 8 | |
| 9 | #define PP(octet_string_t) \ |
| 10 | printf(#octet_string_t " = %s\n",\ |
| 11 | printstr(&octet_string_t)) |
| 12 | |
| 13 | void ranap_msg_dt_print(void *ctx, ranap_message *ranap_msg) |
| 14 | { |
| 15 | OSMO_ASSERT(ranap_msg->procedureCode == |
| 16 | RANAP_ProcedureCode_id_DirectTransfer); |
| 17 | |
| 18 | printf("rx DirectTransfer: presence = %hx\n", ranap_msg->msg.directTransferIEs.presenceMask); |
| 19 | PP(ranap_msg->msg.directTransferIEs.nas_pdu); |
| 20 | |
Neels Hofmeyr | b984f36 | 2016-02-18 01:18:20 +0100 | [diff] [blame] | 21 | /* |
| 22 | typedef struct RANAP_DirectTransferIEs_s { |
| 23 | uint16_t presenceMask; |
| 24 | RANAP_NAS_PDU_t nas_pdu; |
| 25 | RANAP_LAI_t lai; ///< Optional field |
| 26 | RANAP_RAC_t rac; ///< Optional field |
| 27 | RANAP_SAI_t sai; ///< Optional field |
| 28 | RANAP_SAPI_t sapi; ///< Optional field |
| 29 | } RANAP_DirectTransferIEs_t; |
| 30 | */ |
| 31 | } |
| 32 | |
| 33 | void ranap_msg_dt_get(void *ctx, ranap_message *ranap_msg) |
| 34 | { |
| 35 | struct msgb *m = ctx; |
| 36 | OSMO_ASSERT(ranap_msg->procedureCode == |
| 37 | RANAP_ProcedureCode_id_DirectTransfer); |
| 38 | |
| 39 | printf("rx DirectTransfer: presence = %hx\n", ranap_msg->msg.directTransferIEs.presenceMask); |
| 40 | PP(ranap_msg->msg.directTransferIEs.nas_pdu); |
| 41 | |
| 42 | int len = ranap_msg->msg.directTransferIEs.nas_pdu.size; |
| 43 | char *data = ranap_msg->msg.directTransferIEs.nas_pdu.buf; |
| 44 | |
Neels Hofmeyr | 860a129 | 2016-02-18 23:03:15 +0100 | [diff] [blame] | 45 | m->l3h = m->data; |
Neels Hofmeyr | b984f36 | 2016-02-18 01:18:20 +0100 | [diff] [blame] | 46 | memcpy(msgb_put(m, len), data, len); |
| 47 | } |