blob: 41df4f27940270f5dfd37c7124af9256791e030d [file] [log] [blame]
Neels Hofmeyrb984f362016-02-18 01:18:20 +01001
2#include <asn1c/ANY.h>
3#include "../rua_ies_defs.h"
4
5struct ranap_message_s;
6
7typedef void (*ranap_handle_cb)(void *ctx, struct ranap_message_s *ranap_msg);
8
9extern void ranap_msg_dt_print(void *ctx, struct ranap_message_s *ranap_msg);
10extern void ranap_msg_dt_get(void *ctx, struct ranap_message_s *ranap_msg);
11
12static void direct_transfer_nas_pdu_handle(ANY_t *in, ranap_handle_cb handler, void *ctx)
13{
14 RUA_DirectTransferIEs_t ies;
15 int rc;
16
17 rc = rua_decode_directtransferies(&ies, in);
18 if (rc < 0) {
19 printf("print_rua_init_dt(): failed to decode rua IEs\n");
20 return;
21 }
22
23 rc = ranap_cn_rx_co(handler, ctx, ies.ranaP_Message.buf, ies.ranaP_Message.size);
24
25 /* FIXME: what to do with the asn1c-allocated memory */
26 rua_free_directtransferies(&ies);
27}
28
29void direct_transfer_nas_pdu_print(ANY_t *in)
30{
31 direct_transfer_nas_pdu_handle(in, ranap_msg_dt_print, NULL);
32}
33
34void direct_transfer_nas_pdu_get(ANY_t *in, struct msgb *m)
35{
36 direct_transfer_nas_pdu_handle(in, ranap_msg_dt_get, m);
37}