Loading DiameterS9/ttcn/DiameterS9_S9_TCFunctions.ttcn3 +16 −15 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ module DiameterS9_S9_TCFunctions { import from LibCommon_VerdictControl all ; // LibDiameter import from LibDiameter_Types_Gx_AVPs all; import from LibDiameter_Types_S9_AVPs all; import from LibDiameter_TypesAndValues all; import from LibDiameter_Templates all; Loading Loading @@ -2655,6 +2656,20 @@ module DiameterS9_S9_TCFunctions { */ function f_TC_VPCRF_VPQ_02() runs on DiameterComponent { var template Experimental_Result_AVP v_expResult := mw_experimentalResult ( mw_expResultCode ( DIAMETER_ERROR_SUBSESSION_E ) ); var template Experimental_Result_AVP v_expResult_subsess := mw_experimentalResult ( mw_expResultCode ( DIAMETER_PCC_RULE_EVENT_E ) ); var template Result_Code_AVP v_result := mw_resultCode ( DIAMETER_ERROR_SUBSESSION_E ); var template Subsession_Id_AVP v_subId := mw_subsessionId_dummy ( ? ); var template QoS_Information_AVP v_qOSinf := mw_qoS_Information_dummy; var template QoS_Rule_Name_AVP v_qoSRuleName := mw_qoSRuleName_dummy ( PX_QOS_RULE_NAME_NOT_ACCEPTABLE ); var template Rule_Failure_Code_AVP v_ruleFailureCode := mw_ruleFailureCode_dummy ( UNSUCCESSFUL_QOS_VALIDATION_E ); var template QoS_Rule_Report_AVP v_qoSRuleReport := mw_qoSRuleReport_RuleName_FailureCode ( { v_qoSRuleName }, v_ruleFailureCode ); var template Subses_Enforcement_Info_AVP v_subsesEnfInfo := mw_subsesEnforcementInfo_qosInfo_ExpResult ( v_subId, v_qOSinf, { v_qoSRuleReport }, v_expResult_subsess ); var template RAA_MSG v_RAA1 := mw_RAA_ExpResult_SubsessEnfInfo ( vc_sessionId, +vc_originHost_IUT, vc_originRealm_IUT, v_expResult, { v_subsesEnfInfo } ); var template RAA_MSG v_RAA2 := mw_RAA_Result_SubsessEnfInfo ( vc_sessionId, +vc_originHost_IUT, vc_originRealm_IUT, v_result, { v_subsesEnfInfo } ); f_preamble_HPCRF(); Loading @@ -2671,21 +2686,7 @@ module DiameterS9_S9_TCFunctions { m_qosRuleInstall_RuleName(m_qoSRuleName_dummy(PX_QOS_RULE_NAME_NOT_ACCEPTABLE))) )); f_awaiting_RAA(mw_RAA_ExpResult_QoSRuleReport_QosInfo_SubsessEnfInfo (vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_experimentalResult(mw_expResultCode(DIAMETER_ERROR_SUBSESSION_E)),//experimental_result *,//qoS_Information within subsesEnforcementInfo *,//qoS_Rule_Report within subsesEnforcementInfo {mw_subsesEnforcementInfo_qosInfo_ExpResult (mw_subsessionId_dummy(?), mw_qoS_Information_dummy,//await QoS Information indicating acceptable Qos {mw_qoSRuleReport_RuleName_FailureCode({mw_qoSRuleName_dummy(PX_QOS_RULE_NAME_NOT_ACCEPTABLE)}, mw_ruleFailureCode_dummy(UNSUCCESSFUL_QOS_VALIDATION_E))}, mw_experimentalResult(mw_expResultCode(DIAMETER_PCC_RULE_EVENT_E)) )}//subsesion_Enforcement_Info )); f_awaiting_2RAA ( v_RAA1, v_RAA2 ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading DiameterS9/ttcn/DiameterS9_Templates.ttcn +37 −0 Original line number Diff line number Diff line Loading @@ -717,6 +717,17 @@ module DiameterS9_Templates { qoS_Rule_Install := {p_qoS_Rule_Install} } template Subses_Decision_Info_AVP m_SubsesDecisionInfo_ChargingRuleInstall ( template Subsession_Id_AVP p_subsessionId, template Charging_Rule_Install_AVP p_charging_Rule_Install ) modifies m_SubsesDecisionInfo_dummy := { aVP_Header := m_aVP_HeaderVid_Mbit1 (c_subsession_Decision_Info_AVP_Code, lengthof ( encvalue ( p_subsessionId ) ) / 8 + lengthof ( encvalue ( p_charging_Rule_Install ) ) / 8, c_vendId3gpp ), subsession_Id := p_subsessionId, charging_Rule_Install := {p_charging_Rule_Install} } template Subses_Decision_Info_AVP m_SubsesDecisionInfo_SessRelCause(template Subsession_Id_AVP p_subsessionId, template Subses_Decision_Info_AVP.session_Release_Cause p_session_Release_Cause ) modifies m_SubsesDecisionInfo_dummy := { Loading Loading @@ -1829,6 +1840,32 @@ module DiameterS9_Templates { } } template RAA_MSG mw_RAA_ExpResult_SubsessEnfInfo (template (present) Session_Id_AVP p_sessionId, template (present) Origin_Host_AVP p_originHost, template (present) Origin_Realm_AVP p_originRealm, template RAA_MSG.rAA_Body.experimental_Result p_experimental_result, template RAA_MSG.rAA_Body.subsesion_Enforcement_Info p_subsesion_Enforcement_Info ) modifies mw_RAA_basic := { rAA_Body := { experimental_Result := p_experimental_result, subsesion_Enforcement_Info := p_subsesion_Enforcement_Info } } template RAA_MSG mw_RAA_Result_SubsessEnfInfo (template (present) Session_Id_AVP p_sessionId, template (present) Origin_Host_AVP p_originHost, template (present) Origin_Realm_AVP p_originRealm, template RAA_MSG.rAA_Body.result_Code p_result, template RAA_MSG.rAA_Body.subsesion_Enforcement_Info p_subsesion_Enforcement_Info ) modifies mw_RAA_basic := { rAA_Body := { result_Code := p_result, subsesion_Enforcement_Info := p_subsesion_Enforcement_Info } } } // end group S9modified_answer_templates_receive } //end group S9modified_templates } //end group S9MessageTemplates Loading Loading
DiameterS9/ttcn/DiameterS9_S9_TCFunctions.ttcn3 +16 −15 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ module DiameterS9_S9_TCFunctions { import from LibCommon_VerdictControl all ; // LibDiameter import from LibDiameter_Types_Gx_AVPs all; import from LibDiameter_Types_S9_AVPs all; import from LibDiameter_TypesAndValues all; import from LibDiameter_Templates all; Loading Loading @@ -2655,6 +2656,20 @@ module DiameterS9_S9_TCFunctions { */ function f_TC_VPCRF_VPQ_02() runs on DiameterComponent { var template Experimental_Result_AVP v_expResult := mw_experimentalResult ( mw_expResultCode ( DIAMETER_ERROR_SUBSESSION_E ) ); var template Experimental_Result_AVP v_expResult_subsess := mw_experimentalResult ( mw_expResultCode ( DIAMETER_PCC_RULE_EVENT_E ) ); var template Result_Code_AVP v_result := mw_resultCode ( DIAMETER_ERROR_SUBSESSION_E ); var template Subsession_Id_AVP v_subId := mw_subsessionId_dummy ( ? ); var template QoS_Information_AVP v_qOSinf := mw_qoS_Information_dummy; var template QoS_Rule_Name_AVP v_qoSRuleName := mw_qoSRuleName_dummy ( PX_QOS_RULE_NAME_NOT_ACCEPTABLE ); var template Rule_Failure_Code_AVP v_ruleFailureCode := mw_ruleFailureCode_dummy ( UNSUCCESSFUL_QOS_VALIDATION_E ); var template QoS_Rule_Report_AVP v_qoSRuleReport := mw_qoSRuleReport_RuleName_FailureCode ( { v_qoSRuleName }, v_ruleFailureCode ); var template Subses_Enforcement_Info_AVP v_subsesEnfInfo := mw_subsesEnforcementInfo_qosInfo_ExpResult ( v_subId, v_qOSinf, { v_qoSRuleReport }, v_expResult_subsess ); var template RAA_MSG v_RAA1 := mw_RAA_ExpResult_SubsessEnfInfo ( vc_sessionId, +vc_originHost_IUT, vc_originRealm_IUT, v_expResult, { v_subsesEnfInfo } ); var template RAA_MSG v_RAA2 := mw_RAA_Result_SubsessEnfInfo ( vc_sessionId, +vc_originHost_IUT, vc_originRealm_IUT, v_result, { v_subsesEnfInfo } ); f_preamble_HPCRF(); Loading @@ -2671,21 +2686,7 @@ module DiameterS9_S9_TCFunctions { m_qosRuleInstall_RuleName(m_qoSRuleName_dummy(PX_QOS_RULE_NAME_NOT_ACCEPTABLE))) )); f_awaiting_RAA(mw_RAA_ExpResult_QoSRuleReport_QosInfo_SubsessEnfInfo (vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_experimentalResult(mw_expResultCode(DIAMETER_ERROR_SUBSESSION_E)),//experimental_result *,//qoS_Information within subsesEnforcementInfo *,//qoS_Rule_Report within subsesEnforcementInfo {mw_subsesEnforcementInfo_qosInfo_ExpResult (mw_subsessionId_dummy(?), mw_qoS_Information_dummy,//await QoS Information indicating acceptable Qos {mw_qoSRuleReport_RuleName_FailureCode({mw_qoSRuleName_dummy(PX_QOS_RULE_NAME_NOT_ACCEPTABLE)}, mw_ruleFailureCode_dummy(UNSUCCESSFUL_QOS_VALIDATION_E))}, mw_experimentalResult(mw_expResultCode(DIAMETER_PCC_RULE_EVENT_E)) )}//subsesion_Enforcement_Info )); f_awaiting_2RAA ( v_RAA1, v_RAA2 ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync Loading
DiameterS9/ttcn/DiameterS9_Templates.ttcn +37 −0 Original line number Diff line number Diff line Loading @@ -717,6 +717,17 @@ module DiameterS9_Templates { qoS_Rule_Install := {p_qoS_Rule_Install} } template Subses_Decision_Info_AVP m_SubsesDecisionInfo_ChargingRuleInstall ( template Subsession_Id_AVP p_subsessionId, template Charging_Rule_Install_AVP p_charging_Rule_Install ) modifies m_SubsesDecisionInfo_dummy := { aVP_Header := m_aVP_HeaderVid_Mbit1 (c_subsession_Decision_Info_AVP_Code, lengthof ( encvalue ( p_subsessionId ) ) / 8 + lengthof ( encvalue ( p_charging_Rule_Install ) ) / 8, c_vendId3gpp ), subsession_Id := p_subsessionId, charging_Rule_Install := {p_charging_Rule_Install} } template Subses_Decision_Info_AVP m_SubsesDecisionInfo_SessRelCause(template Subsession_Id_AVP p_subsessionId, template Subses_Decision_Info_AVP.session_Release_Cause p_session_Release_Cause ) modifies m_SubsesDecisionInfo_dummy := { Loading Loading @@ -1829,6 +1840,32 @@ module DiameterS9_Templates { } } template RAA_MSG mw_RAA_ExpResult_SubsessEnfInfo (template (present) Session_Id_AVP p_sessionId, template (present) Origin_Host_AVP p_originHost, template (present) Origin_Realm_AVP p_originRealm, template RAA_MSG.rAA_Body.experimental_Result p_experimental_result, template RAA_MSG.rAA_Body.subsesion_Enforcement_Info p_subsesion_Enforcement_Info ) modifies mw_RAA_basic := { rAA_Body := { experimental_Result := p_experimental_result, subsesion_Enforcement_Info := p_subsesion_Enforcement_Info } } template RAA_MSG mw_RAA_Result_SubsessEnfInfo (template (present) Session_Id_AVP p_sessionId, template (present) Origin_Host_AVP p_originHost, template (present) Origin_Realm_AVP p_originRealm, template RAA_MSG.rAA_Body.result_Code p_result, template RAA_MSG.rAA_Body.subsesion_Enforcement_Info p_subsesion_Enforcement_Info ) modifies mw_RAA_basic := { rAA_Body := { result_Code := p_result, subsesion_Enforcement_Info := p_subsesion_Enforcement_Info } } } // end group S9modified_answer_templates_receive } //end group S9modified_templates } //end group S9MessageTemplates Loading