Commit 7775089d authored by Bostjan Pintar's avatar Bostjan Pintar
Browse files

Merge branch 'develop' of https://forge.etsi.org/gitlab/DIAMETER/DiameterShDh into develop

parents d5797b82 6df06dd2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -167,6 +167,8 @@ module DiameterShDh_PIXITS {
        
        modulepar octetstring PX_DSAI_TAG := '00'O;
        
        modulepar LibDiameter_Types_Base_AVPs.Diameter_Identity PX_HSS_IDENTITY := "hss.etsi.org";
        
    } // End of group DiameterCommonShDhData
    
    group SipParameters {
+110 −8
Original line number Diff line number Diff line
@@ -379,7 +379,35 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    //TODO TestBody
                    // TestBody
                    f_send_UDR(
                               md_uDR(
                                      vc_sessionId,
                                      md_udrBodyAvps(
                                                     vc_originHost,                 // containing an Origin-Host AVP
                                                     vc_originRealm,                // containing an Origin-Realm AVP
                                                     vc_destinationRealm,           // containing a Destination-Realm AVP
                                                     m_specific_user_Identity (
                                                                m_public_user_identity(PX_PublicUser_MSISDN)
                                                                ),
                                                     m_data_Reference(              // containing an Reference-Data AVP
                                                                      TADS_INFORMATION_E
                                                                                    //     indication TADS_INFORMATION_E
                                                                     ) 
                                                    )
                                     )
                    );

                    f_awaiting_UDA(
                                   mdw_uDA( 
                                           vc_sessionId,                       // containing a Session-ID AVP
                                           mdw_udaBodyAvps_user_Data(
                                                                     ?,
                                                                     vc_originHost_IUT,              // containing an Origin-Host AVP
                                                                     vc_originRealm_IUT,             // containing an Origin-Realm AVP
                                                                     mw_user_Data(                   // containing an Uswr-Data AVP
                                                                                  '00'O              //     indicating TADS information
                    ))));

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 

@@ -387,7 +415,7 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

                } // End of function f_TC_SH_HSS_UD_08()                                                        
                } // End of function f_TC_SH_HSS_UD_08
                
                function f_TC_SH_HSS_UD_09() runs on DiameterShDh { 
                    // Local variables
@@ -1553,6 +1581,7 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    //TestBody
                    f_send_PUR(
                               md_pUR(
                                      vc_sessionId,
@@ -1596,8 +1625,36 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    //TODO TestBody
                    //TestBody
                    f_send_PUR(
                               md_pUR(
                                      vc_sessionId,
                                      md_purBodyAvps(
                                                     m_auth_Session_State,
                                                     vc_originHost,                 // containing an Origin-Host AVP
                                                     vc_originRealm,                // containing an Origin-Realm AVP
                                                     vc_destinationHost,            // containing an Destination-Host AVP
                                                     vc_destinationRealm,           // containing a Destination-Realm AVP
                                                     m_specific_user_Identity (
                                                                m_public_user_identity(PX_PublicUserIdentity)
                                                                ),
                                                     m_data_Reference(REPOSITORY_DATA_E),
                                                     m_user_Data_shData(char2oct("shdata_repositorydata(0)_serviceinfo_seqnr_servicedata_empty-repositorydata(1)_serviceinfo_seqnr_servicedata_empty")) //TODO import XML Schema
                                                    )
                                     )
                    );

                    f_awaiting_PUA(
                                    mdw_pUA( 
                                            vc_sessionId,                       // containing a Session-ID AVP
                                            mdw_puaBodyAvps(
                                                            *,
                                                            mw_experimentalResult(DIAMETER_ERROR_OPERATION_NOT_ALLOWED_E),
                                                            vc_originHost_IUT,              // containing an Origin-Host AVP
                                                            vc_originRealm_IUT,
                                                            mw_repository_data_id
                         ))
                    );
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 

                    f_postamble_Sh_AS();
@@ -2254,8 +2311,9 @@ module DiameterShDh_TCFunctions {
                                                                    vc_originRealm_IUT,             // containing an Origin-Realm AVP
                                                                                                    // containing a User-Identity AVP
                                                                                                    // containing a Data-Reference AVP
                                                                    mw_redirect_host
                     )));
                                                                    mw_redirect_host(               // containing a Redirect-Host AVP
                                                                                     PX_HSS_IDENTITY//     indicating the HSS identity to be used
                     ))));

                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 

@@ -2349,10 +2407,54 @@ module DiameterShDh_TCFunctions {
                    f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                    //TODO TestBody
                    // TestBody
                    // to indicate a user data handling procedure
                    action("The IUT is requested to indicate a user data handling procedure");
                    // Clause 'then': the IUT sends an UD-Request to the SLF
                    f_awaiting_UDR(
                                   mdw_uDR_Header_UDRBody(
                                                          ?,
                                                          ?,                                  // containing a Session-ID AVP
                                                          mdw_udrBodyAvps(
                                                              vc_originHost_IUT,              // containing an Origin-Host AVP
                                                              vc_originRealm_IUT,             // containing an Origin-Realm AVP
                                                              vc_destinationRealm_IUT         // containing a Destination-Realm AVP
                    )));
                    // on receipt of a UD-Answer from the SLF
                    f_send_UDA(
                               md_uDA(
                                      vc_sessionId,                                           // Set in f_awaiting_UDR
                                      md_udaBodyAvps_redirect(
                                                              m_resultCode(DIAMETER_REDIRECT_INDICATION_E),
                                                              vc_originHost,                 // containing an Origin-Host AVP
                                                              vc_originRealm,                // containing an Origin-Realm AVP
                                                              m_redirect_host(               // containing a Redirect-Host AVP
                                                                              PX_HSS_IDENTITY//     indicating the HSS identity to be used
                                                                             )
                              )));
                    f_awaiting_UDR(
                                   mdw_uDR_Header_UDRBody(
                                                          ?,
                                                          ?,                                  // containing a Session-ID AVP
                                                          mdw_udrBodyAvps(
                                                              vc_originHost_IUT,              // containing an Origin-Host AVP
                                                              vc_originRealm_IUT,             // containing an Origin-Realm AVP
                                                              vc_destinationRealm_IUT,        // containing a Destination-Realm AVP
                                                                                              // containing a User-Identity AVP
                                                              m_data_Reference_dummy          // containing a Data-Reference AVP
                                                                                              //     indicating RepositoryData (0)
                    )));
                    
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 

                    f_send_UDA(
                               md_uDA(
                                      vc_sessionId,                                           // Set in f_awaiting_UDR
                                      md_udaBodyAvps(
                                                     m_resultCode(DIAMETER_SUCCESS_E),
                                                     vc_originHost,
                                                     vc_originRealm
                              )));
                    f_postamble_Dh_SLF();
                    f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                    log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
+48 −3
Original line number Diff line number Diff line
@@ -141,6 +141,13 @@ module DiameterShDh_Templates {
                    aVP_Data   := p_aVP_Data
                }
                
                template (value) Redirect_Host_AVP m_redirect_host(
                                                                   in template (value) Diameter_Identity p_aVP_Data
                ) := {
                    aVP_Header := mw_aVP_HeaderVid_Mbit1(c_redirect_Host_AVP_Code, ?, ?),
                    aVP_Data   := p_aVP_Data
                }
                
            } // End of group sendingTemplatesForAVPs
            
            group receivingTemplatesForAVPs{
@@ -152,6 +159,18 @@ module DiameterShDh_Templates {
                    aVP_Data   := p_aVP_Data
                }
                
                template User_Data_AVP mw_user_Data(
                                                    template (present) octetstring p_aVP_Data
                ) modifies mw_user_Data_dummy_RFC := {
                    aVP_Data := p_aVP_Data
                }
                
                template Repository_Data_ID_AVP mw_repository_data_id := {
                    aVP_Header := mw_aVP_HeaderVid_Mbit1(c_repository_Data_Id_AVP_Code, ?, ?),
                    service_Indication := ? ,
                    sequence_Number := ?
                }
                
            } // End of group receivingTemplatesForAVPs
            
        } // End of group SpecificAVPHeaders
@@ -600,6 +619,18 @@ module DiameterShDh_Templates {
                    origin_Realm                := p_originRealm
                } // End of template md_udaBodyAvps 
                
                template (omit) UDA_Body_AVP md_udaBodyAvps_redirect(
                                                                     in template (value) Result_Code_AVP              p_resultCode,
                                                                     in template (value) Origin_Host_AVP              p_originHost,
                                                                     in template (value) Origin_Realm_AVP             p_originRealm,
                                                                     in template (value) Redirect_Host_AVP            p_redirect_host
                ) modifies md_udaBodyAvps := {
                    result_Code                 := p_resultCode,
                    origin_Host                 := p_originHost,
                    origin_Realm                := p_originRealm,
                    aVP_Type                    := { AVP_Type: {p_redirect_host.aVP_Header, { cHARSTRING := p_redirect_host.aVP_Data } } }
                } // End of template md_udaBodyAvps 
                
            } // End of group uda_msg 
            
            group pna_msg {
@@ -728,6 +759,18 @@ module DiameterShDh_Templates {
                    origin_Realm                := p_originRealm
                } // End of template mdw_udaBodyAvps

                template (present) UDA_Body_AVP mdw_udaBodyAvps_user_Data(
                                                                          template (present) Result_Code_AVP              p_resultCode,
                                                                          template (present) Origin_Host_AVP              p_originHost,
                                                                          template (present) Origin_Realm_AVP             p_originRealm,
                                                                          template (present) User_Data_AVP                p_user_data
                ) modifies mw_UDA_Body_dummy := {
                    result_Code                 := p_resultCode,
                    origin_Host                 := p_originHost,
                    origin_Realm                := p_originRealm,
                    user_Data                   := p_user_data
                } // End of template mdw_udaBodyAvps

                template (present) UDA_Body_AVP mdw_udaBodyAvps_redirect(
                                                                         template (present) Result_Code_AVP     p_resultCode,
                                                                         template (present) Origin_Host_AVP     p_originHost,
@@ -738,7 +781,7 @@ module DiameterShDh_Templates {
                    experimental_Result         := omit,
                    origin_Host                 := p_originHost,
                    origin_Realm                := p_originRealm,
                    aVP_Type                    := superset(AVP_Type: {p_redirect_Host_AVP.aVP_Header, ?})
                    aVP_Type                    := superset(AVP_Type: {p_redirect_Host_AVP.aVP_Header, { cHARSTRING := p_redirect_Host_AVP.aVP_Data }})
                } // End of template mdw_udaBodyAvps_redirect

                template (present) Experimental_Result_AVP mw_experimentalResult(
@@ -820,12 +863,14 @@ module DiameterShDh_Templates {
                                                                template Result_Code_AVP              p_resultCode,
                                                                template Experimental_Result_AVP      p_exp_rescode,
                                                                template (present) Origin_Host_AVP    p_originHost,
                                                                template (present) Origin_Realm_AVP   p_originRealm
                                                                template (present) Origin_Realm_AVP   p_originRealm,
                                                                template Repository_Data_ID_AVP       p_repositoryDataId := *
                ) modifies mw_PUA_Body_dummy := {
                    result_Code                 := p_resultCode,
                    experimental_Result         := p_exp_rescode,
                    origin_Host                 := p_originHost,
                    origin_Realm                := p_originRealm
                    origin_Realm                := p_originRealm,
                    repository_Data_Id          := p_repositoryDataId
                } // End of template mdw_puaBodyAvps
    
            } // End of group pua_msg
+73 −11
Original line number Diff line number Diff line
@@ -510,7 +510,7 @@ module DiameterShDh_TestCases {
                 *              indicating IMS Public User Identity
                 *          containing a Data-Reference AVP
                 *              indicating TADSinformation (26)
                        sends a UD-Answer
                 *      sends a UD-Answer
                 *          containing a Session-ID AVP
                 *          containing a Vendor-Specific-Application-Id AVP
                 *          containing an Auth-Session-State AVP
@@ -2493,10 +2493,16 @@ module DiameterShDh_TestCases {
                * @version    0.0.6
                * @see        ETSI TS 103 571-2 TP_SH_HSS_PU_21
                */
                testcase TP_SH_HSS_PU_21() runs on DiameterShDh system TestAdapter { 
                testcase TC_SH_HSS_PU_21() runs on DiameterShDh system TestAdapter { 
                    // Local variables
                     var DiameterShDh v_diameterSh_as; 

                    //Test control
                    if (not PICS_HSS_IUT) {
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_HSS_IUT' required for executing the TC. ***"); 
                        stop;
                    }
                    
                    // Start
                    v_diameterSh_as.start(f_TC_SH_HSS_PU_21());

@@ -3023,7 +3029,7 @@ module DiameterShDh_TestCases {
                 */
                testcase TC_DH_SLF_UD_01() runs on DiameterShDh system TestAdapter { 
                    // Local variables
                    var DiameterShDh v_diameterSh_slf; 
                    var DiameterShDh v_diameterSh_as; 
                        
                    // Test control
                    if (not PICS_SLF_IUT) {
@@ -3032,15 +3038,15 @@ module DiameterShDh_TestCases {
                    }
                    
                    // Test component configuration
                    f_cf_1Dh_slfUp(v_diameterSh_slf);
                    f_cf_1Dh_asUp(v_diameterSh_as);
                    
                    // Start
                    v_diameterSh_slf.start(f_TC_DH_SLF_UD_01()); 
                    v_diameterSh_as.start(f_TC_DH_SLF_UD_01()); 
                        
                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});
                        
                    f_cf_1Dh_slfDown(v_diameterSh_slf);
                    f_cf_1Dh_asDown(v_diameterSh_as);
                        
                } // End of testcase TC_DH_SLF_UD_01 
                
@@ -3064,6 +3070,62 @@ module DiameterShDh_TestCases {
            //} // End of group TP_ASRole_MessageSyntax

            group TP_ASRole_UserData{
                
                /**
                 * @desc    Verify that the IUT for user data handling procedure sends a UD-Request to the SLF and after reception of a UD-Answer forwards a UD-Request to the HSS.
                 * <pre>
                 * Pics Selection: PICS_AS_IUT
                 * Initial conditions: 
                 *     with {
                 *        
                 *     }
                 * Expected behaviour:
                 *     ensure that {
                 *        when {
                 *            to indicate a user data handling procedure
                 *        }
                 *        then {
                 *            the IUT sends a UD-Request to the SLF
                 *            on receipt of a UD-Answer from the SLF
                 *                containing a Redirect-Host AVP
                 *                    indicating the HSS identity to be used
                 *                not containing an Experimental-Result AVP
                 *                containing a Result-Code AVP
                 *                    indicating DIAMETER_REDIRECT_INDICATION (3006)
                 *            sends a UD-Request to the HSS
                 *                containing a Destination-Host AVP
                 *                containing a Destination-Realm AVP.
                 *        }
                 *     }
                 * </pre>
                 * 
                 * @version    0.0.6
                 * @see        ETSI TS 103 571-2 TP_DH_AS_UD_01
                 */
                testcase TC_DH_AS_UD_01() runs on DiameterShDh system TestAdapter { 
                    // Local variables
                    var DiameterShDh v_diameterSh_slf; 
                        
                    // Test control
                    if (not PICS_AS_IUT) {
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_AS_IUT' required for executing the TC. ***"); 
                        stop;
                    }
                    
                    // Test component configuration
                    f_cf_1Dh_slfUp(v_diameterSh_slf);
                    
                    // Start
                    v_diameterSh_slf.start(f_TC_DH_AS_UD_01()); 
                        
                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(f_NrofComps(), {c_prDone, c_tbDone, c_poDone});
                        
                    f_cf_1Dh_slfDown(v_diameterSh_slf);
                        
                } // End of testcase TC_DH_AS_UD_01 
                
            
            } // End of group TP_ASRole_UserData

            group TP_ASRole_ProfileUpdate{