Loading DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +190 −0 Original line number Diff line number Diff line Loading @@ -341,8 +341,198 @@ module DiameterGx_Gx_TCFunctions { }//end group TP_PCRFRole_INV group TP_PCRFRole_ST { //Session Termination /* * @desc This is the test case function TC_PCRF_ST_01 * @param */ function f_TC_PCRF_ST_01() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //IP CAN termination f_send_CCR(m_CCR_UpdateRequest_IPcanTermination(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_ST_01 /* * @desc This is the test case function TC_PCRF_ST_02 * @param */ function f_TC_PCRF_ST_02() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_ST_02 /* * @desc This is the test case function TC_PCRF_ST_03 * @param */ function f_TC_PCRF_ST_03() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //termination of IPCAN session due to an internal SPR trigger f_awaiting_RAR(mw_RAR_sessReleaseCause(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost)); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_ST_03 }//end group TP_PCRFRole_ST group TP_PCRFRole_PCC { //PCC rules /* * @desc This is the test case function TC_PCRF_PCC_01 * @param */ function f_TC_PCRF_PCC_01() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //activation of PCC rule f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Name)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_01 /* * @desc This is the test case function TC_PCRF_PCC_02 * @param */ function f_TC_PCRF_PCC_02() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //activation of PCC rule f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Name)); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //deactivation of PCC rule f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleRemove(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_02 /* * @desc This is the test case function TC_PCRF_PCC_03 * @param */ function f_TC_PCRF_PCC_03() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //activation of PCC rules f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_BaseName)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_03 }//end group TP_PCRFRole_PCC group TP_PCRFRole_EMS { //Emergency services }//end group TP_PCRFRole_EMS Loading DiameterGx/ttcn/DiameterGx_Templates.ttcn +167 −4 Original line number Diff line number Diff line Loading @@ -76,6 +76,28 @@ module DiameterGx_Templates { aVP_Type := omit } template Charging_Rule_Install_AVP mw_chrgRuleInstall_dummy := { aVP_Header := mw_aVP_Header_any, charging_Rule_Definition := *, charging_Rule_Name := *, charging_Rule_Base_Name := *, bearer_Identifier := *, rule_Activation_Time := *, rule_DeActivation_Time := *, resource_Allocation_Notification := *, charging_Correlation_Indicator := *, aVP_Type := * } template Charging_Rule_Remove_AVP mw_chrgRuleRemove_dummy := { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := *, charging_Rule_Base_Name := *, aVP_Type := * } } //end group DummyAVPHeaders group SpecificAVPHeaders { Loading Loading @@ -483,6 +505,40 @@ module DiameterGx_Templates { aVP_Header := mw_aVP_Header_any, aVP_Data := p_avpData } template Session_Release_Cause_AVP mw_sessReleaseCause(template (present) Session_Release_Cause p_avpData) := { aVP_Header := mw_aVP_Header_any, aVP_Data := p_avpData } template Charging_Rule_Install_AVP mw_chrgRuleInstall_Name modifies mw_chrgRuleInstall_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := {{ aVP_Header := ?, aVP_Data := ? }} } template Charging_Rule_Install_AVP mw_chrgRuleInstall_BaseName modifies mw_chrgRuleInstall_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Base_Name := {{ aVP_Header := ?, aVP_Data := ? }} } template Charging_Rule_Remove_AVP mw_chrgRuleRemove modifies mw_chrgRuleRemove_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := {{ aVP_Header := ?, aVP_Data := ? }} } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -522,6 +578,21 @@ module DiameterGx_Templates { cC_Request_Number := m_cC_Request_Number(0) } template RAR_MSG m_RAR_basic(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost ) modifies m_RAR_dummy := { header := m_diameterHeaderReq_dummy(RAR_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, origin_Realm := p_originRealm, destination_Realm := p_destinationRealm, destination_Host := p_destinationHost, auth_Application_Id := m_authApplicationId(c_applIdGx) } } // end group Gxbasic_request_templates_send group Gxbasic_request_templates_receive { Loading @@ -540,6 +611,20 @@ module DiameterGx_Templates { cC_Request_Type := p_cCRequestType } template RAR_MSG mw_RAR_basic(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost ) modifies mw_RAR_dummy := { header := mw_diameterHeaderReq_dummy(RAR_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, origin_Realm := p_originRealm, destination_Realm := p_destinationRealm, destination_Host := p_destinationHost } }//end group Gxbasic_request_templates_receive group Gxbasic_answer_templates_send { Loading @@ -557,6 +642,17 @@ module DiameterGx_Templates { cC_Request_Number := m_cC_Request_Number(0) } template RAA_MSG m_RAA_basic(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) modifies m_RAA_dummy := { header := m_diameterHeaderAns_dummy(RAA_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, origin_Realm := p_originRealm } } group Gxbasic_answer_templates_receive { Loading @@ -571,6 +667,17 @@ module DiameterGx_Templates { origin_Realm := p_originRealm } template RAA_MSG mw_RAA_basic(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) modifies mw_RAA_dummy := { header := mw_diameterHeaderAns_dummy(RAA_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, origin_Realm := p_originRealm } } } //end group Gxbase_templates Loading Loading @@ -662,8 +769,8 @@ module DiameterGx_Templates { template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA), m_pCC_Rule_Status(PX_PCC_RULE_STATUS), charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name('111111'O),//failed PCC rule m_pCC_Rule_Status(ACTIVE_E), m_rule_Failure_Code(PX_RULE_FAILURE_CODE))}, event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)} } Loading @@ -683,6 +790,25 @@ module DiameterGx_Templates { event_Trigger := {m_event_Trigger(RESOURCE_MODIFICATION_REQUEST_E)} } template CCR_MSG m_CCR_UpdateRequest_IPcanTermination(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA), m_pCC_Rule_Status(INACTIVE_E), m_rule_Failure_Code(RESOURCE_ALLOCATION_FAILURE_E))} } template CCR_MSG m_CCR_TerminationRequest(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(TERMINATION_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1) } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading @@ -704,10 +830,47 @@ module DiameterGx_Templates { routing_Rule_Install := p_routing_Rule_Install } template RAR_MSG mw_RAR_sessReleaseCause(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost ) modifies mw_RAR_basic := { session_Release_Cause := mw_sessReleaseCause(?) } template RAR_MSG mw_RAR_PCCrules_ChrgRuleInstall(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost, template Charging_Rule_Install_AVP p_chrgRuleInstall ) modifies mw_RAR_basic := { charging_Rule_Install := {p_chrgRuleInstall} } template RAR_MSG mw_RAR_PCCrules_ChrgRuleRemove(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost ) modifies mw_RAR_basic := { charging_Rule_Remove := {mw_chrgRuleRemove} } } // end group Gxmodified_request_templates_receive group Gxmodified_answer_templates_send { template RAA_MSG m_RAA_ResultCode(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Result_Code_AVP p_resultCode) modifies m_RAA_basic := { result_Code := p_resultCode } } // end group Gxmodified_answer_templates_send group Gxmodified_answer_templates_receive { Loading @@ -733,7 +896,7 @@ module DiameterGx_Templates { template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) modifies mw_CCA_basic := { charging_Rule_Install := ? charging_Rule_Install := {?} } template CCA_MSG mw_CCA_ExperimentalResult( template Session_Id_AVP p_sessionId, Loading DiameterGx/ttcn/DiameterGx_TestCases.ttcn +292 −57 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +190 −0 Original line number Diff line number Diff line Loading @@ -341,8 +341,198 @@ module DiameterGx_Gx_TCFunctions { }//end group TP_PCRFRole_INV group TP_PCRFRole_ST { //Session Termination /* * @desc This is the test case function TC_PCRF_ST_01 * @param */ function f_TC_PCRF_ST_01() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //IP CAN termination f_send_CCR(m_CCR_UpdateRequest_IPcanTermination(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_ST_01 /* * @desc This is the test case function TC_PCRF_ST_02 * @param */ function f_TC_PCRF_ST_02() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_ST_02 /* * @desc This is the test case function TC_PCRF_ST_03 * @param */ function f_TC_PCRF_ST_03() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //termination of IPCAN session due to an internal SPR trigger f_awaiting_RAR(mw_RAR_sessReleaseCause(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost)); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_ST_03 }//end group TP_PCRFRole_ST group TP_PCRFRole_PCC { //PCC rules /* * @desc This is the test case function TC_PCRF_PCC_01 * @param */ function f_TC_PCRF_PCC_01() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //activation of PCC rule f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Name)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_01 /* * @desc This is the test case function TC_PCRF_PCC_02 * @param */ function f_TC_PCRF_PCC_02() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //activation of PCC rule f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_Name)); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //deactivation of PCC rule f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleRemove(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_02 /* * @desc This is the test case function TC_PCRF_PCC_03 * @param */ function f_TC_PCRF_PCC_03() runs on DiameterComponent { f_preamble_PCEF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //establishement of the session f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send())); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess))); //activation of PCC rules f_awaiting_RAR(mw_RAR_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, mw_chrgRuleInstall_BaseName)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); //postamble //session termination f_send_CCR(m_CCR_TerminationRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm)); f_awaiting_CCA(mw_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCEF(); } // end function f_TC_PCRF_PCC_03 }//end group TP_PCRFRole_PCC group TP_PCRFRole_EMS { //Emergency services }//end group TP_PCRFRole_EMS Loading
DiameterGx/ttcn/DiameterGx_Templates.ttcn +167 −4 Original line number Diff line number Diff line Loading @@ -76,6 +76,28 @@ module DiameterGx_Templates { aVP_Type := omit } template Charging_Rule_Install_AVP mw_chrgRuleInstall_dummy := { aVP_Header := mw_aVP_Header_any, charging_Rule_Definition := *, charging_Rule_Name := *, charging_Rule_Base_Name := *, bearer_Identifier := *, rule_Activation_Time := *, rule_DeActivation_Time := *, resource_Allocation_Notification := *, charging_Correlation_Indicator := *, aVP_Type := * } template Charging_Rule_Remove_AVP mw_chrgRuleRemove_dummy := { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := *, charging_Rule_Base_Name := *, aVP_Type := * } } //end group DummyAVPHeaders group SpecificAVPHeaders { Loading Loading @@ -483,6 +505,40 @@ module DiameterGx_Templates { aVP_Header := mw_aVP_Header_any, aVP_Data := p_avpData } template Session_Release_Cause_AVP mw_sessReleaseCause(template (present) Session_Release_Cause p_avpData) := { aVP_Header := mw_aVP_Header_any, aVP_Data := p_avpData } template Charging_Rule_Install_AVP mw_chrgRuleInstall_Name modifies mw_chrgRuleInstall_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := {{ aVP_Header := ?, aVP_Data := ? }} } template Charging_Rule_Install_AVP mw_chrgRuleInstall_BaseName modifies mw_chrgRuleInstall_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Base_Name := {{ aVP_Header := ?, aVP_Data := ? }} } template Charging_Rule_Remove_AVP mw_chrgRuleRemove modifies mw_chrgRuleRemove_dummy:= { aVP_Header := mw_aVP_Header_any, charging_Rule_Name := {{ aVP_Header := ?, aVP_Data := ? }} } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -522,6 +578,21 @@ module DiameterGx_Templates { cC_Request_Number := m_cC_Request_Number(0) } template RAR_MSG m_RAR_basic(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost ) modifies m_RAR_dummy := { header := m_diameterHeaderReq_dummy(RAR_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, origin_Realm := p_originRealm, destination_Realm := p_destinationRealm, destination_Host := p_destinationHost, auth_Application_Id := m_authApplicationId(c_applIdGx) } } // end group Gxbasic_request_templates_send group Gxbasic_request_templates_receive { Loading @@ -540,6 +611,20 @@ module DiameterGx_Templates { cC_Request_Type := p_cCRequestType } template RAR_MSG mw_RAR_basic(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost ) modifies mw_RAR_dummy := { header := mw_diameterHeaderReq_dummy(RAR_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, origin_Realm := p_originRealm, destination_Realm := p_destinationRealm, destination_Host := p_destinationHost } }//end group Gxbasic_request_templates_receive group Gxbasic_answer_templates_send { Loading @@ -557,6 +642,17 @@ module DiameterGx_Templates { cC_Request_Number := m_cC_Request_Number(0) } template RAA_MSG m_RAA_basic(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) modifies m_RAA_dummy := { header := m_diameterHeaderAns_dummy(RAA_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, origin_Realm := p_originRealm } } group Gxbasic_answer_templates_receive { Loading @@ -571,6 +667,17 @@ module DiameterGx_Templates { origin_Realm := p_originRealm } template RAA_MSG mw_RAA_basic(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) modifies mw_RAA_dummy := { header := mw_diameterHeaderAns_dummy(RAA_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, origin_Realm := p_originRealm } } } //end group Gxbase_templates Loading Loading @@ -662,8 +769,8 @@ module DiameterGx_Templates { template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA), m_pCC_Rule_Status(PX_PCC_RULE_STATUS), charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name('111111'O),//failed PCC rule m_pCC_Rule_Status(ACTIVE_E), m_rule_Failure_Code(PX_RULE_FAILURE_CODE))}, event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)} } Loading @@ -683,6 +790,25 @@ module DiameterGx_Templates { event_Trigger := {m_event_Trigger(RESOURCE_MODIFICATION_REQUEST_E)} } template CCR_MSG m_CCR_UpdateRequest_IPcanTermination(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA), m_pCC_Rule_Status(INACTIVE_E), m_rule_Failure_Code(RESOURCE_ALLOCATION_FAILURE_E))} } template CCR_MSG m_CCR_TerminationRequest(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { cC_Request_Type := m_cC_Request_Type(TERMINATION_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1) } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading @@ -704,10 +830,47 @@ module DiameterGx_Templates { routing_Rule_Install := p_routing_Rule_Install } template RAR_MSG mw_RAR_sessReleaseCause(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost ) modifies mw_RAR_basic := { session_Release_Cause := mw_sessReleaseCause(?) } template RAR_MSG mw_RAR_PCCrules_ChrgRuleInstall(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost, template Charging_Rule_Install_AVP p_chrgRuleInstall ) modifies mw_RAR_basic := { charging_Rule_Install := {p_chrgRuleInstall} } template RAR_MSG mw_RAR_PCCrules_ChrgRuleRemove(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, template Destination_Host_AVP p_destinationHost ) modifies mw_RAR_basic := { charging_Rule_Remove := {mw_chrgRuleRemove} } } // end group Gxmodified_request_templates_receive group Gxmodified_answer_templates_send { template RAA_MSG m_RAA_ResultCode(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Result_Code_AVP p_resultCode) modifies m_RAA_basic := { result_Code := p_resultCode } } // end group Gxmodified_answer_templates_send group Gxmodified_answer_templates_receive { Loading @@ -733,7 +896,7 @@ module DiameterGx_Templates { template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm) modifies mw_CCA_basic := { charging_Rule_Install := ? charging_Rule_Install := {?} } template CCA_MSG mw_CCA_ExperimentalResult( template Session_Id_AVP p_sessionId, Loading
DiameterGx/ttcn/DiameterGx_TestCases.ttcn +292 −57 File changed.Preview size limit exceeded, changes collapsed. Show changes