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;
+    }
+  }
+}