Change in osmo-ttcn3-hacks[master]: gbproxy: Add paging for all situations of unknown identity

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Mon Nov 23 21:07:55 UTC 2020


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21308 )


Change subject: gbproxy: Add paging for all situations of unknown identity
......................................................................

gbproxy: Add paging for all situations of unknown identity

CS-PAGING and PS-PAGING for unknown RAC, LAC and BVCI on either PTP or SIG BVC.

Change-Id: I9874d54939daa28201b82139c9d8e3022432e621
---
M gbproxy/GBProxy_Tests.ttcn
1 file changed, 300 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/08/21308/1

diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 5e4555d..2ce85a4 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -1014,6 +1014,34 @@
 	}
 }
 
+/* send a PS-PAGING but don't expect it to show up on any PTP or SIG BVC */
+private function f_send_paging_ps_exp_no_bss(template (value) Paging_Field4 p4, integer sgsn_idx := 0,
+					      boolean use_sig := false)
+runs on BSSGP_ConnHdlr {
+	var template (present) PDU_BSSGP exp_rx;
+	exp_rx := f_send_paging_ps(p4, sgsn_idx, use_sig);
+	/* Expect paging to propagate to no BSS */
+	timer T := 2.0;
+	T.start;
+	alt {
+	[] any from PCU.receive(exp_rx) {
+		setverdict(fail, "Paging received on unexpected BVC");
+		}
+	[] any from PCU_SIG.receive(exp_rx) {
+		setverdict(fail, "Paging received on unexpected BVC");
+		}
+	[] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) {
+		setverdict(fail, "Different Paging received on PTP BVC");
+		}
+	[] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_PS:=?}) {
+		setverdict(fail, "Different Paging received on SIGNALING BVC");
+		}
+	[] T.timeout {
+		setverdict(pass);
+		}
+	}
+}
+
 private function f_TC_paging_ps_ptp_bss(charstring id) runs on BSSGP_ConnHdlr
 {
 	/* doesn't really make sense: Sending to a single BVCI means the message ends up
@@ -1048,6 +1076,26 @@
 	f_cleanup();
 }
 
+/* PS-PAGING on PTP-BVC for unknown Location Area */
+private function f_TC_paging_ps_ptp_lac_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	var GSM_Types.LocationAreaIdentification unknown_la := {
+		mcc_mnc := '567F99'H,
+		lac := 33333
+	};
+	/* as it's sent on the PTP BVC, we expect it to pass even for unknown LAC */
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0);
+}
+testcase TC_paging_ps_ptp_lac_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* PS-PAGING on PTP-BVC for Routeing Area */
 private function f_TC_paging_ps_ptp_rac(charstring id) runs on BSSGP_ConnHdlr
 {
@@ -1065,6 +1113,29 @@
 	f_cleanup();
 }
 
+/* PS-PAGING on PTP-BVC for unknown Routeing Area */
+private function f_TC_paging_ps_ptp_rac_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	var RoutingAreaIdentification unknown_ra := {
+		lai := {
+			mcc_mnc := '567F99'H,
+			lac := 33333
+		},
+		rac := 254
+	};
+	/* as it's sent on the PTP BVC, we expect it to pass even for unknown RAC */
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0);
+}
+testcase TC_paging_ps_ptp_rac_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* PS-PAGING on PTP-BVC for BVCI (one cell) */
 private function f_TC_paging_ps_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr
 {
@@ -1081,6 +1152,22 @@
 	f_cleanup();
 }
 
+/* PS-PAGING on PTP-BVC for unknown BVCI */
+private function f_TC_paging_ps_ptp_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	/* as it's sent on the PTP BVC, we expect it to pass even for unknown BVCI */
+	f_send_paging_ps_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0);
+}
+testcase TC_paging_ps_ptp_bvci_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_ps_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* altstep for expecting BSSGP PDU on signaling BVC of given pcu_idx + storing in 'roi' */
 private altstep as_paging_sig_pcu(integer pcu_idx, template (present) PDU_BSSGP exp_rx, inout ro_integer roi)
 runs on BSSGP_ConnHdlr {
@@ -1168,6 +1255,25 @@
 	f_cleanup();
 }
 
+/* PS-PAGING on SIG-BVC for unknown Location Area */
+private function f_TC_paging_ps_sig_lac_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	var GSM_Types.LocationAreaIdentification unknown_la := {
+		mcc_mnc := '567F99'H,
+		lac := 33333
+	};
+	f_send_paging_ps_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true);
+}
+testcase TC_paging_ps_sig_lac_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* PS-PAGING on SIG-BVC for Routeing Area */
 private function f_TC_paging_ps_sig_rac(charstring id) runs on BSSGP_ConnHdlr
 {
@@ -1184,6 +1290,28 @@
 	f_cleanup();
 }
 
+/* PS-PAGING on SIG-BVC for unknown Routeing Area */
+private function f_TC_paging_ps_sig_rac_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	var RoutingAreaIdentification unknown_ra := {
+		lai := {
+			mcc_mnc := '567F99'H,
+			lac := 33333
+		},
+		rac := 254
+	};
+	f_send_paging_ps_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true);
+}
+testcase TC_paging_ps_sig_rac_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* PS-PAGING on SIG-BVC for BVCI (one cell) */
 private function f_TC_paging_ps_sig_bvci(charstring id) runs on BSSGP_ConnHdlr
 {
@@ -1199,6 +1327,22 @@
 	f_cleanup();
 }
 
+/* PS-PAGING on SIG-BVC for unknown BVCI */
+private function f_TC_paging_ps_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	f_send_paging_ps_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true);
+}
+testcase TC_paging_ps_sig_bvci_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_ps_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
+
 
 /***********************************************************************
  * PAGING CS procedure
@@ -1273,6 +1417,34 @@
 	}
 }
 
+/* send a CS-PAGING but don't expect it to show up on any PTP or SIG BVC */
+private function f_send_paging_cs_exp_no_bss(template (value) Paging_Field4 p4, integer sgsn_idx := 0,
+					      boolean use_sig := false)
+runs on BSSGP_ConnHdlr {
+	var template (present) PDU_BSSGP exp_rx;
+	exp_rx := f_send_paging_cs(p4, sgsn_idx, use_sig);
+	/* Expect paging to propagate to no BSS */
+	timer T := 2.0;
+	T.start;
+	alt {
+	[] any from PCU.receive(exp_rx) {
+		setverdict(fail, "Paging received on unexpected BVC");
+		}
+	[] any from PCU_SIG.receive(exp_rx) {
+		setverdict(fail, "Paging received on unexpected BVC");
+		}
+	[] any from PCU.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) {
+		setverdict(fail, "Different Paging received on PTP BVC");
+		}
+	[] any from PCU_SIG.receive(PDU_BSSGP:{pDU_BSSGP_PAGING_CS:=?}) {
+		setverdict(fail, "Different Paging received on SIGNALING BVC");
+		}
+	[] T.timeout {
+		setverdict(pass);
+		}
+	}
+}
+
 private function f_TC_paging_cs_ptp_bss(charstring id) runs on BSSGP_ConnHdlr
 {
 	/* doesn't really make sense: Sending to a single BVCI means the message ends up
@@ -1307,6 +1479,26 @@
 	f_cleanup();
 }
 
+/* CS-PAGING on PTP-BVC for unknown Location Area */
+private function f_TC_paging_cs_ptp_lac_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	var GSM_Types.LocationAreaIdentification unknown_la := {
+		mcc_mnc := '567F99'H,
+		lac := 33333
+	};
+	/* as it's sent on the PTP BVC, we expect it to pass even for unknown LAC */
+	f_send_paging_cs_exp_one_bss(ts_BssgpP4LAC(unknown_la), 0, false, 0);
+}
+testcase TC_paging_cs_ptp_lac_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_lac_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* CS-PAGING on PTP-BVC for Routeing Area */
 private function f_TC_paging_cs_ptp_rac(charstring id) runs on BSSGP_ConnHdlr
 {
@@ -1324,6 +1516,29 @@
 	f_cleanup();
 }
 
+/* CS-PAGING on PTP-BVC for unknown Routeing Area */
+private function f_TC_paging_cs_ptp_rac_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	var RoutingAreaIdentification unknown_ra := {
+		lai := {
+			mcc_mnc := '567F99'H,
+			lac := 33333
+		},
+		rac := 254
+	};
+	/* as it's sent on the PTP BVC, we expect it to pass even for unknown RAC */
+	f_send_paging_cs_exp_one_bss(ts_BssgpP4RAC(unknown_ra), 0, false, 0);
+}
+testcase TC_paging_cs_ptp_rac_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_rac_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* CS-PAGING on PTP-BVC for BVCI (one cell) */
 private function f_TC_paging_cs_ptp_bvci(charstring id) runs on BSSGP_ConnHdlr
 {
@@ -1340,6 +1555,22 @@
 	f_cleanup();
 }
 
+/* CS-PAGING on PTP-BVC for unknown BVCI */
+private function f_TC_paging_cs_ptp_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	/* as it's sent on the PTP BVC, we expect it to pass even for unknown BVCI */
+	f_send_paging_cs_exp_one_bss(ts_BssgpP4Bvci(33333), 0, false, 0);
+}
+testcase TC_paging_cs_ptp_bvci_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_cs_ptp_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* send CS-PAGING on SIG BVC, expect it to arrive on given list of PCU indexes */
 private function f_send_paging_cs_exp_multi(template (value) Paging_Field4 p4, integer sgsn_idx := 0,
 					    ro_integer exp_on_pcu_idx) runs on BSSGP_ConnHdlr
@@ -1404,6 +1635,25 @@
 	f_cleanup();
 }
 
+/* CS-PAGING on SIG-BVC for unknown Location Area */
+private function f_TC_paging_cs_sig_lac_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	var GSM_Types.LocationAreaIdentification unknown_la := {
+		mcc_mnc := '567F99'H,
+		lac := 33333
+	};
+	f_send_paging_cs_exp_no_bss(ts_BssgpP4LAC(unknown_la), 0, true);
+}
+testcase TC_paging_cs_sig_lac_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_lac_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* CS-PAGING on SIG-BVC for Routeing Area */
 private function f_TC_paging_cs_sig_rac(charstring id) runs on BSSGP_ConnHdlr
 {
@@ -1420,6 +1670,28 @@
 	f_cleanup();
 }
 
+/* CS-PAGING on SIG-BVC for unknown Routeing Area */
+private function f_TC_paging_cs_sig_rac_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	var RoutingAreaIdentification unknown_ra := {
+		lai := {
+			mcc_mnc := '567F99'H,
+			lac := 33333
+		},
+		rac := 254
+	};
+	f_send_paging_cs_exp_no_bss(ts_BssgpP4RAC(unknown_ra), 0, true);
+}
+testcase TC_paging_cs_sig_rac_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_rac_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
 /* CS-PAGING on SIG-BVC for BVCI (one cell) */
 private function f_TC_paging_cs_sig_bvci(charstring id) runs on BSSGP_ConnHdlr
 {
@@ -1435,6 +1707,22 @@
 	f_cleanup();
 }
 
+/* CS-PAGING on SIG-BVC for unknown BVCI */
+private function f_TC_paging_cs_sig_bvci_unknown(charstring id) runs on BSSGP_ConnHdlr
+{
+	f_send_paging_cs_exp_no_bss(ts_BssgpP4Bvci(33333), 0, true);
+}
+testcase TC_paging_cs_sig_bvci_unknown() runs on test_CT {
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_paging_cs_sig_bvci_unknown), testcasename(), g_pcu, g_sgsn, 11);
+	vc_conn.done;
+
+	f_cleanup();
+}
+
+
 
 control {
 	execute( TC_BVC_bringup() );
@@ -1453,26 +1741,38 @@
 	/* PAGING-PS over PTP BVC */
 	execute( TC_paging_ps_ptp_bss() );
 	execute( TC_paging_ps_ptp_lac() );
+	execute( TC_paging_ps_ptp_lac_unknown() );
 	execute( TC_paging_ps_ptp_rac() );
+	execute( TC_paging_ps_ptp_rac_unknown() );
 	execute( TC_paging_ps_ptp_bvci() );
+	execute( TC_paging_ps_ptp_bvci_unknown() );
 
 	/* PAGING-PS over SIG BVC */
 	execute( TC_paging_ps_sig_bss() );
 	execute( TC_paging_ps_sig_lac() );
+	execute( TC_paging_ps_sig_lac_unknown() );
 	execute( TC_paging_ps_sig_rac() );
+	execute( TC_paging_ps_sig_rac_unknown() );
 	execute( TC_paging_ps_sig_bvci() );
+	execute( TC_paging_ps_sig_bvci_unknown() );
 
 	/* PAGING-CS over PTP BVC */
 	execute( TC_paging_cs_ptp_bss() );
 	execute( TC_paging_cs_ptp_lac() );
+	execute( TC_paging_cs_ptp_lac_unknown() );
 	execute( TC_paging_cs_ptp_rac() );
+	execute( TC_paging_cs_ptp_rac_unknown() );
 	execute( TC_paging_cs_ptp_bvci() );
+	execute( TC_paging_cs_ptp_bvci_unknown() );
 
 	/* PAGING-CS over SIG BVC */
 	execute( TC_paging_cs_sig_bss() );
 	execute( TC_paging_cs_sig_lac() );
+	execute( TC_paging_cs_sig_lac_unknown() );
 	execute( TC_paging_cs_sig_rac() );
+	execute( TC_paging_cs_sig_rac_unknown() );
 	execute( TC_paging_cs_sig_bvci() );
+	execute( TC_paging_cs_sig_bvci_unknown() );
 
 
 }

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/21308
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I9874d54939daa28201b82139c9d8e3022432e621
Gerrit-Change-Number: 21308
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201123/8778db12/attachment.htm>


More information about the gerrit-log mailing list