pespin submitted this change.

View Change

Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve lynxis lazus: Looks good to me, approved
sgsn: Add suport to obtain statsd output

It will be used in a follow-up commit in TC_stat_rnc_sctp_disconnected.

This new test infrastructure can still be used with osmo-sgsn latest
since it already initialized the statsd VTY commands despite having no
osmo_stats in use.

Change-Id: Ic86ce75ea700d05fc65fcea3cdab7b7eaac12069
---
M sgsn/README.md
M sgsn/SGSN_Tests.cfg
M sgsn/SGSN_Tests.default
M sgsn/SGSN_Tests.ttcn
M sgsn/gen_links.sh
M sgsn/osmo-sgsn.cfg
M sgsn/regen_makefile.sh
7 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/sgsn/README.md b/sgsn/README.md
index c6ee447..c161aff 100644
--- a/sgsn/README.md
+++ b/sgsn/README.md
@@ -6,6 +6,7 @@
* Gp: GTP (emulates GGSN)
* GSUP (emulates HLR)
* VTY
+ * StatsD

{% dot sgsn_tests.svg
digraph G {
@@ -20,5 +21,6 @@
ATS -> STP [label="Iu (IuPS)"];
SGSN -> ATS [label="GSUP"];
ATS -> SGSN [label="VTY"];
+ SGSN -> ATS [label="StatsD"];
}
%}
diff --git a/sgsn/SGSN_Tests.cfg b/sgsn/SGSN_Tests.cfg
index 365d4cd..edda944 100644
--- a/sgsn/SGSN_Tests.cfg
+++ b/sgsn/SGSN_Tests.cfg
@@ -10,6 +10,7 @@

[TESTPORT_PARAMETERS]
*.SGSNVTY.CTRL_HOSTNAME := "127.0.0.10"
+*.STATSVTY.CTRL_HOSTNAME := "127.0.0.10"

[MODULE_PARAMETERS]
SGSN_Tests.mp_nsconfig := {
diff --git a/sgsn/SGSN_Tests.default b/sgsn/SGSN_Tests.default
index f8d3e46..5a7b8c6 100644
--- a/sgsn/SGSN_Tests.default
+++ b/sgsn/SGSN_Tests.default
@@ -17,6 +17,15 @@
*.SGSNVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"
*.SGSNVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"
*.SGSNVTY.PROMPT1 := "OsmoSGSN> "
+*.STATSVTY.CTRL_MODE := "client"
+*.STATSVTY.CTRL_HOSTNAME := "127.0.0.1"
+*.STATSVTY.CTRL_PORTNUM := "4245"
+*.STATSVTY.CTRL_LOGIN_SKIPPED := "yes"
+*.STATSVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"
+*.STATSVTY.CTRL_READMODE := "buffered"
+*.STATSVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"
+*.STATSVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"
+*.STATSVTY.PROMPT1 := "OsmoSGSN> "
*.STPVTY.CTRL_MODE := "client"
*.STPVTY.CTRL_HOSTNAME := "127.0.0.1"
*.STPVTY.CTRL_PORTNUM := "4239"
diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index 3e5ed5b..1b339cf 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -26,6 +26,11 @@
import from Osmocom_Gb_Types all;
import from SCCPasp_Types all;

+import from StatsD_Types all;
+import from StatsD_CodecPort all;
+import from StatsD_CodecPort_CtrlFunct all;
+import from StatsD_Checker all;
+
import from MobileL3_CommonIE_Types all;
import from MobileL3_GMM_SM_Types all;
import from MobileL3_Types all;
@@ -72,6 +77,12 @@
integer mp_echo_interval := 5; /* in seconds. Only used in test enabling g_use_echo */
charstring mp_sgsn_gtp_ip := "127.0.0.10";

+ /* Address where we listen for STATSD metrics */
+ charstring mp_local_statsd_ip := "127.0.0.1";
+ /* port number to which to listen for STATSD metrics */
+ integer mp_msc_statsd_port := 8125;
+ charstring mp_statsd_prefix := "TTCN3.";
+
NSConfigurations mp_nsconfig := {
{
nsei := 96,
@@ -174,7 +185,7 @@
type record length(NUM_RNC) of IuInstance IuInstances;
type record of RAN_Configuration RAN_Configurations;

-type component test_CT extends GTP_ConnHdlr {
+type component test_CT extends GTP_ConnHdlr, StatsD_ConnHdlr {
var GbInstances g_gb;
var IuInstances g_iu;
var boolean g_iu_enable := false;
@@ -196,6 +207,10 @@
port TELNETasp_PT SGSNVTY;
port TELNETasp_PT STPVTY;

+ /* StatsD */
+ var StatsD_Checker_CT vc_STATSD;
+ var float g_statd_timeout := 5.0;
+
var boolean g_initialized := false;
var boolean g_use_echo := false;
};
@@ -437,6 +452,7 @@
}
f_init_gsup("SGSN_Test");
f_init_ggsn_gtp("SGSN_Test");
+ f_init_statsd("SGSN_Test", vc_STATSD, mp_local_statsd_ip, mp_msc_statsd_port, g_statd_timeout);
f_vty_enable_echo_interval(g_use_echo);
}

diff --git a/sgsn/gen_links.sh b/sgsn/gen_links.sh
index fe1bf08..e991fd5 100755
--- a/sgsn/gen_links.sh
+++ b/sgsn/gen_links.sh
@@ -88,6 +88,7 @@
FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn "
FILES+="Osmocom_CTRL_Types.ttcn Osmocom_CTRL_Functions.ttcn Osmocom_CTRL_Adapter.ttcn "
FILES+="Osmocom_VTY_Functions.ttcn "
+FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcnpp "
FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn "
FILES+="ITU_X213_Types.ttcn "
FILES+="RAN_Emulation.ttcnpp RAN_Adapter.ttcnpp SCCP_Templates.ttcn "
diff --git a/sgsn/osmo-sgsn.cfg b/sgsn/osmo-sgsn.cfg
index ae01923..e9f56c0 100644
--- a/sgsn/osmo-sgsn.cfg
+++ b/sgsn/osmo-sgsn.cfg
@@ -46,7 +46,15 @@
logging level lm3ua notice
logging level lmgcp notice
!
-stats interval 5
+stats interval 0
+stats reporter statsd
+ prefix TTCN3
+ level subscriber
+ remote-ip 127.0.0.1
+ remote-port 8125
+ flush-period 1
+ mtu 1024
+ enable
!
line vty
no login
diff --git a/sgsn/regen_makefile.sh b/sgsn/regen_makefile.sh
index c116d94..7034243 100755
--- a/sgsn/regen_makefile.sh
+++ b/sgsn/regen_makefile.sh
@@ -19,6 +19,7 @@
RANAP_EncDec.cc
SCCP_EncDec.cc
SCTPasp_PT.cc
+ StatsD_CodecPort_CtrlFunctdef.cc
TCCConversion.cc
TCCInterface.cc
TELNETasp_PT.cc
@@ -30,6 +31,7 @@
-DIPA_EMULATION_GSUP
-DRAN_EMULATION_RANAP
-DUSE_MTP3_DISTRIBUTOR
+ -DSTATSD_HAVE_VTY
"

. ../_buildsystem/regen_makefile.inc.sh

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

Gerrit-MessageType: merged
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ic86ce75ea700d05fc65fcea3cdab7b7eaac12069
Gerrit-Change-Number: 40991
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: lynxis lazus <lynxis@fe80.eu>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>