aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2015-12-17 11:57:41 +0100
committerDaniel Willmann <dwillmann@sysmocom.de>2015-12-17 13:09:37 +0100
commit19dedbb6b1b9ccf9b66b0e555ee7465ac721990d (patch)
treeec1b3da17a97d69a0f3093a7bab31cbb4b1ec14e /src
parent92856e6ef2356e82b969e526e8e23b95a2b7eefd (diff)
hnb-test: Send UE de-register after receiving the UE registration accept
Diffstat (limited to 'src')
-rw-r--r--src/tests/hnb-test.c32
-rw-r--r--src/tests/hnb-test.h2
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;