gbproxy: Register IMSI + TLLI with BSSGP_Emulation
If we don't do that, the BSSGP code will not know what to route to us
and what not.
Change-Id: Ife8b8918f0eb69c6dc502d67d2566e78975c9f91
diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 5d312f7..64827aa 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -396,11 +396,19 @@
/* first function called in every ConnHdlr */
private function f_handler_init(void_fn fn, charstring id, BSSGP_ConnHdlrPars pars)
runs on BSSGP_ConnHdlr {
+ var integer i;
/* do some common stuff like setting up g_pars */
g_pars := pars;
llc := f_llc_create(false);
+ /* register for our IMSI + TLLI */
+ for (i := 0; i < sizeof(SGSN_PROC); i := i+1) {
+ f_client_register(g_pars.imsi, g_pars.tlli, SGSN_PROC[i]);
+ }
+ for (i := 0; i < sizeof(PCU_PROC); i := i+1) {
+ f_client_register(g_pars.imsi, g_pars.tlli, PCU_PROC[i]);
+ }
g_Tguard.start(pars.t_guard);
activate(as_Tguard());
@@ -409,6 +417,21 @@
fn.apply(id);
}
+private function f_client_register(hexstring imsi, OCT4 tlli, BSSGP_PROC_PT PT)
+runs on BSSGP_ConnHdlr {
+ PT.call(BSSGP_register_client:{imsi, tlli}) {
+ [] PT.getreply(BSSGP_register_client:{imsi, tlli}) {};
+ }
+}
+
+private function f_client_unregister(hexstring imsi, BSSGP_PROC_PT PT)
+runs on BSSGP_ConnHdlr {
+ PT.call(BSSGP_unregister_client:{imsi}) {
+ [] PT.getreply(BSSGP_unregister_client:{imsi}) {};
+ }
+}
+
+
/* TODO:
* Detach without Attach
* SM procedures without attach / RAU