Loading DiameterCxDx/ttcn/DiameterCxDx_Cx_TCFunctions.ttcn3 +54 −4 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ */ module DiameterCxDx_Cx_TCFunctions { import from LibIms_Interface {type ImsComponent;} import from LibIms_Steps {function f_setHeadersINVITE} import from LibIms_Templates {template m_INVITE_Request_noBody_UE} // LibCommon import from LibCommon_Sync { Loading @@ -14,7 +16,7 @@ module DiameterCxDx_Cx_TCFunctions { } import from LibCommon_VerdictControl all; import from LibSip_Steps {function f_RemoveRegistration}; import from LibSip_Steps {function f_RemoveRegistration, f_SendINVITE}; import from LibSip_SIPTypesAndValues all; // LibDiameter Loading Loading @@ -4132,11 +4134,9 @@ module DiameterCxDx_Cx_TCFunctions { function f_TC_CX_CSCF_LI_01_UA(in CSeq p_cSeq_s) runs on ImsComponent { // Preamble //Registration f_preamble_UE_registration(p_cSeq_s); f_preamble_UE_regInv(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // invite f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -4186,6 +4186,56 @@ module DiameterCxDx_Cx_TCFunctions { } // group TP_CSCFRole_LI group TP_CSCFRole_PP {//Cx PP function f_TC_CX_CSCF_PP_01_UA(in CSeq p_cSeq_s) runs on ImsComponent { // Preamble //Registration f_preamble_UE_registration(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } function f_TC_CX_CSCF_PP_01_HSS() runs on DiameterCx { // Local variables // Preamble: first complete registration f_preamble_HSS(); f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR)); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic)); f_send_MAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // the IUT sends a PP-Request vc_userName := m_userName(PX_UserName); f_send_PPR(m_PPR_Msg(vc_sessionId, m_PPR(vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_userData('0102'O), omit, omit))); f_awaiting_PPA(mw_PPA_Msg(?, mw_PPA_basic)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //de-registration f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } } // group TP_CSCFRole_PP group TP_CSCFRole_MA {//Cx MA } // group TP_CSCFRole_MA Loading DiameterCxDx/ttcn/DiameterCxDx_Templates.ttcn +32 −1 Original line number Diff line number Diff line Loading @@ -134,12 +134,20 @@ module DiameterCxDx_Templates { aVP_Type := omit } template (value) Reason_Code_AVP m_reasonCode(in template (value) Reason_Code_Type p_avpData template (value) Reason_Code_AVP m_reasonCode(template (value) Reason_Code_Type p_avpData ) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_reason_Code_AVP_Code, 4, c_vendId3gpp), aVP_Data := p_avpData } template (value) User_Data_AVP m_userData(template (value) octetstring p_aVpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Data_AVP_Code, 4+lengthof(p_aVpData), c_vendId3gpp), aVP_Data := p_aVpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -1206,6 +1214,29 @@ module DiameterCxDx_Templates { modifies m_RTR_basic := { vendor_Specific_Application_Id := omit //mandatory in TS 129 229 } template (value) PPR_Body_AVP m_PPR (template (omit) Origin_Host_AVP p_originHost, template (omit) Origin_Realm_AVP p_originRealm, template (omit) Destination_Host_AVP p_destinationHost, template (omit) Destination_Realm_AVP p_destinationRealm, template (omit) User_Name_AVP p_userName, template User_Data_AVP p_userData, template Charging_Information_AVP p_chargingInformation, template SIP_Auth_Data_Item_AVP p_sIPAuthDataItem) modifies m_PPR_basic := { vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Cx, //mandatory in TS 129 229 auth_Application_Id := omit, //not in TS 129 229 auth_Session_State := m_auth_Session_State_no_maintained, //mandatory in TS 129 229 origin_Host := p_originHost, //mandatory in TS 129 229 origin_Realm := p_originRealm, //mandatory in TS 129 229 destination_Realm := p_destinationRealm, //mandatory in TS 129 229 user_Name := p_userName, //mandatory in TS 129 229 destination_Host := p_destinationHost, //mandatory in TS 129 229 user_Data := p_userData, //only TS129 229 charging_Information := p_chargingInformation, //only TS129 229 sIP_Auth_Data_Item := p_sIPAuthDataItem //only TS129 229 } } // end group CxModified_request_templates_send group Cx_modified_request_templates_receive { Loading Loading
DiameterCxDx/ttcn/DiameterCxDx_Cx_TCFunctions.ttcn3 +54 −4 Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ */ module DiameterCxDx_Cx_TCFunctions { import from LibIms_Interface {type ImsComponent;} import from LibIms_Steps {function f_setHeadersINVITE} import from LibIms_Templates {template m_INVITE_Request_noBody_UE} // LibCommon import from LibCommon_Sync { Loading @@ -14,7 +16,7 @@ module DiameterCxDx_Cx_TCFunctions { } import from LibCommon_VerdictControl all; import from LibSip_Steps {function f_RemoveRegistration}; import from LibSip_Steps {function f_RemoveRegistration, f_SendINVITE}; import from LibSip_SIPTypesAndValues all; // LibDiameter Loading Loading @@ -4132,11 +4134,9 @@ module DiameterCxDx_Cx_TCFunctions { function f_TC_CX_CSCF_LI_01_UA(in CSeq p_cSeq_s) runs on ImsComponent { // Preamble //Registration f_preamble_UE_registration(p_cSeq_s); f_preamble_UE_regInv(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // invite f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_RemoveRegistration(vc_cSeq); // deregistration in SUT Loading Loading @@ -4186,6 +4186,56 @@ module DiameterCxDx_Cx_TCFunctions { } // group TP_CSCFRole_LI group TP_CSCFRole_PP {//Cx PP function f_TC_CX_CSCF_PP_01_UA(in CSeq p_cSeq_s) runs on ImsComponent { // Preamble //Registration f_preamble_UE_registration(p_cSeq_s); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble f_RemoveRegistration(vc_cSeq); // deregistration in SUT f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } function f_TC_CX_CSCF_PP_01_HSS() runs on DiameterCx { // Local variables // Preamble: first complete registration f_preamble_HSS(); f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR)); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_MAR(mw_MAR_Msg(?, mw_MAR_basic)); f_send_MAA(m_MAA_Msg(vc_sessionId, m_MAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // Test Body // the IUT sends a PP-Request vc_userName := m_userName(PX_UserName); f_send_PPR(m_PPR_Msg(vc_sessionId, m_PPR(vc_originHost, vc_originRealm, vc_destinationHost, vc_destinationRealm, vc_userName, m_userData('0102'O), omit, omit))); f_awaiting_PPA(mw_PPA_Msg(?, mw_PPA_basic)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // Postamble //de-registration f_awaiting_UAR(mw_UAR_Msg(?, mw_UAR())); f_send_UAA(m_UAA_Msg(vc_sessionId, m_UAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_awaiting_SAR(mw_SAR_Msg(?, mw_SAR_basic)); f_send_SAA(m_SAA_Msg(vc_sessionId, m_SAA_basic(vc_originHost, vc_originRealm, m_resultCode(DIAMETER_SUCCESS_E)))); f_postamble_HSS(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); } } // group TP_CSCFRole_PP group TP_CSCFRole_MA {//Cx MA } // group TP_CSCFRole_MA Loading
DiameterCxDx/ttcn/DiameterCxDx_Templates.ttcn +32 −1 Original line number Diff line number Diff line Loading @@ -134,12 +134,20 @@ module DiameterCxDx_Templates { aVP_Type := omit } template (value) Reason_Code_AVP m_reasonCode(in template (value) Reason_Code_Type p_avpData template (value) Reason_Code_AVP m_reasonCode(template (value) Reason_Code_Type p_avpData ) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_reason_Code_AVP_Code, 4, c_vendId3gpp), aVP_Data := p_avpData } template (value) User_Data_AVP m_userData(template (value) octetstring p_aVpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_user_Data_AVP_Code, 4+lengthof(p_aVpData), c_vendId3gpp), aVP_Data := p_aVpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -1206,6 +1214,29 @@ module DiameterCxDx_Templates { modifies m_RTR_basic := { vendor_Specific_Application_Id := omit //mandatory in TS 129 229 } template (value) PPR_Body_AVP m_PPR (template (omit) Origin_Host_AVP p_originHost, template (omit) Origin_Realm_AVP p_originRealm, template (omit) Destination_Host_AVP p_destinationHost, template (omit) Destination_Realm_AVP p_destinationRealm, template (omit) User_Name_AVP p_userName, template User_Data_AVP p_userData, template Charging_Information_AVP p_chargingInformation, template SIP_Auth_Data_Item_AVP p_sIPAuthDataItem) modifies m_PPR_basic := { vendor_Specific_Application_Id := m_vendor_Specific_Appl_Id_Cx, //mandatory in TS 129 229 auth_Application_Id := omit, //not in TS 129 229 auth_Session_State := m_auth_Session_State_no_maintained, //mandatory in TS 129 229 origin_Host := p_originHost, //mandatory in TS 129 229 origin_Realm := p_originRealm, //mandatory in TS 129 229 destination_Realm := p_destinationRealm, //mandatory in TS 129 229 user_Name := p_userName, //mandatory in TS 129 229 destination_Host := p_destinationHost, //mandatory in TS 129 229 user_Data := p_userData, //only TS129 229 charging_Information := p_chargingInformation, //only TS129 229 sIP_Auth_Data_Item := p_sIPAuthDataItem //only TS129 229 } } // end group CxModified_request_templates_send group Cx_modified_request_templates_receive { Loading