Loading DiameterS9/ttcn/DiameterS9_S9_TCFunctions.ttcn3 +257 −0 Original line number Diff line number Diff line Loading @@ -372,6 +372,263 @@ module DiameterS9_S9_TCFunctions { } // group TP_HPCRFRole_HPQ group TP_HPCRFRole_HST {//S9 Session Termination /* * @desc This is the test case function TC_HPCRF_HST_01 * @param */ function f_TC_HPCRF_HST_01() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_TerminationRequestBBERFatt(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_qoS_Information_dummy // BBERF attributes TODO: to check more required AVPs )); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_VPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function TC_HPCRF_HST_01 /* * @desc This is the test case function TC_HPCRF_HST_02 * @param */ function f_TC_HPCRF_HST_02() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_UpdateRequest_SubSessEnfInf(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, {m_qoSRuleReport_dummy}, m_qoS_Information_dummy, // BBERF attributes TODO: to check more required AVPs {m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1), m_subsessionOperation_dummy(Subsession_Operation_Code:TERMINATION_E))} ) ); f_awaiting_CCA(mw_CCA_ResultCode_SubsesDecInfo(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess), {mw_SubsesDecisionInfo_resultCode(mw_subsessionId_dummy(1),mw_resultCode(mw_resultCode_diameterSuccess))}) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_VPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function TC_HPCRF_HST_02 /* * @desc This is the test case function TC_HPCRF_HST_03 * @param */ function f_TC_HPCRF_HST_03() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync action("Please trigger PCRF for RAR to terminate session."); //activation of PCC rule f_awaiting_RAR(mw_RAR_sessReleaseCause(vc_sessionId, ?, ?, ?, ?)); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); 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_HPCRF_HST_03 /* * @desc This is the test case function TC_HPCRF_HST_04 * @param */ function f_TC_HPCRF_HST_04() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync action("Please trigger PCRF for RAR to terminate session."); //activation of PCC rule f_awaiting_RAR(mw_RAR_SubsessDecInfo(vc_sessionId, ?, ?, ?, ?, {mw_SubsesDecisionInfo_SessRelCause(mw_subsessionId_dummy(1),?)})); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); 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_HPCRF_HST_04 } // group TP_HPCRFRole_HST group TP_HPCRFRole_HMB {//S9 Multiple BBERF Handling /* * @desc This is the test case function TC_PCRF_HMB_01 * @param */ function f_TC_PCRF_HMB_01() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); //TODO previous BBERF f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_InitialRequest_MultBBERFact_AnGw(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(PX_UE1_framedIpAddress), f_framedIpAddress6_send(PX_UE1_framedIp6Address), m_multipleBBERFAction_dummy(Multiple_BBERF_Action_Code:ESTABLISHMENT_E), {m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))} )); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)) ); 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_PCRF_HMB_01 /* * @desc This is the test case function TC_PCRF_HMB_02 * @param */ function f_TC_PCRF_HMB_02() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); //TODO previous BBERF f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_InitialRequest_SubSessEnfInf(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(PX_UE1_framedIpAddress), f_framedIpAddress6_send(PX_UE1_framedIp6Address), {m_subsesEnforcementInfo_Operation_MultiBBERFact_AnGw (m_subsessionId_dummy(1), m_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E), m_multipleBBERFAction_dummy(Multiple_BBERF_Action_Code:ESTABLISHMENT_E), {m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))} )} )); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)) ); 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_PCRF_HMB_02 /* * @desc This is the test case function TC_PCRF_HMB_03 * @param */ function f_TC_PCRF_HMB_03() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); //TODO previous BBERF f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_UpdateRequest_MultBBERFact_AnGw(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_multipleBBERFAction_dummy(Multiple_BBERF_Action_Code:ESTABLISHMENT_E), {m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))} )); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)) ); 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_PCRF_HMB_03 } // group TP_HPCRFRole_HMB } // group TP_HPCRFRole group TP_VPCRFRole{ // §5.2.2 Loading DiameterS9/ttcn/DiameterS9_Templates.ttcn +93 −0 Original line number Diff line number Diff line Loading @@ -607,6 +607,18 @@ module DiameterS9_Templates { subsession_Operation := p_subsessionOperation } template Subses_Enforcement_Info_AVP m_subsesEnforcementInfo_Operation_MultiBBERFact_AnGw ( template Subsession_Id_AVP p_subsessionId, template Subsession_Operation_AVP p_subsessionOperation, template Multiple_BBERF_Action_AVP p_multipleBberfAction, template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress ) modifies m_subsesEnforcementInfo_Operation:= { subsession_Operation := p_subsessionOperation, multiple_BBERF_Action := p_multipleBberfAction, aN_GW_Address := p_anGwAddress } template Session_Release_Cause_AVP m_sessReleaseCause(template (present) Session_Release_Cause p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_session_Release_Cause_AVP_Code, 4, c_vendId3gpp), Loading Loading @@ -656,6 +668,13 @@ module DiameterS9_Templates { experimental_Result := p_experimentalResult } template Subses_Decision_Info_AVP mw_SubsesDecisionInfo_SessRelCause ( template (present) Subsession_Id_AVP p_subsessionId, template Session_Release_Cause_AVP p_sessionReleaseCause) modifies mw_SubsesDecisionInfo_dummy := { session_Release_Cause := p_sessionReleaseCause } template Experimental_Result_AVP mw_experimentalResult(template(present) Experimental_Result_Code_AVP p_ExperimentalResultCode) := { aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_experimental_Result_AVP_Code), vendor_Id := ?, Loading Loading @@ -866,6 +885,36 @@ module DiameterS9_Templates { } template CCR_MSG m_CCR_InitialRequest_SubSessEnfInf (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 Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address, template CCR_MSG.cCR_Body.subsesion_Enforcement_Info p_subsesionEnforcementInfo ) modifies m_CCR_InitialRequest := { cCR_Body := { subsesion_Enforcement_Info := p_subsesionEnforcementInfo } } template CCR_MSG m_CCR_InitialRequest_MultBBERFact_AnGw (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 Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address, template Multiple_BBERF_Action_AVP p_multipleBberfAction, template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress ) modifies m_CCR_InitialRequest := { cCR_Body := { multiple_BBERF_Action := p_multipleBberfAction, aN_GW_Address := p_anGwAddress } } template CCR_MSG m_CCR_TerminationRequest(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading @@ -878,6 +927,22 @@ module DiameterS9_Templates { } } template CCR_MSG m_CCR_TerminationRequestBBERFatt(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, // BBERF attributes TODO: to check more required AVPs template QoS_Information_AVP p_qosInformation ) modifies m_CCR_TerminationRequest := { cCR_Body := { cC_Request_Type := m_cC_Request_Type(TERMINATION_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), qoS_Information := p_qosInformation // BBERF attributes } } template CCR_MSG m_CCR_UpdateRequest (template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading Loading @@ -913,6 +978,21 @@ module DiameterS9_Templates { } } template CCR_MSG m_CCR_UpdateRequest_MultBBERFact_AnGw (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 Multiple_BBERF_Action_AVP p_multipleBberfAction, template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress ) modifies m_CCR_basic := { cCR_Body := { cC_Request_Type := m_cC_Request_Type ( UPDATE_REQUEST_E ), multiple_BBERF_Action := p_multipleBberfAction, aN_GW_Address := p_anGwAddress } } template RAR_MSG m_RAR_SessionEnd(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading Loading @@ -957,6 +1037,19 @@ module DiameterS9_Templates { } } 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 := { rAR_Body := { session_Release_Cause := mw_sessReleaseCause(?) } } } // end group S9modified_request_templates_receive group S9modified_answer_templates_send { Loading Loading
DiameterS9/ttcn/DiameterS9_S9_TCFunctions.ttcn3 +257 −0 Original line number Diff line number Diff line Loading @@ -372,6 +372,263 @@ module DiameterS9_S9_TCFunctions { } // group TP_HPCRFRole_HPQ group TP_HPCRFRole_HST {//S9 Session Termination /* * @desc This is the test case function TC_HPCRF_HST_01 * @param */ function f_TC_HPCRF_HST_01() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_TerminationRequestBBERFatt(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_qoS_Information_dummy // BBERF attributes TODO: to check more required AVPs )); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_VPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function TC_HPCRF_HST_01 /* * @desc This is the test case function TC_HPCRF_HST_02 * @param */ function f_TC_HPCRF_HST_02() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_UpdateRequest_SubSessEnfInf(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, {m_qoSRuleReport_dummy}, m_qoS_Information_dummy, // BBERF attributes TODO: to check more required AVPs {m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1), m_subsessionOperation_dummy(Subsession_Operation_Code:TERMINATION_E))} ) ); f_awaiting_CCA(mw_CCA_ResultCode_SubsesDecInfo(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess), {mw_SubsesDecisionInfo_resultCode(mw_subsessionId_dummy(1),mw_resultCode(mw_resultCode_diameterSuccess))}) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_VPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function TC_HPCRF_HST_02 /* * @desc This is the test case function TC_HPCRF_HST_03 * @param */ function f_TC_HPCRF_HST_03() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync action("Please trigger PCRF for RAR to terminate session."); //activation of PCC rule f_awaiting_RAR(mw_RAR_sessReleaseCause(vc_sessionId, ?, ?, ?, ?)); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); 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_HPCRF_HST_03 /* * @desc This is the test case function TC_HPCRF_HST_04 * @param */ function f_TC_HPCRF_HST_04() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync action("Please trigger PCRF for RAR to terminate session."); //activation of PCC rule f_awaiting_RAR(mw_RAR_SubsessDecInfo(vc_sessionId, ?, ?, ?, ?, {mw_SubsesDecisionInfo_SessRelCause(mw_subsessionId_dummy(1),?)})); f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess))); 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_HPCRF_HST_04 } // group TP_HPCRFRole_HST group TP_HPCRFRole_HMB {//S9 Multiple BBERF Handling /* * @desc This is the test case function TC_PCRF_HMB_01 * @param */ function f_TC_PCRF_HMB_01() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); //TODO previous BBERF f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_InitialRequest_MultBBERFact_AnGw(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(PX_UE1_framedIpAddress), f_framedIpAddress6_send(PX_UE1_framedIp6Address), m_multipleBBERFAction_dummy(Multiple_BBERF_Action_Code:ESTABLISHMENT_E), {m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))} )); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)) ); 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_PCRF_HMB_01 /* * @desc This is the test case function TC_PCRF_HMB_02 * @param */ function f_TC_PCRF_HMB_02() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); //TODO previous BBERF f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_InitialRequest_SubSessEnfInf(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(PX_UE1_framedIpAddress), f_framedIpAddress6_send(PX_UE1_framedIp6Address), {m_subsesEnforcementInfo_Operation_MultiBBERFact_AnGw (m_subsessionId_dummy(1), m_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E), m_multipleBBERFAction_dummy(Multiple_BBERF_Action_Code:ESTABLISHMENT_E), {m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))} )} )); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)) ); 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_PCRF_HMB_02 /* * @desc This is the test case function TC_PCRF_HMB_03 * @param */ function f_TC_PCRF_HMB_03() runs on DiameterComponent { f_preamble_VPCRF(); f_initiate_session_VPCRF(); //TODO previous BBERF f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync f_send_CCR(m_CCR_UpdateRequest_MultBBERFact_AnGw(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, m_multipleBBERFAction_dummy(Multiple_BBERF_Action_Code:ESTABLISHMENT_E), {m_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))} )); f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, mw_resultCode(mw_resultCode_diameterSuccess)) ); 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_PCRF_HMB_03 } // group TP_HPCRFRole_HMB } // group TP_HPCRFRole group TP_VPCRFRole{ // §5.2.2 Loading
DiameterS9/ttcn/DiameterS9_Templates.ttcn +93 −0 Original line number Diff line number Diff line Loading @@ -607,6 +607,18 @@ module DiameterS9_Templates { subsession_Operation := p_subsessionOperation } template Subses_Enforcement_Info_AVP m_subsesEnforcementInfo_Operation_MultiBBERFact_AnGw ( template Subsession_Id_AVP p_subsessionId, template Subsession_Operation_AVP p_subsessionOperation, template Multiple_BBERF_Action_AVP p_multipleBberfAction, template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress ) modifies m_subsesEnforcementInfo_Operation:= { subsession_Operation := p_subsessionOperation, multiple_BBERF_Action := p_multipleBberfAction, aN_GW_Address := p_anGwAddress } template Session_Release_Cause_AVP m_sessReleaseCause(template (present) Session_Release_Cause p_avpData) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_session_Release_Cause_AVP_Code, 4, c_vendId3gpp), Loading Loading @@ -656,6 +668,13 @@ module DiameterS9_Templates { experimental_Result := p_experimentalResult } template Subses_Decision_Info_AVP mw_SubsesDecisionInfo_SessRelCause ( template (present) Subsession_Id_AVP p_subsessionId, template Session_Release_Cause_AVP p_sessionReleaseCause) modifies mw_SubsesDecisionInfo_dummy := { session_Release_Cause := p_sessionReleaseCause } template Experimental_Result_AVP mw_experimentalResult(template(present) Experimental_Result_Code_AVP p_ExperimentalResultCode) := { aVP_Header := mw_aVP_Header_Vbit0Mbit1(c_experimental_Result_AVP_Code), vendor_Id := ?, Loading Loading @@ -866,6 +885,36 @@ module DiameterS9_Templates { } template CCR_MSG m_CCR_InitialRequest_SubSessEnfInf (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 Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address, template CCR_MSG.cCR_Body.subsesion_Enforcement_Info p_subsesionEnforcementInfo ) modifies m_CCR_InitialRequest := { cCR_Body := { subsesion_Enforcement_Info := p_subsesionEnforcementInfo } } template CCR_MSG m_CCR_InitialRequest_MultBBERFact_AnGw (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 Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address, template Multiple_BBERF_Action_AVP p_multipleBberfAction, template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress ) modifies m_CCR_InitialRequest := { cCR_Body := { multiple_BBERF_Action := p_multipleBberfAction, aN_GW_Address := p_anGwAddress } } template CCR_MSG m_CCR_TerminationRequest(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading @@ -878,6 +927,22 @@ module DiameterS9_Templates { } } template CCR_MSG m_CCR_TerminationRequestBBERFatt(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, // BBERF attributes TODO: to check more required AVPs template QoS_Information_AVP p_qosInformation ) modifies m_CCR_TerminationRequest := { cCR_Body := { cC_Request_Type := m_cC_Request_Type(TERMINATION_REQUEST_E), cC_Request_Number := m_cC_Request_Number(1), qoS_Information := p_qosInformation // BBERF attributes } } template CCR_MSG m_CCR_UpdateRequest (template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading Loading @@ -913,6 +978,21 @@ module DiameterS9_Templates { } } template CCR_MSG m_CCR_UpdateRequest_MultBBERFact_AnGw (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 Multiple_BBERF_Action_AVP p_multipleBberfAction, template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress ) modifies m_CCR_basic := { cCR_Body := { cC_Request_Type := m_cC_Request_Type ( UPDATE_REQUEST_E ), multiple_BBERF_Action := p_multipleBberfAction, aN_GW_Address := p_anGwAddress } } template RAR_MSG m_RAR_SessionEnd(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, Loading Loading @@ -957,6 +1037,19 @@ module DiameterS9_Templates { } } 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 := { rAR_Body := { session_Release_Cause := mw_sessReleaseCause(?) } } } // end group S9modified_request_templates_receive group S9modified_answer_templates_send { Loading