module SGSN_Tests { import from General_Types all; import from Osmocom_Types all; import from NS_Types all; import from NS_Emulation all; import from BSSGP_Types all; import from BSSGP_Emulation all; type component test_CT { var NS_CT vc_NS; var BSSGP_CT vc_BSSGP; port BSSGP_PT BSSGP; var boolean g_initialized := false; }; function f_init() runs on test_CT { if (g_initialized == true) { return; } g_initialized := true; vc_NS := NS_CT.create; vc_BSSGP := BSSGP_CT.create; /* connect our BSSGP port to upper end of BSSGP emulation */ connect(self:BSSGP, vc_BSSGP:BSSGP_SP); /* connect lower end of BSSGP emulation with NS upper port */ connect(vc_BSSGP:BSCP, vc_NS:NS_SP); /* connect lower end of NS emulation to NS codec port (on top of IPL4) */ map(vc_NS:NSCP, system:NS_CODEC_PORT); vc_NS.start(NSStart()); vc_BSSGP.start(BssgpStart(false)); } /* TODO: * RAU without Attach * Detach without Attach * SM procedures without attach / RAU * ATTACH / RAU ** with / without authentication ** with / without P-TMSI allocation ** timeout from HLR on SAI ** timeout from HLR on UL ** reject from HLR on SAI ** reject from HLR on UL * re-transmissions of LLC frames * PDP Context activation ** with different GGSN config in SGSN VTY ** with different PDP context type (v4/v6/v46) ** timeout from GGSN ** reject from GGSN */ testcase TC_wait_ns_up() runs on test_CT { f_init(); f_sleep(20.0); } //control { } }