Commit eaf9f26e authored by schmitting's avatar schmitting
Browse files

End of validation week 08/2015

parent 2df86edc
Loading
Loading
Loading
Loading
+143 −33
Original line number Diff line number Diff line
@@ -1143,6 +1143,7 @@ module DiameterS6a_HSS_TCFunctions {
         */
        function f_TC_HSS_PUE_03() runs on DiameterComponent {
            // Local variables
            var Feature_List_AVP v_feature_List;
            
            // Preamble
            f_preamble_HSS();
@@ -1161,7 +1162,7 @@ module DiameterS6a_HSS_TCFunctions {
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(2),
                        md_ulr_Flags_AVP(18), // S6a interface, combined MME/SGSN
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
@@ -1173,16 +1174,23 @@ module DiameterS6a_HSS_TCFunctions {
                    mdw_ulaBodyAvps_supportedFeatures( 
                      mw_supportedFeatures      //     containing a SupportedFeatures AVP
            )));
            v_feature_List := valueof ( vc_recvDiamMsg.uLA_MSG.uLA_Body.supported_Features.[0].feature_list);
            if(match(int2bit(v_feature_List.aVP_Data, 32),'??1?????????????????????????????'B)){
                setverdict(pass, "ULA Feature List set correctly, Partial Purge set");
            } 
            else {
                setverdict(fail, "ULA Feature List is not set correctly, Partial Purge not set");
            };
                
            log("*** " & __SCOPE__ & ": INFO: Expected UL-Answer message was received. ***");
            // Trigger a PU-Request
            f_send_PUER(                                            // and, the IUT receives a PU-Request
                md_PUER( 
                    vc_sessionId,                                   // containing a Session-ID AVP
                    md_purBodyAvps_puer_Flags(
                        md_auth_Session_State_noStateMaintained,    // containing an Auth-Session-State AVP indicating NO_STATE_MAINTAINED
                        m_originHost(                                       // containing an Origin-Host AVP
                            PX_STORED_MME_SGSN),                            //     indicating stored MME identity and stored SGSN identity
                        vc_originHost,                              // containing an Origin-Host AVP
                        vc_originRealm,                             // containing an Origin-Realm AVP
                        vc_destinationRealm,                        // containing a Destination-Realm AVP
                        m_userName(                                 // containing a User-Name AVP
                            PX_USR_NAME),                           //     indicating known IMSI
                        m_puerFlags_AVP(1)                          // containing a PUR-Flags AVP with “freeze M-TMSI” bit set
@@ -1211,6 +1219,7 @@ module DiameterS6a_HSS_TCFunctions {
         */
        function f_TC_HSS_PUE_04() runs on DiameterComponent {
            // Local variables
            var Feature_List_AVP v_feature_List;
            
            // Preamble
            f_preamble_HSS();
@@ -1229,7 +1238,7 @@ module DiameterS6a_HSS_TCFunctions {
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(2),
                        md_ulr_Flags_AVP(18), // S6a interface, combined MME/SGSN
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
@@ -1241,16 +1250,23 @@ module DiameterS6a_HSS_TCFunctions {
                    mdw_ulaBodyAvps_supportedFeatures( 
                      mw_supportedFeatures      //     containing a SupportedFeatures AVP
            )));
            v_feature_List := valueof ( vc_recvDiamMsg.uLA_MSG.uLA_Body.supported_Features.[0].feature_list);
            if(match(int2bit(v_feature_List.aVP_Data, 32),'??1?????????????????????????????'B)){
                setverdict(pass, "ULA Feature List set correctly, Partial Purge set");
            } 
            else {
                setverdict(fail, "ULA Feature List is not set correctly, Partial Purge not set");
            };

            log("*** " & __SCOPE__ & ": INFO: Expected UL-Answer message was received. ***");
            // Trigger a PU-Request
            f_send_PUER(                                                  // and, the IUT receives a PU-Request
                md_PUER( 
                    vc_sessionId,                                         // containing a Session-ID AVP
                    md_purBodyAvps_puer_Flags(
                        md_auth_Session_State_noStateMaintained,
                        m_originHost(                                     // containing an Origin-Host AVP
                            PX_STORED_MME_SGSN),                          //     indicating stored MME identity and stored SGSN identity
                        vc_originHost,                              // containing an Origin-Host AVP
                        vc_originRealm,                                   // containing an Origin-Realm AVP
                        vc_destinationRealm,                              // containing a Destination-Realm AVP
                        m_userName(                                       // containing a User-Name AVP
                            PX_USR_NAME),                                 //     indicating known IMSI
                        m_puerFlags_AVP(2)                                // containing a PUR-Flags AVP with “UE Purged in SGSN” bit set
@@ -1279,6 +1295,7 @@ module DiameterS6a_HSS_TCFunctions {
         */
        function f_TC_HSS_PUE_05() runs on DiameterComponent {
            // Local variables
            var Feature_List_AVP v_feature_List;
            
            // Preamble
            f_preamble_HSS();
@@ -1286,14 +1303,44 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
            
            // Test Body
            // Clause 'when': the IUT receives a UL-Request
            f_send_ULR(
                md_ULR( 
                    vc_sessionId,
                    md_ulrBodyAvps(
                        md_auth_Session_State_noStateMaintained,
                        vc_originHost,
                        vc_originRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(18), // S6a interface, combined MME/SGSN
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
            );
            
            // Clause 'then': 
            f_awaiting_ULA(mdw_ULA(?,mw_S6a_ULA_Body_dummy));
            if(ispresent(vc_recvDiamMsg.uLA_MSG.uLA_Body.supported_Features.[0]))
            {
                v_feature_List := valueof ( vc_recvDiamMsg.uLA_MSG.uLA_Body.supported_Features.[0].feature_list);
                if(match(int2bit(v_feature_List.aVP_Data, 32),'??1?????????????????????????????'B)){
                    setverdict(fail, "ULA Feature List is not set correctly, Partial Purge set");
                }
             }
            else {
                setverdict(pass, "Partial Purge not supported");
            };
            // Clause 'when': the IUT receives a PU-Request
            f_send_PUER(
                md_PUER( 
                    vc_sessionId,
                    md_purBodyAvps_puer_Flags(
                        md_auth_Session_State_noStateMaintained,
                        m_originHost(                               // containing an Origin-Host AVP
                            PX_STORED_MME_SGSN),                    //     indicating stored MME identity and stored SGSN identity
                        vc_originHost,                              // containing an Origin-Host AVP
                        vc_originRealm,                             // containing an Origin-Realm AVP
                        vc_destinationRealm,                        // containing a Destination-Realm AVP
                        m_userName(                                 // containing a User-Name AVP
                            PX_USR_NAME),                           //     indicating known IMSI
                        m_puerFlags_AVP(3)                          // a PUR-Flags AVP with “UE Purged in MME” bit set and with “UE Purged in SGSN” bit set
@@ -1330,14 +1377,35 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
            
            // Test Body
            // Clause 'when': the IUT receives a UL-Request
            f_send_ULR(
                md_ULR( 
                    vc_sessionId,
                    md_ulrBodyAvps(
                        md_auth_Session_State_noStateMaintained,
                        vc_originHost,
                        vc_originRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(18), // S6a interface, combined MME/SGSN
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
            );
            
            // Clause 'then': 
            f_awaiting_ULA(mdw_ULA(?,mw_S6a_ULA_Body_dummy));
            
            // Clause 'when': the IUT receives a PU-Request
            f_send_PUER(
                md_PUER( 
                    vc_sessionId,
                    md_purBodyAvps_puer_Flags(
                        md_auth_Session_State_noStateMaintained,
                        m_originHost(                                               // containing an Origin-Host AVP
                            PX_STORED_MME_NOT_SGSN),                                //     indicating stored MME identity and not stored SGSN identity
                        vc_originHost,                              // containing an Origin-Host AVP
                        vc_originRealm,                             // containing an Origin-Realm AVP
                        vc_destinationRealm,                        // containing a Destination-Realm AVP
                        m_userName(                                 // containing a User-Name AVP
                            PX_USR_NAME),                           //     indicating known IMSI
                        m_puerFlags_AVP(1)                          // containing a PUR-Flags AVP with “UE Purged in MME” bit set
@@ -1374,14 +1442,35 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
            
            // Test Body
            // Clause 'when': the IUT receives a UL-Request
            f_send_ULR(
                md_ULR( 
                    vc_sessionId,
                    md_ulrBodyAvps(
                        md_auth_Session_State_noStateMaintained,
                        vc_originHost,
                        vc_originRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(18), // S6a interface, combined MME/SGSN
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
            );
            
            // Clause 'then': 
            f_awaiting_ULA(mdw_ULA(?,mw_S6a_ULA_Body_dummy));

            // Clause 'when': the IUT receives a PU-Request
            f_send_PUER(
                md_PUER( 
                    vc_sessionId,
                    md_purBodyAvps_puer_Flags(
                        md_auth_Session_State_noStateMaintained,
                        m_originHost(                         // containing an Origin-Host AVP
                            PX_STORED_SGSN_NOT_MME),          //     indicating stored SGSN-identity and not stored MME-identity
                        vc_originHost,                              // containing an Origin-Host AVP
                        vc_originRealm,                       // containing an Origin-Realm AVP
                        vc_destinationRealm,                  // containing a Destination-Realm AVP
                        m_userName(                           // containing a User-Name AVP
                            PX_USR_NAME),                     //     indicating known IMSI
                        m_puerFlags_AVP(2)                    // containing a PUR-Flags AVP with “UE Purged in MME” bit set
@@ -1424,8 +1513,9 @@ module DiameterS6a_HSS_TCFunctions {
                    vc_sessionId,
                    md_purBodyAvps_puer_Flags(
                        md_auth_Session_State_noStateMaintained,
                        m_originHost(                       // containing an Origin-Host AVP
                            PX_STORED_SGSN_NOT_MME),        //     indicating not stored SGSN-identity and not stored MME-identity
                        vc_originHost,                      // containing an Origin-Host AVP
                        vc_originRealm,                     // containing an Origin-Realm AVP
                        vc_destinationRealm,                // containing a Destination-Realm AVP
                        m_userName(                         // containing a User-Name AVP
                            PX_USR_NAME),                   //     indicating known IMSI
                        m_puerFlags_AVP(0)
@@ -2871,6 +2961,26 @@ module DiameterS6a_HSS_TCFunctions {
            log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                        
            // Test Body
            // Clause 'when': the IUT receives a UL-Request
            f_send_ULR(
                md_ULR( 
                    vc_sessionId,
                    md_ulrBodyAvps(
                        md_auth_Session_State_noStateMaintained,
                        vc_originHost,
                        vc_originRealm,
                        vc_destinationRealm,
                        m_userName(PX_USR_NAME),
                        m_rAT_Type(PX_RAT_TYPE),
                        md_ulr_Flags_AVP(18), // S6a interface, combined MME/SGSN
                        m_visitedPLMNId_dummy
                    ) // End of md_ulrBodyAvps
                ) // End of md_ULR
            );
            
            // Clause 'then': 
            f_awaiting_ULA(mdw_ULA(?,mw_S6a_ULA_Body_dummy));
            
            // Clause 'when'
            f_send_AIR(
                md_AIR( 
+0 −18
Original line number Diff line number Diff line
@@ -140,24 +140,6 @@ module DiameterS6a_PIXITS {
         */
        modulepar UTF8String PX_NO_EPSGPRS_USR_NAME := "userNoEpsGprs";
        
        /**
         * @desc Stored MME identity and stored SGSN identity
         * @see  ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.10/5 
         */
        modulepar charstring PX_STORED_MME_SGSN := "storedMmeStoredSgsn";
        
        /**
         * @desc Stored MME identity and not stored SGSN identity
         * @see  ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.10/6 
         */
        modulepar charstring PX_STORED_MME_NOT_SGSN := "storedMmeNotStoredSgsn";
        
        /**
         * @desc Stored MME identity and not stored SGSN identity
         * @see  ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.10/7 
         */
        modulepar charstring PX_STORED_SGSN_NOT_MME := "storedSgsnNotStoredMme";
        
        /**
         * @desc The user name
         * @see  ETSI DTS/INT-094-1 V0.0.3 (2013-11) A.10/8 
+13 −2
Original line number Diff line number Diff line
@@ -1192,7 +1192,7 @@ module DiameterS6a_Templates {
                    in template (value) Re_synchronization_Info_AVP p_re_synchronization_Info
                ) modifies m_reqEUTRANAuthInfo_dummy := {
                    aVP_Header                      := m_aVP_HeaderVid_Mbit1 ( c_requested_EUTRAN_Authentication_Info_AVP_Code, 
                                                                               f_getEncvalueLength ( encvalue ( p_re_synchronization_Info.aVP_Data)),
                                                                               f_getEncvalueLength ( encvalue ( p_re_synchronization_Info)),
                                                                               c_vendId3gpp ),
                    re_synchronization_Info         := p_re_synchronization_Info
                } // End of template m_reqEUTRANAuthInfo
@@ -1292,7 +1292,7 @@ module DiameterS6a_Templates {
                    in template (value) Re_synchronization_Info_AVP p_re_synchronization_Info
                ) modifies m_reqUTRANGERANAuthInfo_dummy := {
                    aVP_Header                      := m_aVP_HeaderVid_Mbit1 ( c_requested_UTRAN_GERAN_Authentication_Info_AVP_Code, 
                                                                               f_getEncvalueLength ( encvalue( p_re_synchronization_Info.aVP_Data) ), 
                                                                               f_getEncvalueLength ( encvalue( p_re_synchronization_Info) ), 
                                                                               c_vendId3gpp ),
                    re_synchronization_Info         := p_re_synchronization_Info
                } // End of template m_reqUTRANGERANAuthInfo
@@ -1304,6 +1304,9 @@ module DiameterS6a_Templates {
                template (value) Req_UTRAN_GERAN_Auth_Info_AVP m_reqUTRANGERANAuthInfoNumReq(
                    in template (present) Number_Of_Requested_Vectors_AVP p_number_Of_Requested_Vectors
                ) modifies m_reqUTRANGERANAuthInfo_dummy := {
                    aVP_Header                      := m_aVP_HeaderVid_Mbit1 ( c_requested_UTRAN_GERAN_Authentication_Info_AVP_Code, 
                                                                               f_getEncvalueLength ( encvalue( p_number_Of_Requested_Vectors) ), 
                                                                               c_vendId3gpp ),
                    number_Of_Requested_Vectors         := p_number_Of_Requested_Vectors
                } // End of template m_reqUTRANGERANAuthInfoNumReq
                
@@ -1316,6 +1319,10 @@ module DiameterS6a_Templates {
                    in template Immediate_Response_Preferred_AVP p_immediate_Response_Preferred,
                    in template Re_synchronization_Info_AVP p_re_synchronization_Info
                ) modifies m_reqUTRANGERANAuthInfo_dummy := {
                    aVP_Header                      := m_aVP_HeaderVid_Mbit1 ( c_requested_UTRAN_GERAN_Authentication_Info_AVP_Code, 
                                                                               f_getEncvalueLength ( encvalue( p_immediate_Response_Preferred)) +
                                                                               f_getEncvalueLength ( encvalue( p_re_synchronization_Info)), 
                                                                               c_vendId3gpp ),
                    immediate_Response_Preferred         := p_immediate_Response_Preferred,
                    re_synchronization_Info              := p_re_synchronization_Info
                } // End of template m_reqUTRANGERANAuthInfo_ImResPre_ReSynInf
@@ -3502,11 +3509,15 @@ module DiameterS6a_Templates {
                template PUER_Body_AVP md_purBodyAvps_puer_Flags(
                    in template (value) Auth_Session_State_AVP p_auth_Session_State,
                    in template (value) Origin_Host_AVP p_originHost,
                    in template (value) Origin_Realm_AVP p_originRealm,
                    in template (value) Destination_Realm_AVP p_destinationRealm,
                    in template (value) User_Name_AVP p_user_Name,
                    in template (value) PUER_Flags_AVP p_puer_Flags_AVP
                ) modifies m_S6a_PUER_Body_dummy := {
                    auth_Session_State              := p_auth_Session_State,
                    origin_Host                     := p_originHost,
                    origin_Realm                    := p_originRealm,
                    destination_Realm               := p_destinationRealm,
                    user_Name                       := p_user_Name,
                    pUER_Flags                      := p_puer_Flags_AVP
                } // End of template md_purBodyAvps_puer_Flags
+12 −12
Original line number Diff line number Diff line
@@ -3218,8 +3218,8 @@ module DiameterS6a_TestCases {
                var DiameterComponent v_diameterS6a_mme; 
                
                // Test control
                if (not PICS_HSS_IUT or not PICS_IUT_HLR or not PICS_IUT_PARTIAL_PURGE_PROCEDURE) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR and PICS_IUT_PARTIAL_PURGE_PROCEDURE' shall be set to true for executing the TC. ***"); 
                if (not PICS_HSS_IUT or not PICS_IUT_HLR or not PICS_COMBINED_MME_SGSN_IUT or not PICS_IUT_PARTIAL_PURGE_PROCEDURE) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR and PICS_COMBINED_MME_SGSN_IUT and PICS_IUT_PARTIAL_PURGE_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
@@ -3280,8 +3280,8 @@ module DiameterS6a_TestCases {
                var DiameterComponent v_diameterS6a_mme; 
                
                // Test control
                if (not PICS_HSS_IUT or not PICS_IUT_HLR or not PICS_IUT_PARTIAL_PURGE_PROCEDURE) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR and PICS_IUT_PARTIAL_PURGE_PROCEDURE' shall be set to true for executing the TC. ***"); 
                if (not PICS_HSS_IUT or not PICS_IUT_HLR or not PICS_COMBINED_MME_SGSN_IUT or not PICS_IUT_PARTIAL_PURGE_PROCEDURE) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR and PICS_COMBINED_MME_SGSN_IUT and PICS_IUT_PARTIAL_PURGE_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
@@ -3337,8 +3337,8 @@ module DiameterS6a_TestCases {
                var DiameterComponent v_diameterS6a_mme; 
                
                // Test control
                if (not PICS_HSS_IUT or not PICS_IUT_HLR or not PICS_IUT_PARTIAL_PURGE_PROCEDURE) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR and PICS_IUT_PARTIAL_PURGE_PROCEDURE' shall be set to true for executing the TC. ***"); 
                if (not PICS_HSS_IUT or not PICS_IUT_HLR or not PICS_COMBINED_MME_SGSN_IUT or not PICS_IUT_PARTIAL_PURGE_PROCEDURE) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR and PICS_COMBINED_MME_SGSN_IUT and PICS_IUT_PARTIAL_PURGE_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
@@ -3393,8 +3393,8 @@ module DiameterS6a_TestCases {
                var DiameterComponent v_diameterS6a_mme; 
                
                // Test control
                if (not PICS_HSS_IUT or not PICS_IUT_HLR) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR' shall be set to true for executing the TC. ***"); 
                if (not PICS_HSS_IUT or not PICS_IUT_HLR or not PICS_COMBINED_MME_SGSN_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR and PICS_COMBINED_MME_SGSN_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
@@ -3449,8 +3449,8 @@ module DiameterS6a_TestCases {
                var DiameterComponent v_diameterS6a_mme; 
                
                // Test control
                if (not PICS_HSS_IUT or not PICS_IUT_HLR) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR' shall be set to true for executing the TC. ***"); 
                if (not PICS_HSS_IUT or not PICS_IUT_HLR or not PICS_COMBINED_MME_SGSN_IUT) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT and PICS_IUT_HLR and PICS_COMBINED_MME_SGSN_IUT' shall be set to true for executing the TC. ***"); 
                    stop;
                }
                
@@ -4913,8 +4913,8 @@ module DiameterS6a_TestCases {
                var DiameterComponent v_diameterS6a_mme; 
                
                // Test control
                if (not PICS_IUT_HLR or not PICS_IUT_AUTHENTICATION_IMMEDIAT_PROCEDURE) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_IUT_HLR and PICS_IUT_AUTHENTICATION_IMMEDIAT_PROCEDURE' shall be set to true for executing the TC. ***"); 
                if (not PICS_IUT_HLR or not PICS_COMBINED_MME_SGSN_IUT or not PICS_IUT_AUTHENTICATION_IMMEDIAT_PROCEDURE) {
                    log("*** " & __SCOPE__ & ": ERROR: 'PICS_IUT_HLR and PICS_COMBINED_MME_SGSN_IUT and PICS_IUT_AUTHENTICATION_IMMEDIAT_PROCEDURE' shall be set to true for executing the TC. ***"); 
                    stop;
                }