Commit b4ba09b3 authored by garciay's avatar garciay
Browse files

STF519: Week #12, Finalise Management group

parent 11cfa595
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -61,6 +61,12 @@ module LibS1AP_Pixits {
     */
    modulepar PLMNidentity PX_PLMN_IDENTITY := '000000'O;
    
    /** 
     * @desc An unknown PLMNidentity indicates the PLMN Identity (Public land mobile network).
     * @see ETSI TS 136 413 Clause 9.2.3.8 PLMN Identity
     */
    modulepar PLMNidentity PX_PLMN_IDENTITY_UNKNOWN := 'f00000'O;
    
    /** 
     * @desc eNB Identity.
     * @see ETSI TS 136 413 Clause 9.2.1.37 Global eNB ID
@@ -69,6 +75,14 @@ module LibS1AP_Pixits {
        homeENB_ID := '0000000000000000000000000000'B
    };
    
    /** 
     * @desc eNB Identity.
     * @see ETSI TS 136 413 Clause 9.2.1.37 Global eNB ID
     */
    modulepar ENB_ID PX_eNB_ID_UNKNOWN := {
        homeENB_ID := '1100000000000000000000000000'B
    };
    
    /** 
     * @desc Cell Identity.
     */
@@ -183,5 +197,10 @@ module LibS1AP_Pixits {
     */
    modulepar PagingDRX PX_PAGING_DRX := v256;
    
    /** @desc The identifier of the Closed Subscriber Group, as defined in TS 23.003.
     * @see ETSI TS 136 413 Clause 9.2.1.62 CSG Id
     */
    modulepar Bit27 PX_CGS_ID := '000000000000000000000000000'B;
    
} // End of module LibS1AP_Pixits
+130 −2
Original line number Diff line number Diff line
@@ -150,8 +150,8 @@ module LibS1AP_Steps {
        } // End of f_recv_E_RABSetupResponse
        
        /**
         * @desc Receive S1AP Message RESET ACKNOWLEDGE
         * @param p_value Receive template for RESET ACKNOWLEDGE IEs
         * @desc Receive S1AP Message S1 SETUP REQUEST
         * @param p_value Receive template for S1 SETUP REQUEST IEs
         */
        function f_recv_S1_Setup_Request(
                                          template (present) RecordOf_ProtocolIE p_value := ?
@@ -159,6 +159,36 @@ module LibS1AP_Steps {
            f_recv_S1AP_initiatingMessage(mw_s1_Setup_Request(p_value))
        } // End of f_recv_S1_Setup_Request
        
        /**
         * @desc Receive S1AP Message ENB CONFIGURATION UPDATE
         * @param p_value Receive template for ENB CONFIGURATION UPDATE IEs
         */
        function f_recv_eNB_Configuration_Update(
                                                 template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_eNB_Configuration_Update(p_value))
        } // End of f_recv_eNB_Configuration_Update
        
        /**
         * @desc Receive S1AP Message OVERLOAD START
         * @param p_value Receive template for OVERLOAD START IEs
         */
        function f_recv_eNB_Overload_Start(
                                           template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_eNB_Overload_Start(p_value))
        } // End of f_recv_eNB_Overload_Start
        
        /**
         * @desc Receive S1AP Message OVERLOAD STOP
         * @param p_value Receive template for OVERLOAD STOP IEs
         */
        function f_recv_eNB_Overload_Stop(
                                          template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_eNB_Overload_Stop(p_value))
        } // End of f_recv_eNB_Overload_Stop
        
        /**
         * @desc Receive S1AP Message ERROR_INDICATION
         * @param p_value Receive template for ERROR_INDICATION IEs
@@ -179,6 +209,56 @@ module LibS1AP_Steps {
            f_recv_S1AP_successfulOutcome(mw_s1_Setup_Response(p_value))
        } // End of f_recv_S1_Setup_Response
        
        /**
         * @desc Receive S1AP Message S1 SETUP FAILURE
         * @param p_value Receive template for S1 SETUP FAILURE IEs
         */
        function f_recv_S1_Setup_Failure(
                                         template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_successfulOutcome(mw_s1_Setup_Failure(p_value))
        } // End of f_recv_S1_Setup_Failure
        
        /**
         * @desc Receive S1AP Message ENB CONFIGURATION UPDATE ACKNOWLEDGE
         * @param p_value Receive template for ENB CONFIGURATION UPDATE ACKNOWLEDGE IEs
         */
        function f_recv_eNB_Configuration_Update_Acknowledge(
                                                             template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_successfulOutcome(mw_eNB_Configuration_Update_Acknowledge(p_value))
        } // End of f_recv_eNB_Configuration_Update_Acknowledge
        
        /**
         * @desc Receive S1AP Message ENB CONFIGURATION UPDATE FAILURE
         * @param p_value Receive template for ENB CONFIGURATION UPDATE FAILURE IEs
         */
        function f_recv_eNB_Configuration_Update_Failure(
                                                         template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_successfulOutcome(mw_eNB_Configuration_Update_Failure(p_value))
        } // End of f_recv_eNB_Configuration_Update_Failure
        
        /**
         * @desc Receive S1AP Message MME CONFIGURATION UPDATE ACKNOWLEDGE
         * @param p_value Receive template for MME CONFIGURATION UPDATE ACKNOWLEDGE IEs
         */
        function f_recv_MME_Configuration_Update_Acknowledge(
                                                             template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_successfulOutcome(mw_mME_Configuration_Update_Acknowledge(p_value))
        } // End of f_recv_MME_Configuration_Update_Acknowledge
        
        /**
         * @desc Receive S1AP Message MME CONFIGURATION UPDATE FAILURE
         * @param p_value Receive template for MME CONFIGURATION UPDATE FAILURE IEs
         */
        function f_recv_MME_Configuration_Update_Failure(
                                                         template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_successfulOutcome(mw_mME_Configuration_Update_Failure(p_value))
        } // End of f_recv_MME_Configuration_Update_Failure
        
        /**
         * @desc Receive S1AP Message RESET
         * @param p_value Receive template for RESET IEs
@@ -556,6 +636,16 @@ module LibS1AP_Steps {
            f_send_S1AP_successfulOutcome(m_s1_Setup_Response(p_value))
        } // End of function f_send_S1_Setup_Response
        
        /**
         * @desc Send S1AP Message ENB CONFIGURATION UPDATE ACKNOWLEDGE
         * @param p_value Send template with IE for ENB CONFIGURATION UPDATE ACKNOWLEDGE
         */
        function f_send_eNB_Configuration_Update_Acknowledge(
                                                             in template (value) RecordOf_ProtocolIE p_value
        ) runs on S1APComponent {
            f_send_S1AP_successfulOutcome(m_eNB_Configuration_Update_Acknowledge(p_value))
        } // End of function f_send_eNB_Configuration_Update_Acknowledge
        
        /**
         * @desc Send S1AP Message RESET
         * @param p_value Send template with IE for RESET
@@ -576,6 +666,26 @@ module LibS1AP_Steps {
            f_send_S1AP_initiatingMessage(m_s1_Setup_Request(p_value))
        } // End of function f_send_S1_Setup_Request
        
        /**
         * @desc Send S1AP Message ENB CONFIGURATION UPDATE
         * @param p_value Send template with IE for ENB CONFIGURATION UPDATE 
         */
        function f_send_eNB_Configuration_Update(
                                                 in template (value) RecordOf_ProtocolIE p_value
        ) runs on S1APComponent {
            f_send_S1AP_initiatingMessage(m_eNB_Configuration_Update(p_value))
        } // End of function f_send_eNB_Configuration_Update
        
        /**
         * @desc Send S1AP Message MME CONFIGURATION UPDATE 
         * @param p_value Send template with IE for MME CONFIGURATION UPDATE
         */
        function f_send_MME_Configuration_Update(
                                                 in template (value) RecordOf_ProtocolIE p_value
        ) runs on S1APComponent {
            f_send_S1AP_initiatingMessage(m_mME_Configuration_Update(p_value))
        } // End of function f_send_MME_Configuration_Update
        
        /**
         * @desc Send S1AP Message TRACE START
         * @param p_value Send template with IE for TRACE START
@@ -749,6 +859,24 @@ module LibS1AP_Steps {
         */
        external function fx_eNB_S1_Setup_Request_procedure() return boolean;
        
        /**
         * @desc Trigger an eNB Configuration Update procedure
         * @return true on success, false otherwise
         */
        external function fx_eNB_Configuration_Update_procedure() return boolean;
        
        /**
         * @desc Trigger an an Overload Start procedure
         * @return true on success, false otherwise
         */
        external function fx_eNB_Overload_Start_procedure() return boolean;
        
        /**
         * @desc Trigger an an Overload Stop procedure
         * @return true on success, false otherwise
         */
        external function fx_eNB_Overload_Stop_procedure() return boolean;
        
        /**
         * @desc Trigger an Error Indication procedure
         * @return true on success, false otherwise
+370 −18

File changed.

Preview size limit exceeded, changes collapsed.

+366 −0
Original line number Diff line number Diff line
@@ -16,6 +16,14 @@ module S1AP_TCFunctions {
    import from LibCommon_VerdictControl all;

    // LibS1AP
    // LibS1AP
    import from S1AP_Constants language "ASN.1:1997" all;
    import from S1AP_CommonDataTypes language "ASN.1:1997" all;
    // import from S1AP_Containers language "ASN.1:1997" all;
    import from S1AP_IEs language "ASN.1:1997" all;
    import from S1AP_PDU_Contents language "ASN.1:1997" all;
    import from S1AP_PDU_Descriptions language "ASN.1:1997" all;
    
    import from LibS1AP_Pixits all;
    //import from LibS1AP_TypesAndValues all;
    import from LibS1AP_Templates all;
@@ -456,6 +464,127 @@ module S1AP_TCFunctions {
                
            } // End of function f_TC_S1AP_eNB_MNP_05
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_TRP_06
             */
            function f_TC_S1AP_eNB_MNP_06() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate an eNB Configuration Update procedure
                if (fx_eNB_Configuration_Update_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends an ENB_CONFIGURATION_UPDATE
                    f_recv_eNB_Configuration_Update(
                        mw_eNB_Configuration_UpdateIEs(
                            mw_Global_eNB_ID(
                                PX_PLMN_IDENTITY, 
                                PX_eNB_ID
                            ),
                            {
                                mw_supportedTAs_Item(
                                    PX_TAC,
                                    {
                                        PX_PLMN_IDENTITY
                                    } 
                                )
                            }
                    ));
                    // Send the acknowledge to finalyse the procedure
                    f_send_eNB_Configuration_Update_Acknowledge(
                        m_eNB_Configuration_Update_AcknowledgeIEs
                    );
                }
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_MNP_06
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_TRP_07
             */
            function f_TC_S1AP_eNB_MNP_07() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_MME_Configuration_Update(
                    m_mME_Configuration_UpdateIEs(
                        {
                            m_servedGUMMEIsItem(
                                { PX_PLMN_IDENTITY },
                                { PX_MME_GROUP_ID },
                                { PX_MME_CODE }
                            )
                        } 
                ));
                
                f_recv_MME_Configuration_Update_Acknowledge(
                    mw_mME_Configuration_Update_AcknowledgeIEs
                );
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_MNP_07
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_TRP_08
             */
            function f_TC_S1AP_eNB_MNP_08() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_MME_Configuration_Update(
                    m_mME_Configuration_UpdateIEs(
                        {
                            m_servedGUMMEIsItem(
                                { 
                                    PX_PLMN_IDENTITY,
                                    PX_PLMN_IDENTITY_UNKNOWN
                                },
                                { PX_MME_GROUP_ID },
                                { PX_MME_CODE }
                            )
                        } 
                ));
                
                f_recv_MME_Configuration_Update_Failure(
                    mw_mME_Configuration_Update_FailureIEs(
                        mw_cause_misc(
                            unknown_PLMN
                )));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_MNP_08
            
        } // End of group Management_group 
        
        /**
@@ -1375,6 +1504,7 @@ module S1AP_TCFunctions {
                            ))*/
                        }
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_postamble_S1AP_MME();
@@ -1412,6 +1542,7 @@ module S1AP_TCFunctions {
                            ))*/
                        }
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_postamble_S1AP_MME();
@@ -1491,6 +1622,7 @@ module S1AP_TCFunctions {
                        }, 
                        PX_RELATIVE_MME_CAPAVCITY
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_postamble_S1AP_MME();
@@ -1499,6 +1631,240 @@ module S1AP_TCFunctions {
                
            } // End of function f_TC_S1AP_MME_MNP_05
            
            /**
             * @desc Testcase function for TC_S1AP_MME_MNP_06
             */
            function f_TC_S1AP_MME_MNP_06() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_S1_Setup_Request(
                    m_s1_Setup_RequestIEs(
                        m_Global_eNB_ID(
                            PX_PLMN_IDENTITY, 
                            PX_eNB_ID
                        ),
                        {
                            m_supportedTAs_Item(
                                PX_TAC,
                                {
                                    PX_PLMN_IDENTITY,
                                    PX_PLMN_IDENTITY_UNKNOWN
                                } 
                            )
                        },
                        PX_PAGING_DRX
                ));
                f_recv_S1_Setup_Failure(
                    mw_s1_Setup_FailureIEs(
                        mw_cause_misc(
                            unknown_PLMN
                )));
                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_MNP_06
            
            /**
             * @desc Testcase function for TC_S1AP_MME_MNP_07
             */
            function f_TC_S1AP_MME_MNP_07() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_eNB_Configuration_Update(
                    m_eNB_Configuration_UpdateIEs(
                        m_Global_eNB_ID(
                            PX_PLMN_IDENTITY, 
                            PX_eNB_ID
                        ),
                        {
                            m_supportedTAs_Item(
                                PX_TAC,
                                {
                                    PX_PLMN_IDENTITY
                                } 
                            )
                        }
                ));
                f_recv_eNB_Configuration_Update_Acknowledge(
                    mw_mME_Configuration_Update_AcknowledgeIEs
                );
                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_MNP_07
            
            /**
             * @desc Testcase function for TC_S1AP_MME_MNP_08
             */
            function f_TC_S1AP_MME_MNP_08() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_mme_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                f_send_eNB_Configuration_Update(
                    m_eNB_Configuration_UpdateIEs(
                        m_Global_eNB_ID(
                            PX_PLMN_IDENTITY_UNKNOWN, 
                            PX_eNB_ID_UNKNOWN
                        ),
                        {
                            m_supportedTAs_Item(
                                PX_TAC,
                                {
                                    PX_PLMN_IDENTITY_UNKNOWN
                                } 
                            )
                        }
                ));
                f_recv_eNB_Configuration_Update_Failure(
                    mw_eNB_Configuration_Update_FailureIEs(
                        mw_cause_misc(
                            unknown_PLMN
                )));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_MNP_08
            
            /**
             * @desc Testcase function for TC_S1AP_MME_MNP_09
             */
            function f_TC_S1AP_MME_MNP_09() 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 eNB Configuration Update procedure
                if (fx_eNB_Configuration_Update_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends an ENB Configuration Update
                    f_recv_eNB_Configuration_Update(
                        mw_eNB_Configuration_UpdateIEs(
                            mw_Global_eNB_ID(
                                PX_PLMN_IDENTITY, 
                                PX_eNB_ID
                            ),
                            {
                                mw_supportedTAs_Item(
                                    PX_TAC,
                                    {
                                        PX_PLMN_IDENTITY
                                    } 
                                )
                            }
                    ));
                    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_MNP_09
            
            /**
             * @desc Testcase function for TC_S1AP_MME_MNP_10
             */
            function f_TC_S1AP_MME_MNP_10() 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 Overload Start procedure
                if (fx_eNB_Overload_Start_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends an OVERLOAD_START
                    f_recv_eNB_Overload_Start(
                        mw_eNB_Overload_StartIEs(
                            mw_OverloadResponse(
                                reject_non_emergency_mo_dt 
                    )));
                    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_MNP_10
            
            /**
             * @desc Testcase function for TC_S1AP_MME_MNP_11
             */
            function f_TC_S1AP_MME_MNP_11() 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 Overload Stop procedure
                if (fx_eNB_Overload_Stop_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends an OVERLOAD_STOP
                    f_recv_eNB_Overload_Stop(
                        mw_eNB_Overload_StopIEs(
                            { 
                                mw_gUMMEI(
                                    -,
                                    -,
                                    -
                                )
                            } 
                    ));
                    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_MNP_11
            
        } // End of group Management_group
        
        /**
+368 −10

File changed.

Preview size limit exceeded, changes collapsed.

Loading