pespin has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37958?usp=email )
Change subject: s1gw: Initial StatsD support
......................................................................
s1gw: Initial StatsD support
Change-Id: Ib98c2fe68006a8d0f45de6966927b349a3b933ca
---
M s1gw/S1GW_ConnHdlr.ttcn
M s1gw/S1GW_Tests.cfg
M s1gw/S1GW_Tests.ttcn
M s1gw/gen_links.sh
M s1gw/regen_makefile.sh
5 files changed, 43 insertions(+), 10 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/58/37958/1
diff --git a/s1gw/S1GW_ConnHdlr.ttcn b/s1gw/S1GW_ConnHdlr.ttcn
index bb2a309..6a1eb39 100644
--- a/s1gw/S1GW_ConnHdlr.ttcn
+++ b/s1gw/S1GW_ConnHdlr.ttcn
@@ -34,9 +34,13 @@
import from S1AP_Constants all;
import from SCTP_Templates all;
+
+import from StatsD_Types all;
+import from StatsD_Checker all;
+
import from S1AP_Server all;
-type component ConnHdlr extends S1APSRV_ConnHdlr, PFCP_ConnHdlr {
+type component ConnHdlr extends S1APSRV_ConnHdlr, PFCP_ConnHdlr, StatsD_ConnHdlr {
var ConnHdlrPars g_pars;
port S1AP_CODEC_PT S1AP_ENB;
var ConnectionId g_s1ap_conn_id := -1;
@@ -45,7 +49,8 @@
type record ConnHdlrPars {
integer idx,
- Global_ENB_ID genb_id
+ Global_ENB_ID genb_id,
+ charstring statsd_prefix
};
template Global_ENB_ID
@@ -59,9 +64,10 @@
}
template (value) ConnHdlrPars
-t_ConnHdlrPars(integer idx := 0) := {
+t_ConnHdlrPars(integer idx := 0, charstring statsd_prefix := "") := {
idx := idx,
- genb_id := ts_Global_ENB_ID(idx)
+ genb_id := ts_Global_ENB_ID(idx),
+ statsd_prefix := statsd_prefix
}
type function void_fn(charstring id) runs on ConnHdlr;
diff --git a/s1gw/S1GW_Tests.cfg b/s1gw/S1GW_Tests.cfg
index dfcdbb9..54e7992 100644
--- a/s1gw/S1GW_Tests.cfg
+++ b/s1gw/S1GW_Tests.cfg
@@ -17,6 +17,8 @@
S1GW_Tests.mp_mme_bind_ip := "127.0.2.10";
S1GW_Tests.mp_s1gw_upf_ip := "127.0.3.1";
S1GW_Tests.mp_upf_bind_ip := "127.0.3.10";
+S1GW_Tests.mp_local_statsd_ip := "127.0.4.10";
+S1GW_Tests.mp_local_statsd_port := 8125;
[MAIN_CONTROLLER]
diff --git a/s1gw/S1GW_Tests.ttcn b/s1gw/S1GW_Tests.ttcn
index 00b83e8..67c4267 100644
--- a/s1gw/S1GW_Tests.ttcn
+++ b/s1gw/S1GW_Tests.ttcn
@@ -34,6 +34,12 @@
import from PFCP_CodecPort all;
import from SCTP_Templates all;
+
+import from StatsD_Types all;
+import from StatsD_CodecPort all;
+import from StatsD_CodecPort_CtrlFunct all;
+import from StatsD_Checker all;
+
import from S1AP_Server all;
import from S1GW_ConnHdlr all;
@@ -44,12 +50,18 @@
charstring mp_mme_bind_ip := "127.0.2.10"; /* MME address on which we get
connections from S1GW */
charstring mp_s1gw_upf_ip := "127.0.3.1"; /* UPF facing address of the S1GW
*/
charstring mp_upf_bind_ip := "127.0.3.10"; /* UPF address on which we get
connections from S1GW */
+
+ /* Our emulated StatsD server: */
+ charstring mp_local_statsd_ip := "127.0.4.10";
+ integer mp_local_statsd_port := 8125;
+ charstring mp_statsd_prefix := "s1gw.";
}
-type component test_CT {
+type component test_CT extends StatsD_Checker_CT {
timer g_Tguard;
var S1AP_Server_CT vc_S1APSRV;
var PFCP_Emulation_CT vc_PFCP;
+ var StatsD_Checker_CT vc_STATSD;
};
private altstep as_Tguard() runs on test_CT {
@@ -64,6 +76,8 @@
g_Tguard.start(Tval);
activate(as_Tguard());
+ f_init_statsd("VirtHNBGW", vc_STATSD, mp_local_statsd_ip,
mp_local_statsd_port);
+
if (s1apsrv_start) {
f_init_s1ap_srv();
}
@@ -95,12 +109,20 @@
vc_PFCP.start(PFCP_Emulation.main(pfcp_cfg));
}
+function f_new_ConnHdlrPars(integer idx := 0) return ConnHdlrPars {
+ var ConnHdlrPars pars := valueof(t_ConnHdlrPars(idx, mp_statsd_prefix));
+ return pars;
+}
+
function f_ConnHdlr_spawn(void_fn fn, ConnHdlrPars pars)
runs on test_CT return ConnHdlr {
var ConnHdlr vc_conn;
var charstring id := "ConnHdlr-" & testcasename() & "-"
& int2str(pars.idx);
vc_conn := ConnHdlr.create(id) alive;
+ if (isbound(vc_STATSD) and vc_STATSD.running) {
+ connect(vc_conn:STATSD_PROC, vc_STATSD:STATSD_PROC);
+ }
if (isbound(vc_S1APSRV) and vc_S1APSRV.running) {
connect(vc_conn:S1AP_CONN, vc_S1APSRV:S1AP_CLIENT);
connect(vc_conn:S1AP_PROC, vc_S1APSRV:S1AP_PROC);
@@ -126,7 +148,7 @@
f_ConnHdlr_s1ap_unregister(g_pars.genb_id);
}
testcase TC_setup() runs on test_CT {
- var ConnHdlrPars pars := valueof(t_ConnHdlrPars);
+ var ConnHdlrPars pars := f_new_ConnHdlrPars();
var ConnHdlr vc_conn;
f_init();
@@ -140,7 +162,7 @@
f_init();
for (var integer i := 0; i < 42; i := i + 1) {
- var ConnHdlrPars pars := valueof(t_ConnHdlrPars(i));
+ var ConnHdlrPars pars := f_new_ConnHdlrPars(i);
var ConnHdlr vc_conn := f_ConnHdlr_spawn(refers(f_TC_setup), pars);
vc_conns := vc_conns & { vc_conn };
}
@@ -168,7 +190,7 @@
f_ConnHdlr_s1ap_unregister(g_pars.genb_id);
}
testcase TC_conn_term_by_mme() runs on test_CT {
- var ConnHdlrPars pars := valueof(t_ConnHdlrPars);
+ var ConnHdlrPars pars := f_new_ConnHdlrPars();
var ConnHdlr vc_conn;
f_init();
@@ -188,7 +210,7 @@
setverdict(pass);
}
testcase TC_conn_term_mme_unavail() runs on test_CT {
- var ConnHdlrPars pars := valueof(t_ConnHdlrPars);
+ var ConnHdlrPars pars := f_new_ConnHdlrPars();
var ConnHdlr vc_conn;
f_init(s1apsrv_start := false);
@@ -263,7 +285,7 @@
f_ConnHdlr_s1ap_unregister(g_pars.genb_id);
}
testcase TC_e_rab_setup() runs on test_CT {
- var ConnHdlrPars pars := valueof(t_ConnHdlrPars);
+ var ConnHdlrPars pars := f_new_ConnHdlrPars();
var ConnHdlr vc_conn;
f_init();
diff --git a/s1gw/gen_links.sh b/s1gw/gen_links.sh
index ef8bdde..919e7f8 100755
--- a/s1gw/gen_links.sh
+++ b/s1gw/gen_links.sh
@@ -32,6 +32,7 @@
FILES+="PFCP_CodecPort.ttcn PFCP_CodecPort_CtrlFunct.ttcn
PFCP_CodecPort_CtrlFunctDef.cc PFCP_Emulation.ttcn PFCP_Templates.ttcn "
FILES+="S1AP_CodecPort.ttcn S1AP_CodecPort_CtrlFunctDef.cc
S1AP_CodecPort_CtrlFunct.ttcn "
FILES+="SCTP_Templates.ttcn "
+FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn
StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcnpp "
gen_links $DIR $FILES
ignore_pp_results
diff --git a/s1gw/regen_makefile.sh b/s1gw/regen_makefile.sh
index 8c32b3d..adf765e 100755
--- a/s1gw/regen_makefile.sh
+++ b/s1gw/regen_makefile.sh
@@ -5,12 +5,14 @@
FILES="
*.asn
*.ttcn
+ *.ttcnpp
IPL4asp_PT.cc
IPL4asp_discovery.cc
Native_FunctionDefs.cc
PFCP_CodecPort_CtrlFunctDef.cc
S1AP_CodecPort_CtrlFunctDef.cc
S1AP_EncDec.cc
+ StatsD_CodecPort_CtrlFunctdef.cc
TCCConversion.cc
TCCEncoding.cc
TCCInterface.cc
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37958?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ib98c2fe68006a8d0f45de6966927b349a3b933ca
Gerrit-Change-Number: 37958
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>