FreeCalypso > hg > fc-tourmaline
diff src/g23m-gsm/alr2/alr_test/alr_steps.cpp @ 2:3a14ee9a9843
src/g23m-gsm: same alr2 & alr3 structure as in Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:29:12 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/g23m-gsm/alr2/alr_test/alr_steps.cpp Fri Oct 16 06:29:12 2020 +0000 @@ -0,0 +1,2311 @@ +/* + +------------------------------------------------------------------------------ + | File: alr_steps.cpp + +------------------------------------------------------------------------------ + | Copyright 2003 Texas Instruments + | All rights reserved. + | + | This file is confidential and a trade secret of Texas Instruments. + | The receipt of or possession of this file does not convey + | any rights to reproduce or disclose its contents or to + | manufacture, use, or sell anything it may describe, in + | whole, or in part, without the specific written consent of + | Texas Instruments. + +------------------------------------------------------------------------------ + | Purpose: Contains test steps for alr + | + +------------------------------------------------------------------------------ +*/ +#include "alr_constraints.h" +#include "alr_steps.h" + + + +/*------------------------Following is for ALR000------------------------------- + * + * Description: The ALR is configured. + *-------------------------------------------------------------------------------*/ + +T_STEP filter_and_routings_gsm_900__alr000() +{ + BEGIN_STEP ("filter_and_routings_gsm_900__alr000") + { + COMMAND("TAP REDIRECT CLEAR"); + COMMAND("PL REDIRECT CLEAR"); + COMMAND("PL REDIRECT RR TAP"); + COMMAND("PL REDIRECT DL TAP"); + COMMAND("PL REDIRECT L1 TAP"); + COMMAND("TAP REDIRECT TAP PL"); + COMMAND("PL CONFIG STD=1"); +#ifdef GPRS + COMMAND("PL REDIRECT GRR TAP"); +#endif // GPRS + SEND ( em_l1_event_req_2() ); + //COMMAND("TAP PARKING "); + + } +} + +/*------------------------Following is for ALR001------------------------------- + * + * Description: RR starts a cell selection with power measurements with interruption. + * Four channels in the + * order 23, 14, 124, 1 have acceptable fieldstrength values. + *--------------------------------------------------------------------------------*/ + +T_STEP initiation_by_rr_4_channels_available_alr001() +{ + BEGIN_STEP ("initiation_by_rr_4_channels_available_alr001") + { + filter_and_routings_gsm_900__alr000(); + + SEND ( mph_power_req_1() ); + AWAIT ( mphc_init_l1_req_1() ); + SEND ( mphc_init_l1_con_1() ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mph_power_cnf_1() ); + } +} + +/*------------------------Following is for ALR002------------------------------- + * + * Description: RR starts a cell selection with power measurements with interruption. + * Eight channels in the + * order 23, 637, 14, 580, 124, 885, 1, 512 have acceptable fieldstrength values. + *--------------------------------------------------------------------------------*/ + +T_STEP initiation_by_rr_8_channels_available_alr002() +{ + BEGIN_STEP ("initiation_by_rr_4_channels_available_alr001") + { + filter_and_routings_dualband_gsm_900_dcs_1800__alr600(); + + SEND ( mph_power_req_4() ); + AWAIT ( mphc_init_l1_req_4() ); + SEND ( mphc_init_l1_con_1() ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mph_power_cnf_5() ); + } +} + +/*------------------------Following is for ALR1018------------------------------- + * + * Description:RR configured for idle mode and recieves measurements + * for the neighbouring cells and serving cell + * + *-------------------------------------------------------------------------------*/ + +T_STEP configuring_ms_for_idle_mode_and_meas() +{ + BEGIN_STEP ("configuring_ms_for_idle_mode_and_meas") + { + SEND ( mph_classmark_req_3() ); + SEND ( mph_idle_req_10() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_10() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_identity_req_1() ); + SEND ( mph_cbch_req_1() ); + SEND ( mph_neighbourcell_req_7A('A') ); + AWAIT ( mphc_rxlev_periodic_req_21() ); + SEND ( mphc_rxlev_periodic_ind_9A(50,40) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_512) ); + SEND ( mphc_ncell_sync_ind(ARFCN_512,FN_OFF_ARFCN_512,TIME_ALIGNMT_512,BSIC_10)); + AWAIT ( mphc_ncell_bcch_req(ARFCN_512,FN_OFF_ARFCN_512,TIME_ALIGNMT_512,BSIC_10)); + SEND ( mphc_rxlev_periodic_ind_9A(50,40) ); + SEND ( mph_meas_rep_req(NC_START_MEAS) ); + SEND ( mphc_rxlev_periodic_ind_9A(40,30) ); + MUTE (10); + SEND ( mphc_rxlev_periodic_ind_9A(50,40) ); + AWAIT ( mph_measurement_ind_36() ); + MUTE (10); + SEND ( mphc_rxlev_periodic_ind_9A(40,30) ); + MUTE (10); + SEND ( mph_meas_rep_req(NC_REPORT_MEAS) ); + AWAIT ( mph_measurement_ind_36() ); + AWAIT ( mph_meas_rep_cnf_sc() ); + SEND ( mph_meas_rep_req(NC_STOP_MEAS) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_512) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_512)); + SEND ( mph_meas_rep_req(NC_START_MEAS) ); + SEND ( mphc_rxlev_periodic_ind_9A(40,30) ); + SEND ( mphc_rxlev_periodic_ind_9A(50,40) ); + AWAIT ( mph_measurement_ind_36() ); + SEND ( mphc_rxlev_periodic_ind_9A(40,30) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_512) ); + SEND ( mph_meas_rep_req(NC_REPORT_MEAS) ); + AWAIT ( mph_meas_rep_cnf_sc_n1() ); + } +} + +/*------------------------Following is for ALR003------------------------------- + * + * Description: The carrier with the highest fieldstrength (channel 23) is selected + * for synchronizing to frequency correction burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_first_channel_alr003() +{ + BEGIN_STEP ("find_bcch_carrier_first_channel_alr003") + { + + SEND ( mph_bsic_req(ARFCN_23_STD_900) ); + AWAIT ( mphc_network_sync_req(ARFCN_23, SM_WIDE_MODE) ); + SEND ( mphc_network_sync_ind_1() ); + AWAIT ( mph_bsic_cnf_1() ); + AWAIT ( mphc_new_scell_req_1() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + } +} + +/*------------------------Following is for ALR004------------------------------- + * + * Description: The carrier with the highest fieldstrength (channel 23) is selected for synchronizing to + * frequency correction burst and synchron burst. The attempt failed. A second request is + * started for the next strongest channel (channel 14). + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_first_channel_failed_then_second_channel_alr004() +{ + BEGIN_STEP ("find_bcch_carrier_first_channel_failed_then_second_channel_alr004") + { + SEND ( mph_bsic_req(ARFCN_23_STD_900) ); + AWAIT ( mphc_network_sync_req(ARFCN_23, SM_WIDE_MODE) ); + SEND ( mphc_network_sync_ind_failed(ARFCN_23) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_23_STD_900) ); + SEND ( mph_bsic_req(ARFCN_14_STD_900) ); + AWAIT ( mphc_network_sync_req(ARFCN_14, SM_WIDE_MODE) ); + } +} + + + +/*------------------------Following is for ALR006------------------------------- + * + * Description: The next best channel (channel 14) is selected for synchronizing to frequency correction + * burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_second_channel_alr006() +{ + BEGIN_STEP ("find_bcch_carrier_second_channel_alr006") + { + SEND ( mphc_network_sync_ind_6() ); + AWAIT ( mph_bsic_cnf_6() ); + AWAIT ( mphc_new_scell_req_2() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + } +} + + + +/*------------------------Following is for ALR007------------------------------- + * + * Description: The BCCH data blocks are read for the channel 23. + *-------------------------------------------------------------------------------*/ + +T_STEP read_bcch_data_alr007() +{ + BEGIN_STEP ("read_bcch_data_alr007") + { + SEND ( mphc_data_ind_1() ); + AWAIT ( mph_unitdata_ind_si1(ARFCN_23) ); + SEND ( mphc_data_ind_2() ); + AWAIT ( mph_unitdata_ind_si2(ARFCN_23) ); + SEND ( mphc_data_ind_3() ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_23) ); + SEND ( mphc_data_ind_4() ); + AWAIT ( mph_unitdata_ind_si4(ARFCN_23) ); + } +} + + +/*------------------------Following is for ALR009------------------------------- + * + * Description: RR rejects the BCCH carrier. The next best channel (channel 124) is selected for + * synchronizing to frequency correction burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP rr_rejects_bcch_carrier_try_third_channel_alr009() +{ + BEGIN_STEP ("rr_rejects_bcch_carrier_try_third_channel_alr009") + { + SEND ( mph_bsic_req(ARFCN_124_STD_900) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_network_sync_req(ARFCN_124, SM_NARROW_MODE) ); + SEND ( mphc_network_sync_ind_7() ); + AWAIT ( mph_bsic_cnf_7() ); + AWAIT ( mphc_new_scell_req_3() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mphc_data_ind_6() ); + AWAIT ( mph_unitdata_ind_si1(ARFCN_124) ); + } +} + + + +/*------------------------Following is for ALR010------------------------------- + * + * Description: RR rejects the BCCH carrier. The next best channel (channel 1) is selected for synchronising + * to frequency correction burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP rr_rejects_bcch_carrier_try_fourth_channel_alr010() +{ + BEGIN_STEP ("rr_rejects_bcch_carrier_try_fourth_channel_alr010") + { + SEND ( mph_bsic_req(ARFCN_1_STD_900) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_network_sync_req(ARFCN_1, SM_NARROW_MODE) ); + SEND ( mphc_network_sync_ind_8() ); + AWAIT ( mph_bsic_cnf_8() ); + AWAIT ( mphc_new_scell_req_4() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mphc_data_ind_7() ); + AWAIT ( mph_unitdata_ind_si1(ARFCN_1) ); + } +} + + + +/*------------------------Following is for ALR012------------------------------- + * + * Description: RR selects the channel 14 after reading the BCCH carrier. + * Variant A: with neighbourcell list + * Variant B: with empty neighbour cell list + * Variant C: like A, but non-combined CCCH + *-------------------------------------------------------------------------------*/ + +T_STEP rr_select_second_channel_alr012(CHAR variant) +{ + BEGIN_STEP ("rr_select_second_channel_alr012") + { + SEND ( mph_classmark_req_1() ); + SEND ( mph_idle_req_1(variant) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + SEND ( mphc_stop_scell_bcch_con() ); + AWAIT ( mphc_start_ccch_req_1(variant) ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_identity_req_1() ); + SEND ( mph_cbch_req_1() ); + SEND ( mph_neighbourcell_req_1(variant) ); + AWAIT ( mphc_rxlev_periodic_req_1(variant) ); + } +} + + + +/*------------------------Following is for ALR013------------------------------- + * + * Description: RR selects the channel 23 after reading the BCCH carrier. + *-------------------------------------------------------------------------------*/ + +T_STEP rr_select_first_channel_alr013() +{ + BEGIN_STEP ("rr_select_first_channel_alr013") + { + SEND ( mph_classmark_req_1() ); + SEND ( mph_idle_req_2() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_2() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_identity_req_1() ); + SEND ( mph_cbch_req_1() ); + SEND ( mph_neighbourcell_req_2() ); + AWAIT ( mphc_rxlev_periodic_req_2() ); + } +} + + +T_STEP generating_six_sync_failures() +{ + BEGIN_STEP ("rr_select_first_channel_alr013") + { + /* 1st Sync Failure */ + + SEND ( mph_bsic_req(ARFCN_124_STD_900) ); + AWAIT(mphc_stop_scell_bcch_req() ); + AWAIT (mphc_network_sync_req(ARFCN_124, SM_NARROW_MODE)); + SEND ( mphc_network_sync_ind_failed(ARFCN_124) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_124_STD_900) ); + + /* 2nd Sync Failure */ + + SEND ( mph_bsic_req(ARFCN_23_STD_900) ); + AWAIT (mphc_network_sync_req(ARFCN_23, SM_NARROW_MODE)); + SEND ( mphc_network_sync_ind_failed(ARFCN_23) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_23_STD_900) ); + + /* 3rd Sync Failure */ + + SEND ( mph_bsic_req(ARFCN_124_STD_900) ); + AWAIT (mphc_network_sync_req(ARFCN_124, SM_NARROW_MODE)); + SEND ( mphc_network_sync_ind_failed(ARFCN_124) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_124_STD_900) ); + + /* 4th Sync Failure */ + + SEND ( mph_bsic_req(ARFCN_23_STD_900) ); + AWAIT (mphc_network_sync_req(ARFCN_23, SM_NARROW_MODE)); + SEND ( mphc_network_sync_ind_failed(ARFCN_23) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_23_STD_900) ); + + /* 5th Sync Failure */ + + SEND ( mph_bsic_req(ARFCN_124_STD_900) ); + AWAIT (mphc_network_sync_req(ARFCN_124, SM_NARROW_MODE)); + SEND ( mphc_network_sync_ind_failed(ARFCN_124) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_124_STD_900) ); + + /* 6th Sync Failure */ + + SEND ( mph_bsic_req(ARFCN_23_STD_900) ); + AWAIT (mphc_network_sync_req(ARFCN_23, SM_NARROW_MODE)); + SEND ( mphc_network_sync_ind_failed(ARFCN_23) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_23_STD_900) ); + } +} + + +T_STEP sending_error_data_in_sacch() +{ + BEGIN_STEP ("sending_error_data_in_sacch") + { + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + SEND (mphc_data_ind_sacch_error() ); + } +} + +/*-------------------------------------------------------------------------------- + * + * Description: RR selects the channel 23 after reading the BCCH carrier. + *-------------------------------------------------------------------------------*/ + +T_STEP rr_select_first_channel_alr013_gprs() +{ + BEGIN_STEP ("rr_select_first_channel_alr013_gprs") + { + SEND ( mph_classmark_req_1() ); + SEND ( mph_idle_req_1g() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_2() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_identity_req_1() ); + SEND ( mph_cbch_req_1() ); + SEND ( mph_neighbourcell_req_2() ); + AWAIT ( mphc_rxlev_periodic_req_2() ); + } +} +/*------------------------------------------------------------------------------- + * + * Description: RR selects the channel 23 after reading the BCCH carrier. + * This is a cell with PBCCH. + *-------------------------------------------------------------------------------*/ + +T_STEP rr_select_first_channel_gprs_pbcch(T_VAR_NMO var) +{ + BEGIN_STEP ("rr_select_first_channel_alr013_gprs") + { + SEND ( mph_classmark_req_1() ); + SEND ( mph_idle_req_4g() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + SEND ( mphc_stop_scell_bcch_con() ); + SEND ( mph_identity_req_1() ); +#if defined GPRS + SEND ( mph_mon_ctrl_req(ENTER_PIM_PBCCH) ); + if(var == VAR_NMO_3) { + SEND ( mph_mon_ctrl_req(START_MON_CCCH) ); + AWAIT ( mphc_start_ccch_req_8() ); + } +#else + AWAIT ( mphc_start_ccch_req_11('A') ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mphc_data_ind_24('J') ); // paging for an unknown TMSI to change page mode + AWAIT ( mphc_start_ccch_req_8() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + SEND ( mph_neighbourcell_req_8() ); + AWAIT ( mphc_rxlev_periodic_req_8() ); +#endif + } +} +/*------------------------Following is for ALR020------------------------------- + * + * Description: The idle mode is configured by RR. Layer 1 is configured with MPHC_START_CCCH_REQ. + *-------------------------------------------------------------------------------*/ + +T_STEP initiation_with_paging_reorganisation_alr020(CHAR variant) +{ + BEGIN_STEP ("initiation_with_paging_reorganisation_alr020") + { + SEND ( mph_idle_req_3(variant) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_3(variant) ); + AWAIT ( mphc_scell_nbcch_req_full() ); + } +} + + + +/*------------------------Following is for ALR022------------------------------- + * + * Description: The idle mode is configured with Paging Reorganisation. After reception of a new paging + * mode this information is forwarded to PL. The message contain the following page modi: + * Variant A: Extended Paging + * Variant B: Paging Reorganisation + * Variant C: Same as before + * No reaction is expected. + *-------------------------------------------------------------------------------*/ + +T_STEP page_mode_change_paging_reorganisation_alr022(CHAR variant) +{ + BEGIN_STEP ("page_mode_change_paging_reorganisation_alr022") + { + SEND ( mphc_data_ind_8(variant) ); + if ( variant == 'A' ) + { + SEND ( mphc_data_ind_9() ); + AWAIT ( mphc_start_ccch_req(BS_PA_MFRMS_7, BS_AG_BLKS_RES_2, COMB_CCCH_COMB, CCCH_GROUP_0, PG_23, PBI_0, PGM_EXTENDED ) ); + } + else + { + MUTE (3000); + } + } +} + + + +/*------------------------Following is for ALR025------------------------------- + * + * Description: The idle mode has been configured for normal paging. After a swap to Paging + * Reorganisation RR re-configures normal paging. + *-------------------------------------------------------------------------------*/ + +T_STEP page_mode_change_back_to_normal_paging_alr025() +{ + BEGIN_STEP ("page_mode_change_back_to_normal_paging_alr025") + { + SEND ( mphc_data_ind_11() ); + AWAIT ( mphc_start_ccch_req_6() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + } +} + + + +/*------------------------Following is for ALR026------------------------------- + * + * Description: The idle mode is configured with Normal Paging. The messages contain the following page + * modi: + * Variant A: Normal Paging + * Variant B: Same as before. + * No reaction is exspected. + *-------------------------------------------------------------------------------*/ + +T_STEP page_mode_change_normal_paging_alr026(CHAR variant) +{ + BEGIN_STEP ("page_mode_change_normal_paging_alr026") + { + SEND ( mphc_data_ind_12(variant) ); + MUTE (3000); + } +} + + + +/*------------------------Following is for ALR027------------------------------- + * + * Description: The idle mode has been configured for normal paging. + * After a swap to Extended Paging this mode is configured a second time. + * Layer 1 does not need to be configured the second time, because + * itīs a continues process in ALR(MPHC). + * Variant A: Extended Paging + * Variant B: Same as before + *-------------------------------------------------------------------------------*/ + +T_STEP page_mode_change_extended_paging_a_second_time_alr027(CHAR variant) +{ + BEGIN_STEP ("page_mode_change_extended_paging_a_second_time_alr027") + { + SEND ( mphc_data_ind_9() ); + AWAIT ( mphc_start_ccch_req_4() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + SEND ( mphc_data_ind_13(variant) ); + MUTE (3000); + } +} + + + +/*------------------------Following is for ALR030------------------------------- + * + * Description: The idle mode is configured for different multiframe periods. + * Variant A: bs_pa_mfrms = 2 + * Variant B: bs_pa_mfrms = 3 + * Variant C: bs_pa_mfrms = 4 + * Variant D: bs_pa_mfrms = 5 + * Variant E: bs_pa_mfrms = 6 + * Variant F: bs_pa_mfrms = 7 + * Variant G: bs_pa_mfrms = 8 + * Variant H: bs_pa_mfrms = 9 + *-------------------------------------------------------------------------------*/ + +T_STEP measurement_reporting_configuration_alr030(CHAR variant) +{ + BEGIN_STEP ("measurement_reporting_configuration_alr030") + { + SEND ( mph_idle_req_4(variant) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_7(variant) ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_neighbourcell_req_3() ); + AWAIT ( mphc_rxlev_periodic_req_3() ); + } +} + + +/*------------------------Following is for ALR9806-------------------------------*/ + +T_STEP measurement_reporting_configuration_alr9806() +{ + BEGIN_STEP ("measurement_reporting_configuration_alr9806") + { + SEND ( mph_idle_req_3('B') ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_14() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_neighbourcell_req_3() ); + AWAIT ( mphc_rxlev_periodic_req_3() ); + + /* After Cell Reselection configuring the + * PL with the newly found cell + */ + SEND ( mph_idle_req_resel() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_stop_ccch_req() ); + AWAIT ( mphc_stop_rxlev_periodic_req() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_new_scell_req_1 ); + + /* After receiving the SI3 configuring the + * PL with the Paging Group. + */ + SEND ( mph_idle_req_cell_sel() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_14() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + AWAIT ( mphc_rxlev_periodic_req_18() ); + } +} + + + +T_STEP measurement_reporting_configuration_nwctrl(CHAR variant) +{ + BEGIN_STEP ("measurement_reporting_configuration_nwctrl") + { + SEND ( mph_idle_req_4(variant) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_7(variant) ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_neighbourcell_req_2() ); + AWAIT ( mphc_rxlev_periodic_req_2() ); + SEND ( mphc_rxlev_periodic_ind_9(50,40,30,20) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_1) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_14) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_124) ); + SEND ( mphc_ncell_sync_ind(ARFCN_1,FN_OFF_ARFCN_1,TIME_ALIGNMT_1,BSIC_16)); + SEND ( mphc_ncell_sync_ind(ARFCN_14,FN_OFF_ARFCN_14,TIME_ALIGNMT_14,BSIC_16)); + SEND ( mphc_ncell_sync_ind(ARFCN_124,FN_OFF_ARFCN_124,TIME_ALIGNMT_124,BSIC_1)); + AWAIT ( mphc_ncell_bcch_req(ARFCN_1,FN_OFF_ARFCN_1,TIME_ALIGNMT_1,BSIC_16)); + AWAIT ( mphc_ncell_bcch_req(ARFCN_14,FN_OFF_ARFCN_14,TIME_ALIGNMT_14,BSIC_16)); + AWAIT ( mphc_ncell_bcch_req(ARFCN_124,FN_OFF_ARFCN_124,TIME_ALIGNMT_124,BSIC_1)); + SEND ( mphc_rxlev_periodic_ind_9(50,40,30,20) ); + MUTE(500); + } +} + +/*------------------------Following is for ALR046------------------------------- + * + * Description: RR selects the channel 23 after reading the BCCH carrier. + * Variant A: with neighbourcell list (serving cell not included) + * Variant B: with neighbourcell list (serving cell included) + * Variant C: with empty neighbour cell list. + * Variant D: same like A, but with ncc_permitted = 4 + *-------------------------------------------------------------------------------*/ + +T_STEP definition_of_bcch_allocation_alr046(CHAR variant) +{ + BEGIN_STEP ("definition_of_bcch_allocation_alr046") + { + SEND ( mph_classmark_req_1() ); + SEND ( mph_idle_req_5(variant) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_9() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_identity_req_1() ); + SEND ( mph_cbch_req_1() ); + SEND ( mph_neighbourcell_req_4(variant) ); + AWAIT ( mphc_rxlev_periodic_req_4(variant) ); + } +} + +/*------------------------Following is for ALR055------------------------------- + * + * Description: RR starts the sending of channel request messages. Idle mode is stopped and the access + * mode is started. There is one retransmission configured. + *-------------------------------------------------------------------------------*/ + +T_STEP start_of_sending_channel_request_messages_gsm_900__alr055() +{ + BEGIN_STEP ("start_of_sending_channel_request_messages_gsm_900__alr055") + { + SEND ( mph_random_access_req_1() ); + AWAIT ( mphc_stop_rxlev_periodic_req() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + AWAIT ( mphc_ra_req_1() ); + SEND ( mphc_ra_con_1() ); + AWAIT ( mph_random_access_cnf_1() ); + AWAIT ( mphc_ra_req_2() ); + } +} + + + +/*------------------------Following is for ALR056------------------------------- + * + * Description: An immediate assignment for the mobile station receives. Configuration of the dedicated + * mode is processed by RR. This stops the access link mode. + *-------------------------------------------------------------------------------*/ + +T_STEP immediate_assignment_for_the_mobile_station_alr056() +{ + BEGIN_STEP ("immediate_assignment_for_the_mobile_station_alr056") + { + SEND ( mphc_data_ind_20() ); + AWAIT ( mph_unitdata_ind_10() ); + SEND ( mph_dedicated_req_1() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_stop_ccch_req() ); + AWAIT ( mphc_stop_ra_req_1() ); + AWAIT ( mphc_immed_assign_req_1() ); + SEND ( mphc_immed_assign_con_1() ); + AWAIT ( mph_dedicated_cnf_1(DEDI_RES_OK) ); + } +} + + + +/*------------------------Following is for ALR062------------------------------- + * + * Description: The extended measurement procedure according GSM 05.08, section 10.1.5 is started. + * + *-------------------------------------------------------------------------------*/ + +T_STEP extended_measurement_reporting_start_procedure_alr062() +{ + BEGIN_STEP ("extended_measurement_reporting_start_procedure_alr062") + { + SEND ( mph_ext_meas_req_1() ); + AWAIT ( mphc_init_l1_req_2() ); + SEND ( mphc_init_l1_con_1() ); + AWAIT ( mphc_rxlev_req() ); + } +} + + + +/*------------------------Following is for ALR063------------------------------- + * + * Description: The extended measurement procedure passes the step of the power measurement. + * + *-------------------------------------------------------------------------------*/ + +T_STEP extended_measurement_reporting_successful_power_measurement_alr063() +{ + BEGIN_STEP ("extended_measurement_reporting_successful_power_measurement_alr063") + { + SEND ( mphc_rxlev_ind(RXLEV_IDX_7) ); + + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_7) ); + + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_7) ); + + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_7) ); + + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_7) ); + + AWAIT ( mph_ext_meas_cnf_1() ); + SEND ( mph_bsic_req(CONST_1023) ); + AWAIT ( mphc_ncell_sync_req_initial(CONST_1023) ); + + /*if page mode = REORG, L1 would not react, + therefore page mode NORMAL is configured and + BCCH reading is reduced*/ + stop_page_mode_reorg_before_hplnm_search_procedure(); + } +} + + + +/*------------------------Following is for ALR071------------------------------- + * + * Description: The MS is in idle mode. It receives a paging message corresponding + * to the actual IMSI or TMSI. A paging indication is forwarded to RR. + * Variant A: IMSI mobile identity 1, any channel needed + * Variant B: IMSI mobile identity 2, any channel needed + * Variant C: TMSI mobile identity 1, TCH/F channel needed + * Variant D: TMSI mobile identity 2, TCH/F channel needed + * Variant E: IMSI mobile identity 1, SDCCH channel needed + * Variant F: IMSI mobile identity 2, SDCCH channel needed + * Variant G: TMSI mobile identity 1, Dual Rate channel needed + * Variant H: TMSI mobile identity 2, Dual Rate channel needed + *-------------------------------------------------------------------------------*/ + +T_STEP paging_req_1_imsi_tmsi_for_ms_alr071(CHAR variant) +{ + BEGIN_STEP ("paging_req_1_imsi_tmsi_for_ms_alr071") + { + SEND ( mphc_data_ind_24(variant) ); + AWAIT ( mph_paging_ind_1(variant) ); + AWAIT ( mphc_start_ccch_req_8() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + } +} + + + +/*------------------------Following is for ALR072------------------------------- + * + * Description: The MS is in idle mode. It receives paging request type 1 messages. + * The message content is not forwarded to RR, because the message + * content doesnīt match to the MS identities. + * Variant A: wrong IMSI mobile identity 1 + * Variant B: wrong TMSI mobile identity 1 + * Variant C: wrong IMSI mobile identity 2 + * Variant D: wrong TMSI mobile identity 2 + * Variant E: wrong type mobile identity 2 + *-------------------------------------------------------------------------------*/ + +T_STEP paging_req_1_not_for_ms_alr072(CHAR variant) +{ + BEGIN_STEP ("paging_req_1_not_for_ms_alr072") + { + SEND ( mphc_data_ind_25(variant) ); + } +} + + + +/*------------------------Following is for ALR073------------------------------- + * + * Description: The MS is in idle mode. It receives a paging message corresponding to the + * actual IMSI or TMSI. A paging indication is forwarded to RR. + * The IMSI is less than 15 digits and the TMSI has only one valid byte, + * but is signalled in different ways by the infrastructure + * Variant A: Short TMSI mobile identity 1, any channel needed, 1 byte length from the network + * Variant B: Short TMSI mobile identity 2, TCH/F needed, 3 bytes length from the network + * Variant C: Short IMSI mobile identity 1, SDCCH needed, 10 digits + * Variant D: Short IMSI mobile identity 2, Dual Rate needed, 10 digits + * Variant E: Short TMSI mobile identity 1, any channel needed, 2 bytes length from the network + * Variant F: Short TMSI mobile identity 2, TCH/F needed, 4 bytes length from the network + *-------------------------------------------------------------------------------*/ + +T_STEP paging_req_1_short_imsi_tmsi_for_ms_alr073(CHAR variant) +{ + BEGIN_STEP ("paging_req_1_short_imsi_tmsi_for_ms_alr073") + { + SEND ( mph_identity_req_2() ); + SEND ( mphc_data_ind_26(variant) ); + AWAIT ( mph_paging_ind_2(variant) ); + AWAIT ( mphc_start_ccch_req_8() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + } +} + + + +/*------------------------Following is for ALR075------------------------------- + * + * Description: The MS is in idle mode. It receives a paging message corresponding + * to the actual TMSI in the information elements mobile identity 1 or 2. + * A paging indication is forwarded to RR. + * Variant A: TMSI mobile identity 1, any channel needed + * Variant B: TMSI mobile identity 1, SDCCH needed + * Variant C: TMSI mobile identity 1, TCH/F needed + * Variant D: TMSI mobile identity 1, Dual Rate needed + * Variant E: TMSI mobile identity 2, any channel needed + * Variant F: TMSI mobile identity 2, SDCCH needed + * Variant G: TMSI mobile identity 2, TCH/F needed + * Variant H: TMSI mobile identity 2, Dual Rate needed + *-------------------------------------------------------------------------------*/ + +T_STEP paging_req_2_tmsi_for_ms_mobile_identity_1_or_2__alr075(CHAR variant) +{ + BEGIN_STEP ("paging_req_2_tmsi_for_ms_mobile_identity_1_or_2__alr075") + { + SEND ( mphc_data_ind_28(variant) ); + AWAIT ( mph_paging_ind_3(variant) ); + AWAIT ( mphc_start_ccch_req_8() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + } +} + + + +/*------------------------Following is for ALR077------------------------------- + * + * Description: The MS is in idle mode. It receives a paging request type 2 message + * corresponding to the actual IMSI or TMSI in information element in + * the information element mobile identity 3. A paging indication is + * forwarded to RR. + * Variant A: IMSI mobile identity 3, any channel needed + * Variant B: IMSI mobile identity 3, SDCCH needed + * Variant C: IMSI mobile identity 3, TCH/F needed + * Variant D: IMSI mobile identity 3, Dual Rate needed + * Variant E: IMSI mobile identity 3, no channel indication + * Variant F: TMSI mobile identity 3, any channel needed + * Variant G: TMSI mobile identity 3, SDCCH needed, + * Variant H: TMSI mobile identity 3, TCH/F needed + * Variant I: TMSI mobile identity 3, Dual Rate needed + * Variant J: TMSI mobile identity 3, no channel indication + *-------------------------------------------------------------------------------*/ + +T_STEP paging_req_2_imsi_tmsi_for_ms_mobile_identity_3__alr077(CHAR variant) +{ + BEGIN_STEP ("paging_req_2_imsi_tmsi_for_ms_mobile_identity_3__alr077") + { + SEND ( mphc_data_ind_30(variant) ); + AWAIT ( mph_paging_ind_4(variant) ); + AWAIT ( mphc_start_ccch_req_8() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + } +} + + + +/*------------------------Following is for ALR078------------------------------- + * + * Description: The MS is in idle mode. It receives a paging request type 2 message + * corresponding to the actual IMSI or TMSI in information element in + * the information element mobile identity 3. A paging indication is + * forwarded to RR. The IMSI is less than 15 digits and the TMSI has only + * one valid byte, but is signalled in different ways by the infrastructure + * Variant A: Short IMSI mobile identity 3, any channel needed, 10 digits + * Variant B: Short TMSI mobile identity 3, SDCCH needed, 1 byte from the network + * Variant C: Short TMSI mobile identity 3, TCH/F needed, 2 bytes from the network + * Variant D: Short TMSI mobile identity 3, Dual Rate needed, 3 bytes from the network + * Variant E: Short TMSI mobile identity 3, No channel indication, 4 bytes from the network + *-------------------------------------------------------------------------------*/ + +T_STEP paging_req_2_short_imsi_tmsi_for_ms_mobile_identity_3__alr078(CHAR variant) +{ + BEGIN_STEP ("paging_req_2_short_imsi_tmsi_for_ms_mobile_identity_3__alr078") + { + SEND ( mph_identity_req_2() ); + SEND ( mphc_data_ind_31(variant) ); + AWAIT ( mph_paging_ind_5(variant) ); + AWAIT ( mphc_start_ccch_req_8() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + } +} + + + +/*------------------------Following is for ALR080------------------------------- + * + * Description: The MS is in idle mode. It receives a paging message corresponding + * to the actual TMSI in the information elements mobile identity 1 to 4. + * A paging indication is forwarded to RR. + * Variant A: TMSI mobile identity 1, any channel needed + * Variant B: TMSI mobile identity 1, SDCCH needed + * Variant C: TMSI mobile identity 1, TCH/F needed + * Variant D: TMSI mobile identity 1, Dual Rate needed + * Variant E: TMSI mobile identity 2, any channel needed + * Variant F: TMSI mobile identity 2, SDCCH needed + * Variant G: TMSI mobile identity 2, TCH/F needed + * Variant H: TMSI mobile identity 2, Dual Rate needed + * Variant I: TMSI mobile identity 3, any channel needed + * Variant J: TMSI mobile identity 3, SDCCH needed + * Variant K: TMSI mobile identity 3, TCH/F needed + * Variant L: TMSI mobile identity 3, Dual Rate needed + * Variant M: TMSI mobile identity 3, no channel indication + * Variant N: TMSI mobile identity 4, any channel needed + * Variant O: TMSI mobile identity 4, SDCCH needed + * Variant P: TMSI mobile identity 4, TCH/F needed + * Variant Q: TMSI mobile identity 4, Dual Rate needed + * Variant R: TMSI mobile identity 4, no channel indication + *-------------------------------------------------------------------------------*/ + +T_STEP paging_req_3_tmsi_for_ms_alr080(CHAR variant) +{ + BEGIN_STEP ("paging_req_3_tmsi_for_ms_alr080") + { + SEND ( mphc_data_ind_33(variant) ); + AWAIT ( mph_paging_ind_6(variant) ); + AWAIT ( mphc_start_ccch_req_8() ); + AWAIT ( mphc_scell_nbcch_req_periodic() ); + } +} + +/*------------------------Following is for ALR088------------------------------- + * + * Description: ALR starts ncell measurements for cells 23, 14, 124, 1, + * then RR requests a full list power measurement. Four channels + * in the order 23, 14, 124, 1 have acceptable fieldstrength values. + * Then the non-serving cell carrier with the highest fieldstrength + * (channel 14) is selected for synchronizing to frequency correction + * burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_second_channel_alr088() +{ + BEGIN_STEP ("find_bcch_carrier_second_channel_alr088") + { + SEND ( mphc_rxlev_periodic_ind_2() ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_14) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_124) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_1) ); + SEND ( mphc_rxlev_periodic_ind_2() ); + AWAIT ( mph_measurement_ind_18() ); + SEND ( mphc_rxlev_periodic_ind_2() ); + SEND ( mphc_ncell_sync_ind (ARFCN_14) ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_14) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_14) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_14) ); + SEND ( mphc_ncell_sync_ind(ARFCN_124,FN_OFF_ARFCN_124,TIME_ALIGNMT_124,BSIC_1) ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_124, FN_OFF_ARFCN_124, TIME_ALIGNMT_124)); + SEND ( mphc_ncell_sync_ind_3() ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_1, FN_OFF_ARFCN_1, TIME_ALIGNMT_1)); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_124) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_124) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_1) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_1) ); + SEND ( mphc_rxlev_periodic_ind_2() ); + AWAIT ( mph_measurement_ind_19() ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_1) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_14) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_124) ); + SEND ( mph_power_req_2() ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + AWAIT ( mph_power_cnf_3() ); + SEND ( mph_bsic_req(ARFCN_14) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_14) ); + + stop_page_mode_reorg_before_hplnm_search_procedure(); + } +} + +/*------------------------Following is for ALR091------------------------------- + * + * Description: The BCCH data blocks are read for the channel 14. + *-------------------------------------------------------------------------------*/ + +T_STEP read_bcch_data_alr091() +{ + BEGIN_STEP ("read_bcch_data_alr091") + { + SEND ( mphc_ncell_sync_ind (ARFCN_14) ); + AWAIT ( mph_bsic_cnf_14() ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_14) ); + SEND ( mphc_ncell_bcch_ind_si2(ARFCN_14) ); + AWAIT ( mph_unitdata_ind_si2(ARFCN_14) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_14) ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_14) ); + SEND ( mphc_ncell_bcch_ind_invalid(ARFCN_14) ); + AWAIT ( mph_error_ind_3() ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_14) ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_14) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_14) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_14) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_14) ); + } +} + +/*------------------------Following is for ALR094------------------------------- + * + * Description: RR rejects the BCCH carrier. The next best channel (channel 124) + * is selected for synchronizing to frequency correction + * burst and synchron burst. This is also rejedted. The next best + * channel (channel 1) is selected for synchronising + * to frequency correction burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP rr_rejects_bcch_carrier_try_fourth_channel_alr094() +{ + BEGIN_STEP ("rr_rejects_bcch_carrier_try_fourth_channel_alr094") + { + SEND ( mph_bsic_req(ARFCN_124) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_124) ); + SEND ( mphc_ncell_sync_ind(ARFCN_124,FN_OFF_ARFCN_124,TIME_ALIGNMT_124,BSIC_1) ); + AWAIT ( mph_bsic_cnf_15() ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_124, FN_OFF_ARFCN_124, TIME_ALIGNMT_124)); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_124) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_124) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_124) ); + SEND ( mph_bsic_req(ARFCN_1) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_1) ); + SEND ( mphc_ncell_sync_ind_3() ); + AWAIT ( mph_bsic_cnf_16() ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_1, FN_OFF_ARFCN_1, TIME_ALIGNMT_1)); + SEND ( mphc_ncell_bcch_ind_si2(ARFCN_1) ); + AWAIT ( mph_unitdata_ind_si2(ARFCN_1) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_1) ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_1, FN_OFF_ARFCN_1, TIME_ALIGNMT_1)); + } +} + +/*------------------------Following is for ALR154------------------------------- + * + * Description: A handover is performed. It is checked that the serving cell + * channel numbers are correctly set. + * Variant A: AMR not signalled + * Variant B: AMR signalled + *-------------------------------------------------------------------------------*/ + +T_STEP handover_serving_cell_parameter_alr154(CHAR variant) +{ + BEGIN_STEP ("handover_serving_cell_parameter_alr154") + { + SEND ( mph_dedicated_req_6(variant) ); + AWAIT ( mphc_async_ho_req_3(variant) ); + SEND ( mphc_async_ho_con_1() ); + SEND ( mphc_handover_finished_1(HO_COMPLETE) ); + AWAIT ( mph_dedicated_cnf_1(DEDI_RES_OK) ); + } +} + +/*------------------------Following is for ALR155------------------------------- + * + * Description: The MS has entered the dedicated mode. The BA list is updated + * by neighbour cell requests generated by RR from SI 5 + * Every frequency of the MPH_NEIGHBOURCELL_REQ must occur within + * the MPHC_UPDATE_BA_LIST plus the serving cell (if not already + * included). In the MPHC_UPDATE_BA_LIST the first up to 8 + * frequencies must be in the same order as in the + * MPH_NEIGHBOURCELL_REQ, the order of the other depends on the + * replacing policy of ALR. + *-------------------------------------------------------------------------------*/ +T_STEP neighbour_cell_in_dedicated_alr155() +{ + BEGIN_STEP ("neighbour_cell_in_dedicated_alr155") + { + SEND ( mph_neighbourcell_req_16() ); + AWAIT ( mphc_update_ba_list_4() ); + SEND ( mph_neighbourcell_req_17() ); + AWAIT ( mphc_update_ba_list_5() ); + } +} + +/*------------------------Following is for ALR155------------------------------- + * + * Description: A handover has been performed. The BA list is updated for the + * new cell + * Every frequency of the MPH_NEIGHBOURCELL_REQ must occur within + * the MPHC_UPDATE_BA_LIST plus the serving cell (if not already + * included). In the MPHC_UPDATE_BA_LIST the first up to 8 + * frequencies must be in the same order as in the + * MPH_NEIGHBOURCELL_REQ, the order of the other depends on the + * replacing policy of ALR. + *-------------------------------------------------------------------------------*/ +T_STEP neighbour_cell_after_ho_alr156() +{ + BEGIN_STEP ("neighbour_cell_after_ho_alr156") + { + SEND ( mph_neighbourcell_req_18() ); + AWAIT ( mphc_update_ba_list_6() ); + SEND ( mph_neighbourcell_req_19() ); + AWAIT ( mphc_update_ba_list_7() ); + } +} + +/*------------------------Following is for ALR200------------------------------- + * + * Description: The ALR is configured for DCS 1800. + *-------------------------------------------------------------------------------*/ + +T_STEP filter_and_routings_dcs_1800__alr200() +{ + BEGIN_STEP ("filter_and_routings_dcs_1800__alr200") + { + //COMMAND("TAP RESET"); + //COMMAND("PL RESET"); + COMMAND("TAP REDIRECT CLEAR"); + COMMAND("PL REDIRECT CLEAR"); + COMMAND("PL REDIRECT RR TAP"); + COMMAND("PL REDIRECT DL TAP"); + COMMAND("PL REDIRECT MMI TAP"); + COMMAND("PL REDIRECT L1 TAP"); + COMMAND("TAP REDIRECT TAP PL"); + COMMAND("PL CONFIG STD=4"); + SEND ( em_l1_event_req_2() ); + //COMMAND("TAP PARKING "); + COMMAND("PL REDIRECT MMI *1111110******** NULL"); + + } +} + + + +/*------------------------Following is for ALR201------------------------------- + * + * Description: RR starts a cell selection. Four channels in the order 637, 580, + * 885, 512 have acceptable fieldstrength values. + *-------------------------------------------------------------------------------*/ + +T_STEP initiation_by_rr_4_channels_available_alr201() +{ + BEGIN_STEP ("initiation_by_rr_4_channels_available_alr201") + { + filter_and_routings_dcs_1800__alr200(); + + SEND ( mph_power_req_3() ); + AWAIT ( mphc_init_l1_req_3() ); + SEND ( mphc_init_l1_con_1() ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_3_1800) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_3_1800) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_3_1800) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_3_1800) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_3_1800) ); + AWAIT ( mph_power_cnf_4() ); + } +} + + + +/*------------------------Following is for ALR203------------------------------- + * + * Description: The carrier with the highest fieldstrength (channel 637) is + * selected for synchronizing to frequency correction burst and + * synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_first_channel_alr203() +{ + BEGIN_STEP ("find_bcch_carrier_first_channel_alr203") + { + SEND ( mph_bsic_req(ARFCN_637_STD_1800) ); + AWAIT ( mphc_network_sync_req(ARFCN_637, SM_WIDE_MODE) ); + SEND ( mphc_network_sync_ind_9() ); + AWAIT ( mph_bsic_cnf_17() ); + AWAIT ( mphc_new_scell_req_5() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + } +} + + + +/*------------------------Following is for ALR204------------------------------- + * + * Description: The carrier with the highest fieldstrength (channel 637) + * is selected for synchronizing to frequency correction burst and + * synchron burst. The attempt failed. A second request is started + * for the next strongest channel (channel 580). + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_first_channel_failed_then_second_channel_alr204() +{ + BEGIN_STEP ("find_bcch_carrier_first_channel_failed_then_second_channel_alr204") + { + SEND ( mph_bsic_req(ARFCN_637_STD_1800) ); + AWAIT ( mphc_network_sync_req(ARFCN_637, SM_WIDE_MODE) ); + SEND ( mphc_network_sync_ind_failed(ARFCN_637) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_637_STD_1800) ); + SEND ( mph_bsic_req(ARFCN_580_STD_1800) ); + AWAIT ( mphc_network_sync_req(ARFCN_580, SM_WIDE_MODE) ); + } +} + + + +/*------------------------Following is for ALR206------------------------------- + * + * Description: The next best channel (channel 14) is selected for synchronizing + * to frequency correction burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_second_channel_alr206() +{ + BEGIN_STEP ("find_bcch_carrier_second_channel_alr206") + { + SEND ( mphc_network_sync_ind_14() ); + AWAIT ( mph_bsic_cnf_22() ); + AWAIT ( mphc_new_scell_req_6() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + } +} + + + +/*------------------------Following is for ALR207------------------------------- + * + * Description: The BCCH data blocks are read for the channel 23. + *-------------------------------------------------------------------------------*/ + +T_STEP read_bcch_data_alr207() +{ + BEGIN_STEP ("read_bcch_data_alr207") + { + SEND ( mphc_data_ind_42() ); + AWAIT ( mph_unitdata_ind_si1(ARFCN_637) ); + SEND ( mphc_data_ind_43() ); + AWAIT ( mph_unitdata_ind_si2(ARFCN_637) ); + SEND ( mphc_data_ind_44() ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_637) ); + SEND ( mphc_data_ind_45() ); + AWAIT ( mph_unitdata_ind_si4(ARFCN_637) ); + } +} + + + +/*------------------------Following is for ALR209------------------------------- + * + * Description: RR rejects the BCCH carrier. The next best channel (channel 124) + * is selected for synchronizing to frequency correction burst + * and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP rr_rejects_bcch_carrier_try_third_channel_alr209() +{ + BEGIN_STEP ("rr_rejects_bcch_carrier_try_third_channel_alr209") + { + SEND ( mph_bsic_req(ARFCN_885_STD_1800) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_network_sync_req(ARFCN_885, SM_NARROW_MODE) ); + SEND ( mphc_network_sync_ind_15() ); + AWAIT ( mph_bsic_cnf_23() ); + AWAIT ( mphc_new_scell_req_7() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mphc_data_ind_47() ); + AWAIT ( mph_unitdata_ind_si1(ARFCN_885) ); + } +} + + + +/*------------------------Following is for ALR210------------------------------- + * + * Description: RR rejects the BCCH carrier. The next best channel (channel 1) + * is selected for synchronising to frequency correction burst + * and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP rr_rejects_bcch_carrier_try_fourth_channel_alr210() +{ + BEGIN_STEP ("rr_rejects_bcch_carrier_try_fourth_channel_alr210") + { + SEND ( mph_bsic_req(ARFCN_512_STD_1800) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_network_sync_req(ARFCN_512, SM_NARROW_MODE) ); + SEND ( mphc_network_sync_ind_16() ); + AWAIT ( mph_bsic_cnf_24() ); + AWAIT ( mphc_new_scell_req_8() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mphc_data_ind_48() ); + AWAIT ( mph_unitdata_ind_si1(ARFCN_512) ); + } +} + + + +/*------------------------Following is for ALR212------------------------------- + * + * Description: RR selects the channel 14 after reading the BCCH carrier. + * Variant A: with neighbourcell list + * Variant B: with empty neighbour cell list + * Variant C: like A, but non-combined CCCH + *-------------------------------------------------------------------------------*/ + +T_STEP rr_select_second_channel_alr212(CHAR variant) +{ + BEGIN_STEP ("rr_select_second_channel_alr212") + { + SEND ( mph_classmark_req_2() ); + SEND ( mph_idle_req_7(variant) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_11(variant) ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_identity_req_1() ); + SEND ( mph_cbch_req_1() ); + SEND ( mph_neighbourcell_req_5(variant) ); + AWAIT ( mphc_rxlev_periodic_req_5(variant) ); + } +} + +/*------------------------Following is for ALR600------------------------------- + * + * Description: The ALR is configured for Dualband GSM 900 / DCS 1800. + *-------------------------------------------------------------------------------*/ + +T_STEP filter_and_routings_dualband_gsm_900_dcs_1800__alr600() +{ + BEGIN_STEP ("filter_and_routings_dualband_gsm_900_dcs_1800__alr600") + { + //COMMAND("TAP RESET"); + //COMMAND("PL RESET"); + COMMAND("TAP REDIRECT CLEAR"); + COMMAND("PL REDIRECT CLEAR"); + COMMAND("PL REDIRECT RR TAP"); + COMMAND("PL REDIRECT DL TAP"); + COMMAND("PL REDIRECT MMI TAP"); + COMMAND("PL REDIRECT L1 TAP"); + COMMAND("TAP REDIRECT TAP PL"); +#ifdef GPRS + COMMAND("PL REDIRECT GRR TAP"); +#endif // GPRS + COMMAND("PL CONFIG STD=5"); + SEND ( em_l1_event_req_2() ); + //COMMAND("TAP PARKING "); + COMMAND("PL REDIRECT MMI *1111110******** NULL"); + + } +} + + + +/*------------------------Following is for ALR601------------------------------- + * + * Description: RR starts a cell selection. Eight channels in the order 23, 637, 14, 580, 124, 885, 1, 512 have + * acceptable fieldstrength values. + *-------------------------------------------------------------------------------*/ + +T_STEP initiation_by_rr_8_channels_available_alr601() +{ + BEGIN_STEP ("initiation_by_rr_8_channels_available_alr601") + { + filter_and_routings_dualband_gsm_900_dcs_1800__alr600(); + + SEND ( mph_power_req_4() ); + AWAIT ( mphc_init_l1_req_4() ); + SEND ( mphc_init_l1_con_1() ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(RXLEV_IDX_DUAL) ); + AWAIT ( mph_power_cnf_5() ); + } +} + + + +/*------------------------Following is for ALR603------------------------------- + * + * Description: The carrier with the highest fieldstrength (channel 23) is selected + * for synchronizing to frequency correction burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_first_channel_alr603() +{ + BEGIN_STEP ("find_bcch_carrier_first_channel_alr603") + { + SEND ( mph_bsic_req(ARFCN_23_STD_DUAL) ); + AWAIT ( mphc_network_sync_req(ARFCN_23, SM_WIDE_MODE) ); + SEND ( mphc_network_sync_ind_1() ); + AWAIT ( mph_bsic_cnf_25() ); + AWAIT ( mphc_new_scell_req_1() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + } +} + +/*------------------------Following is for ALR604------------------------------- + * + * Description: The carrier with the highest fieldstrength (channel 23) is selected + * for synchronizing to frequency correction burst and synchron burst. + * The attempt failed. A second request is started for the next + * strongest channel (channel 637). + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_first_channel_failed_then_second_channel_alr604() +{ + BEGIN_STEP ("find_bcch_carrier_first_channel_failed_then_second_channel_alr604") + { + SEND ( mph_bsic_req(ARFCN_23_STD_DUAL) ); + AWAIT ( mphc_network_sync_req(ARFCN_23, SM_WIDE_MODE) ); + SEND ( mphc_network_sync_ind_failed(ARFCN_23) ); + AWAIT ( mph_bsic_cnf_failed(ARFCN_23_STD_DUAL) ); + SEND ( mph_bsic_req(ARFCN_637_STD_DUAL) ); + AWAIT ( mphc_network_sync_req(ARFCN_637, SM_WIDE_MODE) ); + } +} + + + +/*------------------------Following is for ALR606------------------------------- + * + * Description: The next best channel (channel 637) is selected for synchronizing + * to frequency correction burst and synchron burst. + *-------------------------------------------------------------------------------*/ + +T_STEP find_bcch_carrier_second_channel_alr606() +{ + BEGIN_STEP ("find_bcch_carrier_second_channel_alr606") + { + SEND ( mphc_network_sync_ind_17() ); + AWAIT ( mph_bsic_cnf_33() ); + AWAIT ( mphc_new_scell_req_9() ); + SEND ( mphc_new_scell_con_1() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + } +} + + + +/*------------------------Following is for ALR607------------------------------- + * + * Description: The BCCH data blocks are read for the channel 23. + *-------------------------------------------------------------------------------*/ + +T_STEP read_bcch_data_alr607() +{ + BEGIN_STEP ("read_bcch_data_alr607") + { + SEND ( mphc_data_ind_1() ); + AWAIT ( mph_unitdata_ind_si1(ARFCN_23) ); + SEND ( mphc_data_ind_2() ); + AWAIT ( mph_unitdata_ind_si2(ARFCN_23) ); + SEND ( mphc_data_ind_3() ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_23) ); + SEND ( mphc_data_ind_4() ); + AWAIT ( mph_unitdata_ind_si4(ARFCN_23) ); + } +} + +/*------------------------Following is for ALR612------------------------------- + * + * Description: RR selects the channel 637 after reading the BCCH carrier. + * Variant A: with neighbourcell list + * Variant B: with empty neighbour cell list + *-------------------------------------------------------------------------------*/ + +T_STEP rr_select_second_channel_alr612(CHAR variant) +{ + BEGIN_STEP ("rr_select_second_channel_alr612") + { + SEND ( mph_classmark_req_3() ); + SEND ( mph_idle_req_9() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_10() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_identity_req_1() ); + SEND ( mph_cbch_req_1() ); + SEND ( mph_neighbourcell_req_7(variant) ); + AWAIT ( mphc_rxlev_periodic_req_7(variant) ); + } +} + +/*------------------------Following is for ALR800------------------------------- + * + * Description: The CBCH channel is configured. Then MMI requests reading of CBCH + * for the message identifier 3, 7 and 11 to 13. + *-------------------------------------------------------------------------------*/ + +T_STEP configuration_cbch_followed_by_mmi_request_alr800(CHAR variant) +{ + BEGIN_STEP ("configuration_cbch_followed_by_mmi_request_alr800") + { + SEND ( mph_classmark_req_1() ); + SEND ( mph_idle_req_14() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_10() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_cbch_req_2(variant) ); + SEND ( mmi_cbch_req_1() ); + AWAIT ( mphc_config_cbch_req_1(variant) ); + AWAIT ( mphc_cbch_schedule_req_1() ); + AWAIT ( mphc_cbch_schedule_req_2() ); + } +} + + + +/*------------------------Following is for ALR801------------------------------- + * + * Description: MMI requests reading of CBCH for the message identifier + * 3, 7 and 11 to 13. Then the CBCH channel is configured and + * reading of CBCH starts. + *-------------------------------------------------------------------------------*/ + +T_STEP mmi_request_followed_by_configuration_of_cbch_alr801(CHAR variant) +{ + BEGIN_STEP ("mmi_request_followed_by_configuration_of_cbch_alr801") + { + SEND ( mph_classmark_req_1() ); + SEND ( mph_idle_req_14() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_10() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mmi_cbch_req_2(variant) ); + SEND ( mph_cbch_req_3(variant) ); + AWAIT ( mphc_config_cbch_req_2(variant) ); + AWAIT ( mphc_cbch_schedule_req_1() ); + AWAIT ( mphc_cbch_schedule_req_2() ); + } +} + + + +/*------------------------Following is for ALR803------------------------------- + * + * Description: ALR receives an expected CBCH message. The content is forwarded + * to MMI. + * Variant A: single message identifier (7) + * Variant B: message identifier specified by range (11), lower boundary + * Variant C: message identifier specified by range (12), middle of the range + * Variant D: message identifier specified by range (13), upper boundary + * Variant E: single message identifier (7) with update number 2 + *-------------------------------------------------------------------------------*/ + +T_STEP reception_of_expected_cbch_message_alr803(CHAR variant) +{ + BEGIN_STEP ("reception_of_expected_cbch_message_alr803") + { + SEND ( mphc_data_ind_54(variant) ); + AWAIT ( mphc_cbch_info_req_1() ); + SEND ( mphc_data_ind_55() ); + SEND ( mphc_data_ind_56() ); + SEND ( mphc_data_ind_57() ); + AWAIT ( mmi_cbch_ind_1(variant) ); + } +} +/*------------------------Following is for ALR808------------------------------- + * + * Description: ALR receives an CBCH Schedule message. + variant a : entry into DRX mode + variant b : 2nd DRX mode + *-------------------------------------------------------------------------------*/ + +T_STEP reception_of_cbch_schedule_message_alr809(CHAR variant) +{ + BEGIN_STEP ("reception_of_expected_cbch_message_alr809") + { + SEND ( mphc_data_ind_67()); + AWAIT ( mphc_cbch_info_req_1()); + SEND ( mphc_data_ind_60()); + SEND ( mphc_data_ind_61()); + SEND ( mphc_data_ind_62()); + AWAIT (mphc_cbch_schedule_req_4(variant)); + } +} + + +/*------------------------Following is for ALR960------------------------------- + * + * Description: RR selects Channel 23 as serving cell after reading the + * BCCH carrier. On receipt of a list of neighbour cells + * (MPH-NEIGHBOURCELL request primitive) followed by + * the power measurements of these cells + * (MPHC-RXLEV-PERIODIC indication primitive), ALR starts a 10-second + * timer and requests Layer 1 to commence synchronization of these cells. + * On expiry of this timer, ALR requests Layer 1 to stop synchronization + * of these cells and forwards a list of all synchronized neighbour cells + * to be measured to Layer 1 (MPHC-NCELL-LIST-SYNC request primitive). + *-------------------------------------------------------------------------------*/ + +T_STEP power_measurement_e_otd_on_idle_mode__alr960() +{ + BEGIN_STEP ("power_measurement_e_otd_on_idle_mode__alr960") + { + SEND ( mph_classmark_req_3() ); + SEND ( mph_idle_req_22() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_9() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + SEND ( mph_neighbourcell_req_15() ); + AWAIT ( mphc_rxlev_periodic_req_20() ); + SEND ( mphc_rxlev_periodic_ind_3() ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_637) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_25) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_14) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_512) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_580) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_885) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_124) ); + SEND ( mphc_ncell_sync_ind_33() ); + SEND ( mphc_rxlev_periodic_ind_3() ); + AWAIT ( mph_measurement_ind_32() ); + SEND ( mphc_ncell_sync_ind_34() ); + AWAIT ( mphc_ncell_bcch_req (ARFCN_637) ); + SEND ( mphc_ncell_sync_ind_35() ); + AWAIT ( mphc_ncell_bcch_req_30() ); + SEND ( mphc_ncell_sync_ind_36() ); + AWAIT ( mphc_ncell_bcch_req_25() ); + SEND ( mphc_ncell_sync_ind_37() ); + AWAIT ( mphc_ncell_bcch_req_31() ); + SEND ( mphc_ncell_sync_ind_38() ); + AWAIT ( mphc_ncell_bcch_req_32() ); + SEND ( mphc_ncell_sync_ind_39() ); + AWAIT ( mphc_ncell_bcch_req_33() ); + SEND ( mphc_rxlev_periodic_ind_3() ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_637) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_637) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_25) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_25) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_14) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_14) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_512) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_512) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_580) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_580) ); + SEND ( mphc_ncell_bcch_ind_si3(ARFCN_885) ); + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_885) ); + SEND ( mphc_rxlev_periodic_ind_3() ); + SEND ( mphc_rxlev_periodic_ind_3() ); + AWAIT ( mph_measurement_ind_33() ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_14) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_25) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_512) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_580) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_637) ); + AWAIT ( mph_unitdata_ind_si3(ARFCN_885) ); + SEND ( mphc_rxlev_periodic_ind_3() ); + SEND ( mphc_rxlev_periodic_ind_3() ); + SEND ( mphc_rxlev_periodic_ind_3() ); + AWAIT ( mphc_stop_ncell_sync_req_all() ); + SEND ( mphc_stop_ncell_sync_con() ); + AWAIT ( mphc_ncell_list_sync_req_3() ); + AWAIT ( mph_measurement_ind_33() ); + } +} + + + +/*------------------------Following is for ALR970------------------------------- + * + * Description: A dedicated channel is assigned in preparation for E-OTD measurement. + *-------------------------------------------------------------------------------*/ + +T_STEP connection_established_e_otd_dedicated_mode__alr970() +{ + BEGIN_STEP ("connection_established_e_otd_dedicated_mode__alr970") + { + SEND ( mph_random_access_req_1() ); + AWAIT ( mphc_stop_rxlev_periodic_req() ); + SEND ( mphc_stop_rxlev_periodic_con_1() ); + AWAIT ( mphc_stop_ncell_sync_req_all() ); + SEND ( mphc_stop_ncell_sync_con() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + SEND ( mphc_stop_scell_bcch_con() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + AWAIT ( mphc_ra_req_5() ); + SEND ( mphc_ra_con_1() ); + AWAIT ( mph_random_access_cnf_1() ); + AWAIT ( mphc_ra_req_6() ); + SEND ( mphc_data_ind_20() ); + AWAIT ( mph_unitdata_ind_10() ); + SEND ( mph_dedicated_req_1() ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_stop_ccch_req() ); + AWAIT ( mphc_stop_ra_req_1() ); + AWAIT ( mphc_immed_assign_req_1() ); + SEND ( mphc_immed_assign_con_1() ); + AWAIT ( mph_dedicated_cnf_1(DEDI_RES_OK) ); + } +} + + + +/*------------------------Following is for ALR972------------------------------- + * + * Description: RR requests E-OTD measurement of a list of cells forwarded in the + * MPH-NCELL-POS request primitive, whereupon ALR forwards this list + * to Layer 1 (MPHC-NCELL-LIST-SYNC request primitive). + * Variant A: all cells in the list are current neighbour cells and are thus known to ALR, + * Variant B: contains two cell (arfcn 516 and 525 respectively) which are unknown. + *-------------------------------------------------------------------------------*/ + +T_STEP e_otd_measurement_started_dedicated_mode__alr972(CHAR variant) +{ + BEGIN_STEP ("e_otd_measurement_started_dedicated_mode__alr972") + { + SEND ( mph_ncell_pos_req_2(variant) ); + AWAIT ( mphc_ncell_list_sync_req_4(variant) ); + } +} + +/*------------------------Following is for ALRG007------------------------------- + * + * Description: In dedicated mode ALR is suspended during a PDCH Assignment procedure. + * Reference: TS04.08 V8.10.0, section 3.4.19 Assignment to a Packet Data channel. + *-------------------------------------------------------------------------------*/ + +T_STEP pdch_assignment_alrg007() +{ + BEGIN_STEP ("pdch_assignment_alrg007") + { + + SEND ( mph_dedicated_req_2g() ); + AWAIT ( mphc_stop_dedicated_req() ); + SEND ( mphc_stop_dedicated_con() ); + AWAIT ( mph_dedicated_cnf_1(DEDI_RES_OK) ); + //this does not work, but there has to be + //a CCCH request to enter idle mode before going to PTM. + /*This needs a implementation check through GRR-RR-ALR*/ + /*AWAIT ( mphc_start_ccch_req_8() );*/ + + } +} + +/*----------------------------------------------------------------------------- + * + * Description: Start a MO call while plmn search is active. + * + *-------------------------------------------------------------------------------*/ + +T_STEP abort_search_due_to_mo_call(T_VAR_ABORT_PLMN_SEARCH var) +{ + BEGIN_STEP ("abort search due to mo call") + { + SEND ( mph_sync_req(CS_STOP_PLMN_SEARCH) ); + switch (var) + { + case VAR_PLMN_POWER_CNF: + AWAIT ( mphc_stop_rxlev_req() ); + break; + case VAR_PLMN_BSIC_CNF: + AWAIT ( mphc_stop_ncell_sync_req(ARFCN_32) ); + break; + case VAR_PLMN_SI: + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_32) ); + break; + } + + SEND ( mph_random_access_req_1() ); + AWAIT ( mphc_stop_rxlev_periodic_req() ); // not necessary + AWAIT ( mphc_stop_scell_bcch_req() ); // not necessary + AWAIT ( mphc_start_ccch_req_1('A') ); + AWAIT ( mphc_scell_nbcch_req_full() ); + AWAIT ( mphc_ra_req_1() ); + } +} + +/*----------------------------------------------------------------------------- + * + * Description: GRR leaves Packet Idle Mode, the search is aborted. + * + *-------------------------------------------------------------------------------*/ +T_STEP abort_search_due_to_leaving_pim(T_VAR_ABORT_PLMN_SEARCH var) +{ + BEGIN_STEP ("abort search due leaving PIM") + { + SEND ( mph_sync_req(CS_STOP_PLMN_SEARCH) ); + switch (var) + { + case VAR_PLMN_POWER_CNF: + AWAIT ( mphc_stop_rxlev_req() ); + break; + case VAR_PLMN_BSIC_CNF: + AWAIT ( mphc_stop_ncell_sync_req(ARFCN_32) ); + break; + case VAR_PLMN_SI: + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_32) ); + break; + } +#if defined GPRS + SEND ( mph_mon_ctrl_req(LEAVING_PIM_PBCCH) ); + AWAIT ( mphc_stop_ccch_req() ); +#endif + } +} + +/*----------------------------------------------------------------------------- + * + * Description: GRR starts a cell reselection, the search is aborted. + * + *-------------------------------------------------------------------------------*/ +T_STEP abort_search_due_to_cell_resel(T_VAR_ABORT_PLMN_SEARCH var) +{ + BEGIN_STEP ("abort search due to cell reselection") + { + SEND ( mph_sync_req(CS_STOP_PLMN_SEARCH) ); + switch (var) + { + case VAR_PLMN_POWER_CNF: + AWAIT ( mphc_stop_rxlev_req() ); + break; + case VAR_PLMN_BSIC_CNF: + AWAIT ( mphc_stop_ncell_sync_req(ARFCN_32) ); + break; + case VAR_PLMN_SI: + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_32) ); + break; + } + SEND ( mph_idle_req_15g() ); + AWAIT ( mphc_stop_ccch_req() ); + AWAIT ( mphc_stop_rxlev_periodic_req() ); // not necessary + AWAIT ( mphc_stop_scell_bcch_req() ); // not necessary + AWAIT ( mphc_new_scell_req_10() ); + } +} + +/*----------------------------------------------------------------------------- + * + * Description: GRR requests synchronization for 3 ncells. + * + *-------------------------------------------------------------------------------*/ +T_STEP nc_pbcch_initial_sync() +{ + BEGIN_STEP ("PBCCH, initial synchronization to 3 ncells") + { + SEND ( mph_neighbourcell_req_3g() ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_1) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_14) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_124) ); + SEND ( mphc_ncell_sync_ind (ARFCN_14) ); + AWAIT ( mph_measurement_ind_1g() ); + SEND ( mphc_ncell_sync_ind_failed(ARFCN_124) ); + AWAIT ( mph_measurement_ind_2g() ); + SEND ( mph_neighbourcell_req_4g() ); + AWAIT ( mph_measurement_ind_4g() ); + AWAIT ( mphc_stop_ncell_sync_req(ARFCN_1) ); + AWAIT ( mphc_ncell_sync_req_4g() ); + SEND ( mphc_ncell_sync_ind_3g() ); + AWAIT ( mph_measurement_ind_3g() ); + } +} + +/*----------------------------------------------------------------------------- + * + * Description: GRR starts a cell selection, the search is aborted. + * + *-------------------------------------------------------------------------------*/ + +T_STEP abort_search_due_to_cell_sel(T_VAR_ABORT_PLMN_SEARCH var) +{ + BEGIN_STEP ("abort search due to cell selection") + { + SEND ( mph_sync_req(CS_STOP_PLMN_SEARCH) ); + switch (var) + { + case VAR_PLMN_POWER_CNF: + AWAIT ( mphc_stop_rxlev_req() ); + break; + case VAR_PLMN_BSIC_CNF: + AWAIT ( mphc_stop_ncell_sync_req(ARFCN_32) ); + break; + case VAR_PLMN_SI: + AWAIT ( mphc_stop_ncell_bcch_req(ARFCN_32) ); + break; + } + SEND ( mph_power_req_1() ); + AWAIT ( mphc_stop_ccch_req() ); + AWAIT ( mphc_stop_rxlev_periodic_req() ); // not necessary + AWAIT ( mphc_stop_scell_bcch_req() ); // not necessary + AWAIT ( mphc_init_l1_req_1() ); + SEND ( mphc_init_l1_con_1() ); + AWAIT ( mphc_rxlev_req() ); + //SEND ( mphc_rxlev_ind(RXLEV_IDX_1) ); + } +} + +#ifdef FF_EGPRS +T_STEP start_of_sending_channel_request_messages_gsm_900__alr9803() +{ + BEGIN_STEP ("start_of_sending_channel_request_messages_gsm_900__alr9803") + { + SEND ( mph_random_access_req_1() ); + AWAIT ( mphc_stop_rxlev_periodic_req() ); + AWAIT (mphc_stop_ncell_bcch_req_emr()); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + AWAIT ( mphc_ra_req_1() ); + SEND ( mphc_ra_con_1() ); + AWAIT ( mph_random_access_cnf_1() ); + AWAIT ( mphc_ra_req_2() ); + } +} + +T_STEP rr_cell_selection_emr (char idle_var,char rxlev_var,char emr_var ) +{ + BEGIN_STEP ("rr_cell_selection_emr") + { + int i=15; + filter_and_routings_dualband_gsm_900_dcs_1800__alr600(); + initiation_by_rr_4_channels_available_alr001(); + find_bcch_carrier_first_channel_alr003(); + read_bcch_data_alr007(); + + SEND ( mph_classmark_req_1() ); + SEND ( mph_idle_req_4(idle_var) ); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_start_ccch_req_7('H') ); + + AWAIT ( mphc_scell_nbcch_req_full() ); /*acquires both N/E BCCH*/ + SEND ( mph_identity_req_1() ); + SEND ( mph_identity_req_1() ); + SEND ( mph_cbch_req_1() ); + + if (rxlev_var == 'A') + { + SEND ( mph_neighbourcell_req_3() ); + AWAIT ( mphc_rxlev_periodic_req_3() ); + SEND ( mphc_rxlev_periodic_ind_1() ); /* 1 */ + SEND ( mphc_rxlev_periodic_ind_1() ); + AWAIT ( mph_measurement_ind_emr_1() ); + SEND ( mphc_rxlev_periodic_ind_1() ); + } + else if (rxlev_var == 'B') + { + SEND ( mph_neighbourcell_req_3() ); + AWAIT ( mphc_rxlev_periodic_req_3() ); + } + else + { + SEND ( mph_neighbourcell_req_emr_1() ); + AWAIT ( mphc_rxlev_periodic_req_emr_1() ); + } + + if (emr_var != 'Z') + { + while ( i) + { + SEND (mphc_data_ind_si2quater(L2_CHANNEL_EBCCH) ); + AWAIT (mph_unitdata_ind_si2q(ARFCN_23) ); + i--; + } + } + + if (rxlev_var == 'A') + { + SEND ( mphc_rxlev_periodic_ind_1() ); + AWAIT ( mph_measurement_ind_emr_1() ); + } + + if (emr_var != 'Z') + { + SEND (mph_enhpara_update_req_1 (emr_var)); + SEND (mph_mon_ctrl_req_1(STOP_MON_BCCH,UPDATE_SI2QUATER) ); + } + } +} +#endif // FF_EGPRS +/*-------------------For Test Case 1013A-E---------------------------------------------------------- + * + * Description: Setting state of ALR in Dedicated for Handovers. + * + *-------------------------------------------------------------------------------*/ + +T_STEP initial_setting_state_to_dedicated() +{ + BEGIN_STEP ("initial_setting_state_to_dedicated") + { + filter_and_routings_gsm_900__alr000(); + initiation_by_rr_4_channels_available_alr001(); + find_bcch_carrier_first_channel_alr003(); + read_bcch_data_alr007(); + rr_select_first_channel_alr013(); + start_of_sending_channel_request_messages_gsm_900__alr055(); + immediate_assignment_for_the_mobile_station_alr056(); + neighbour_cell_in_dedicated_alr155(); + SEND ( mphc_meas_report_4() ); + AWAIT ( mphc_ncell_sync_req_fn(ARFCN_124) ); + AWAIT ( mphc_ncell_sync_req_fn(ARFCN_1) ); + SEND ( mphc_ncell_sync_ind_fn(ARFCN_124)); + SEND ( mphc_ncell_sync_ind_fn(ARFCN_1)); + AWAIT(mph_measurement_ind_dummy(ARFCN_23,25)); + } +} + + +/*----------------------------------------------------------------------------- + * + * Description: After a HPLMN search the paging is configured to REORG, + * if REORG was set before HPLMN search. + * + * Variant: depending on configuration before HPLNM search procedure + * + *-------------------------------------------------------------------------------*/ + +T_STEP continue_page_mode_reorg_after_hplnm_search_procedure(CHAR variant) +{ + BEGIN_STEP ("continue page mode reorg after HPLMN search") + { + + switch (variant) + { + case 'A': + AWAIT ( mphc_start_ccch_req_7('H') ); /*Paging REORG */ + break; + case 'B':/*not used*/ + AWAIT ( mphc_start_ccch_req_2() ); /*Paging REORG */ + break; + default: + AWAIT ( mphc_start_ccch_req_14() ); /*SKIP Parameter - actual not used*/ + } + + AWAIT ( mphc_scell_nbcch_req_full() ); /*Read complete BCCH every time*/ + } +} + +/*----------------------------------------------------------------------------- + * + * Description: HPLMN search cannot be performed if page mode REORG is configured. + * Therefore REORG is stopped as long as HPLNM search procedure needs. + * + *-------------------------------------------------------------------------------*/ + +T_STEP stop_page_mode_reorg_before_hplnm_search_procedure() +{ + BEGIN_STEP ("stop page mode reorg before HPLMN search") + { + + AWAIT ( mphc_start_ccch_req_normal() ); /*Paging NORMAL*/ + AWAIT ( mphc_scell_nbcch_req_periodic() ); /*read BCCH not every time*/ + } +} + +/*----------------------------------------------------------------------------- + * + * Description: Measurement Report is sent by L1. This is followed by sync reading on the strongest + * 6 cells. Random Access procedure is then started. + * + *-------------------------------------------------------------------------------*/ + +T_STEP meas_ind_with_start_sync_followed_by_rach_procedure() +{ + BEGIN_STEP ("meas indiction sync requests followed by rach") + { + SEND ( mphc_rxlev_periodic_ind_2() ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_14) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_124) ); + AWAIT ( mphc_ncell_sync_req_initial(ARFCN_1) ); + SEND ( mphc_ncell_sync_ind (ARFCN_14) ); // sync for 14 + AWAIT ( mphc_ncell_bcch_req (ARFCN_14) ); + + SEND ( mph_random_access_req_1() ); + AWAIT ( mphc_stop_rxlev_periodic_req() ); + AWAIT ( mphc_stop_ncell_sync_req_1() ); + AWAIT ( mphc_stop_ncell_bcch_req_1()); + AWAIT ( mphc_stop_scell_bcch_req() ); + AWAIT ( mphc_scell_nbcch_req_full() ); + AWAIT ( mphc_ra_req_1() ); + + SEND ( mphc_ra_con_1() ); + AWAIT ( mph_random_access_cnf_1() ); + AWAIT ( mphc_ra_req_2() ); + } +} + +/*----------------------------------------------------------------------------- + * + * Description: Rxlevel Measurement based on Search + * + *-------------------------------------------------------------------------------*/ + +T_STEP rxlevel_measurement_based_on_search_parallel(CHAR search_mode, CHAR rxlev_idx) +{ + BEGIN_STEP (" Rxlevel Based on Search") + { + AWAIT ( mphc_init_l1_req(STD_DUAL_EGSM)); + SEND ( mphc_init_l1_con_1()); + switch(search_mode) + { + case NORMAL_SEARCH_MODE: + case FULL_SEARCH_MODE : + /* Full & Normal Search will do the measurement 5 Times */ + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + case FAST_SEARCH_MODE : + case BLACK_LIST_SEARCH_MODE: + /* FAST & Blacklist Search will do the measurement only once */ + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + break; + } + } +} + +/*----------------------------------------------------------------------------- + * + * Description: Rxlevel Measurement based on Search + * + *-------------------------------------------------------------------------------*/ + +T_STEP rxlevel_measurement_based_on_search_quadband(CHAR search_mode, CHAR rxlev_idx, CHAR pchinterrupt) +{ + BEGIN_STEP (" Rxlevel Based on Search") + { + switch(search_mode) + { + case NORMAL_SEARCH_MODE: + case FULL_SEARCH_MODE : + /* Full & Normal Search will do the measurement 5 Times */ + AWAIT ( mphc_init_l1_req(STD_DUAL_EGSM)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + + AWAIT ( mphc_init_l1_req(STD_DUAL_US)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + + AWAIT ( mphc_init_l1_req(STD_DUAL_EGSM)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + + AWAIT ( mphc_init_l1_req(STD_DUAL_US)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + + AWAIT ( mphc_init_l1_req(STD_DUAL_EGSM)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + + AWAIT ( mphc_init_l1_req(STD_DUAL_US)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + + AWAIT ( mphc_init_l1_req(STD_DUAL_EGSM)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + + AWAIT ( mphc_init_l1_req(STD_DUAL_US)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + case FAST_SEARCH_MODE : + /* FAST Search will do the measurement only once */ + AWAIT ( mphc_init_l1_req(STD_DUAL_EGSM)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + + AWAIT ( mphc_init_l1_req(STD_DUAL_US)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + break; + case BLACK_LIST_SEARCH_MODE: + /* Blacklist Search will do the measurement only once */ + AWAIT ( mphc_init_l1_req(STD_DUAL_EGSM)); + SEND ( mphc_init_l1_con_1()); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + break; + } + } +} + + +/*----------------------------------------------------------------------------- + * + * Description: Rxlevel Measurement based on Search + * + *-------------------------------------------------------------------------------*/ + +T_STEP rxlevel_measurement_based_on_search_american(CHAR search_mode, CHAR band, CHAR rxlev_idx) +{ + BEGIN_STEP (" Rxlevel Based on Search") + { + AWAIT ( mphc_init_l1_req(band) ); + SEND ( mphc_init_l1_con_1() ); + switch(search_mode) + { + case NORMAL_SEARCH_MODE: + case FULL_SEARCH_MODE : + /* Full & Normal Search will do the measurement 5 Times */ + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + case FAST_SEARCH_MODE : + case BLACK_LIST_SEARCH_MODE: + /* FAST & Blacklist Search will do the measurement only once */ + AWAIT ( mphc_rxlev_req() ); + SEND ( mphc_rxlev_ind(rxlev_idx) ); + break; + } + } +}