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 <[email protected]>

Reply via email to