FreeCalypso > hg > fc-tourmaline
view src/g23m-gsm/alr2/alr_test/alr_steps.cpp @ 288:25d3ee009d19
audio tone amplitudes: band-aid fix for FC Luna
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 13 Nov 2021 05:02:57 +0000 |
parents | 3a14ee9a9843 |
children |
line wrap: on
line source
/* +------------------------------------------------------------------------------ | 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; } } }