diff options
author | Daniel Willmann <dwillmann@sysmocom.de> | 2015-12-17 11:57:41 +0100 |
---|---|---|
committer | Daniel Willmann <dwillmann@sysmocom.de> | 2015-12-17 13:09:37 +0100 |
commit | 19dedbb6b1b9ccf9b66b0e555ee7465ac721990d (patch) | |
tree | ec1b3da17a97d69a0f3093a7bab31cbb4b1ec14e /src | |
parent | 92856e6ef2356e82b969e526e8e23b95a2b7eefd (diff) |
hnb-test: Send UE de-register after receiving the UE registration accept
Diffstat (limited to 'src')
-rw-r--r-- | src/tests/hnb-test.c | 32 | ||||
-rw-r--r-- | src/tests/hnb-test.h | 2 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/tests/hnb-test.c b/src/tests/hnb-test.c index 5908716..bfbedfc 100644 --- a/src/tests/hnb-test.c +++ b/src/tests/hnb-test.c @@ -55,6 +55,34 @@ struct hnb_test g_hnb_test = { .gw_port = IUH_DEFAULT_SCTP_PORT, }; +int hnb_test_ue_de_register_tx(struct hnb_test *hnb_test) +{ + struct msgb *msg; + int rc, imsi_len; + uint32_t ctx_id; + + UEDe_Register_t dereg; + UEDe_RegisterIEs_t dereg_ies; + memset(&dereg_ies, 0, sizeof(dereg_ies)); + + asn1_u24_to_bitstring(&dereg_ies.context_ID, &ctx_id, hnb_test->ctx_id); + dereg_ies.cause.present = Cause_PR_radioNetwork; + dereg_ies.cause.choice.radioNetwork = CauseRadioNetwork_connection_with_UE_lost; + + memset(&dereg, 0, sizeof(dereg)); + rc = hnbap_encode_uede_registeries(&dereg, &dereg_ies); + + msg = hnbap_generate_initiating_message(ProcedureCode_id_UEDe_Register, + Criticality_ignore, + &asn_DEF_UEDe_Register, + &dereg); + + + msgb_ppid(msg) = IUH_PPI_HNBAP; + + return osmo_wqueue_enqueue(&hnb_test->wqueue, msg); +} + int hnb_test_ue_register_tx(struct hnb_test *hnb_test) { struct msgb *msg; @@ -129,6 +157,10 @@ int hnb_test_rx_ue_register_acc(struct hnb_test *hnb, ANY_t *in) accept.uE_Identity.choice.iMSI.size); printf("UE Register accept for IMSI %s, context %u\n", imsi, ctx_id); + hnb->ctx_id = ctx_id; + + return hnb_test_ue_de_register_tx(hnb); + return 0; } diff --git a/src/tests/hnb-test.h b/src/tests/hnb-test.h index 3fb0b94..5778078 100644 --- a/src/tests/hnb-test.h +++ b/src/tests/hnb-test.h @@ -62,6 +62,8 @@ struct hnb_test { uint16_t rua_stream; uint16_t rnc_id; + + uint32_t ctx_id; }; extern struct hnb_test g_hnb_test; |