gbproxy: Introduce TC_llc_discarded
This tests the LLC-DISCARDED message, which relates to a BVCI but
is itself sent on BVCI=0. We expect it transparently passes from BSS
to SGSN.
Change-Id: I98d02d6fa68bddf15b732d06dab00e91e72995d1
diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 48d2805..938dcc1 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -1881,6 +1881,30 @@
f_cleanup();
}
+private function f_TC_llc_discarded(charstring id) runs on BSSGP_ConnHdlr {
+ var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci;
+
+ var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_LLC_DISCARDED(g_pars.tlli, 23, bvci, 2342);
+ /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+ var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_LLC_DISCARDED(g_pars.tlli, 23, bvci, 2342);
+
+ f_pcu2sgsn(pdu_tx, pdu_rx, use_sig := true);
+
+ setverdict(pass);
+}
+/* Send a LLC-DISCARDED from BSS side and expect it to show up on SGSN (SIG BVC) */
+testcase TC_llc_discarded() runs on test_CT
+{
+ var BSSGP_ConnHdlr vc_conn;
+ f_init();
+
+ vc_conn := f_start_handler(refers(f_TC_llc_discarded), testcasename(), g_pcu, g_sgsn, 6);
+ vc_conn.done;
+ /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */
+
+ f_cleanup();
+}
+
private function f_block_ptp_bvc_from_pcu(integer pcu_idx, integer bvc_idx) runs on test_CT
{
var BSSGP_BVC_CT bvc_ct := g_pcu[pcu_idx].vc_BSSGP_BVC[bvc_idx];
@@ -2113,6 +2137,7 @@
execute( TC_suspend() );
execute( TC_resume() );
execute( TC_trace() );
+ execute( TC_llc_discarded() );
execute( TC_bvc_block_ptp() );
execute( TC_bvc_unblock_ptp() );
execute( TC_bvc_reset_ptp_from_bss() );
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 7894cf1..a345d7f 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -829,7 +829,7 @@
iEI := '0F'O,
ext := '1'B,
lengthIndicator := {
- length1 := 2
+ length1 := 1
},
number_of_frames_discarded := f_hex_or_wc(frames_discarded, 2)
}