S1AP_TCFunctions.ttcn 268 KB
Newer Older
garciay's avatar
garciay committed
         */
        group MME_Warning_message_transmission_group {
            
            /**
             * @desc Testcase function for TC_S1AP_MME_WTP_01
             */
            function f_TC_S1AP_MME_WTP_01() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a Warning Message Transmission procedure
                if (fx_MME_Write_Replace_Warning_procedure() == false) {
garciay's avatar
garciay committed
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a WRITE-REPLACE_WARNING_REQUEST
                    f_recv_Write_Replace_Warning_Request(
                        mw_write_Replace_Warning_RequestIEs(
                            PX_MESSAGE_IDENTIFIER,
                            PX_SERIAL_NUMBER,
                            PX_REPETITION_PERIOD, 
                            PX_NUMBER_OF_BROADCASTS_REQUESTED
                    ));
                    f_send_Write_Replace_Warning_Response(
                        m_write_Replace_Warning_ResponseIEs(
                            PX_MESSAGE_IDENTIFIER,
                            PX_SERIAL_NUMBER
                    ));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_WTP_01
            
            /**
             * @desc Testcase function for TC_S1AP_MME_WTP_02
             */
            function f_TC_S1AP_MME_WTP_02() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
garciay's avatar
garciay committed
                // Preamble action: A warning message procedure is exchanged
garciay's avatar
garciay committed
                f_writeReplaceWarningExchanges(); 
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a Warning Message Transmission procedure
                if (fx_MME_Kill_procedure() == false) {
garciay's avatar
garciay committed
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a KILLG_REQUEST
                    f_recv_Kill_Request(
                        mw_kill_RequestIEs(
                            PX_MESSAGE_IDENTIFIER,
                            PX_SERIAL_NUMBER
                    ));
                    f_send_Kill_Response(
                        m_kill_ResponseIEs(
                            PX_MESSAGE_IDENTIFIER,
                            PX_SERIAL_NUMBER
                    ));
                    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_WTP_02
            
        } // End of group MME_Warning_message_transmission_group 


        /**
         * @desc eNB direct information transfer group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.13  eNB direct information transfer group
         */
        group ENB_direct_information_transfer_group {
            
        } // End of group ENB_direct_information_transfer_group 


garciay's avatar
garciay committed
        
        /**
         * @desc MME direct information transfer group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.14  MME direct information transfer group
         */
        group MME_direct_information_transfer_group {
            
            /**
             * @desc Testcase function for TC_S1AP_MME_MIT_01
             */
            function f_TC_S1AP_MME_MIT_01() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate an MME Direct Information Transfer procedure
                if (fx_MME_Direct_Information_Transfer_procedure() == false) {
garciay's avatar
garciay committed
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a MME_DIRECT_INFORMATION_TRANSFER
                    f_recv_Mme_Direct_Information_Transfer(
                        mw_mMEDirectInformationTransfer(
                            mw_Inter_SystemInformationTransferType(
                                mw_RIMTransfer(
                                    ? // FIXME To be refined
                    ))));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_MIT_01
            
        } // End of group MME_direct_information_transfer_group 

        
        /**
         * @desc eNB configuration transfer group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.15  eNB configuration transfer group
         */
        group ENB_configuration_transfer_group {
            
        } // End of group ENB_configuration_transfer_group 


garciay's avatar
garciay committed
        
        /**
         * @desc MME configuration transfer group
garciay's avatar
garciay committed
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.16 MME configuration transfer group
         */
        group MME_configuration_transfer_group {
            
            /**
             * @desc Testcase function for TC_S1AP_MME_MCT_01
             */
            function f_TC_S1AP_MME_MCT_01() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate an MME Configuration Transfer procedure
                if (fx_MME_Configuration_Transfer_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a MME_CONFIGURATION_TRANSFER
                    f_recv_Mme_Configuration_Transfer(
                        mw_sON_Configuration_Transfer_MCT(
                            mw_sON_Configuration_Transfer(
garciay's avatar
garciay committed
                                mw_TargeteNB_ID(mw_Global_eNB_ID, mw_TAI),
                                mw_SourceeNB_ID(mw_Global_eNB_ID, mw_TAI),
                                ? // FIXME To be refined
                    )));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_MCT_01
            
        } // End of group MME_configuration_transfer_group 
        
        /**
         * @desc LPPa transport group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.17  LPPa transport group
         */
        group LPPa_transport_group {
            
            /**
             * @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