Loading DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +88 −0 Original line number Diff line number Diff line Loading @@ -1633,6 +1633,94 @@ module DiameterGx_Gx_TCFunctions { } // end function f_TC_PCEF_PCC_03 /* * @desc This is the test case function TC_PCEF_PCC_04 * @param */ function f_TC_PCEF_PCC_04() runs on DiameterComponent { f_preamble_PCRF(); f_awaiting_CCR(mw_CCR_Request(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *, *, *)); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleInst // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleInstall_Definition(m_chrgRuleDefinition(PX_CHARGING_RULE_NAME_DATA)))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(TERMINATION_REQUEST_E) )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCRF(); } // end function f_TC_PCEF_PCC_04 /* * @desc This is the test case function TC_PCEF_PCC_05 * @param */ function f_TC_PCEF_PCC_05() runs on DiameterComponent { f_preamble_PCRF(); f_awaiting_CCR(mw_CCR_Request(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *, *, *)); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemove // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleRemove_Name(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA)))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(TERMINATION_REQUEST_E) )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCRF(); } // end function f_TC_PCEF_PCC_05 }//end group TP_PCEFRole_PCC group TP_PCEFRole_EMS { //Emergency services Loading DiameterGx/ttcn/DiameterGx_Templates.ttcn +65 −4 Original line number Diff line number Diff line Loading @@ -127,6 +127,14 @@ module DiameterGx_Templates { aVP_Type := * } template Charging_Rule_Remove_AVP m_chrgRuleRemove_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, 0, omit), charging_Rule_Name := omit, charging_Rule_Base_Name := omit, aVP_Type := omit } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_dummy := { aVP_Header := mw_aVP_Header_any, Loading @@ -150,6 +158,29 @@ module DiameterGx_Templates { aVP_Type := * } template Charging_Rule_Definition_AVP m_chrgRuleDefinition_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, 0, omit), charging_Rule_Name := m_charging_Rule_Name(''O), service_Identifier := omit, rating_Group := omit, flow_Information := omit, flow_Status := omit, qoS_Information := omit, reporting_Level := omit, online := omit, offline := omit, metering_Method := omit, precedence := omit, aF_Charging_Identifier := omit, flows := omit, monitoring_Key := omit, aF_Signalling_Protocol := omit, sponsor_Identity := omit, application_Service_Provider_Identity := omit, aVP_Type := omit } template QoS_Information_AVP mw_qoS_Information_dummy := { aVP_Header := mw_aVP_Header_any, Loading Loading @@ -470,31 +501,49 @@ module DiameterGx_Templates { } template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition(template Charging_Rule_Definition_AVP p_chargingRuleDefinition) modifies m_chrgRuleInstall_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition)), omit), charging_Rule_Definition := {p_chargingRuleDefinition} } template Charging_Rule_Install_AVP m_chrgRuleInstall_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleInstall_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleName))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleName)), omit), charging_Rule_Name := {p_chargingRuleName} } template Charging_Rule_Install_AVP m_chrgRuleInstall_Name_RAN(template Charging_Rule_Name_AVP p_chargingRuleName, template Resource_Allocation_Notification_AVP p_resourceAllocationNotification) modifies m_chrgRuleInstall_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_resourceAllocationNotification))+lengthof(encvalue(p_chargingRuleName))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_resourceAllocationNotification))+lengthof(encvalue(p_chargingRuleName)), omit), charging_Rule_Name := {p_chargingRuleName}, resource_Allocation_Notification := p_resourceAllocationNotification } template Charging_Rule_Install_AVP m_chrgRuleInstall_2Name(template Charging_Rule_Base_Name_AVP p_chargingRuleBName1,template Charging_Rule_Base_Name_AVP p_chargingRuleBName2) modifies m_chrgRuleInstall_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleBName1))+lengthof(encvalue(p_chargingRuleBName2))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleBName1))+lengthof(encvalue(p_chargingRuleBName2)), omit), charging_Rule_Base_Name := {p_chargingRuleBName1, p_chargingRuleBName2} } template Charging_Rule_Remove_AVP m_chrgRuleRemove_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleRemove_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, lengthof(encvalue(p_chargingRuleName)), omit), charging_Rule_Name := {p_chargingRuleName} } template Charging_Rule_Name_AVP m_charging_Rule_Name(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Name_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData } template Charging_Rule_Definition_AVP m_chrgRuleDefinition (octetstring p_avpData) modifies m_chrgRuleDefinition_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_charging_Rule_Name(p_avpData))), omit), charging_Rule_Name := m_charging_Rule_Name(p_avpData) } template Charging_Rule_Base_Name_AVP m_chrgRuleBaseName(UTF8String p_avpData):= { Loading Loading @@ -1161,6 +1210,18 @@ module DiameterGx_Templates { charging_Rule_Install := {p_chargingRuleInstall} } template RAR_MSG m_RAR_CharRuleRemove(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_Remove_AVP p_chargingRuleRemove) modifies m_RAR_dummy := { charging_Rule_Remove := {p_chargingRuleRemove} } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading Loading
DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +88 −0 Original line number Diff line number Diff line Loading @@ -1633,6 +1633,94 @@ module DiameterGx_Gx_TCFunctions { } // end function f_TC_PCEF_PCC_03 /* * @desc This is the test case function TC_PCEF_PCC_04 * @param */ function f_TC_PCEF_PCC_04() runs on DiameterComponent { f_preamble_PCRF(); f_awaiting_CCR(mw_CCR_Request(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *, *, *)); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleInst // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleInstall_Definition(m_chrgRuleDefinition(PX_CHARGING_RULE_NAME_DATA)))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(TERMINATION_REQUEST_E) )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCRF(); } // end function f_TC_PCEF_PCC_04 /* * @desc This is the test case function TC_PCEF_PCC_05 * @param */ function f_TC_PCEF_PCC_05() runs on DiameterComponent { f_preamble_PCRF(); f_awaiting_CCR(mw_CCR_Request(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *, *, *)); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemove // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_chrgRuleRemove_Name(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA)))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(TERMINATION_REQUEST_E) )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm)); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync f_postamble_PCRF(); } // end function f_TC_PCEF_PCC_05 }//end group TP_PCEFRole_PCC group TP_PCEFRole_EMS { //Emergency services Loading
DiameterGx/ttcn/DiameterGx_Templates.ttcn +65 −4 Original line number Diff line number Diff line Loading @@ -127,6 +127,14 @@ module DiameterGx_Templates { aVP_Type := * } template Charging_Rule_Remove_AVP m_chrgRuleRemove_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, 0, omit), charging_Rule_Name := omit, charging_Rule_Base_Name := omit, aVP_Type := omit } template Charging_Rule_Definition_AVP mw_chrgRuleDefinition_dummy := { aVP_Header := mw_aVP_Header_any, Loading @@ -150,6 +158,29 @@ module DiameterGx_Templates { aVP_Type := * } template Charging_Rule_Definition_AVP m_chrgRuleDefinition_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, 0, omit), charging_Rule_Name := m_charging_Rule_Name(''O), service_Identifier := omit, rating_Group := omit, flow_Information := omit, flow_Status := omit, qoS_Information := omit, reporting_Level := omit, online := omit, offline := omit, metering_Method := omit, precedence := omit, aF_Charging_Identifier := omit, flows := omit, monitoring_Key := omit, aF_Signalling_Protocol := omit, sponsor_Identity := omit, application_Service_Provider_Identity := omit, aVP_Type := omit } template QoS_Information_AVP mw_qoS_Information_dummy := { aVP_Header := mw_aVP_Header_any, Loading Loading @@ -470,31 +501,49 @@ module DiameterGx_Templates { } template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition(template Charging_Rule_Definition_AVP p_chargingRuleDefinition) modifies m_chrgRuleInstall_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition)), omit), charging_Rule_Definition := {p_chargingRuleDefinition} } template Charging_Rule_Install_AVP m_chrgRuleInstall_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleInstall_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleName))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleName)), omit), charging_Rule_Name := {p_chargingRuleName} } template Charging_Rule_Install_AVP m_chrgRuleInstall_Name_RAN(template Charging_Rule_Name_AVP p_chargingRuleName, template Resource_Allocation_Notification_AVP p_resourceAllocationNotification) modifies m_chrgRuleInstall_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_resourceAllocationNotification))+lengthof(encvalue(p_chargingRuleName))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_resourceAllocationNotification))+lengthof(encvalue(p_chargingRuleName)), omit), charging_Rule_Name := {p_chargingRuleName}, resource_Allocation_Notification := p_resourceAllocationNotification } template Charging_Rule_Install_AVP m_chrgRuleInstall_2Name(template Charging_Rule_Base_Name_AVP p_chargingRuleBName1,template Charging_Rule_Base_Name_AVP p_chargingRuleBName2) modifies m_chrgRuleInstall_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleBName1))+lengthof(encvalue(p_chargingRuleBName2))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit), aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleBName1))+lengthof(encvalue(p_chargingRuleBName2)), omit), charging_Rule_Base_Name := {p_chargingRuleBName1, p_chargingRuleBName2} } template Charging_Rule_Remove_AVP m_chrgRuleRemove_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleRemove_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, lengthof(encvalue(p_chargingRuleName)), omit), charging_Rule_Name := {p_chargingRuleName} } template Charging_Rule_Name_AVP m_charging_Rule_Name(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Name_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData } template Charging_Rule_Definition_AVP m_chrgRuleDefinition (octetstring p_avpData) modifies m_chrgRuleDefinition_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_charging_Rule_Name(p_avpData))), omit), charging_Rule_Name := m_charging_Rule_Name(p_avpData) } template Charging_Rule_Base_Name_AVP m_chrgRuleBaseName(UTF8String p_avpData):= { Loading Loading @@ -1161,6 +1210,18 @@ module DiameterGx_Templates { charging_Rule_Install := {p_chargingRuleInstall} } template RAR_MSG m_RAR_CharRuleRemove(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_Remove_AVP p_chargingRuleRemove) modifies m_RAR_dummy := { charging_Rule_Remove := {p_chargingRuleRemove} } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading