diff options
author | Harald Welte <laforge@gnumonks.org> | 2015-09-10 23:49:45 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2015-09-10 23:49:45 +0200 |
commit | e2e5d4dd53749549e058335e69014f5b85d8cc7f (patch) | |
tree | 71b5f4cbcfdc8582d47ccfbb3337e30da510f3d6 /src/hnbgw_ranap.c | |
parent | 350814a5cb1abaf3b4c00efd14fbd4a28a5149db (diff) |
Back RUA/RANAP integration until RANAP Reset works for cs+ps
The hNodeB is now actively transmitting and we are getting up to the
HNBAP UE-REGISTER.req with the IMSI of the MS.
Diffstat (limited to 'src/hnbgw_ranap.c')
-rw-r--r-- | src/hnbgw_ranap.c | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/src/hnbgw_ranap.c b/src/hnbgw_ranap.c index 44a920b..bad99c8 100644 --- a/src/hnbgw_ranap.c +++ b/src/hnbgw_ranap.c @@ -8,6 +8,7 @@ #include "asn1helpers.h" #include "hnbgw.h" +#include "hnbgw_rua.h" //#include "ranap_common.h" #include "ranap/RANAP_RANAP-PDU.h" @@ -177,16 +178,37 @@ int ranap_encode_resetacknowledgeies( * END auto-generated copy+pasted ***********************************************************************/ -#if 0 +static int ranap_tx_reset_ack(struct hnb_context *hnb, + RANAP_CN_DomainIndicator_t domain) { - RANAP_ResetAcknowledgeIEs_s ies; + RANAP_ResetAcknowledge_t out; + RANAP_ResetAcknowledgeIEs_t ies; + struct msgb *msg; + int rc; memset(&ies, 0, sizeof(ies)); - ies.cN_DomainIndicator = RANAP_CN_DomainIndicator_cs_domain; + ies.cN_DomainIndicator = domain; + + memset(&out, 0, sizeof(out)); + rc = ranap_encode_resetacknowledgeies(&out, &ies); + if (rc < 0) { + LOGP(DMAIN, LOGL_ERROR, "error encoding reset ack IEs: %d\n", rc); + return rc; + } + + msg = ranap_generate_successful_outcome(RANAP_ProcedureCode_id_Reset, + RANAP_Criticality_reject, + &asn_DEF_RANAP_ResetAcknowledge, + &out); + if (!msg) + return -1; - rc = ranap_encoderesetacknowledgeise(&ies, FIXME); + msg->dst = hnb; + + rc = rua_tx_udt(msg); + + return rc; } -#endif static int ranap_rx_init_reset(struct hnb_context *hnb, ANY_t *in) { @@ -199,6 +221,8 @@ static int ranap_rx_init_reset(struct hnb_context *hnb, ANY_t *in) DEBUGP(DMAIN, "RESET.req\n"); + ranap_tx_reset_ack(hnb, ies.cN_DomainIndicator); + return 0; } |