LibS1AP_Steps.ttcn 54.8 KB
Newer Older
garciay's avatar
garciay committed
        external function fx_eNB_Uplink_S1_CDMA2000_Tunnelling_procedure() return boolean;
        
        /**
         * @desc Trigger a UE CAPABILITY INFO INDICATION procedure
         * @return true on success, false otherwise
         */
garciay's avatar
garciay committed
        external function fx_eNB_UE_Capability_Info_Indication_procedure() return boolean;
garciay's avatar
garciay committed
        /**
         * @desc Force the UE to be registered to a new cell
         * @return true on success, false otherwise
         */
        external function fx_move_UE_to_new_cell() return boolean;
        
        /**
         * @desc Check htat UE stop reporting at change of serving cell
         * @return true on success, false otherwise
         */
        external function fx_check_UE_stops_reporting() return boolean;
        
        /**
         * @desc Trigger a PWS Restart Indication procedure
         * @return true on success, false otherwise
         */
garciay's avatar
garciay committed
        external function fx_eNB_PWS_Restart_Indication_procedure() return boolean;
garciay's avatar
garciay committed
        
        /**
         * @desc Trigger a PWS Failure Indication procedure
         * @return true on success, false otherwise
         */
garciay's avatar
garciay committed
        external function fx_eNB_PWS_Failure_Indication_procedure() return boolean;
garciay's avatar
garciay committed
        
        /**
         * @desc Trigger an ENB direct information Transfer procedure
garciay's avatar
garciay committed
         * @return true on success, false otherwise
garciay's avatar
garciay committed
        external function fx_eNB_Direct_Information_Transfer_procedure() return boolean;
        
        /**
         * @desc Trigger an ENB Configuration Transfer procedure
garciay's avatar
garciay committed
         * @return true on success, false otherwise
garciay's avatar
garciay committed
        external function fx_eNB_Configuration_Transfer_procedure() return boolean;
             * @desc Trigger a LPPa Transport procedure using a UE associated signalling on eNodeB
             * @param p_associated_signalling_mode Set to true for an associated signalling mode, false otherwise
             * @return true on success, false otherwise
             */
            external function fx_eNB_LPPa_Transport_procedure_ind(
                                                                  in boolean p_associated_signalling_mode
            ) return boolean;
            
        } // End of group eNBRole
        
        group mmeRole {
            
            /**
             * @desc Trigger a DOWNLINK NAS TRANSPORT event
             * @return true on success, false otherwise
             */
            external function fx_MME_Downlink_NAS_Transport_procedure() return boolean;
            
            /**
             * @desc Trigger a REROUTE NAS REQUEST event
             * @return true on success, false otherwise
             */
            external function fx_MME_Reroute_NAS_Request_procedure() return boolean;
            
            /**
         * @desc Trigger a RESET event
         * @return true on success, false otherwise
         */
        external function fx_MME_Reset_procedure() return boolean;
        
garciay's avatar
garciay committed
        /**
         * @desc Trigger an ERROR INDICATION event
         * @return true on success, false otherwise
         */
        external function fx_MME_Error_Indication_procedure() return boolean;
        
        /**
         * @desc Trigger a CDMA2000 signalling event
         * @return true on success, false otherwise
         */
        external function fx_MME_Downlink_S1_CDMA2000_Tunnelling_procedure() return boolean;
garciay's avatar
garciay committed
        /**
         * @desc Trigger a Trace Start procedure
         * @return true on success, false otherwise
         */
        external function fx_MME_Trace_Start_procedure() return boolean;
garciay's avatar
garciay committed
        
        /**
         * @desc Trigger a Deactivate Trace procedure
         * @return true on success, false otherwise
         */
        external function fx_MME_Deactivate_Trace_procedure() return boolean;
garciay's avatar
garciay committed
        
        /**
         * @desc Trigger a Location Reporting Control procedure
         * @return true on success, false otherwise
         */
        external function fx_MME_Location_Reporting_Control_procedure() return boolean;
garciay's avatar
garciay committed
        
        /**
         * @desc Trigger a Write-Replace Warning procedure
         * @return true on success, false otherwise
         */
        external function fx_MME_Write_Replace_Warning_procedure() return boolean;
garciay's avatar
garciay committed
        
        /**
         * @desc Trigger a Kill procedure
         * @return true on success, false otherwise
         */
        external function fx_MME_Kill_procedure() return boolean;
garciay's avatar
garciay committed
        
        /**
         * @desc Trigger an MME Direct Information Transfer procedure
         * @return true on success, false otherwise
         */
        external function fx_MME_Direct_Information_Transfer_procedure() return boolean;
garciay's avatar
garciay committed
        
        /**
         * @desc Trigger an MME Configuration Transfer procedure
garciay's avatar
garciay committed
         * @return true on success, false otherwise
        external function fx_MME_Configuration_Transfer_procedure() return boolean;
        
        /**
         * @desc Trigger a LPPa Transport procedure using a UE associated signalling on MME
         * @param p_associated_signalling_mode Set to true for an associated signalling mode, false otherwise
garciay's avatar
garciay committed
         * @return true on success, false otherwise
            external function fx_MME_LPPa_Transport_procedure_ind(
                                                              in boolean p_associated_signalling_mode
        ) return boolean;
            
        } // End of group mmeRole
garciay's avatar
garciay committed
    group preambles {
        
        group preamble_S1AP{
garciay's avatar
garciay committed
            
            /**
             * @desc 
             * @verdict 
             */
            function f_preambleS1AP_MME()
            runs on S1APComponent {
                //TODO:...        
garciay's avatar
garciay committed
            } // End of function f_preambleS1AP_MME
garciay's avatar
garciay committed
            /**
             * @desc 
             * @verdict 
             */
            function f_preambleS1AP_eNB()
            runs on S1APComponent {
                //TODO:...        
garciay's avatar
garciay committed
            } // End of function f_preambleS1AP_eNB
            
        } // End of group preamble_S1AP
        
garciay's avatar
garciay committed
    } // End of group preambles
garciay's avatar
garciay committed
    group postambles {
garciay's avatar
garciay committed
        
        group postamble_S1AP{
garciay's avatar
garciay committed
            
            /**
             * @desc 
             * @verdict 
             */
            function f_postambleS1AP_MME()
            runs on S1APComponent {
garciay's avatar
garciay committed
                // TODO:...
            } // End of function f_postambleS1AP_MME
            
            /**
             * @desc 
             * @verdict 
             */
            function f_postambleS1AP_eNB()
            runs on S1APComponent {
garciay's avatar
garciay committed
                // TODO:...
            } // End of function f_postambleS1AP_eNB
            
        } // End of group postamble_S1AP
        
garciay's avatar
garciay committed
    } // End of group postambles
    
    /**
     * @desc Global 'altstep' statements description
     */
    group globalSteps {
        
        /**
         *  @desc    This is a test step that init S1AP component
         */
        function f_S1AP_Init_Component()
        runs on S1APComponent {
            
        } // End of function  f_S1AP_Init_Component
        
        /**
         * @desc Component termination
         */
        function f_S1AP_terminate_component()
        runs on S1APComponent {
            
            log("component terminated - forced!");
            deactivate;
            stop;
        } // End of function f_S1AP_terminate_component
        
        /**
         * @desc Component termination
         */
        function f_componentStop()
        runs on S1APComponent {
            
            syncPort.send(m_syncClientStop);
            S1_MMEeNB_P.clear;
            stop;
        } // End of function f_componentStop
        
        /**
         * @desc Original copied from older LibCommon_VerdictControl
         */
        function f_getVerdict() // FIXME Are you sure we really need it???
        return FncRetCode {
            
            var FncRetCode v_ret := e_error;
            if (getverdict == pass or getverdict == none) {
                v_ret := e_success;
            }
            return v_ret;
        } // End of function 
        
        /**
         * 
         * @desc Wait for particular time before next expected message
         */
        function f_wait(float p_time) // FIXME To be replace by LibCommon.f_sleep!!!
        runs on S1APComponent {
            
            tc_wait.start(p_time);
            alt {
                [] tc_wait.timeout{ }
            }
        } // End of function f_wait
        
    } // End of group globalSteps
garciay's avatar
garciay committed
    /**
     * @desc Default 'altstep' statements description
     */
    group defaultsTestStep {
garciay's avatar
garciay committed
        
        /**
         * @desc 
         * @verdict 
         */
        altstep a_defaultS1AP()
garciay's avatar
garciay committed
        runs on S1APComponent {
            [] any timer.timeout {
                all timer.stop;
                if (vc_serverStop==false) {
                    f_selfOrClientSyncAndVerdict("error", e_timeout);
                }
                else {
                    stop;
                }
            }
            [] S1_MMEeNB_P.receive (S1AP_PDU:{initiatingMessage := ?}) -> value vc_recvS1AP_PDUDefault {
                repeat;
            }
            [] S1_MMEeNB_P.receive (S1AP_PDU:{successfulOutcome := ?}) -> value vc_recvS1AP_PDUDefault {
                repeat;
            }
            [] S1_MMEeNB_P.receive (S1AP_PDU:{unsuccessfulOutcome := ?}) -> value vc_recvS1AP_PDUDefault {
                repeat;
            }
            [] S1_MMEeNB_P.receive (S1AP_PDU:?) -> value vc_recvS1AP_PDUDefault {
                if (vc_serverStop==false) {
                    f_selfOrClientSyncAndVerdict("error", e_error);
                }
                else {
                    stop;
                }
            }
            [] S1_MMEeNB_P.receive {
                if (vc_serverStop==false) {
                    f_selfOrClientSyncAndVerdict("error", e_error);
                }
                else {
                    stop;
                }
            }
            [] a_shutdown() {
                // Process temination on error
                log("*** a_defaultS1AP() : Process temination on error ***");
                // Terminate component execution
                stop;
            }
garciay's avatar
garciay committed
        } // End of altstep a_defaultS1AP
        
        altstep a_defaultS1AP_MME()
garciay's avatar
garciay committed
        runs on S1APComponent {
            [] any timer.timeout {
                all timer.stop;
                if (vc_serverStop==false) {
                    f_selfOrClientSyncAndVerdict("error", e_timeout);
                }
                else {
                    stop;
                }
            }
            //TODO:...
        } // End of altstep a_defaultS1AP_MME
        
        altstep a_defaultS1AP_eNB()
garciay's avatar
garciay committed
        runs on S1APComponent {
            [] any timer.timeout {
                all timer.stop;
                if (vc_serverStop==false) {
                    f_selfOrClientSyncAndVerdict("error", e_timeout);
                }
                else {
                    stop;
                }
            }
garciay's avatar
garciay committed
        } // End of altstep a_defaultS1AP_eNB
        
garciay's avatar
garciay committed
    } // End of group defaultsTestStep
garciay's avatar
garciay committed
} // End of module LibS1AP_Steps