gbproxy: Add test for RA Capability Update procedure
Change-Id: I023b3d24a31d117f05c7327b08e9f8f930720944
Related: SYS#5210
diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 746ee33..bd56510 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -691,6 +691,37 @@
f_cleanup();
}
+private function f_TC_ra_capability_upd(charstring id) runs on BSSGP_ConnHdlr {
+ var integer i;
+ var OCT1 tag;
+ for (i := 0; i < 10; i := i+1) {
+ tag := int2oct(23 + i, 1);
+ var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RA_CAP_UPD(g_pars.tlli, tag);
+ /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+ var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RA_CAP_UPD(g_pars.tlli, tag)
+
+ f_pcu2sgsn(pdu_tx, pdu_rx);
+
+ pdu_tx := ts_BSSGP_RA_CAP_UPD_ACK(g_pars.tlli, tag, '42'O);
+ /* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+ pdu_rx := tr_BSSGP_RA_CAP_UPD_ACK(g_pars.tlli, tag, '42'O)
+
+ f_sgsn2pcu(pdu_tx, pdu_rx);
+ }
+ setverdict(pass);
+}
+testcase TC_ra_capability_upd() runs on test_CT
+{
+ var BSSGP_ConnHdlr vc_conn;
+ f_init();
+
+ vc_conn := f_start_handler(refers(f_TC_ra_capability_upd), testcasename(), g_pcu, g_sgsn, 3);
+ vc_conn.done;
+ /* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */
+
+ f_cleanup();
+}
+
@@ -699,6 +730,7 @@
execute( TC_ul_unitdata() );
execute( TC_dl_unitdata() );
execute( TC_ra_capability() );
+ execute( TC_ra_capability_upd() );
}
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 82fdb07..3ba3fca 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -1710,6 +1710,15 @@
tag := ts_BSSGP_IE_Tag(tag)
}
}
+template (present) PDU_BSSGP tr_BSSGP_RA_CAP_UPD(template (present) GprsTlli tlli,
+ template OCT1 tag) := {
+ pDU_BSSGP_RA_CAPABILITY_UPDATE := {
+ bssgpPduType := '08'O,
+ tLLI := ts_BSSGP_TLLI(tlli),
+ tag := tr_BSSGP_IE_Tag(tag)
+ }
+}
+
/* 10.3.4 */
template (value) PDU_BSSGP
@@ -1724,6 +1733,18 @@
mS_Radio_Access_Capability := ts_BSSGP_IE_MSRAcap_omit(racap)
}
}
+template (present) PDU_BSSGP
+tr_BSSGP_RA_CAP_UPD_ACK(template (present) GprsTlli tlli, template OCT1 tag, template (present) OCT1 cause,
+ template MSRadioAccessCapabilityV_BSSGP racap := omit) := {
+ pDU_BSSGP_RA_CAPABILITY_UPDATE_ACK := {
+ bssgpPduType := '09'O,
+ tLLI := ts_BSSGP_TLLI(tlli),
+ tag := tr_BSSGP_IE_Tag(tag),
+ iMSI := omit,
+ rA_Cap_UPDATE_CAUSE := tr_BSSGP_IE_RACU_Cause(cause),
+ mS_Radio_Access_Capability := tr_BSSGP_IE_MSRAcap(racap)
+ }
+}