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.orglaforge has submitted this change. ( 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, 299 insertions(+), 0 deletions(-) Approvals: laforge: Looks good to me, approved Jenkins Builder: Verified diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn index 26831d1..4f0f8b6 100644 --- a/gbproxy/GBProxy_Tests.ttcn +++ b/gbproxy/GBProxy_Tests.ttcn @@ -1038,6 +1038,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 @@ -1072,6 +1100,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 { @@ -1089,6 +1137,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 { @@ -1105,6 +1176,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 { @@ -1192,6 +1279,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 { @@ -1208,6 +1314,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 { @@ -1223,6 +1351,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 @@ -1297,6 +1441,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 @@ -1331,6 +1503,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 { @@ -1348,6 +1540,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 { @@ -1364,6 +1579,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 @@ -1428,6 +1659,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 { @@ -1444,6 +1694,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 { @@ -1459,6 +1731,21 @@ 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(); +} + private function f_TC_flush_ll(charstring id) runs on BSSGP_ConnHdlr { var BssgpBvci bvci := g_pars.pcu[0].cfg.bvc[0].bvci; var integer i; @@ -1506,26 +1793,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() ); execute( TC_flush_ll() ); -- 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: 4 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge at osmocom.org> Gerrit-Reviewer: pespin <pespin at sysmocom.de> Gerrit-MessageType: merged -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201125/84df2d00/attachment.htm>