Loading ttcn/AtsImsIot/AtsImsIot_Diameter_Templates.ttcn 0 → 100644 +149 −0 Original line number Original line Diff line number Diff line /** * @author STF574 * @version $Id$ * @desc This module defines AtsIot Diameter Templates for message, header, and * structured types. <br> * @remark Any additions to the templates shall follow the design rules * and always modify base templates only; */ module AtsImsIot_Diameter_Templates { //LibCommon import from LibCommon_DataStrings {type Bit1, Bit4, Bit5, Bit8;}//all; import from LibCommon_BasicTypesAndValues {type UInt8, UInt32, UInt64;}; //LibDiameter import from LibDiameter_TypesAndValues all; import from LibDiameter_Templates all; import from LibDiameter_Steps all; import from LibDiameter_Types_Gx_AVPs all; import from LibDiameter_Types_Base_AVPs all; import from LibDiameter_Types_Rx_AVPs all; group DiameterHeaderFields { group RxHeaderFields{ template Abort_Cause_AVP mw_abortCause(template Abort_Cause_Type p_avpData) := { aVP_Header := mw_aVP_Header_VMbit1(c_abort_Cause_AVP_Code), aVP_Data := p_avpData }; template Media_Component_Description_AVP mw_mediaComponentDescription := { aVP_Header := mw_aVP_Header_VMbit1(c_media_Component_Description_AVP_Code), media_Component_Nr := {aVP_Header := ?, aVP_Data := ?}, media_Sub_component := {mw_mediaSubComponent}, af_Application_Id := *, media_type := *, max_Requested_Bw_Ul := *, max_Requested_Bw_Dl := *, flow_Status := *, reservation_Priority := *, rs_Bw := *, rr_Bw := *, codec_data := * } template Media_Sub_Component_AVP mw_mediaSubComponent := { aVP_Header := mw_aVP_Header_VMbit1(c_media_Sub_Component_AVP_Code), flow_Number := ?, flow_Description := ?, flow_Status := mw_flowStatus(ENABLED_E), flow_Usage := mw_flowUsage(AF_SIGNALLING_E), max_Requested_Bw_Ul := *, max_Requested_Bw_Dl := *, af_Signalling_Protocol := mw_afSignallingProtocolSIP, aVP_Type := * } template AF_Signalling_Protocol_AVP mw_afSignallingProtocolSIP := { //Ref: ETSI TS 129 214 AF_Signalling_Protocol AVP aVP_Header := mw_aVP_Header_Vbit1Mbit0(c_aF_Signalling_Protocol_AVP_Code), aVP_Data := SIP_E } template Flow_Status_AVP mw_flowStatus(template (present) Flow_Status_Type p_avpData) := { aVP_Header := mw_aVP_Header_VMbit1(c_flow_Status_AVP_Code), aVP_Data := p_avpData } template Flow_Usage_AVP mw_flowUsage(template (present) Flow_Usage_Type p_avpData) := { aVP_Header := mw_aVP_Header_VMbit1(c_flow_Usage_AVP_Code), aVP_Data := p_avpData } } //end group RxHeaderFields group GxHeaderFields{ template CC_Request_Type_AVP mw_cC_Request_Type(CC_Request_Ty_Type p_avpData):= { aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_cC_Request_Type_AVP_Code), aVP_Data := p_avpData } } //end group GxHeaderFields } //end DiameterHeaderFields group DiameterTemplates { group RxMessageTemplates{ group RxRequestMessageTemplates{ template ASR_MSG mw_ASR_abortCause(template (present) Abort_Cause_Type p_avpData) modifies mw_ASR_dummy := { aSR_Body :={ abort_cause := mw_abortCause(p_avpData) } } }// end group RxRequestMessageTemplates group RxAnswertMessageTemplates{ template AAA_MSG mw_AAA_AcceptableService modifies mw_AAA_dummy := { aAA_Body :={ result_Code := mw_resultCode(mw_resultCode_diameterSuccess), acceptable_service_info := { media_component_description := {mw_mediaComponentDescription } }, ip_Can_Type := ?, rat_Type := ? } } template AAA_MSG mw_AAA_resultCode modifies mw_AAA_dummy := { aAA_Body :={ result_Code := mw_resultCode(mw_resultCode_diameterSuccess) } } template ASA_MSG mw_ASA_resultCode modifies mw_ASA_dummy := { aSA_Body :={ result_Code := mw_resultCode(mw_resultCode_diameterSuccess) } } }// end group RxRequestMessageTemplates }//end group RxMessageTemplates group GxMessageTemplates{ group GxRequestMessageTemplates{ template CCR_MSG mw_CCR_RequestType(CC_Request_Ty_Type p_avpData) modifies mw_CCR_dummy := { cCR_Body :={ cC_Request_Type := mw_cC_Request_Type(p_avpData) } } }// end group GxRequestMessageTemplates group GxAnswertMessageTemplates{ template CCA_MSG mw_CCA_resultCode modifies mw_CCA_dummy := { cCA_Body :={ result_Code := mw_resultCode(mw_resultCode_diameterSuccess) } } }// end group GxRequestMessageTemplates }//end group GxMessageTemplates } // end group DiameterTemplates }//end module AtsImsIot_Diameter_Templates No newline at end of file ttcn/AtsImsIot/AtsImsIot_Functions.ttcn +41 −41 Original line number Original line Diff line number Diff line Loading @@ -2597,14 +2597,14 @@ module AtsImsIot_Functions { */ */ function f_receiveDiameterMsg (in template (present) DIAMETER_MSG p_diameter, function f_receiveDiameterMsg (in template (present) DIAMETER_MSG p_diameter, in charstring p_log, in boolean p_bool ) in charstring p_log, in boolean p_bool ) runs on ImsInterfaceMonitor { runs on DiameterInterfaceMonitor { timer t_local := PX_MAX_MSG_WAIT; timer t_local := PX_MAX_MSG_WAIT; var boolean v_loop := true; var boolean v_loop := true; log ( "### " & p_log ); log ( "### " & p_log ); t_local.start; t_local.start; while ( v_loop ) { while ( v_loop ) { alt { alt { [] rxPort.receive ( p_diameter ) { [] diameterPort.receive ( p_diameter ) { t_local.stop; t_local.stop; if ( p_bool ) { if ( p_bool ) { setverdict ( pass, self, "*** f_receiveDiameterMsg: expected Diameter message received***"); setverdict ( pass, self, "*** f_receiveDiameterMsg: expected Diameter message received***"); Loading @@ -2625,7 +2625,7 @@ module AtsImsIot_Functions { break; break; } } } } [] rxPort.receive { [] diameterPort.receive { t_local.start; t_local.start; } } } } Loading ttcn/AtsImsIot/AtsImsIot_TP_behavior_GX.ttcn +55 −38 Original line number Original line Diff line number Diff line Loading @@ -7,45 +7,20 @@ module AtsImsIot_TP_behavior_GX module AtsImsIot_TP_behavior_GX { { import from AtsImsIot_TestSystem { type ImsInterfaceMonitor, ImsTestCoordinator; } import from AtsImsIot_TestSystem { type DiameterInterfaceMonitor, ImsTestCoordinator; } import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;} import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;} import from AtsImsIot_Templates {template all;} import from AtsImsIot_Templates {template all;} import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; } import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; } import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser }; import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser }; import from LibIms_UpperTester {type ImsUserInfo;} import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;} import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;} import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; } import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; } import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibSip_Common { type GenericParam, SemicolonParam_List } import from AtsImsIot_Functions all; import from AtsImsIot_Functions all; import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} // LibSip import from AtsImsIot_Diameter_Templates all; import from LibSip_SDPTypes { type SDP_media_desc_list }; // LibMsrp import from LibMsrp_TypesAndValues { type MsrpURI }; import from LibMsrp_Functions { function f_str2msrpUri }; import from LibMsrp_Templates { template m_msrpSend_Dummy, mw_msrpSEND_toPath_fromPath_contentType, m_msrpReport_Dummy, mw_msrpREPORT_success, m_msrpResponse_Dummy, mw_msrpResponse_toPath_fromPath, mw_toPath, mw_fromPath, mw_msrpResponse_toPath_fromPath_with_transferReports, m_msrpURIs_ToPath_Dummy, m_msrpURIs_FromPath_Dummy, mw_contentType }; import from DiameterS6a_Templates all; import from DiameterS6a_PIXITS all; import from DiameterGx_Templates all; // LibDiameter // LibDiameter import from LibDiameter_Templates all; import from LibDiameter_Templates all; // import from DiameterRx_Templates all; group g_PGW { group g_PGW { Loading @@ -55,6 +30,48 @@ group g_PGW { group g_PCRF { group g_PCRF { /** * Starts monitor component behavior for TP_GX_PCRF_CCA_02 * @param p_monitorCompRef Reference to monitor component * <pre> * Test objective "Verify that IUT when receives CC-Request for PCC Rules sends a CC-Answer in case of detachment procedure." * ensure that { * when { * the EPC_PGW_A entity sends an CCR containing * CC_Request_Type_AVP * indicating value TERMINATION_REQUEST * ; * to the EPC_PCRF_A entity * } * then { * the EPC_PCRF_A entity sends the CCA containing * Result_Code_AVP * indicating value DIAMETER_SUCCESS * ; * to the EPC_PGW_A entity * } * } * </pre> * @see TS 103 653-1 clause 7.7 */ function f_mtc_check_TP_GX_PCRF_CCA_02( DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start ( f_receiveDiameterMsg ( { cCR_MSG := mw_CCR_RequestType(TERMINATION_REQUEST_E) }, "TP_RX_PCRF_CCA_02 - CC Request", true ) ); p_monitorCompRef.done; p_monitorCompRef.start ( f_receiveDiameterMsg ( { cCA_MSG := mw_CCA_resultCode }, "TP_RX_PCRF_CCA_02 - CC Answer", true ) ); p_monitorCompRef.done; } // End of function f_mtc_check_TP_GX_PCRF_CCA_02 } // end group g_PCRF } // end group g_PCRF Loading ttcn/AtsImsIot/AtsImsIot_TP_behavior_RX.ttcn +240 −156 Original line number Original line Diff line number Diff line Loading @@ -7,45 +7,21 @@ module AtsImsIot_TP_behavior_RX module AtsImsIot_TP_behavior_RX { { import from AtsImsIot_TestSystem { type ImsInterfaceMonitor, ImsTestCoordinator; } import from AtsImsIot_TestSystem { type DiameterInterfaceMonitor, ImsTestCoordinator; } import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;} import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;} import from AtsImsIot_Templates {template all;} import from AtsImsIot_Templates {template all;} import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; } import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; } import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser }; import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser }; import from LibIms_UpperTester {type ImsUserInfo;} import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;} import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;} import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; } import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; } import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibSip_Common { type GenericParam, SemicolonParam_List } import from AtsImsIot_Functions all; import from AtsImsIot_Functions all; import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} // LibSip import from AtsImsIot_Diameter_Templates all; import from LibSip_SDPTypes { type SDP_media_desc_list }; // LibMsrp import from LibMsrp_TypesAndValues { type MsrpURI }; import from LibMsrp_Functions { function f_str2msrpUri }; import from LibMsrp_Templates { template m_msrpSend_Dummy, mw_msrpSEND_toPath_fromPath_contentType, m_msrpReport_Dummy, mw_msrpREPORT_success, m_msrpResponse_Dummy, mw_msrpResponse_toPath_fromPath, mw_toPath, mw_fromPath, mw_msrpResponse_toPath_fromPath_with_transferReports, m_msrpURIs_ToPath_Dummy, m_msrpURIs_FromPath_Dummy, mw_contentType }; import from DiameterS6a_Templates all; import from DiameterS6a_PIXITS all; import from DiameterGx_Templates all; // LibDiameter // LibDiameter import from LibDiameter_Templates all; import from LibDiameter_Templates all; // import from DiameterRx_Templates all; group g_PCRF { group g_PCRF { Loading @@ -54,28 +30,38 @@ group g_PCRF_ASA { /** /** * Starts monitor component behavior for TP_RX_PCRF_ASA_01 * Starts monitor component behavior for TP_RX_PCRF_ASA_01 * @param p_monitorCompRef Reference to monitor component * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue. * <pre> * <pre> * ensure that { * ensure that { * when { * when { * EPC_PCRF triggers_termination of SIP_session * the IMS_P_CSCF_A entity sends a ASR containing * Abort_Cause_AVP * indicating value BEARER_RELEASED '(0)' * ; * to the EPC_PCRF_A entity * } * } * then { * then { * EPC_PCRF sends Abort-Session-Request to IMS_P-CSCF containing * the EPC_PCRF_A entity sends the ASA containing * Session-Id_AVP indicating session of SIP_session * Result_Code_AVP * Abort-Cause_AVP indicating BEARER_RELEASED (0) * indicating value DIAMETER_SUCCESS "(2001)" * } * ; * to the IMS_P_CSCF_A entity * } * } * </pre> * </pre> * @see TS 103 029 V3.1.1 clause 7.1.2 * @see TS 103 653-1 clause 7.6 * @remark source function f_mtc_check_TP_EPC_6005_01 */ */ function f_mtc_check_TP_RX_PCRF_ASA_01( function f_mtc_check_TP_RX_PCRF_ASA_01( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_receiveDiameterMsg ( { aSR_MSG := mw_ASR_dummy } , "TP_RX_PCRF_ASA_01", true ) f_receiveDiameterMsg ( { aSR_MSG := mw_ASR_abortCause(BEARER_RELEASED_E) }, "TP_RX_PCRF_ASA_01 - AS Request", true ) ); p_monitorCompRef.done; p_monitorCompRef.start ( f_receiveDiameterMsg ( { aSA_MSG := mw_ASA_resultCode }, "TP_RX_PCRF_ASA_01 - AS Answer", true ) ); ); p_monitorCompRef.done; p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCRF_ASA_01 } // End of function f_mtc_check_TP_RX_PCRF_ASA_01 Loading @@ -87,19 +73,121 @@ group g_PCRF_AAA { /** /** * Starts monitor component behavior for TP_RX_PCRF_AAA_01 * Starts monitor component behavior for TP_RX_PCRF_AAA_01 * @param p_monitorCompRef Reference to monitor component * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). * <pre> * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue. * Test objective "Verify that IUT after AA-Request is received due to provisioning of AF Signalling flow sends AA-Answer." * @remark source function f_mtc_check_TP_EPC_6014_01 * ensure that { * when { * the IMS_P_CSCF_A entity sends an AAR * to the EPC_PCRF_A entity * } * then { * the EPC_PCRF_A entity sends the AAA containing * Result_Code_AVP * indicating value DIAMETER_SUCCESS, * Acceptable_Service_Info_AVP containing * "one or more" Media_Component_Description_AVP containing * Media_Component_Number_AVP * indicating value 0, * Media_Sub_Component_AVP containing * Flow_Description_AVP * Flow_Usage_AVP * indicating value AF_SIGNALING, * Flow_Status_AVP * indicating value ENABLED, * AF_Signalling_Protocol_AVP * indicating value SIP * ; * ; * ;, * IP_CAN_AVP * RAT_Type_AVP * ; * to the IMS_P_CSCF_A entity * } * } * </pre> * @see TS 103 653-1 clause 7.6 */ */ function f_mtc_check_TP_RX_PCRF_AAA_01( function f_mtc_check_TP_RX_PCRF_AAA_01( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_dummy } , "TP_RX_PCRF_AAA_01", true ) f_receiveDiameterMsg ( { aAR_MSG := mw_AAR_dummy }, "TP_RX_PCRF_AAA_01 - AA Request", true ) ); p_monitorCompRef.done; p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_AcceptableService }, "TP_RX_PCRF_AAA_01 - AA Answer", true ) ); ); p_monitorCompRef.done; p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCRF_AAA_01 } // End of function f_mtc_check_TP_RX_PCRF_AAA_01 /** * Starts monitor component behavior for TP_RX_PCRF_AAA_02 * @param p_monitorCompRef Reference to monitor component * <pre> * Test objective "Verify that IUT sends AA-Answer after RAA is received from PGW." * ensure that { * when { * the EPC_PGW_A entity sends a RAA * to the EPC_PCRF_A entity * } * then { * the EPC_PCRF_A entity sends the AAA containing * Result_Code_AVP * indicating value DIAMETER_SUCCESS "(2001)" * Acceptable_Service_Info_AVP containing * "one or more" Media_Component_Description_AVP * ; * ; * to the IMS_P_CSCF_A entity * } * </pre> * @see TS 103 653-1 clause 7.6 */ function f_mtc_check_TP_RX_PCRF_AAA_02( DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_resultCode }, "TP_RX_PCRF_AAA_02", true ) ); p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCRF_AAA_02 /** * Starts monitor component behavior for TP_RX_PCRF_AAA_03 * @param p_monitorCompRef Reference to monitor component * <pre> * Test objective "Verify that IUT receives AA-Answer from home PCRF and it sends AA-Answer towards visited P-CSCF." * ensure that { * when { * the EPC_PCRF_A entity sends a AAA * to the EPC_PCRF_B entity * } * then { * the EPC_PCRF_B entity sends the AAA * to the IMS_P_CSCF_B entity * } * } * </pre> * @see TS 103 653-1 clause 7.6 */ function f_mtc_check_TP_RX_PCRF_AAA_03( DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_resultCode }, "TP_RX_PCRF_AAA_03", true ) ); p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCRF_AAA_03 } // end group g_PCRF_AAA } // end group g_PCRF_AAA } // end group g_PCRF } // end group g_PCRF Loading Loading @@ -144,7 +232,7 @@ group g_PCSCF_AAR { * @remark source function f_mtc_check_TP_EPC_6013_01 * @remark source function f_mtc_check_TP_EPC_6013_01 */ */ function f_mtc_check_TP_RX_PCSCF_AAR_01( function f_mtc_check_TP_RX_PCSCF_AAR_01( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAR_MSG := mw_AAR_dummy } , "TP_RX_PCSCF_AAR_01", true ) f_receiveDiameterMsg ( { aAR_MSG := mw_AAR_dummy } , "TP_RX_PCSCF_AAR_01", true ) Loading @@ -164,12 +252,10 @@ group g_PCSCF_STR { * @remark source function f_mtc_check_TP_EPC_6034_02 * @remark source function f_mtc_check_TP_EPC_6034_02 */ */ function f_mtc_check_TP_RX_PCSCF_STR_03( function f_mtc_check_TP_RX_PCSCF_STR_03( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_imsIot_receive( f_receiveDiameterMsg ( { sTR_MSG := mw_STR_dummy } , "TP_RX_PCSCF_STR_03", true ) { mw_SipRequest ( mw_CANCEL_Request_Base ( ? ) ) }, { }, { 0, omit }, "TP_RX_PCSCF_STR_03", false, false ) ); ); p_monitorCompRef.done; p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCSCF_STR_03 } // End of function f_mtc_check_TP_RX_PCSCF_STR_03 Loading @@ -182,12 +268,10 @@ group g_PCSCF_STR { * @remark source function f_mtc_check_TP_EPC_6034_04 * @remark source function f_mtc_check_TP_EPC_6034_04 */ */ function f_mtc_check_TP_RX_PCSCF_STR_06( function f_mtc_check_TP_RX_PCSCF_STR_06( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_imsIot_receive( f_receiveDiameterMsg ( { sTR_MSG := mw_STR_dummy } , "TP_RX_PCSCF_STR_06", true ) { mw_SipResponse ( mw_Response_Base ( c_statusLine486, ?, ? ) ) }, { }, { 0, omit }, "TP_RX_PCSCF_STR_06", false, false ) ); ); p_monitorCompRef.done; p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCSCF_STR_06 } // End of function f_mtc_check_TP_RX_PCSCF_STR_06 Loading @@ -200,8 +284,8 @@ group g_PCSCF_STR { * @remark source function f_mtc_check_TP_EPC_6012_02 * @remark source function f_mtc_check_TP_EPC_6012_02 */ */ function f_mtc_check_TP_RX_PCSCF_STR_07( function f_mtc_check_TP_RX_PCSCF_STR_07( ImsInterfaceMonitor p_monitorCompRef, DiameterInterfaceMonitor p_monitorCompRef, ImsInterfaceMonitor p_monitorCompRef_B DiameterInterfaceMonitor p_monitorCompRef_B ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { // f_mtc_check_TP_EPC_6012_01 ( p_monitorCompRef, false ); // f_mtc_check_TP_EPC_6012_01 ( p_monitorCompRef, false ); // f_mtc_check_TP_EPC_6022_01 ( p_monitorCompRef ); // f_mtc_check_TP_EPC_6022_01 ( p_monitorCompRef ); Loading LibSip @ 7f6fd81a Compare 2acb7ee6 to 7f6fd81a Original line number Original line Diff line number Diff line Subproject commit 2acb7ee656b6be066139a050b072e0d345c10022 Subproject commit 7f6fd81af0912a0d8bdf85bafede9e62b68b1628 Loading
ttcn/AtsImsIot/AtsImsIot_Diameter_Templates.ttcn 0 → 100644 +149 −0 Original line number Original line Diff line number Diff line /** * @author STF574 * @version $Id$ * @desc This module defines AtsIot Diameter Templates for message, header, and * structured types. <br> * @remark Any additions to the templates shall follow the design rules * and always modify base templates only; */ module AtsImsIot_Diameter_Templates { //LibCommon import from LibCommon_DataStrings {type Bit1, Bit4, Bit5, Bit8;}//all; import from LibCommon_BasicTypesAndValues {type UInt8, UInt32, UInt64;}; //LibDiameter import from LibDiameter_TypesAndValues all; import from LibDiameter_Templates all; import from LibDiameter_Steps all; import from LibDiameter_Types_Gx_AVPs all; import from LibDiameter_Types_Base_AVPs all; import from LibDiameter_Types_Rx_AVPs all; group DiameterHeaderFields { group RxHeaderFields{ template Abort_Cause_AVP mw_abortCause(template Abort_Cause_Type p_avpData) := { aVP_Header := mw_aVP_Header_VMbit1(c_abort_Cause_AVP_Code), aVP_Data := p_avpData }; template Media_Component_Description_AVP mw_mediaComponentDescription := { aVP_Header := mw_aVP_Header_VMbit1(c_media_Component_Description_AVP_Code), media_Component_Nr := {aVP_Header := ?, aVP_Data := ?}, media_Sub_component := {mw_mediaSubComponent}, af_Application_Id := *, media_type := *, max_Requested_Bw_Ul := *, max_Requested_Bw_Dl := *, flow_Status := *, reservation_Priority := *, rs_Bw := *, rr_Bw := *, codec_data := * } template Media_Sub_Component_AVP mw_mediaSubComponent := { aVP_Header := mw_aVP_Header_VMbit1(c_media_Sub_Component_AVP_Code), flow_Number := ?, flow_Description := ?, flow_Status := mw_flowStatus(ENABLED_E), flow_Usage := mw_flowUsage(AF_SIGNALLING_E), max_Requested_Bw_Ul := *, max_Requested_Bw_Dl := *, af_Signalling_Protocol := mw_afSignallingProtocolSIP, aVP_Type := * } template AF_Signalling_Protocol_AVP mw_afSignallingProtocolSIP := { //Ref: ETSI TS 129 214 AF_Signalling_Protocol AVP aVP_Header := mw_aVP_Header_Vbit1Mbit0(c_aF_Signalling_Protocol_AVP_Code), aVP_Data := SIP_E } template Flow_Status_AVP mw_flowStatus(template (present) Flow_Status_Type p_avpData) := { aVP_Header := mw_aVP_Header_VMbit1(c_flow_Status_AVP_Code), aVP_Data := p_avpData } template Flow_Usage_AVP mw_flowUsage(template (present) Flow_Usage_Type p_avpData) := { aVP_Header := mw_aVP_Header_VMbit1(c_flow_Usage_AVP_Code), aVP_Data := p_avpData } } //end group RxHeaderFields group GxHeaderFields{ template CC_Request_Type_AVP mw_cC_Request_Type(CC_Request_Ty_Type p_avpData):= { aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_cC_Request_Type_AVP_Code), aVP_Data := p_avpData } } //end group GxHeaderFields } //end DiameterHeaderFields group DiameterTemplates { group RxMessageTemplates{ group RxRequestMessageTemplates{ template ASR_MSG mw_ASR_abortCause(template (present) Abort_Cause_Type p_avpData) modifies mw_ASR_dummy := { aSR_Body :={ abort_cause := mw_abortCause(p_avpData) } } }// end group RxRequestMessageTemplates group RxAnswertMessageTemplates{ template AAA_MSG mw_AAA_AcceptableService modifies mw_AAA_dummy := { aAA_Body :={ result_Code := mw_resultCode(mw_resultCode_diameterSuccess), acceptable_service_info := { media_component_description := {mw_mediaComponentDescription } }, ip_Can_Type := ?, rat_Type := ? } } template AAA_MSG mw_AAA_resultCode modifies mw_AAA_dummy := { aAA_Body :={ result_Code := mw_resultCode(mw_resultCode_diameterSuccess) } } template ASA_MSG mw_ASA_resultCode modifies mw_ASA_dummy := { aSA_Body :={ result_Code := mw_resultCode(mw_resultCode_diameterSuccess) } } }// end group RxRequestMessageTemplates }//end group RxMessageTemplates group GxMessageTemplates{ group GxRequestMessageTemplates{ template CCR_MSG mw_CCR_RequestType(CC_Request_Ty_Type p_avpData) modifies mw_CCR_dummy := { cCR_Body :={ cC_Request_Type := mw_cC_Request_Type(p_avpData) } } }// end group GxRequestMessageTemplates group GxAnswertMessageTemplates{ template CCA_MSG mw_CCA_resultCode modifies mw_CCA_dummy := { cCA_Body :={ result_Code := mw_resultCode(mw_resultCode_diameterSuccess) } } }// end group GxRequestMessageTemplates }//end group GxMessageTemplates } // end group DiameterTemplates }//end module AtsImsIot_Diameter_Templates No newline at end of file
ttcn/AtsImsIot/AtsImsIot_Functions.ttcn +41 −41 Original line number Original line Diff line number Diff line Loading @@ -2597,14 +2597,14 @@ module AtsImsIot_Functions { */ */ function f_receiveDiameterMsg (in template (present) DIAMETER_MSG p_diameter, function f_receiveDiameterMsg (in template (present) DIAMETER_MSG p_diameter, in charstring p_log, in boolean p_bool ) in charstring p_log, in boolean p_bool ) runs on ImsInterfaceMonitor { runs on DiameterInterfaceMonitor { timer t_local := PX_MAX_MSG_WAIT; timer t_local := PX_MAX_MSG_WAIT; var boolean v_loop := true; var boolean v_loop := true; log ( "### " & p_log ); log ( "### " & p_log ); t_local.start; t_local.start; while ( v_loop ) { while ( v_loop ) { alt { alt { [] rxPort.receive ( p_diameter ) { [] diameterPort.receive ( p_diameter ) { t_local.stop; t_local.stop; if ( p_bool ) { if ( p_bool ) { setverdict ( pass, self, "*** f_receiveDiameterMsg: expected Diameter message received***"); setverdict ( pass, self, "*** f_receiveDiameterMsg: expected Diameter message received***"); Loading @@ -2625,7 +2625,7 @@ module AtsImsIot_Functions { break; break; } } } } [] rxPort.receive { [] diameterPort.receive { t_local.start; t_local.start; } } } } Loading
ttcn/AtsImsIot/AtsImsIot_TP_behavior_GX.ttcn +55 −38 Original line number Original line Diff line number Diff line Loading @@ -7,45 +7,20 @@ module AtsImsIot_TP_behavior_GX module AtsImsIot_TP_behavior_GX { { import from AtsImsIot_TestSystem { type ImsInterfaceMonitor, ImsTestCoordinator; } import from AtsImsIot_TestSystem { type DiameterInterfaceMonitor, ImsTestCoordinator; } import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;} import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;} import from AtsImsIot_Templates {template all;} import from AtsImsIot_Templates {template all;} import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; } import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; } import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser }; import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser }; import from LibIms_UpperTester {type ImsUserInfo;} import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;} import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;} import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; } import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; } import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibSip_Common { type GenericParam, SemicolonParam_List } import from AtsImsIot_Functions all; import from AtsImsIot_Functions all; import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} // LibSip import from AtsImsIot_Diameter_Templates all; import from LibSip_SDPTypes { type SDP_media_desc_list }; // LibMsrp import from LibMsrp_TypesAndValues { type MsrpURI }; import from LibMsrp_Functions { function f_str2msrpUri }; import from LibMsrp_Templates { template m_msrpSend_Dummy, mw_msrpSEND_toPath_fromPath_contentType, m_msrpReport_Dummy, mw_msrpREPORT_success, m_msrpResponse_Dummy, mw_msrpResponse_toPath_fromPath, mw_toPath, mw_fromPath, mw_msrpResponse_toPath_fromPath_with_transferReports, m_msrpURIs_ToPath_Dummy, m_msrpURIs_FromPath_Dummy, mw_contentType }; import from DiameterS6a_Templates all; import from DiameterS6a_PIXITS all; import from DiameterGx_Templates all; // LibDiameter // LibDiameter import from LibDiameter_Templates all; import from LibDiameter_Templates all; // import from DiameterRx_Templates all; group g_PGW { group g_PGW { Loading @@ -55,6 +30,48 @@ group g_PGW { group g_PCRF { group g_PCRF { /** * Starts monitor component behavior for TP_GX_PCRF_CCA_02 * @param p_monitorCompRef Reference to monitor component * <pre> * Test objective "Verify that IUT when receives CC-Request for PCC Rules sends a CC-Answer in case of detachment procedure." * ensure that { * when { * the EPC_PGW_A entity sends an CCR containing * CC_Request_Type_AVP * indicating value TERMINATION_REQUEST * ; * to the EPC_PCRF_A entity * } * then { * the EPC_PCRF_A entity sends the CCA containing * Result_Code_AVP * indicating value DIAMETER_SUCCESS * ; * to the EPC_PGW_A entity * } * } * </pre> * @see TS 103 653-1 clause 7.7 */ function f_mtc_check_TP_GX_PCRF_CCA_02( DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start ( f_receiveDiameterMsg ( { cCR_MSG := mw_CCR_RequestType(TERMINATION_REQUEST_E) }, "TP_RX_PCRF_CCA_02 - CC Request", true ) ); p_monitorCompRef.done; p_monitorCompRef.start ( f_receiveDiameterMsg ( { cCA_MSG := mw_CCA_resultCode }, "TP_RX_PCRF_CCA_02 - CC Answer", true ) ); p_monitorCompRef.done; } // End of function f_mtc_check_TP_GX_PCRF_CCA_02 } // end group g_PCRF } // end group g_PCRF Loading
ttcn/AtsImsIot/AtsImsIot_TP_behavior_RX.ttcn +240 −156 Original line number Original line Diff line number Diff line Loading @@ -7,45 +7,21 @@ module AtsImsIot_TP_behavior_RX module AtsImsIot_TP_behavior_RX { { import from AtsImsIot_TestSystem { type ImsInterfaceMonitor, ImsTestCoordinator; } import from AtsImsIot_TestSystem { type DiameterInterfaceMonitor, ImsTestCoordinator; } import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;} import from LibIot_PIXITS {modulepar PX_MAX_MSG_WAIT;} import from AtsImsIot_Templates {template all;} import from AtsImsIot_Templates {template all;} import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; } import from AtsImsIot_TypesAndValues { type SipMessage, SipMessageList, NAPTRmessage, EnumResponse, EnumQuery, SkipType; } import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser }; import from LibIot_TestInterface { type EquipmentUser, IotEquipmentUser }; import from LibIms_UpperTester {type ImsUserInfo;} import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;} import from LibIot_TypesAndValues {type SetFilterReq, SetFilterRsp;} import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; } import from LibIot_Functions { function f_setConformanceVerdict, f_setIotVerdictFAIL; } import from LibSip_SIPTypesAndValues all; import from LibSip_Templates all; import from LibSip_Common { type GenericParam, SemicolonParam_List } import from AtsImsIot_Functions all; import from AtsImsIot_Functions all; import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} import from LibIot_PIXITS {modulepar PX_EUT_A, PX_EUT_B;} // LibSip import from AtsImsIot_Diameter_Templates all; import from LibSip_SDPTypes { type SDP_media_desc_list }; // LibMsrp import from LibMsrp_TypesAndValues { type MsrpURI }; import from LibMsrp_Functions { function f_str2msrpUri }; import from LibMsrp_Templates { template m_msrpSend_Dummy, mw_msrpSEND_toPath_fromPath_contentType, m_msrpReport_Dummy, mw_msrpREPORT_success, m_msrpResponse_Dummy, mw_msrpResponse_toPath_fromPath, mw_toPath, mw_fromPath, mw_msrpResponse_toPath_fromPath_with_transferReports, m_msrpURIs_ToPath_Dummy, m_msrpURIs_FromPath_Dummy, mw_contentType }; import from DiameterS6a_Templates all; import from DiameterS6a_PIXITS all; import from DiameterGx_Templates all; // LibDiameter // LibDiameter import from LibDiameter_Templates all; import from LibDiameter_Templates all; // import from DiameterRx_Templates all; group g_PCRF { group g_PCRF { Loading @@ -54,28 +30,38 @@ group g_PCRF_ASA { /** /** * Starts monitor component behavior for TP_RX_PCRF_ASA_01 * Starts monitor component behavior for TP_RX_PCRF_ASA_01 * @param p_monitorCompRef Reference to monitor component * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue. * <pre> * <pre> * ensure that { * ensure that { * when { * when { * EPC_PCRF triggers_termination of SIP_session * the IMS_P_CSCF_A entity sends a ASR containing * Abort_Cause_AVP * indicating value BEARER_RELEASED '(0)' * ; * to the EPC_PCRF_A entity * } * } * then { * then { * EPC_PCRF sends Abort-Session-Request to IMS_P-CSCF containing * the EPC_PCRF_A entity sends the ASA containing * Session-Id_AVP indicating session of SIP_session * Result_Code_AVP * Abort-Cause_AVP indicating BEARER_RELEASED (0) * indicating value DIAMETER_SUCCESS "(2001)" * } * ; * to the IMS_P_CSCF_A entity * } * } * </pre> * </pre> * @see TS 103 029 V3.1.1 clause 7.1.2 * @see TS 103 653-1 clause 7.6 * @remark source function f_mtc_check_TP_EPC_6005_01 */ */ function f_mtc_check_TP_RX_PCRF_ASA_01( function f_mtc_check_TP_RX_PCRF_ASA_01( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_receiveDiameterMsg ( { aSR_MSG := mw_ASR_dummy } , "TP_RX_PCRF_ASA_01", true ) f_receiveDiameterMsg ( { aSR_MSG := mw_ASR_abortCause(BEARER_RELEASED_E) }, "TP_RX_PCRF_ASA_01 - AS Request", true ) ); p_monitorCompRef.done; p_monitorCompRef.start ( f_receiveDiameterMsg ( { aSA_MSG := mw_ASA_resultCode }, "TP_RX_PCRF_ASA_01 - AS Answer", true ) ); ); p_monitorCompRef.done; p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCRF_ASA_01 } // End of function f_mtc_check_TP_RX_PCRF_ASA_01 Loading @@ -87,19 +73,121 @@ group g_PCRF_AAA { /** /** * Starts monitor component behavior for TP_RX_PCRF_AAA_01 * Starts monitor component behavior for TP_RX_PCRF_AAA_01 * @param p_monitorCompRef Reference to monitor component * @param p_monitorCompRef Reference to monitor component * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). * <pre> * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue. * Test objective "Verify that IUT after AA-Request is received due to provisioning of AF Signalling flow sends AA-Answer." * @remark source function f_mtc_check_TP_EPC_6014_01 * ensure that { * when { * the IMS_P_CSCF_A entity sends an AAR * to the EPC_PCRF_A entity * } * then { * the EPC_PCRF_A entity sends the AAA containing * Result_Code_AVP * indicating value DIAMETER_SUCCESS, * Acceptable_Service_Info_AVP containing * "one or more" Media_Component_Description_AVP containing * Media_Component_Number_AVP * indicating value 0, * Media_Sub_Component_AVP containing * Flow_Description_AVP * Flow_Usage_AVP * indicating value AF_SIGNALING, * Flow_Status_AVP * indicating value ENABLED, * AF_Signalling_Protocol_AVP * indicating value SIP * ; * ; * ;, * IP_CAN_AVP * RAT_Type_AVP * ; * to the IMS_P_CSCF_A entity * } * } * </pre> * @see TS 103 653-1 clause 7.6 */ */ function f_mtc_check_TP_RX_PCRF_AAA_01( function f_mtc_check_TP_RX_PCRF_AAA_01( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_dummy } , "TP_RX_PCRF_AAA_01", true ) f_receiveDiameterMsg ( { aAR_MSG := mw_AAR_dummy }, "TP_RX_PCRF_AAA_01 - AA Request", true ) ); p_monitorCompRef.done; p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_AcceptableService }, "TP_RX_PCRF_AAA_01 - AA Answer", true ) ); ); p_monitorCompRef.done; p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCRF_AAA_01 } // End of function f_mtc_check_TP_RX_PCRF_AAA_01 /** * Starts monitor component behavior for TP_RX_PCRF_AAA_02 * @param p_monitorCompRef Reference to monitor component * <pre> * Test objective "Verify that IUT sends AA-Answer after RAA is received from PGW." * ensure that { * when { * the EPC_PGW_A entity sends a RAA * to the EPC_PCRF_A entity * } * then { * the EPC_PCRF_A entity sends the AAA containing * Result_Code_AVP * indicating value DIAMETER_SUCCESS "(2001)" * Acceptable_Service_Info_AVP containing * "one or more" Media_Component_Description_AVP * ; * ; * to the IMS_P_CSCF_A entity * } * </pre> * @see TS 103 653-1 clause 7.6 */ function f_mtc_check_TP_RX_PCRF_AAA_02( DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_resultCode }, "TP_RX_PCRF_AAA_02", true ) ); p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCRF_AAA_02 /** * Starts monitor component behavior for TP_RX_PCRF_AAA_03 * @param p_monitorCompRef Reference to monitor component * <pre> * Test objective "Verify that IUT receives AA-Answer from home PCRF and it sends AA-Answer towards visited P-CSCF." * ensure that { * when { * the EPC_PCRF_A entity sends a AAA * to the EPC_PCRF_B entity * } * then { * the EPC_PCRF_B entity sends the AAA * to the IMS_P_CSCF_B entity * } * } * </pre> * @see TS 103 653-1 clause 7.6 */ function f_mtc_check_TP_RX_PCRF_AAA_03( DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAA_MSG := mw_AAA_resultCode }, "TP_RX_PCRF_AAA_03", true ) ); p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCRF_AAA_03 } // end group g_PCRF_AAA } // end group g_PCRF_AAA } // end group g_PCRF } // end group g_PCRF Loading Loading @@ -144,7 +232,7 @@ group g_PCSCF_AAR { * @remark source function f_mtc_check_TP_EPC_6013_01 * @remark source function f_mtc_check_TP_EPC_6013_01 */ */ function f_mtc_check_TP_RX_PCSCF_AAR_01( function f_mtc_check_TP_RX_PCSCF_AAR_01( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_receiveDiameterMsg ( { aAR_MSG := mw_AAR_dummy } , "TP_RX_PCSCF_AAR_01", true ) f_receiveDiameterMsg ( { aAR_MSG := mw_AAR_dummy } , "TP_RX_PCSCF_AAR_01", true ) Loading @@ -164,12 +252,10 @@ group g_PCSCF_STR { * @remark source function f_mtc_check_TP_EPC_6034_02 * @remark source function f_mtc_check_TP_EPC_6034_02 */ */ function f_mtc_check_TP_RX_PCSCF_STR_03( function f_mtc_check_TP_RX_PCSCF_STR_03( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_imsIot_receive( f_receiveDiameterMsg ( { sTR_MSG := mw_STR_dummy } , "TP_RX_PCSCF_STR_03", true ) { mw_SipRequest ( mw_CANCEL_Request_Base ( ? ) ) }, { }, { 0, omit }, "TP_RX_PCSCF_STR_03", false, false ) ); ); p_monitorCompRef.done; p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCSCF_STR_03 } // End of function f_mtc_check_TP_RX_PCSCF_STR_03 Loading @@ -182,12 +268,10 @@ group g_PCSCF_STR { * @remark source function f_mtc_check_TP_EPC_6034_04 * @remark source function f_mtc_check_TP_EPC_6034_04 */ */ function f_mtc_check_TP_RX_PCSCF_STR_06( function f_mtc_check_TP_RX_PCSCF_STR_06( ImsInterfaceMonitor p_monitorCompRef DiameterInterfaceMonitor p_monitorCompRef ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { p_monitorCompRef.start ( p_monitorCompRef.start ( f_imsIot_receive( f_receiveDiameterMsg ( { sTR_MSG := mw_STR_dummy } , "TP_RX_PCSCF_STR_06", true ) { mw_SipResponse ( mw_Response_Base ( c_statusLine486, ?, ? ) ) }, { }, { 0, omit }, "TP_RX_PCSCF_STR_06", false, false ) ); ); p_monitorCompRef.done; p_monitorCompRef.done; } // End of function f_mtc_check_TP_RX_PCSCF_STR_06 } // End of function f_mtc_check_TP_RX_PCSCF_STR_06 Loading @@ -200,8 +284,8 @@ group g_PCSCF_STR { * @remark source function f_mtc_check_TP_EPC_6012_02 * @remark source function f_mtc_check_TP_EPC_6012_02 */ */ function f_mtc_check_TP_RX_PCSCF_STR_07( function f_mtc_check_TP_RX_PCSCF_STR_07( ImsInterfaceMonitor p_monitorCompRef, DiameterInterfaceMonitor p_monitorCompRef, ImsInterfaceMonitor p_monitorCompRef_B DiameterInterfaceMonitor p_monitorCompRef_B ) runs on ImsTestCoordinator { ) runs on ImsTestCoordinator { // f_mtc_check_TP_EPC_6012_01 ( p_monitorCompRef, false ); // f_mtc_check_TP_EPC_6012_01 ( p_monitorCompRef, false ); // f_mtc_check_TP_EPC_6022_01 ( p_monitorCompRef ); // f_mtc_check_TP_EPC_6022_01 ( p_monitorCompRef ); Loading
LibSip @ 7f6fd81a Compare 2acb7ee6 to 7f6fd81a Original line number Original line Diff line number Diff line Subproject commit 2acb7ee656b6be066139a050b072e0d345c10022 Subproject commit 7f6fd81af0912a0d8bdf85bafede9e62b68b1628