pespin submitted this change.

View Change


Approvals: Jenkins Builder: Verified osmith: Looks good to me, approved fixeria: Looks good to me, but someone else must approve
sgsn: Set up GTPv1U in emulated RNCs

Change-Id: Icf5fa28ea08cfd255b49b546eadd74e91a9c7ecf
---
M sgsn/SGSN_Tests.ttcn
M sgsn/SGSN_Tests_Iu.ttcn
2 files changed, 50 insertions(+), 14 deletions(-)

diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 8274d43..92f081d 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -164,12 +164,17 @@
type record length(NUM_GB) of NSConfiguration NSConfigurations;

const integer NUM_RNC := 1;
+type record IuInstance {
+ RAN_Adapter ranap,
+ GTP_Emulation_CT vc_RNC_GTP
+};
+type record length(NUM_RNC) of IuInstance IuInstances;
type record of RAN_Configuration RAN_Configurations;

type component test_CT {
var GbInstances g_gb;
- var RAN_Adapter g_ranap[NUM_RNC];
- var boolean g_ranap_enable := false;
+ var IuInstances g_iu;
+ var boolean g_iu_enable := false;

var GSUP_Emulation_CT vc_GSUP;
var IPA_Emulation_CT vc_GSUP_IPA;
@@ -267,6 +272,21 @@
}
}

+private function f_init_rnc_gtp(charstring id, integer rnc_idx) runs on test_CT {
+ id := id & "-RNC_GTP";
+
+ var GtpEmulationCfg gtp_cfg := {
+ gtpc_bind_ip := omit,
+ gtpc_bind_port := omit,
+ gtpu_bind_ip := mp_ranap_cfg[rnc_idx].sctp_addr.local_ip_addr,
+ gtpu_bind_port := GTP1U_PORT,
+ sgsn_role := false
+ };
+
+ g_iu[rnc_idx].vc_RNC_GTP := GTP_Emulation_CT.create(id);
+ g_iu[rnc_idx].vc_RNC_GTP.start(GTP_Emulation.main(gtp_cfg));
+}
+
private function f_init_ggsn_gtp(charstring id) runs on test_CT {
id := id & "-GGSN_GTP";

@@ -376,10 +396,11 @@
f_init_gb(g_gb[1], "SGSN_Test-Gb1", 1);
f_init_gb(g_gb[2], "SGSN_Test-Gb2", 2);

- if (g_ranap_enable) {
+ if (g_iu_enable) {
for (i := 0; i < NUM_RNC; i := i+1) {
- f_ran_adapter_init(g_ranap[i], mp_ranap_cfg[i], "SGSN_Test_" & int2str(i), RNC_RanOps);
- f_ran_adapter_start(g_ranap[i]);
+ f_ran_adapter_init(g_iu[i].ranap, mp_ranap_cfg[i], "SGSN_Test_" & int2str(i), RNC_RanOps);
+ f_ran_adapter_start(g_iu[i].ranap);
+ f_init_rnc_gtp("SGSN_Test", i);
}
}
f_init_gsup("SGSN_Test");
@@ -389,9 +410,9 @@

function f_cleanup() runs on test_CT {
var integer i;
- if (g_ranap_enable) {
+ if (g_iu_enable) {
for (i := 0; i < NUM_RNC; i := i+1) {
- f_ran_adapter_cleanup(g_ranap[i]);
+ f_ran_adapter_cleanup(g_iu[i].ranap);
}
}
self.stop;
@@ -438,9 +459,9 @@
gb[2].cfg.bvc[0].cell_id
}
pars := f_new_BSSGP_ConnHdlrPars(imsi_suffix, cell_ids, t_NetPars(expect_ciph := expect_ciph), t_guard := t_guard);
- if (g_ranap_enable) {
- pars.sccp_addr_local := g_ranap[0].sccp_addr_own;
- pars.sccp_addr_peer := g_ranap[0].sccp_addr_peer;
+ if (g_iu_enable) {
+ pars.sccp_addr_local := g_iu[0].ranap.sccp_addr_own;
+ pars.sccp_addr_peer := g_iu[0].ranap.sccp_addr_peer;
}

vc_conn := BSSGP_ConnHdlr.create(id);
@@ -461,9 +482,15 @@
connect(vc_conn:BSSGP_GLOBAL[2], gb[2].vc_BSSGP:GLOBAL);

/* FIXME: support multiple RNCs */
- if (g_ranap_enable) {
- connect(vc_conn:BSSAP, g_ranap[0].vc_RAN:CLIENT);
- connect(vc_conn:BSSAP_PROC, g_ranap[0].vc_RAN:PROC);
+ if (g_iu_enable) {
+ connect(vc_conn:BSSAP, g_iu[0].ranap.vc_RAN:CLIENT);
+ connect(vc_conn:BSSAP_PROC, g_iu[0].ranap.vc_RAN:PROC);
+
+ for (var integer i := 0; i < NUM_RNC; i := i+1) {
+ /* GTP[0] is used by emulated GGSN: */
+ connect(vc_conn:GTP[i + 1], g_iu[i].vc_RNC_GTP:CLIENT);
+ connect(vc_conn:GTP_PROC[i + 1], g_iu[i].vc_RNC_GTP:CLIENT_PROC);
+ }
}

connect(vc_conn:GSUP, vc_GSUP:GSUP_CLIENT);
diff --git a/sgsn/SGSN_Tests_Iu.ttcn b/sgsn/SGSN_Tests_Iu.ttcn
index 9825150..84679cd 100644
--- a/sgsn/SGSN_Tests_Iu.ttcn
+++ b/sgsn/SGSN_Tests_Iu.ttcn
@@ -15,7 +15,7 @@
import from BSSGP_ConnHdlr all;

private function f_init() runs on test_CT {
- g_ranap_enable := true;
+ g_iu_enable := true;
SGSN_Tests.f_init();

/* default VTY configuration */

To view, visit change 37592. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Icf5fa28ea08cfd255b49b546eadd74e91a9c7ecf
Gerrit-Change-Number: 37592
Gerrit-PatchSet: 3
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>
Gerrit-MessageType: merged