blob: 763a7f201c9f0b93fb5f566bed811abc74fbf3d6 [file] [log] [blame]
Neels Hofmeyrb984f362016-02-18 01:18:20 +01001#include <osmocom/core/msgb.h>
2#include <osmocom/ranap/ranap_ies_defs.h>
3
4static const char *printstr(OCTET_STRING_t *s)
5{
6 osmo_hexdump((char*)s->buf, s->size);
7}
8
9#define PP(octet_string_t) \
10 printf(#octet_string_t " = %s\n",\
11 printstr(&octet_string_t))
12
13void 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 Hofmeyrb984f362016-02-18 01:18:20 +010021/*
22typedef 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
33void 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 Hofmeyr860a1292016-02-18 23:03:15 +010045 m->l3h = m->data;
Neels Hofmeyrb984f362016-02-18 01:18:20 +010046 memcpy(msgb_put(m, len), data, len);
47}