pcu: add TC_stat_pdch_avail_occ
Test new stats bts.N.pdch.available/occupied, which count available
PDCHs (3GPP TS 52.402 § B.2.1.38) as well as occupied PDCHs
(§ B.2.1.42-44).
Related: SYS#4878
Related: osmo-pcu I74760a68ee055510a79e80854ec7bf1521669119
Change-Id: I607b4729740159c161af824317f9fc04878eb13d
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 6f0df06..88893ec 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -5992,6 +5992,51 @@
f_shutdown(__BFILE__, __LINE__, final := true);
}
+/* Test stats for available and occupied PDCHs */
+testcase TC_stat_pdch_avail_occ() runs on RAW_PCU_Test_CT {
+ var PCUIF_info_ind info_ind := valueof(ts_PCUIF_INFO_default);
+ const BssgpBvci bvci := mp_gb_cfg.bvc[0].bvci;
+
+ /* Initialize NS/BSSGP side */
+ f_init_bssgp();
+
+ /* Only 1 TRX with 8 PDCH */
+ f_PCUIF_PDCHMask_set(info_ind, '11111111'B, 0);
+ f_PCUIF_PDCHMask_set(info_ind, '00000000'B, (1 .. 7));
+
+ /* Allocate 17 GprsMS instances */
+ f_init_gprs_ms(4);
+
+ /* Initialize the PCU interface abstraction */
+ f_init_raw(testcasename(), info_ind);
+
+ /* Reset stats */
+ f_statsd_reset();
+
+ /* Establish BSSGP */
+ f_bssgp_establish();
+
+ /* 8 PDCHs available, 0 occupied */
+ var StatsDExpects expect := {
+ { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 },
+ { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 0, max := 0 }
+ };
+ f_statsd_expect(expect);
+
+ /* Establish an Uplink TBF for each GprsMS instance */
+ f_multi_ms_bssgp_register();
+ f_multi_ms_establish_tbf(do_activate := false);
+
+ /* 4 PDCHs occupied */
+ expect := {
+ { name := "TTCN3.bts.0.pdch.available", mtype := "g", min := 8, max := 8 },
+ { name := "TTCN3.bts.0.pdch.occupied", mtype := "g", min := 4, max := 4 }
+ };
+ f_statsd_expect(expect);
+
+ f_shutdown(__BFILE__, __LINE__, final := true);
+}
+
control {
execute( TC_pcuif_suspend() );
execute( TC_pcuif_suspend_active_tbf() );
@@ -6098,6 +6143,8 @@
execute( TC_rim_ran_info_req_single_rep_no_si() );
execute (TC_pdch_energy_saving() );
+
+ execute( TC_stat_pdch_avail_occ() );
}
}