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/.
Harald Welte gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/6228 bsc: reduce code duplication; add new test case on too short messages Change-Id: I8232ee58c14a4358a01b5428ff2b4e559491b185 --- M bsc/BSC_Tests.ttcn M library/L3_Templates.ttcn 2 files changed, 78 insertions(+), 45 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/28/6228/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 08a5510..dee41d2 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -38,6 +38,7 @@ import from Osmocom_CTRL_Adapter all; import from MobileL3_CommonIE_Types all; +import from MobileL3_Types all; import from L3_Templates all; import from GSM_RR_Types all; @@ -1423,22 +1424,24 @@ vc_conn.done; } -/* unsolicited ASSIGNMENT FAIL (without ASSIGN) from MS shouldn't bring BSC down */ -private function f_tc_unsol_ass_fail(charstring id) runs on MSC_ConnHdlr { +private function f_est_single_l3(template PDU_ML3_MS_NW l3) runs on MSC_ConnHdlr { var TestHdlrParams pars := valueof(t_def_TestHdlrPars); f_create_chan_and_exp(pars); /* we should now have a COMPL_L3 at the MSC */ BSSAP.receive(tr_BSSMAP_ComplL3); - f_rsl_send_l3(ts_RRM_AssignmentFailure('00'O)); - timer T := 5.0; + /* send the single message we want to send */ + f_rsl_send_l3(l3); +} + +private function f_bssap_expect_nothing(float sec := 5.00) runs on MSC_ConnHdlr { + timer T := sec; + var PDU_BSSAP bssap; T.start; alt { - [] BSSAP.receive(tr_BSSMAP_AssignmentFail) { - setverdict(fail, "Unexpeted BSSMAP Assignment Failure"); - } - [] BSSAP.receive(tr_BSSMAP_ClearRequest) { - setverdict(fail, "Unexpected BSSMAP Clear Requst"); + [] BSSAP.receive(PDU_BSSAP:?) -> value bssap { + setverdict(fail, "Unexpected BSSMAP ", bssap); + self.stop; } [] T.timeout { setverdict(pass); @@ -1446,6 +1449,11 @@ } } +/* unsolicited ASSIGNMENT FAIL (without ASSIGN) from MS shouldn't bring BSC down */ +private function f_tc_unsol_ass_fail(charstring id) runs on MSC_ConnHdlr { + f_est_single_l3(ts_RRM_AssignmentFailure('00'O)); + f_bssap_expect_nothing(); +} testcase TC_unsol_ass_fail() runs on test_CT { var MSC_ConnHdlr vc_conn; f_init(1, true); @@ -1457,25 +1465,8 @@ /* unsolicited ASSIGNMENT COMPLETE (without ASSIGN) from MS shouldn't bring BSC down */ private function f_tc_unsol_ass_compl(charstring id) runs on MSC_ConnHdlr { - var TestHdlrParams pars := valueof(t_def_TestHdlrPars); - f_create_chan_and_exp(pars); - /* we should now have a COMPL_L3 at the MSC */ - BSSAP.receive(tr_BSSMAP_ComplL3); - - f_rsl_send_l3(ts_RRM_AssignmentComplete('00'O)); - timer T := 5.0; - T.start; - alt { - [] BSSAP.receive(tr_BSSMAP_AssignmentComplete) { - setverdict(fail, "Unexpeted BSSMAP Assignment Complet"); - } - [] BSSAP.receive { - setverdict(fail, "Unexpected BSSAP"); - } - [] T.timeout { - setverdict(pass); - } - } + f_est_single_l3(ts_RRM_AssignmentComplete('00'O)); + f_bssap_expect_nothing(); } testcase TC_unsol_ass_compl() runs on test_CT { var MSC_ConnHdlr vc_conn; @@ -1488,29 +1479,34 @@ /* unsolicited HANDOVER FAIL (without ASSIGN) from MS shouldn't bring BSC down */ private function f_tc_unsol_ho_fail(charstring id) runs on MSC_ConnHdlr { - var TestHdlrParams pars := valueof(t_def_TestHdlrPars); - f_create_chan_and_exp(pars); - /* we should now have a COMPL_L3 at the MSC */ - BSSAP.receive(tr_BSSMAP_ComplL3); - - f_rsl_send_l3(ts_RRM_HandoverFailure('00'O)); - timer T := 5.0; - T.start; - alt { - [] BSSAP.receive { - setverdict(fail, "Unexpected BSSMAP"); - } - [] T.timeout { - setverdict(pass); - } - } + f_est_single_l3(ts_RRM_HandoverFailure('00'O)); + f_bssap_expect_nothing(); } - testcase TC_unsol_ho_fail() runs on test_CT { var MSC_ConnHdlr vc_conn; f_init(1, true); f_sleep(1.0); vc_conn := f_start_handler(refers(f_tc_unsol_ho_fail), testcasename()); + vc_conn.done; +} + + +/* short message from MS should be ignored */ +private function f_tc_err_82_short_msg(charstring id) runs on MSC_ConnHdlr { + var TestHdlrParams pars := valueof(t_def_TestHdlrPars); + f_create_chan_and_exp(pars); + /* we should now have a COMPL_L3 at the MSC */ + BSSAP.receive(tr_BSSMAP_ComplL3); + + /* send short message */ + RSL.send(ts_RSL_DATA_IND(g_chan_nr, valueof(ts_RslLinkID_DCCH(0)), ''O)); + f_bssap_expect_nothing(); +} +testcase TC_err_82_short_msg() runs on test_CT { + var MSC_ConnHdlr vc_conn; + f_init(1, true); + f_sleep(1.0); + vc_conn := f_start_handler(refers(f_tc_err_82_short_msg), testcasename()); vc_conn.done; } @@ -1582,6 +1578,7 @@ execute( TC_unsol_ass_fail() ); execute( TC_unsol_ass_compl() ); execute( TC_unsol_ho_fail() ); + execute( TC_err_82_short_msg() ); } } diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 948565d..47e1f62 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -349,6 +349,42 @@ } } +template (value) PDU_ML3_MS_NW ts_RRM_UL_REL(OCT1 cause) := { + discriminator := '0110'B, + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + rrm := { + uplinkRelease := { + messageType := '00001110'B, + rR_Cause := { + valuePart := cause + } + } + } + } +} + +template PDU_ML3_MS_NW tr_RRM_RR_STATUS(template OCT1 cause := ?) := { + discriminator := '0110'B, + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + rrm := { + rR_Status := { + messageType := '00010010'B, + rR_Cause := { + valuePart := cause + } + } + } + } +} + + + template PDU_ML3_MS_NW ts_ML3_MO := { discriminator := '0000'B, tiOrSkip := { -- To view, visit https://gerrit.osmocom.org/6228 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8232ee58c14a4358a01b5428ff2b4e559491b185 Gerrit-PatchSet: 1 Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Owner: Harald Welte <laforge at gnumonks.org>