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


Change subject: bsc: TC_assignment_emerg_setup_allow(_imei): Test full voice 
establishment
......................................................................

bsc: TC_assignment_emerg_setup_allow(_imei): Test full voice establishment

Extend tests to also test the data plane setup.

Related: OS#5849
Change-Id: I9f39f861398669a8eb1da242595de584725e5b83
---
M bsc/BSC_Tests.ttcn
1 file changed, 56 insertions(+), 42 deletions(-)



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

diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 45c319d..c0a64a9 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -9180,12 +9180,63 @@
        }
 }

+private function f_assignment_emerg_setup_voice()
+runs on MSC_ConnHdlr {
+       /* Go on with voice call assignment */
+       var template PDU_BSSAP exp_compl := f_gen_exp_compl();
+       var PDU_BSSAP ass_cmd := f_gen_ass_req();
+
+       /* Below speechOrDataIndicator and codecList are copied from an 
emergency call captured during tests.
+        * They seem a bit weird (AMR-WB, and the order differ between 
speechId_DataIndicator and the codecList), but
+        * seems a good idea to see how osmo-bsc reacts to this. */
+       ass_cmd.pdu.bssmap.assignmentRequest.channelType := {
+               elementIdentifier := '0B'O,     /* overwritten */
+               lengthIndicator := 0,           /* overwritten */
+               speechOrDataIndicator := '0001'B,       /* speech */
+               spare1_4 := '0000'B,
+               channelRateAndType := ChRate_TCHForH_Fpref,
+               speechId_DataIndicator := 'c2918105'O
+       };
+       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({
+               ts_CodecHR, ts_CodecAMR_WB, ts_CodecEFR, ts_CodecFR}));
+
+       f_rslem_dchan_queue_enable();
+
+       var ExpectCriteria mgcpcrit := {
+               connid := omit,
+               endpoint := omit,
+               transid := omit
+       };
+       f_create_mgcp_expect(mgcpcrit);
+
+       BSSAP.send(ass_cmd);
+
+       var AssignmentState st := valueof(ts_AssignmentStateInit);
+       st.voice_call := true;
+       st.is_assignment := false;
+       alt {
+       [] as_modify(st);
+       [] as_Media();
+       [st.modify_done] BSSAP.receive(exp_compl) {
+               setverdict(pass);
+               }
+       }
+
+       /* Voice call carries on ... */
+       f_sleep(2.0);
+}
+
 /* Test if the EMERGENCY SETUP gets passed on to the MSC via A when EMERGENCY
  * CALLS are permitted by the BSC config. */
 private function f_TC_assignment_emerg_setup_allow(charstring id) runs on 
MSC_ConnHdlr {

+       /* Make sure the CHAN RQD indicates an emergency call (0b101xxxxx). The 
difference is that osmo-bsc directly
+        * assigns a TCH lchan and establishing voice for the emergency call 
will use Mode Modify, not reassignment to
+        * another lchan. */
+       g_pars.ra := f_rnd_ra_emerg();
        f_assignment_emerg_setup();
        f_assignment_emerg_setup_exp_bssap();
+       f_assignment_emerg_setup_voice();

        setverdict(pass);
        f_perform_clear();
@@ -9197,6 +9248,10 @@
        var PDU_BSSAP emerg_setup_data_ind_bssap;
        timer T := 3.0;

+       /* Make sure the CHAN RQD indicates an emergency call (0b101xxxxx). The 
difference is that osmo-bsc directly
+        * assigns a TCH lchan and establishing voice for the emergency call 
will use Mode Modify, not reassignment to
+        * another lchan. */
+       g_pars.ra := f_rnd_ra_emerg();
        f_assignment_emerg_setup();

        T.start;
@@ -10488,48 +10543,7 @@
        BSSAP_LE.receive(BSSAP_LE_Conn_Prim:CONN_PRIM_DISC_IND);
        
BSSAP.receive(tr_BSSMAP_Perform_Location_Response(tr_BSSMAP_IE_LocationEstimate(gad_ell_point_unc_circle)));

-       /* Go on with voice call assignment */
-       var template PDU_BSSAP exp_compl := f_gen_exp_compl();
-       var PDU_BSSAP ass_cmd := f_gen_ass_req();
-
-       /* Below speechOrDataIndicator and codecList are copied from an 
emergency call captured during tests.
-        * They seem a bit weird (AMR-WB, and the order differ between 
speechId_DataIndicator and the codecList), but
-        * seems a good idea to see how osmo-bsc reacts to this. */
-       ass_cmd.pdu.bssmap.assignmentRequest.channelType := {
-               elementIdentifier := '0B'O,     /* overwritten */
-               lengthIndicator := 0,           /* overwritten */
-               speechOrDataIndicator := '0001'B,       /* speech */
-               spare1_4 := '0000'B,
-               channelRateAndType := ChRate_TCHForH_Fpref,
-               speechId_DataIndicator := 'c2918105'O
-       };
-       ass_cmd.pdu.bssmap.assignmentRequest.codecList := 
valueof(ts_BSSMAP_IE_CodecList({
-               ts_CodecHR, ts_CodecAMR_WB, ts_CodecEFR, ts_CodecFR}));
-
-       f_rslem_dchan_queue_enable();
-
-       var ExpectCriteria mgcpcrit := {
-               connid := omit,
-               endpoint := omit,
-               transid := omit
-       };
-       f_create_mgcp_expect(mgcpcrit);
-
-       BSSAP.send(ass_cmd);
-
-       var AssignmentState st := valueof(ts_AssignmentStateInit);
-       st.voice_call := true;
-       st.is_assignment := false;
-       alt {
-       [] as_modify(st);
-       [] as_Media();
-       [st.modify_done] BSSAP.receive(exp_compl) {
-               setverdict(pass);
-               }
-       }
-
-       /* Voice call carries on ... */
-       f_sleep(2.0);
+       f_assignment_emerg_setup_voice();

        setverdict(pass);
        f_perform_clear();

--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/30847
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: I9f39f861398669a8eb1da242595de584725e5b83
Gerrit-Change-Number: 30847
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <[email protected]>
Gerrit-MessageType: newchange

Reply via email to