Loading DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +94 −0 Original line number Diff line number Diff line Loading @@ -1538,8 +1538,102 @@ module DiameterGx_Gx_TCFunctions { f_postamble_PCRF(); } // end function f_TC_PCEF_PCC_01 /* * @desc This is the test case function TC_PCEF_PCC_02 * @param */ function f_TC_PCEF_PCC_02() 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_2Name(m_chrgRuleBaseName(PX_CHARGING_RULE_BASE_NAME_DATA), m_chrgRuleBaseName(PX_CHARGING_RULE_BASE_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_02 /* * @desc This is the test case function TC_PCEF_PCC_03 * @param */ function f_TC_PCEF_PCC_03() 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_EvTrigger // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_event_Trigger(SUCCESSFUL_RESOURCE_ALLOCATION_E), m_chrgRuleInstall_Name_RAN(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA), m_resourceAllocNotif))); 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_03 }//end group TP_PCEFRole_PCC group TP_PCEFRole_EMS { //Emergency services }//end group TP_PCRERole_EMS Loading DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +6 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,12 @@ module DiameterGx_PIXITS */ modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O; /** @desc octetstring, PIXIT item A.1/ * avp_Data within PX_CHARGING_RULE_BASE_NAME_DATA is of UTF8String type */ modulepar UTF8String PX_CHARGING_RULE_BASE_NAME_DATA := "data"; /** @desc enumerated type PCC_Rule_Status, PIXIT item A.1/ * avp_Data within PCC_Rule_Status_AVP is of enumerated type PCC_Rule_Status */ Loading DiameterGx/ttcn/DiameterGx_Templates.ttcn +52 −10 Original line number Diff line number Diff line Loading @@ -476,12 +476,32 @@ module DiameterGx_Templates { 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), 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), charging_Rule_Base_Name := {p_chargingRuleBName1, p_chargingRuleBName2} } 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_Base_Name_AVP m_chrgRuleBaseName(UTF8String p_avpData):= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Base_Name_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData //or PX_CHARGING_RULE_BASE_NAME_DATA } template PCC_Rule_Status_AVP m_pCC_Rule_Status(PCC_Rule_Status p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPCC_Rule_Status_AVP, 4, omit), Loading Loading @@ -538,12 +558,6 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Packet_Filter_Operation_AVP mw_packet_Filter_Operation(Packet_Filter_Operation p_avpData) := { aVP_Header := mw_aVP_Header(c_vendIdPacket_Filter_Operation_AVP), aVP_Data := p_avpData } template Experimental_Result_AVP m_experimentalResult(Vendor_Id_AVP p_vendorId, Experimental_Result_Code_AVP p_expResultCode) := { aVP_Header := m_aVP_HeaderVid(c_vendIdExperimental_Result_AVP, 12/*12-Vendor_Id_AVP*/+12/*12-experimental_Result_Code*/, omit), Loading Loading @@ -581,6 +595,13 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Resource_Allocation_Notification_AVP m_resourceAllocNotif:= { aVP_Header := m_aVP_HeaderVid(c_vendIdResource_Allocation_Notification_AVP, 4, omit), aVP_Data := ENABLE_NOTIFICATION_E } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -834,6 +855,12 @@ module DiameterGx_Templates { } template Packet_Filter_Operation_AVP mw_packet_Filter_Operation(Packet_Filter_Operation p_avpData) := { aVP_Header := mw_aVP_Header(c_vendIdPacket_Filter_Operation_AVP), aVP_Data := p_avpData } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -1119,6 +1146,21 @@ module DiameterGx_Templates { charging_Rule_Install := {p_chargingRuleInstall} } template RAR_MSG m_RAR_CharRuleInst_EvTrigger(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 Event_Trigger_AVP p_eventTrigger, template Charging_Rule_Install_AVP p_chargingRuleInstall) modifies m_RAR_dummy := { event_Trigger := {p_eventTrigger}, charging_Rule_Install := {p_chargingRuleInstall} } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading Loading
DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +94 −0 Original line number Diff line number Diff line Loading @@ -1538,8 +1538,102 @@ module DiameterGx_Gx_TCFunctions { f_postamble_PCRF(); } // end function f_TC_PCEF_PCC_01 /* * @desc This is the test case function TC_PCEF_PCC_02 * @param */ function f_TC_PCEF_PCC_02() 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_2Name(m_chrgRuleBaseName(PX_CHARGING_RULE_BASE_NAME_DATA), m_chrgRuleBaseName(PX_CHARGING_RULE_BASE_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_02 /* * @desc This is the test case function TC_PCEF_PCC_03 * @param */ function f_TC_PCEF_PCC_03() 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_EvTrigger // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_event_Trigger(SUCCESSFUL_RESOURCE_ALLOCATION_E), m_chrgRuleInstall_Name_RAN(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA), m_resourceAllocNotif))); 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_03 }//end group TP_PCEFRole_PCC group TP_PCEFRole_EMS { //Emergency services }//end group TP_PCRERole_EMS Loading
DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +6 −0 Original line number Diff line number Diff line Loading @@ -233,6 +233,12 @@ module DiameterGx_PIXITS */ modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O; /** @desc octetstring, PIXIT item A.1/ * avp_Data within PX_CHARGING_RULE_BASE_NAME_DATA is of UTF8String type */ modulepar UTF8String PX_CHARGING_RULE_BASE_NAME_DATA := "data"; /** @desc enumerated type PCC_Rule_Status, PIXIT item A.1/ * avp_Data within PCC_Rule_Status_AVP is of enumerated type PCC_Rule_Status */ Loading
DiameterGx/ttcn/DiameterGx_Templates.ttcn +52 −10 Original line number Diff line number Diff line Loading @@ -476,12 +476,32 @@ module DiameterGx_Templates { 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), 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), charging_Rule_Base_Name := {p_chargingRuleBName1, p_chargingRuleBName2} } 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_Base_Name_AVP m_chrgRuleBaseName(UTF8String p_avpData):= { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Base_Name_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData //or PX_CHARGING_RULE_BASE_NAME_DATA } template PCC_Rule_Status_AVP m_pCC_Rule_Status(PCC_Rule_Status p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPCC_Rule_Status_AVP, 4, omit), Loading Loading @@ -538,12 +558,6 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Packet_Filter_Operation_AVP mw_packet_Filter_Operation(Packet_Filter_Operation p_avpData) := { aVP_Header := mw_aVP_Header(c_vendIdPacket_Filter_Operation_AVP), aVP_Data := p_avpData } template Experimental_Result_AVP m_experimentalResult(Vendor_Id_AVP p_vendorId, Experimental_Result_Code_AVP p_expResultCode) := { aVP_Header := m_aVP_HeaderVid(c_vendIdExperimental_Result_AVP, 12/*12-Vendor_Id_AVP*/+12/*12-experimental_Result_Code*/, omit), Loading Loading @@ -581,6 +595,13 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Resource_Allocation_Notification_AVP m_resourceAllocNotif:= { aVP_Header := m_aVP_HeaderVid(c_vendIdResource_Allocation_Notification_AVP, 4, omit), aVP_Data := ENABLE_NOTIFICATION_E } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -834,6 +855,12 @@ module DiameterGx_Templates { } template Packet_Filter_Operation_AVP mw_packet_Filter_Operation(Packet_Filter_Operation p_avpData) := { aVP_Header := mw_aVP_Header(c_vendIdPacket_Filter_Operation_AVP), aVP_Data := p_avpData } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -1119,6 +1146,21 @@ module DiameterGx_Templates { charging_Rule_Install := {p_chargingRuleInstall} } template RAR_MSG m_RAR_CharRuleInst_EvTrigger(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 Event_Trigger_AVP p_eventTrigger, template Charging_Rule_Install_AVP p_chargingRuleInstall) modifies m_RAR_dummy := { event_Trigger := {p_eventTrigger}, charging_Rule_Install := {p_chargingRuleInstall} } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { Loading