/* * @author STF 574, TTF006 * @version $Id$ * @desc This module provides the TP behaviour functions at CX interface */ module AtsImsIot_TP_behavior_CX { // LibDiameter import from LibDiameter_Templates all; import from LibDiameter_TypesAndValues all; // LibIot import from LibIot_PIXITS all; import from LibIot_TestInterface all; import from LibIot_TypesAndValues all; import from LibIot_Functions all; import from LibIot_PIXITS all; // AtsImsIot import from AtsImsIot_Templates all; import from AtsImsIot_TypesAndValues all; import from AtsImsIot_Functions all; import from AtsImsIot_Diameter_Templates all; import from AtsImsIot_TestSystem all; // LibIms import from LibIms_UpperTester all; group g_HSS { /** * Starts monitor component behavior for TP_CX_HSS_MAA_01 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "IUT successfully processes all mandatory AVPs in a MA-Request received due to S-CSCF registration notification procedure and sends SA-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_S_CSCF_A entity sends a MAR containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *                 indicating value NO_STATE_MAINTAINED
     *             Origin_Host_AVP
     *             Origin_Realm_AVP 
     *             Destination_Realm_AVP
     *             Public_Identity_AVP
     *             User_Name_AVP
     *             Server_Name_AVP
     *             SIP_Number_Auth_Items_AVP
     *             SIP_Auth_Data_Item_AVP containing
     *                 SIP_Authentication_Scheme_AVP
     *             ;
     *         ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the MAA containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *             Origin_Host_AVP
     *             Origin_Realm_AVP
     *             not Experimental_Result_AVP
     *             Result_Code_AVP
     *                  indicating value DIAMETER_SUCCESS
     *             User_Name_AVP
     *             SIP_Number_Auth_Items_AVP
     *             SIP_Auth_Data_Item_AVP containing
     *                 SIP_Authentication_Scheme_AVP
     *             ;
     *         ;
     *         to the IMS_S_CSCF_A entity
     *     }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_MAA_01( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain; var template DIAMETER_MSG mw_diameter_msg_pass := { mAR_MSG := mw_MAR(mw_publicIdentity(v_publicIdentity)) }; var template DIAMETER_MSG mw_diameter_msg_fail := { mAR_MSG := mw_MAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_MAA_01 - MAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { mAA_MSG := mw_MAA }; mw_diameter_msg_fail := { mAA_MSG := mw_MAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_MAA_01 - MAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_MAA_01 /** * Starts monitor component behavior for TP_CX_HSS_RTA_01 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "IUT successfully processes all mandatory AVPs in a RT-Request received due to S-CSCF network de-registration notification procedure and sends RT-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_S_CSCF_A entity sends a RTR containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *                 indicating value NO_STATE_MAINTAINED
     *             Origin_Host_AVP
     *             Origin_Realm_AVP
     *             Destination_Host_AVP
     *             Destination_Realm_AVP
     *             User_Name_AVP
     *             Deregistration_Reason_AVP containing
     *                 Reason_Code_AVP
     *         ;;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the RTA containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *             Origin_Host_AVP
     *             Origin_Realm_AVP
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *         ;
     *         to the IMS_S_CSCF_A entity
     *     }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_RTA_01( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var template DIAMETER_MSG mw_diameter_msg_pass := { rTR_MSG := mw_RTR }; var template DIAMETER_MSG mw_diameter_msg_fail := { rTR_MSG := mw_RTR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_RTA_01 - RTR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { rTA_MSG := mw_RTA }; mw_diameter_msg_fail := { rTA_MSG := mw_RTA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_RTA_01 - RTA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_RTA_01 /** * Starts monitor component behavior for TP_CX_HSS_SAA_01 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "IUT successfully processes all mandatory AVPs in a SA-Request received due to S-CSCF registration notification procedure and sends SA-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_S_CSCF_A entity sends a SAR containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *                 indicating value NO_STATE_MAINTAINED,
     *             Origin_Host_AVP
     *             Origin_Realm_AVP 
     *             Public_Identity_AVP
     *             not User_Name_AVP
     *             Destination_Realm_AVP
     *             Server_Name_AVP
     *             Server_Assignment_Type_AVP
     *                 indicating value UNREGISTERED_USER
     *             User_Data_Already_Available_AVP 
     *         ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the SAA containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *             Origin_Host_AVP
     *             Origin_Realm_AVP
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *             User_Data AVP
     *             Charging_Information_AVP
     *         ;
     *         to the IMS_S_CSCF_A entity
     *     }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_SAA_01( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain; var template DIAMETER_MSG mw_diameter_msg_pass := { sAR_MSG := mw_SAR_Registration(mw_publicIdentity(v_publicIdentity)) }; var template DIAMETER_MSG mw_diameter_msg_fail := { sAR_MSG := mw_SAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_SAA_01 - SAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { sAA_MSG := mw_SAA_userData }; mw_diameter_msg_fail := { sAA_MSG := mw_SAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_SAA_01 - SAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_SAA_01 /** * Starts monitor component behavior for TP_CX_HSS_SAA_02 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "IUT successfully processes all mandatory AVPs in an SA-Request received due to S-CSCF de-registration procedure and sends SA-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_S_CSCF_A entity sends a SAR containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *                 indicating value NO_STATE_MAINTAINED,
     *             Origin_Host_AVP
     *             Origin_Realm_AVP 
     *             Public_Identity_AVP
     *             User_Name_AVP
     *             Destination_Realm_AVP
     *             Server_Name_AVP
     *             Server_Assignment_Type_AVP
     *                 indicating value USER_DEREGISTRATION
     *             User_Data_Already_Available_AVP 
     *         ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the SAA containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *             Origin_Host_AVP
     *             Origin_Realm_AVP
     *             Result_Code_AVP
     *                indicating value DIAMETER_SUCCESS
     *         ;
     *         to the IMS_S_CSCF_A entity
     *    }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_SAA_02( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain; var template DIAMETER_MSG mw_diameter_msg_pass := { sAR_MSG := mw_SAR_UserDeregistration(mw_publicIdentity(v_publicIdentity)) }; var template DIAMETER_MSG mw_diameter_msg_fail := { sAR_MSG := mw_SAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_SAA_02 -SAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { sAA_MSG := mw_SAA }; mw_diameter_msg_fail := { sAA_MSG := mw_SAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_SAA_02 - SAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_SAA_02 /** * Starts monitor component behavior for TP_CX_HSS_UAA_01 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "IUT successfully processes all mandatory AVPs in a UA-Request received due to first UE initial registration and sends UA-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_I_CSCF_A entity sends a UAR containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *                 indicating value NO_STATE_MAINTAINED,
     *             Origin_Host_AVP
     *             Origin_Realm_AVP
     *             Public_Identity_AVP
     *             Visited_Network_Identifier_AVP
     *             User_Authorization_Type_AVP 
     *                 indicating value REGISTRATION,
     *             User_Name_AVP
     *             Destination_Host_AVP
     *             Destination_Realm_AVP
     *             UAR_Flags_AVP 
     *                 indicating value IMS_Emergency_Registration_bit_not_set
     *             ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the UAA containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *             Origin_Host_AVP
     *             Origin_Realm_AVP 
     *             not Result_Code_AVP
     *             Experimental_Result_AVP containing
     *                 Experimental_Result_Code_AVP 
     *                     indicating value DIAMETER_FIRST_REGISTRATION
     *                 ;
     *             ;
     *         to the IMS_I_CSCF_A entity
     *     }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_UAA_01( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain; //"sip:"&v_userInfoA.publicId&@&v_userInfoA.domain var template DIAMETER_MSG mw_diameter_msg_pass := { uAR_MSG := mw_UAR_Registration(mw_publicIdentity(v_publicIdentity)) }; var template DIAMETER_MSG mw_diameter_msg_fail := { uAR_MSG := mw_UAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_01 - UAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { uAA_MSG := mw_UAA_diamFirstRegistration }; mw_diameter_msg_fail := { uAA_MSG := mw_UAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_01 - UAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_UAA_01 /** * Starts monitor component behavior for f_mtc_check_TP_CX_HSS_ECO_UAA_01 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "IUT successfully processes all mandatory AVPs in a UA-Request received due to first UE initial registration and sends UA-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_I_CSCF_A entity sends a UAR containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *                 indicating value NO_STATE_MAINTAINED,
     *             Origin_Host_AVP
     *             Origin_Realm_AVP
     *             Public_Identity_AVP
     *             Visited_Network_Identifier_AVP
     *             User_Authorization_Type_AVP 
     *                 indicating value REGISTRATION,
     *             User_Name_AVP
     *             Destination_Host_AVP
     *             Destination_Realm_AVP
     *             UAR_Flags_AVP 
     *                 indicating value IMS_Emergency_Registration_bit_not_set
     *             ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the UAA containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *             Origin_Host_AVP
     *             Origin_Realm_AVP 
     *             not Result_Code_AVP
     *             Experimental_Result_AVP containing
     *                 Experimental_Result_Code_AVP 
     *                     indicating value DIAMETER_FIRST_REGISTRATION
     *                 ;
     *             ;
     *         to the IMS_I_CSCF_A entity
     *     }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_ECO_UAA_01( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain; //"sip:"&v_userInfoA.publicId&@&v_userInfoA.domain var template DIAMETER_MSG mw_diameter_msg_pass := { uAR_MSG := mw_UAR_Registration(mw_publicIdentity(v_publicIdentity)) }; var template DIAMETER_MSG mw_diameter_msg_fail := { uAR_MSG := mw_UAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_01 - UAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { uAA_MSG := mw_UAA_diamFirstRegistration }; mw_diameter_msg_fail := { uAA_MSG := mw_UAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_01 - UAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_ECO_UAA_01 /** * Starts monitor component behavior for TP_CX_HSS_UAA_02 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "IUT successfully processes all mandatory AVPs in a UA-Request received due to protected UE initial registration and sends UA-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_I_CSCF_A entity sends a UAR containing
     *             Public_Identity_AVP
     *             User_Name_AVP
     *         ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the UAA containing
     *             not Result_Code_AVP
     *             Experimental_Result_AVP containing
     *                 Experimental_Result_Code_AVP
     *                     indicating value DIAMETER_SUBSEQUENT_REGISTRATION
     *                 ;,
     *             Server_Name_AVP
     *             not Server_Capabilities_AVP
     *         ;
     *         to the IMS_I_CSCF_A entity
     *     }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_UAA_02( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain; var template DIAMETER_MSG mw_diameter_msg_pass := { uAR_MSG := mw_UAR(mw_publicIdentity(v_publicIdentity)) }; var template DIAMETER_MSG mw_diameter_msg_fail := { uAR_MSG := mw_UAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_02 - UAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { uAA_MSG := mw_UAA_diamSuccess/*uAA_MSG := mw_UAA_diamSubsequentRegistration*/ }; //TODO:Check TP mw_diameter_msg_fail := { uAA_MSG := mw_UAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_02 - UAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_UAA_02 function f_mtc_check_TP_CX_HSS_ECO_UAA_02( // FIXME To be reviewed DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain; var template DIAMETER_MSG mw_diameter_msg_pass := { uAR_MSG := mw_UAR(mw_publicIdentity(v_publicIdentity)) }; var template DIAMETER_MSG mw_diameter_msg_fail := { uAR_MSG := mw_UAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_02 - UAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { uAA_MSG := mw_UAA_diamSuccess/*uAA_MSG := mw_UAA_diamSubsequentRegistration*/ }; //TODO:Check TP mw_diameter_msg_fail := { uAA_MSG := mw_UAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_02 - UAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_ECO_UAA_02 /** * Starts monitor component behavior for TP_CX_HSS_UAA_03 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "Verify that the IUT checks that the Private User Identity and the Public User Identity exists in the HSS and if not then IUT sets the appropriate experimental result code in the UA-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_I_CSCF_A entity sends a UAR containing
     *         User_Name_AVP
     *             indicating value "an unknown private user identity"
     *         Public_Identity_AVP
     *         ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the UAA containing
     *             not Result_Code_AVP
     *             Experimental_Result_AVP
     *                 Experimental_Result_Code_AVP
     *                     indicating value DIAMETER_ERROR_USER_UNKNOWN
     *             not Server_Name_AVP
     *         ;
     *         to the IMS_I_CSCF_A entity
     *     }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_UAA_03( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var template DIAMETER_MSG mw_diameter_msg_pass := { uAR_MSG := mw_UAR_unknownPrivateId }; var template DIAMETER_MSG mw_diameter_msg_fail := { uAR_MSG := mw_UAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_03 - UAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { uAA_MSG := mw_UAA_diamErrorUserUnknown }; mw_diameter_msg_fail := { uAA_MSG := mw_UAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_03 - UAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_UAA_03 /** * Starts monitor component behavior for TP_CX_HSS_UAA_03 * @param p_monitorCompRef Reference to monitor component *
     * Test objective  "IUT successfully processes all mandatory AVPs in a UA-Request received due to UE de-registration and sends UA-Answer."
     *
     * 
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_I_CSCF_A entity sends a UAR containing
     *             Public_Identity_AVP
     *             User_Name_AVP
     *             User_Authentication_Type_AVP
     *                 indicating value DE_REGISTRATION
     *             Visited_Network_Identifier_AVP
     *         ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the UAA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *             Server_Name_AVP
     *             not Server_Capabilities_AVP
     *         ;
     *         to the IMS_I_CSCF_A entity
     *     }
     * }
     * 
* @see TS 103 653-1 clause 7.4 */ function f_mtc_check_TP_CX_HSS_UAA_04( DiameterInterfaceMonitor p_monitorCompRef, in boolean p_checkMessage := false, in boolean p_forward_to_mtc := false ) runs on ImsTestCoordinator { if (isvalue(p_monitorCompRef)){ var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain; var template DIAMETER_MSG mw_diameter_msg_pass := { uAR_MSG := mw_UAR_deRegistration(mw_publicIdentity(v_publicIdentity)) }; var template DIAMETER_MSG mw_diameter_msg_fail := { uAR_MSG := mw_UAR_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_04 - UAR", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; mw_diameter_msg_pass := { uAA_MSG := mw_UAA_diamSuccess }; mw_diameter_msg_fail := { uAA_MSG := mw_UAA_basic }; p_monitorCompRef.start ( f_Iot_Diameter_receive( { mw_diameter_msg_pass }, { mw_diameter_msg_fail }, {0, omit}, "TP_CX_HSS_UAA_04 - UAA", p_forward_to_mtc, p_checkMessage ) ); p_monitorCompRef.done; } } // End of function f_mtc_check_TP_CX_HSS_UAA_04 } // end group g_HSS } // end module AtsImsIot_TP_behavior_CX