S1AP_TCFunctions.ttcn 303 KB
Newer Older
            
            /**
             * @desc Testcase function for TC_S1AP_MME_LPP_01
             */
            function f_TC_S1AP_MME_LPP_01() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a LPPa Transport procedure using a UE associated signalling
                if (fx_MME_LPPa_Transport_procedure_ind(true) == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a DOWNLINK_UE_ASSOCIATED_LPPA_TRANSPORT
                    f_recv_Downlink_UE_Associated_Lppa_Transport(
                        mw_DownlinkUEAssociatedLppaTransportIEs_LPPa_PDU(
                            ?
                    ));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_LPP_01
            
            /**
             * @desc Testcase function for TC_S1AP_MME_LPP_02
             */
            function f_TC_S1AP_MME_LPP_02() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a LPPa Transport procedure using a UE associated signalling
                if (fx_MME_LPPa_Transport_procedure_ind(false) == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a DOWNLINK_NONE_UE_ASSOCIATED_LPPA_TRANSPORT
                    f_recv_Downlink_Non_UE_Associated_Lppa_Transport(
                        mw_DownlinkNonUEAssociatedLppaTransportIEs_LPPa_PDU(
                            ?
                    ));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_LPP_02
            
        } // End of group LPPa_transport_group 
         * @desc Unknown, Unforseen and Erroneous Protocol Data
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.18  Unknown, Unforseen and Erroneous Protocol Data
         */
        group Unknown_unforseen_errorneous_group {
garciay's avatar
garciay committed
            /**
             * @desc Testcase function for TC_S1AP_MME_ERR_01
             */
            function f_TC_S1AP_MME_ERR_01() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. on receipt of a UE_CONTEXT_RESUME_REQUEST
                f_send_Ue_Context_Resume_Request(
                    m_UeContextResumeRequestIEs_RABFailedToResumeItem(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
garciay's avatar
garciay committed
                        { 
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                        }
garciay's avatar
garciay committed
                    ),
                    PX_VA_CRITICALITY
                ); 
                // 2. sends an ERROR_INDICATION
                f_recv_Error_Indication(
                    mw_error_IndicationIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        mw_criticalityDiagnostics_IE(
                            mw_criticalityDiagnostics(
                                PX_PROCEURE_CODE,
                                PX_TRIGGERING_CODE,
                                PX_CRITICALITY
                            )
                        )
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_ERR_01
            
            /**
             * @desc Testcase function for TC_S1AP_MME_ERR_02
             */
            function f_TC_S1AP_MME_ERR_02() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. on receipt of a UE_CONTEXT_RESUME_REQUEST
                f_send_Ue_Context_Resume_Request(
                    m_UeContextResumeRequestIEs_Unknown_ID(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
garciay's avatar
garciay committed
                        { 
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                        }
                )); 
garciay's avatar
garciay committed
                // 2. sends an UE_CONTEXT_RESUME_FAILURE
                f_recv_Ue_Context_Resume_Failure(
                    mw_UeContextResumeFailureIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        mw_cause_protocol(unspecified),
                        mw_criticalityDiagnostics(
garciay's avatar
garciay committed
                            ?,
                            ?,
                            ?,
garciay's avatar
garciay committed
                            { 
                                mw_criticalityDiagnostics_IE_Item(
                                    reject, 
                                    -, 
                                    missing
                                ) 
                            }
                        )
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_ERR_02
            
            /**
             * @desc Testcase function for TC_S1AP_MME_ERR_03
             */
            function f_TC_S1AP_MME_ERR_03() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. on receipt of a E-RAB_MODIFICATION_INDICATION
garciay's avatar
garciay committed
                f_send_E_RABModifiedInd(
                   m_E_RABModifiedIndIEs_Unknown_ID(
garciay's avatar
garciay committed
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        {
                            m_E_RABToBeModifiedItemBearerModInd(
                                c_E_RAB_ID_A,
                                -,
                                -
                            )
                        }
                )); 
garciay's avatar
garciay committed
                // 2. sends an ERROR_INDICATION
                f_recv_Error_Indication(
                    mw_error_IndicationIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        mw_criticalityDiagnostics_IE(
                            mw_criticalityDiagnostics(
                                PX_PROCEURE_CODE,
                                PX_TRIGGERING_CODE,
                                PX_CRITICALITY,
                                { 
                                    mw_criticalityDiagnostics_IE_Item(
                                        reject, 
                                        -, 
                                        missing
                                    ) 
                                }
                            )
                        )
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_ERR_03
garciay's avatar
garciay committed
            /**
             * @desc Testcase function for TC_S1AP_MME_ERR_04
             */
            function f_TC_S1AP_MME_ERR_04() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. on receipt of a UE_CONTEXT_RESUME_REQUEST
                f_send_Ue_Context_Resume_Request(
                    m_UeContextResumeRequestIEs_no_eNB(
                        vc_MME_UE_ID,
                        { 
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                        }
                )); 
                // 2. sends an UE_CONTEXT_RESUME_FAILURE
                f_recv_Ue_Context_Resume_Failure(
                    mw_UeContextResumeFailureIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        mw_cause_protocol(unspecified),
                        mw_criticalityDiagnostics(
                            ?,
                            ?,
                            ?,
                            { 
                                mw_criticalityDiagnostics_IE_Item(
                                    reject, 
                                    -, 
                                    missing
                                ) 
                            }
                        )
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_ERR_04
garciay's avatar
garciay committed
            /**
             * @desc Testcase function for TC_S1AP_MME_ERR_05
             */
            function f_TC_S1AP_MME_ERR_05() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. on receipt of a E-RAB_MODIFICATION_INDICATION
                f_send_E_RABModifiedInd(
                    m_E_RABModifiedIndIEs_no_eNB(
                        vc_MME_UE_ID,
                        {
                            m_E_RABToBeModifiedItemBearerModInd(
                                c_E_RAB_ID_A,
                                -,
                                -
                            )
                        }
                )); 
                // 2. sends an ERROR_INDICATION
                f_recv_Error_Indication(
                    mw_error_IndicationIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        mw_criticalityDiagnostics_IE(
                            mw_criticalityDiagnostics(
                                PX_PROCEURE_CODE,
                                PX_TRIGGERING_CODE,
                                PX_CRITICALITY,
                                { 
                                    mw_criticalityDiagnostics_IE_Item(
                                        reject, 
                                        -, 
                                        missing
                                    ) 
                                }
                            )
                        )
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_ERR_05
            
            /**
             * @desc Testcase function for TC_S1AP_MME_ERR_06
             */
            function f_TC_S1AP_MME_ERR_06() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. on receipt of a UE_CONTEXT_RESUME_REQUEST
                f_send_Ue_Context_Resume_Request(
                    m_UeContextResumeRequestIEs_duplicate_ENB(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        { 
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                        }
                )); 
                // 2. sends an UE_CONTEXT_RESUME_FAILURE
                f_recv_Ue_Context_Resume_Failure(
                    mw_UeContextResumeFailureIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        mw_cause_protocol(abstract_syntax_error_falsely_constructed_message),
                        mw_criticalityDiagnostics(
                            ?,
                            ?,
                            ?
                        )
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_ERR_06
            
            /**
             * @desc Testcase function for TC_S1AP_MME_ERR_07
             */
            function f_TC_S1AP_MME_ERR_07() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. on receipt of a E-RAB_MODIFICATION_INDICATION
                f_send_E_RABModifiedInd(
                    m_E_RABModifiedIndIEs_duplicate_eNB(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        {
                            m_E_RABToBeModifiedItemBearerModInd(
                                c_E_RAB_ID_A,
                                -,
                                -
                            )
                        }
                )); 
                // 2. sends an ERROR_INDICATION
                f_recv_Error_Indication(
                    mw_error_IndicationIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        mw_cause_IE(
                            mw_cause_protocol(
                                abstract_syntax_error_falsely_constructed_message
                ))));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_ERR_07
        } // End of group Unknown_unforseen_errorneous_group
garciay's avatar
garciay committed
    } // End of group MME_Role
garciay's avatar
garciay committed
} // End of module S1AP_TCFunctions