Project

General

Profile

Bug #5278 ยป 0001-osmo_dyn-as-sdcch8.patch

neels, 10/23/2021 09:22 PM

View differences:

bsc/BSC_Tests.ttcn
1672 1672
	return dt;
1673 1673
}
1674 1674

  
1675
function f_est_dchan_dyn(OCT1 ra, GsmFrameNumber fn, octetstring l3)
1676
runs on test_CT return DchanTuple {
1677
	var BSSAP_N_CONNECT_ind rx_c_ind;
1678
	var DchanTuple dt;
1679

  
1680
	/* Send CHAN RQD */
1681
	var RSL_Message rx_rsl;
1682
	f_ipa_tx(0, ts_RSL_CHAN_RQD(ra, fn));
1683

  
1684
	/* The dyn TS first deactivates PDCH */
1685
	rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX);
1686
	dt.rsl_chan_nr := rx_rsl.ies[0].body.chan_nr;
1687
	f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr));
1688

  
1689
	rx_rsl := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
1690
	dt.rsl_chan_nr := rx_rsl.ies[0].body.chan_nr;
1691

  
1692
	/* Now activates the signalling channel */
1693
	f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(dt.rsl_chan_nr, fn+10));
1694
	rx_rsl := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0));
1695

  
1696
	f_ipa_tx(0, ts_RSL_EST_IND(dt.rsl_chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
1697

  
1698
	BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
1699
	dt.sccp_conn_id := rx_c_ind.connectionId;
1700
	BSSAP.send(ts_BSSAP_CONNECT_res(dt.sccp_conn_id));
1701

  
1702
	return dt;
1703
}
1704

  
1675 1705
/* expect RF CAN REL from BTS, acknowledge it and clear the MSC side */
1676 1706
private function f_exp_chan_rel_and_clear(DchanTuple dt, integer bts_nr := 0) runs on test_CT {
1677 1707
	var RSL_Message rx_rsl;
......
10287 10317
	f_shutdown_helper();
10288 10318
}
10289 10319

  
10320
testcase TC_osmo_dyn_as_sdcch() runs on test_CT {
10321
	var ASP_RSL_Unitdata rsl_ud;
10322
	var integer i;
10323
	var integer chreq_total, chreq_nochan;
10324

  
10325
	f_init_vty();
10326
	f_ts_set_chcomb(0, 0, 2, "TCH/F_TCH/H_PDCH");
10327
	f_ts_set_chcomb(0, 0, 3, "TCH/F_TCH/H_PDCH");
10328
	f_ts_set_chcomb(0, 0, 4, "TCH/F_TCH/H_PDCH");
10329
	f_vty_transceive(BSCVTY, "drop bts connection 0 oml");
10330
	/* Now we have 1 TCH/F, 3 OSMO_DYN, 1 TCH/H */
10331

  
10332
	f_init(1);
10333

  
10334
	/* The dyn TS want to activate PDCH mode, ACK that. */
10335
	var RslChannelNr chan_nr;
10336
	chan_nr := valueof(t_RslChanNr_PDCH(2));
10337
	f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
10338
	f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2342));
10339
	chan_nr := valueof(t_RslChanNr_PDCH(3));
10340
	f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
10341
	f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2342));
10342
	chan_nr := valueof(t_RslChanNr_PDCH(4));
10343
	f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
10344
	f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2342));
10345

  
10346
	f_sleep(1.0);
10347

  
10348
	log(f_vty_transceive_ret(BSCVTY, "show lchan summary"));
10349

  
10350
	/* Exhaust all dedicated SDCCH lchans.
10351
	/* GSM 44.018 Table 9.1.8.2:
10352
	 * RA = '13'O -> Establishment cause = 0001xxxx (MS dual rate capable and asks for "SDCCH").
10353
	 */
10354
	for (i := 0; i < NUM_SDCCH_PER_BTS; i := i+1) {
10355
		f_est_dchan('13'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O);
10356
	}
10357

  
10358
	log(f_vty_transceive_ret(BSCVTY, "show lchan summary"));
10359

  
10360
	/* Three dyn TS as well as one static TCH/F and one TCH/H timeslot are available.
10361
	 * The first dyn TS gets converted to SDCCH8 */
10362
	f_est_dchan_dyn('33'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O);
10363
	log("XXX2", f_vty_transceive_ret(BSCVTY, "show lchan summary"));
10364
	/* Also occupy the seven other SDCCH of the dyn TS */
10365
	for (i := 0; i < 7; i := i+1) {
10366
		f_est_dchan('33'O, NUM_SDCCH_PER_BTS + i, '00010203040506'O);
10367
	log("XXX2.", i, ": ", f_vty_transceive_ret(BSCVTY, "show lchan summary"));
10368
	}
10369

  
10370
	/* clean up config */
10371
	f_ts_set_chcomb(0, 0, 2, "TCH/F");
10372
	f_ts_set_chcomb(0, 0, 3, "TCH/F");
10373
	f_ts_set_chcomb(0, 0, 4, "TCH/F");
10374

  
10375
	f_shutdown_helper();
10376
}
10377

  
10290 10378
control {
10291 10379
	/* CTRL interface testing */
10292 10380
	execute( TC_ctrl_msc_connection_status() );
......
10595 10683

  
10596 10684
	execute( TC_ctrl_trx_rf_locked() );
10597 10685

  
10686
	execute( TC_osmo_dyn_as_sdcch() );
10687

  
10598 10688
	execute( TC_lost_sdcch_during_assignment() );
10599 10689
}
10600 10690

  
    (1-1/1)
    Add picture from clipboard (Maximum size: 48.8 MB)