<p>daniel has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20226">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">pcu: Check stats for pcu channel allocation, bytes transferred<br><br>Change-Id: I90964b32fa11ed2582afc5fb56bd302b06606f86<br>Related: SYS#4877<br>---<br>M pcu/PCU_Tests.default<br>M pcu/PCU_Tests.ttcn<br>M pcu/gen_links.sh<br>M pcu/osmo-pcu.cfg<br>M pcu/regen_makefile.sh<br>5 files changed, 64 insertions(+), 2 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/26/20226/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/pcu/PCU_Tests.default b/pcu/PCU_Tests.default</span><br><span>index 205327d..1dbced3 100644</span><br><span>--- a/pcu/PCU_Tests.default</span><br><span>+++ b/pcu/PCU_Tests.default</span><br><span>@@ -22,6 +22,7 @@</span><br><span>     sgsn_role := true</span><br><span> }</span><br><span> Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoPCU";</span><br><span style="color: hsl(120, 100%, 40%);">+StatsD_Checker.mp_enable_stats := true;</span><br><span> </span><br><span> [TESTPORT_PARAMETERS]</span><br><span> *.PCU.socket_type := "SEQPACKET"</span><br><span>@@ -34,6 +35,15 @@</span><br><span> *.PCUVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span> *.PCUVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span> *.PCUVTY.PROMPT1 := "OsmoPCU> "</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_MODE := "client"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_HOSTNAME := "127.0.0.1"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_PORTNUM := "4240"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_LOGIN_SKIPPED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_READMODE := "buffered"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes"</span><br><span style="color: hsl(120, 100%, 40%);">+*.STATSVTY.PROMPT1 := "OsmoPCU> "</span><br><span> </span><br><span> [MAIN_CONTROLLER]</span><br><span> </span><br><span>diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn</span><br><span>index 142cdcd..0bd7093 100644</span><br><span>--- a/pcu/PCU_Tests.ttcn</span><br><span>+++ b/pcu/PCU_Tests.ttcn</span><br><span>@@ -51,10 +51,18 @@</span><br><span> import from SGSN_Components all;</span><br><span> import from GPRS_Components all;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+import from StatsD_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from StatsD_CodecPort all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from StatsD_CodecPort_CtrlFunct all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from StatsD_Checker all;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> modulepar {</span><br><span>  charstring mp_pcu_sock_path := PCU_SOCK_DEFAULT;</span><br><span> </span><br><span>         float X2002 := 0.2; /* Timer -2002, IMM ASSIGN confirm delay */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     charstring mp_pcu_statsd_ip := "127.0.0.1";</span><br><span style="color: hsl(120, 100%, 40%);">+ integer mp_pcu_statsd_port := 8125;</span><br><span> }</span><br><span> </span><br><span> </span><br><span>@@ -102,10 +110,13 @@</span><br><span>     uint8_t high</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-type component RAW_PCU_Test_CT extends bssgp_CT, MS_BTS_IFACE_CT {</span><br><span style="color: hsl(120, 100%, 40%);">+type component RAW_PCU_Test_CT extends bssgp_CT, MS_BTS_IFACE_CT, StatsD_ConnHdlr {</span><br><span>         /* PCU interface abstraction component */</span><br><span>    var RAW_PCUIF_CT vc_PCUIF;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+        /* StatsD */</span><br><span style="color: hsl(120, 100%, 40%);">+  var StatsD_Checker_CT vc_STATSD;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   /* Connection to the PCUIF component */</span><br><span>      port RAW_PCU_MSG_PT PCUIF;</span><br><span>   /* VTY connection to the PCU */</span><br><span>@@ -215,6 +226,11 @@</span><br><span> </span><br><span>   f_init_vty(id);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+   f_init_statsd(id, vc_STATSD, mp_pcu_statsd_ip, mp_pcu_statsd_port);</span><br><span style="color: hsl(120, 100%, 40%);">+   /* This is normally done in the ConnHdlr component, but here</span><br><span style="color: hsl(120, 100%, 40%);">+   * the Test_CT doubles as ConnHdlr */</span><br><span style="color: hsl(120, 100%, 40%);">+ connect(self:STATSD_PROC, vc_STATSD:STATSD_PROC);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  vc_PCUIF.start(f_PCUIF_CT_handler(mp_pcu_sock_path));</span><br><span>        vc_BTS.start(f_BTS_CT_handler(0, valueof(info_ind)));</span><br><span> </span><br><span>@@ -1437,6 +1453,8 @@</span><br><span>    /* Initialize the PCU interface abstraction */</span><br><span>       f_init_raw(testcasename());</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       f_statsd_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* Establish BSSGP connection to the PCU */</span><br><span>  f_bssgp_establish();</span><br><span>         f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli);</span><br><span>@@ -1486,6 +1504,17 @@</span><br><span>  /* Make sure that the next block (after the Ack) is dummy */</span><br><span>         f_rx_rlcmac_dl_block_exp_dummy(dl_block);</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+         { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := 0, max := 0},</span><br><span style="color: hsl(120, 100%, 40%);">+         { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 1, max := 1},</span><br><span style="color: hsl(120, 100%, 40%);">+               { name := "TTCN3.bts.0.immediate.assignment_UL", mtype := "c", min := 0, max := 0},</span><br><span style="color: hsl(120, 100%, 40%);">+               { name := "TTCN3.bts.0.tbf.dl.alloc", mtype := "c", min := 1, max := 1},</span><br><span style="color: hsl(120, 100%, 40%);">+          { name := "TTCN3.bts.0.tbf.ul.alloc", mtype := "c", min := 0, max := 0},</span><br><span style="color: hsl(120, 100%, 40%);">+          { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 112, max := 112},</span><br><span style="color: hsl(120, 100%, 40%);">+              { name := "TTCN3.bts.0.rlc.ul_payload_bytes", mtype := "c", min := 0, max := 0}</span><br><span style="color: hsl(120, 100%, 40%);">+   };</span><br><span style="color: hsl(120, 100%, 40%);">+    f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span>@@ -1849,6 +1878,8 @@</span><br><span>     /* Initialize the PCU interface abstraction */</span><br><span>       f_init_raw(testcasename());</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+       f_statsd_reset();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>  /* Establish BSSGP connection to the PCU */</span><br><span>  f_bssgp_establish();</span><br><span>         f_bssgp_client_llgmm_assign('FFFFFFFF'O, ms.tlli);</span><br><span>@@ -1878,6 +1909,16 @@</span><br><span>  f_ms_tx_ul_block(ms, ts_RLCMAC_DL_ACK_NACK(ms.dl_tbf.tfi, ms.dl_tbf.acknack_desc),</span><br><span>                        f_dl_block_ack_fn(dl_block, dl_fn));</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+ var StatsDExpects expect := {</span><br><span style="color: hsl(120, 100%, 40%);">+         { name := "TTCN3.bts.0.rach.requests", mtype := "c", min := 1, max := 1},</span><br><span style="color: hsl(120, 100%, 40%);">+         { name := "TTCN3.bts.0.immediate.assignment_DL", mtype := "c", min := 1, max := 1},</span><br><span style="color: hsl(120, 100%, 40%);">+               { name := "TTCN3.bts.0.tbf.dl.alloc", mtype := "c", min := 1, max := 1},</span><br><span style="color: hsl(120, 100%, 40%);">+          { name := "TTCN3.bts.0.tbf.ul.alloc", mtype := "c", min := 1, max := 1},</span><br><span style="color: hsl(120, 100%, 40%);">+          { name := "TTCN3.bts.0.rlc.dl_payload_bytes", mtype := "c", min := 28, max := 28},</span><br><span style="color: hsl(120, 100%, 40%);">+                { name := "TTCN3.bts.0.rlc.ul_payload_bytes", mtype := "c", min := 16, max := 16}</span><br><span style="color: hsl(120, 100%, 40%);">+ };</span><br><span style="color: hsl(120, 100%, 40%);">+    f_statsd_expect(expect);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   f_shutdown(__BFILE__, __LINE__, final := true);</span><br><span> }</span><br><span> </span><br><span>diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh</span><br><span>index a1e2e44..4c7e5c3 100755</span><br><span>--- a/pcu/gen_links.sh</span><br><span>+++ b/pcu/gen_links.sh</span><br><span>@@ -50,6 +50,7 @@</span><br><span> </span><br><span> DIR=../library</span><br><span> FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_VTY_Functions.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Templates.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Templates.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc "</span><br><span style="color: hsl(120, 100%, 40%);">+FILES+="StatsD_Types.ttcn StatsD_CodecPort.ttcn StatsD_CodecPort_CtrlFunct.ttcn StatsD_CodecPort_CtrlFunctdef.cc StatsD_Checker.ttcn "</span><br><span> FILES+="NS_Provider_IPL4.ttcn NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc "</span><br><span> FILES+="BSSGP_Emulation.ttcnpp Osmocom_Gb_Types.ttcn "</span><br><span> FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn "</span><br><span>diff --git a/pcu/osmo-pcu.cfg b/pcu/osmo-pcu.cfg</span><br><span>index d6213b5..12dc577 100644</span><br><span>--- a/pcu/osmo-pcu.cfg</span><br><span>+++ b/pcu/osmo-pcu.cfg</span><br><span>@@ -9,6 +9,16 @@</span><br><span>  logging print file basename last</span><br><span>  logging print extended-timestamp 1</span><br><span>  logging level set-all debug</span><br><span style="color: hsl(120, 100%, 40%);">+!</span><br><span style="color: hsl(120, 100%, 40%);">+stats interval 0</span><br><span style="color: hsl(120, 100%, 40%);">+stats reporter statsd</span><br><span style="color: hsl(120, 100%, 40%);">+ prefix TTCN3</span><br><span style="color: hsl(120, 100%, 40%);">+ level subscriber</span><br><span style="color: hsl(120, 100%, 40%);">+ remote-ip 127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+ remote-port 8125</span><br><span style="color: hsl(120, 100%, 40%);">+ flush-period 1</span><br><span style="color: hsl(120, 100%, 40%);">+ mtu 1024</span><br><span style="color: hsl(120, 100%, 40%);">+ enable</span><br><span> </span><br><span> line vty</span><br><span>  no login</span><br><span>diff --git a/pcu/regen_makefile.sh b/pcu/regen_makefile.sh</span><br><span>index b2063ac..dc9b672 100755</span><br><span>--- a/pcu/regen_makefile.sh</span><br><span>+++ b/pcu/regen_makefile.sh</span><br><span>@@ -1,6 +1,6 @@</span><br><span> #!/bin/sh</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc"</span><br><span style="color: hsl(120, 100%, 40%);">+FILES="*.ttcn *.ttcnpp BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc TELNETasp_PT.cc Native_FunctionDefs.cc StatsD_CodecPort_CtrlFunctdef.cc"</span><br><span> </span><br><span> export CPPFLAGS_TTCN3="-DBSSGP_EM_L3"</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20226">change 20226</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/20226"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I90964b32fa11ed2582afc5fb56bd302b06606f86 </div>
<div style="display:none"> Gerrit-Change-Number: 20226 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: daniel <dwillmann@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>