Loading DiameterS9/ttcn/DiameterS9_PIXITS.ttcn +15 −13 Original line number Diff line number Diff line Loading @@ -7,8 +7,10 @@ module DiameterS9_PIXITS { import from LibDiameter_Types_Base_AVPs {type IPv4Addr, IPv6Addr, UTF8String, Subscription_Id_Ty_Type;}; import from LibDiameter_Types_Gx_AVPs {type IP_CAN_Type, RAT_Type;}; import from LibDiameter_Types_Gx_AVPs {type IP_CAN_Type, RAT_Type, PCC_Rule_Status;}; import from LibCommon_BasicTypesAndValues all; import from LibDiameter_Types_S9_AVPs all; // import from LibDiameter_TypesAndValues {type PCC_Rule_Status}; group Port_and_addresses{ group S9_Port_and_addresses{ Loading Loading @@ -349,10 +351,10 @@ module DiameterS9_PIXITS // */ // modulepar Network_Request_Support PX_NETWORK_REQUEST_SUPPORT := NETWORK_REQUEST_SUPPORTED_E; // // /** @desc octetstring, PIXIT item A-7/33 // * First charging rule name for the Charging-Rule-Name AVP // */ // modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O; /** @desc octetstring, PIXIT item A-7/33 * First charging rule name for the Charging-Rule-Name AVP */ modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O; // // /** @desc octetstring, PIXIT item A-7/34 // * Second charging rule name for the Charging-Rule-Name AVP Loading @@ -373,14 +375,14 @@ module DiameterS9_PIXITS // * Charging rule base name for the Charging-Rule-Base-Name AVP // */ // modulepar UTF8String PX_CHARGING_RULE_BASE_NAME_DATA := "data"; // // // /** @desc enumerated type PCC_Rule_Status, PIXIT item A-7/38 // * A status value of PCC rule(s) for the PCC-Rule-Status AVP // Available values: ACTIVE, INACTIVE, TEMPORARILY INACTIVE // */ // modulepar PCC_Rule_Status PX_PCC_RULE_STATUS := ACTIVE_E; // /** @desc enumerated type PCC_Rule_Status, PIXIT item A-7/38 * A status value of PCC rule(s) for the PCC-Rule-Status AVP Available values: ACTIVE, INACTIVE, TEMPORARILY INACTIVE */ modulepar PCC_Rule_Status PX_PCC_RULE_STATUS := ACTIVE_E; // /** @desc UInt32, PIXIT item A-7/39 // * A precedence value for a PCC rule for the Precedence AVP in CCR messages // */ Loading DiameterS9/ttcn/DiameterS9_S9_TCFunctions.ttcn3 +36 −0 Original line number Diff line number Diff line Loading @@ -781,6 +781,42 @@ module DiameterS9_S9_TCFunctions { group TP_HPCRFRole_VQR {//S9 visited access (QoS and PCC rules) /* * @desc This is the test case function TC_HPCRF_MS_01 * @param */ function f_TC_H_PCRF_VQR_01() runs on DiameterComponent { f_preamble_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_UpdateRequest_SubSessEnfInf_EvTri_ChargRR(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, {m_event_Trigger(IP_CAN_CHANGE_E)}, {m_chargRuleReport_RNameStatus(valueof(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA)),valueof(m_pCC_Rule_Status(PX_PCC_RULE_STATUS)))}, {m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1), m_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E))})); f_awaiting_CCA(mw_CCA_ExpResult_SubsesDecInfo(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_experimentalResult(mw_expResultCode(DIAMETER_ERROR_SUBSESSION_E)), {(mw_SubsesDecisionInfo_resultCode(mw_subsessionId_dummy(111),?),mw_SubsesDecisionInfo_expResultCode(mw_subsessionId_dummy(1),?))} ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync //session termination f_terminate_session_VPCRF(); f_postamble_VPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function TC_H_PCRF_VQR_01 } // group TP_HPCRFRole_VQR group TP_HPCRFRole_VPQ {//S9 visited access (Provision of QoS and PCC rules) Loading DiameterS9/ttcn/DiameterS9_Templates.ttcn +54 −0 Original line number Diff line number Diff line Loading @@ -542,6 +542,17 @@ module DiameterS9_Templates { aVP_Data := p_avpData } template Charging_Rule_Report_AVP m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Report_AVP_Code, 4, c_vendId3gpp), charging_Rule_Name := omit, charging_Rule_Base_Name := omit, bearer_Identifier := omit, pCC_Rule_Status := omit, rule_Failure_Code := omit, final_Unit_Indication := omit, aVP_Type := omit } } //end group DummyAVPHeaders group SpecificAVPHeaders { Loading Loading @@ -716,6 +727,31 @@ module DiameterS9_Templates { session_Release_Cause := p_session_Release_Cause } template Event_Trigger_AVP m_event_Trigger(Event_Trigger p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_event_Trigger_AVP_Code, 4, c_vendId3gpp), aVP_Data := p_avpData } template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatus(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) modifies m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Report_AVP_Code, lengthof(encvalue(p_crn))/8+16/*PCC_Rule_Status_AVP length: 12+4 for vendId*/, c_vendId3gpp), charging_Rule_Name := {p_crn}, pCC_Rule_Status := p_ccrs } template Charging_Rule_Name_AVP m_chargingRuleName(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Name_AVP_Code, lengthof(p_avpData), c_vendId3gpp), aVP_Data := p_avpData } template PCC_Rule_Status_AVP m_pCC_Rule_Status(PCC_Rule_Status p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_pCC_Rule_Status_AVP_Code, 4, c_vendId3gpp), aVP_Data := p_avpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -1159,6 +1195,24 @@ module DiameterS9_Templates { } } template CCR_MSG m_CCR_UpdateRequest_SubSessEnfInf_EvTri_ChargRR (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 CCR_MSG.cCR_Body.event_Trigger p_event_Trigger, template CCR_MSG.cCR_Body.charging_Rule_Report p_charging_Rule_Report, template CCR_MSG.cCR_Body.subsesion_Enforcement_Info p_subsesionEnforcementInfo ) modifies m_CCR_basic := { cCR_Body := { cC_Request_Type := m_cC_Request_Type ( UPDATE_REQUEST_E ), event_Trigger := p_event_Trigger, charging_Rule_Report := p_charging_Rule_Report, subsesion_Enforcement_Info := p_subsesionEnforcementInfo } } template CCR_MSG m_CCR_UpdateRequest_SubSessEnfInf (template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading Loading
DiameterS9/ttcn/DiameterS9_PIXITS.ttcn +15 −13 Original line number Diff line number Diff line Loading @@ -7,8 +7,10 @@ module DiameterS9_PIXITS { import from LibDiameter_Types_Base_AVPs {type IPv4Addr, IPv6Addr, UTF8String, Subscription_Id_Ty_Type;}; import from LibDiameter_Types_Gx_AVPs {type IP_CAN_Type, RAT_Type;}; import from LibDiameter_Types_Gx_AVPs {type IP_CAN_Type, RAT_Type, PCC_Rule_Status;}; import from LibCommon_BasicTypesAndValues all; import from LibDiameter_Types_S9_AVPs all; // import from LibDiameter_TypesAndValues {type PCC_Rule_Status}; group Port_and_addresses{ group S9_Port_and_addresses{ Loading Loading @@ -349,10 +351,10 @@ module DiameterS9_PIXITS // */ // modulepar Network_Request_Support PX_NETWORK_REQUEST_SUPPORT := NETWORK_REQUEST_SUPPORTED_E; // // /** @desc octetstring, PIXIT item A-7/33 // * First charging rule name for the Charging-Rule-Name AVP // */ // modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O; /** @desc octetstring, PIXIT item A-7/33 * First charging rule name for the Charging-Rule-Name AVP */ modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O; // // /** @desc octetstring, PIXIT item A-7/34 // * Second charging rule name for the Charging-Rule-Name AVP Loading @@ -373,14 +375,14 @@ module DiameterS9_PIXITS // * Charging rule base name for the Charging-Rule-Base-Name AVP // */ // modulepar UTF8String PX_CHARGING_RULE_BASE_NAME_DATA := "data"; // // // /** @desc enumerated type PCC_Rule_Status, PIXIT item A-7/38 // * A status value of PCC rule(s) for the PCC-Rule-Status AVP // Available values: ACTIVE, INACTIVE, TEMPORARILY INACTIVE // */ // modulepar PCC_Rule_Status PX_PCC_RULE_STATUS := ACTIVE_E; // /** @desc enumerated type PCC_Rule_Status, PIXIT item A-7/38 * A status value of PCC rule(s) for the PCC-Rule-Status AVP Available values: ACTIVE, INACTIVE, TEMPORARILY INACTIVE */ modulepar PCC_Rule_Status PX_PCC_RULE_STATUS := ACTIVE_E; // /** @desc UInt32, PIXIT item A-7/39 // * A precedence value for a PCC rule for the Precedence AVP in CCR messages // */ Loading
DiameterS9/ttcn/DiameterS9_S9_TCFunctions.ttcn3 +36 −0 Original line number Diff line number Diff line Loading @@ -781,6 +781,42 @@ module DiameterS9_S9_TCFunctions { group TP_HPCRFRole_VQR {//S9 visited access (QoS and PCC rules) /* * @desc This is the test case function TC_HPCRF_MS_01 * @param */ function f_TC_H_PCRF_VQR_01() runs on DiameterComponent { f_preamble_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_UpdateRequest_SubSessEnfInf_EvTri_ChargRR(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, {m_event_Trigger(IP_CAN_CHANGE_E)}, {m_chargRuleReport_RNameStatus(valueof(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA)),valueof(m_pCC_Rule_Status(PX_PCC_RULE_STATUS)))}, {m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1), m_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E))})); f_awaiting_CCA(mw_CCA_ExpResult_SubsesDecInfo(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_experimentalResult(mw_expResultCode(DIAMETER_ERROR_SUBSESSION_E)), {(mw_SubsesDecisionInfo_resultCode(mw_subsessionId_dummy(111),?),mw_SubsesDecisionInfo_expResultCode(mw_subsessionId_dummy(1),?))} ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync //session termination f_terminate_session_VPCRF(); f_postamble_VPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function TC_H_PCRF_VQR_01 } // group TP_HPCRFRole_VQR group TP_HPCRFRole_VPQ {//S9 visited access (Provision of QoS and PCC rules) Loading
DiameterS9/ttcn/DiameterS9_Templates.ttcn +54 −0 Original line number Diff line number Diff line Loading @@ -542,6 +542,17 @@ module DiameterS9_Templates { aVP_Data := p_avpData } template Charging_Rule_Report_AVP m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Report_AVP_Code, 4, c_vendId3gpp), charging_Rule_Name := omit, charging_Rule_Base_Name := omit, bearer_Identifier := omit, pCC_Rule_Status := omit, rule_Failure_Code := omit, final_Unit_Indication := omit, aVP_Type := omit } } //end group DummyAVPHeaders group SpecificAVPHeaders { Loading Loading @@ -716,6 +727,31 @@ module DiameterS9_Templates { session_Release_Cause := p_session_Release_Cause } template Event_Trigger_AVP m_event_Trigger(Event_Trigger p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_event_Trigger_AVP_Code, 4, c_vendId3gpp), aVP_Data := p_avpData } template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatus(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) modifies m_chargRuleReport_dummy := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Report_AVP_Code, lengthof(encvalue(p_crn))/8+16/*PCC_Rule_Status_AVP length: 12+4 for vendId*/, c_vendId3gpp), charging_Rule_Name := {p_crn}, pCC_Rule_Status := p_ccrs } template Charging_Rule_Name_AVP m_chargingRuleName(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Name_AVP_Code, lengthof(p_avpData), c_vendId3gpp), aVP_Data := p_avpData } template PCC_Rule_Status_AVP m_pCC_Rule_Status(PCC_Rule_Status p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_pCC_Rule_Status_AVP_Code, 4, c_vendId3gpp), aVP_Data := p_avpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -1159,6 +1195,24 @@ module DiameterS9_Templates { } } template CCR_MSG m_CCR_UpdateRequest_SubSessEnfInf_EvTri_ChargRR (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 CCR_MSG.cCR_Body.event_Trigger p_event_Trigger, template CCR_MSG.cCR_Body.charging_Rule_Report p_charging_Rule_Report, template CCR_MSG.cCR_Body.subsesion_Enforcement_Info p_subsesionEnforcementInfo ) modifies m_CCR_basic := { cCR_Body := { cC_Request_Type := m_cC_Request_Type ( UPDATE_REQUEST_E ), event_Trigger := p_event_Trigger, charging_Rule_Report := p_charging_Rule_Report, subsesion_Enforcement_Info := p_subsesionEnforcementInfo } } template CCR_MSG m_CCR_UpdateRequest_SubSessEnfInf (template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading