Loading DiameterS9/ttcn/DiameterS9_S9_TCFunctions.ttcn3 +313 −2 Original line number Diff line number Diff line Loading @@ -2583,7 +2583,7 @@ module DiameterS9_S9_TCFunctions { group TP_VPCRFRole_VST{ /* * @desc This is the test case function f_TC_VPCRF_VSM_01 * @desc This is the test case function f_TC_VPCRF_VST_01 * @param */ function f_TC_VPCRF_VST_01() Loading Loading @@ -2651,7 +2651,7 @@ module DiameterS9_S9_TCFunctions { } // end function f_TC_VPCRF_VST_02 /* * @desc This is the test case function f_TC_VPCRF_VSM_03 * @desc This is the test case function f_TC_VPCRF_VST_03 * @param */ function f_TC_VPCRF_VST_03() Loading Loading @@ -2768,6 +2768,317 @@ module DiameterS9_S9_TCFunctions { } // end function f_TC_VPCRF_VST_05 }// end group TP_VPCRFRole_VST group TP_VPCRFRole_VMB { /* * @desc This is the test case function f_TC_VPCRF_VMB_01 * @param */ function f_TC_VPCRF_VMB_01() runs on DiameterComponent { f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_await_initial_session_send_response_HPCRF(); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_chrgRuleReport_EvTri_AnGw(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(UPDATE_REQUEST_E), *,//Subscription id {mw_chargRuleReport_Name({mw_chrgRuleName})}, {mw_event_Trigger(IP_CAN_CHANGE_E)}, {mw_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))} )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(UPDATE_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VMB_01 /* * @desc This is the test case function f_TC_VPCRF_VMB_02 * @param */ function f_TC_VPCRF_VMB_02() runs on DiameterComponent { f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_await_initial_session_send_response_HPCRF(); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_chrgRuleReport_EvTri_IpCan_Rat(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(UPDATE_REQUEST_E), *,//Subscription id {mw_chargRuleReport_Name({mw_chrgRuleName})}, {mw_event_Trigger(IP_CAN_CHANGE_E)}, mw_iP_CAN_Type(?), mw_rAT_Type(?) )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(UPDATE_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VMB_02 } //end group TP_VPCRFRole_VMB group TP_VPCRFRole_VDS { /* * @desc This is the test case function f_TC_VPCRF_VDS_01 * @param */ function f_TC_VPCRF_VDS_01() runs on DiameterComponent { f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_await_initial_session_send_response_HPCRF(); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync // Ensure that no CCR has been sent tc_delay.start; tc_delay.timeout; f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // no session termination f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VDS_01 /* * @desc This is the test case function f_TC_VPCRF_VDS_02 * @param */ function f_TC_VPCRF_VDS_02() runs on DiameterComponent { var template Subsession_Id_AVP v_subSessionId; f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_await_initial_session_send_response_HPCRF(); if (ispresent(vc_recvDiamMsg.cCR_MSG.cCR_Body.subsesion_Enforcement_Info)) { v_subSessionId := vc_recvDiamMsg.cCR_MSG.cCR_Body.subsesion_Enforcement_Info[0].subsession_Id; } else {setverdict(fail); v_subSessionId := mw_subsessionId_dummy(?)}; //CCR UPDATE REQUEST f_awaiting_CCR(mw_CCR_SubSessEnfInf_QoS(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(UPDATE_REQUEST_E), *,//Subscription id {mw_subsesEnforcementInfo_Operation(v_subSessionId, //mw_subsessionId_dummy(?), mw_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E), *//qoS_Rule_Report )}, *,//QoS_Rule_Report *//QoS_information )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(UPDATE_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble for termination of the rest of the subsessions f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VDS_02 /* * @desc This is the test case function f_TC_VPCRF_VDS_03 * @param */ function f_TC_VPCRF_VDS_03() runs on DiameterComponent { var template Subsession_Id_AVP v_subSessionId; f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_awaiting_CCR(mw_CCR_SubSessEnfInf_QoS(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *,//Subscription id {mw_subsesEnforcementInfo_Operation(mw_subsessionId_dummy(?), mw_subsessionOperation_dummy(Subsession_Operation_Code:ESTABLISHMENT_E), *//qoS_Rule_Report )}, *,//QoS_Rule_Report *//QoS_information )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble for termination of the rest of the subsessions f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VDS_03 } //end group TP_VPCRFRole_VDS group TP_VPCRFRole_VSL { /* * @desc This is the test case function f_TC_VPCRF_VSL_01 * @param */ function f_TC_VPCRF_VSL_01() runs on DiameterComponent { var template Subsession_Id_AVP v_subSessionId; f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_awaiting_CCR(mw_CCR_SubSessEnfInf_QoS(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *,//Subscription id {mw_subsesEnforcementInfo_Operation_PDNConn_CalledStationId(mw_subsessionId_dummy(?), mw_subsessionOperation_dummy(Subsession_Operation_Code:ESTABLISHMENT_E), *,//called_Station_Id omit )}, *,//QoS_Rule_Report *//QoS_information )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble for termination of the rest of the subsessions f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VSL_01 } //end group TP_VPCRFRole_VSL group TP_VPCRFRole_VIF { /* * @desc This is the test case function f_TC_VPCRF_VIF_01 * @param */ function f_TC_VPCRF_VIF_01() runs on DiameterComponent { var template Subsession_Id_AVP v_subSessionId; f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_awaiting_CCR(mw_CCR_SubSessEnfInf_QoS(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *,//Subscription id {mw_subsesEnforcementInfo_Operation_RRinstall(mw_subsessionId_dummy(?), mw_subsessionOperation_dummy(Subsession_Operation_Code:ESTABLISHMENT_E), ? //RoutingRuleInstall )}, *,//QoS_Rule_Report *//QoS_information )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble for termination of the rest of the subsessions f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VIF_01 } //end group TP_VPCRFRole_VIF } // group TP_VPCRFRole }// end module DiameterS9_S9_TCFunctions No newline at end of file DiameterS9/ttcn/DiameterS9_Templates.ttcn +67 −0 Original line number Diff line number Diff line Loading @@ -910,6 +910,15 @@ module DiameterS9_Templates { pDN_Connection_ID := p_pDN_Connection_ID } template Subses_Enforcement_Info_AVP mw_subsesEnforcementInfo_Operation_RRinstall (template (present) Subsession_Id_AVP p_subsessionId, template Subsession_Operation_AVP p_subsessionOperation , template Subses_Enforcement_Info_AVP.routing_Rule_Install p_routingRuleInstall ) modifies mw_subsesEnforcementInfo_dummy:= { subsession_Operation := p_subsessionOperation, routing_Rule_Install := p_routingRuleInstall } template Subses_Enforcement_Info_AVP mw_subsesEnforcementInfo_qosInfo (template (present) Subsession_Id_AVP p_subsessionId, template Subses_Enforcement_Info_AVP.qoS_Information p_qoS_Information, Loading Loading @@ -967,6 +976,25 @@ module DiameterS9_Templates { aVP_Header := mw_aVP_Header_VMbit1(c_charging_Rule_Name_AVP_Code), aVP_Data := ? //or PX_CHARGING_RULE_NAME_DATA } template Event_Trigger_AVP mw_event_Trigger(template Event_Trigger p_avpData) := { aVP_Header := mw_aVP_Header_VMbit1(c_event_Trigger_AVP_Code), aVP_Data := p_avpData } template IP_CAN_Type_AVP mw_iP_CAN_Type(template IP_CAN_Type p_avpData):= { aVP_Header := mw_aVP_Header_VMbit1(c_iP_CAN_Type_AVP_Code), aVP_Data := p_avpData } template RAT_Type_AVP mw_rAT_Type(template RAT_Type p_avpData):= { aVP_Header := mw_aVP_Header_Vbit1Mbit0(c_rAT_Type_AVP_Code), aVP_Data := p_avpData } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -1547,6 +1575,45 @@ module DiameterS9_Templates { } } template CCR_MSG mw_CCR_chrgRuleReport_EvTri_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 CC_Request_Type_AVP p_cCRequestType, template CCR_MSG.cCR_Body.subscription_Id p_subscriptionId, template CCR_MSG.cCR_Body.charging_Rule_Report p_charging_Rule_Report, template CCR_MSG.cCR_Body.event_Trigger p_event_Trigger, template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress) modifies mw_CCR_basic := { cCR_Body := { subscription_Id := p_subscriptionId, charging_Rule_Report := p_charging_Rule_Report, event_Trigger := p_event_Trigger, aN_GW_Address := p_anGwAddress } } template CCR_MSG mw_CCR_chrgRuleReport_EvTri_IpCan_Rat (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 CC_Request_Type_AVP p_cCRequestType, template CCR_MSG.cCR_Body.subscription_Id p_subscriptionId, template CCR_MSG.cCR_Body.charging_Rule_Report p_charging_Rule_Report, template CCR_MSG.cCR_Body.event_Trigger p_event_Trigger, template CCR_MSG.cCR_Body.iP_CAN_Type p_ipCanType, template CCR_MSG.cCR_Body.rAT_Type p_ratType ) modifies mw_CCR_basic := { cCR_Body := { subscription_Id := p_subscriptionId, charging_Rule_Report := p_charging_Rule_Report, event_Trigger := p_event_Trigger, iP_CAN_Type := p_ipCanType, rAT_Type := p_ratType } } } // end group S9modified_request_templates_receive group S9modified_answer_templates_send { Loading Loading
DiameterS9/ttcn/DiameterS9_S9_TCFunctions.ttcn3 +313 −2 Original line number Diff line number Diff line Loading @@ -2583,7 +2583,7 @@ module DiameterS9_S9_TCFunctions { group TP_VPCRFRole_VST{ /* * @desc This is the test case function f_TC_VPCRF_VSM_01 * @desc This is the test case function f_TC_VPCRF_VST_01 * @param */ function f_TC_VPCRF_VST_01() Loading Loading @@ -2651,7 +2651,7 @@ module DiameterS9_S9_TCFunctions { } // end function f_TC_VPCRF_VST_02 /* * @desc This is the test case function f_TC_VPCRF_VSM_03 * @desc This is the test case function f_TC_VPCRF_VST_03 * @param */ function f_TC_VPCRF_VST_03() Loading Loading @@ -2768,6 +2768,317 @@ module DiameterS9_S9_TCFunctions { } // end function f_TC_VPCRF_VST_05 }// end group TP_VPCRFRole_VST group TP_VPCRFRole_VMB { /* * @desc This is the test case function f_TC_VPCRF_VMB_01 * @param */ function f_TC_VPCRF_VMB_01() runs on DiameterComponent { f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_await_initial_session_send_response_HPCRF(); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_chrgRuleReport_EvTri_AnGw(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(UPDATE_REQUEST_E), *,//Subscription id {mw_chargRuleReport_Name({mw_chrgRuleName})}, {mw_event_Trigger(IP_CAN_CHANGE_E)}, {mw_anGwAddress(f_IPAdress(PX_SGW_AGW_ipv4,PX_SGW_AGW_ipv6))} )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(UPDATE_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VMB_01 /* * @desc This is the test case function f_TC_VPCRF_VMB_02 * @param */ function f_TC_VPCRF_VMB_02() runs on DiameterComponent { f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_await_initial_session_send_response_HPCRF(); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync f_awaiting_CCR(mw_CCR_chrgRuleReport_EvTri_IpCan_Rat(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(UPDATE_REQUEST_E), *,//Subscription id {mw_chargRuleReport_Name({mw_chrgRuleName})}, {mw_event_Trigger(IP_CAN_CHANGE_E)}, mw_iP_CAN_Type(?), mw_rAT_Type(?) )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(UPDATE_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VMB_02 } //end group TP_VPCRFRole_VMB group TP_VPCRFRole_VDS { /* * @desc This is the test case function f_TC_VPCRF_VDS_01 * @param */ function f_TC_VPCRF_VDS_01() runs on DiameterComponent { f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_await_initial_session_send_response_HPCRF(); f_selfOrClientSyncAndVerdict(c_sync1, f_getVerdict()); // sync // Ensure that no CCR has been sent tc_delay.start; tc_delay.timeout; f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync // no session termination f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VDS_01 /* * @desc This is the test case function f_TC_VPCRF_VDS_02 * @param */ function f_TC_VPCRF_VDS_02() runs on DiameterComponent { var template Subsession_Id_AVP v_subSessionId; f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_await_initial_session_send_response_HPCRF(); if (ispresent(vc_recvDiamMsg.cCR_MSG.cCR_Body.subsesion_Enforcement_Info)) { v_subSessionId := vc_recvDiamMsg.cCR_MSG.cCR_Body.subsesion_Enforcement_Info[0].subsession_Id; } else {setverdict(fail); v_subSessionId := mw_subsessionId_dummy(?)}; //CCR UPDATE REQUEST f_awaiting_CCR(mw_CCR_SubSessEnfInf_QoS(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(UPDATE_REQUEST_E), *,//Subscription id {mw_subsesEnforcementInfo_Operation(v_subSessionId, //mw_subsessionId_dummy(?), mw_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E), *//qoS_Rule_Report )}, *,//QoS_Rule_Report *//QoS_information )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(UPDATE_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble for termination of the rest of the subsessions f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VDS_02 /* * @desc This is the test case function f_TC_VPCRF_VDS_03 * @param */ function f_TC_VPCRF_VDS_03() runs on DiameterComponent { var template Subsession_Id_AVP v_subSessionId; f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_awaiting_CCR(mw_CCR_SubSessEnfInf_QoS(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *,//Subscription id {mw_subsesEnforcementInfo_Operation(mw_subsessionId_dummy(?), mw_subsessionOperation_dummy(Subsession_Operation_Code:ESTABLISHMENT_E), *//qoS_Rule_Report )}, *,//QoS_Rule_Report *//QoS_information )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble for termination of the rest of the subsessions f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VDS_03 } //end group TP_VPCRFRole_VDS group TP_VPCRFRole_VSL { /* * @desc This is the test case function f_TC_VPCRF_VSL_01 * @param */ function f_TC_VPCRF_VSL_01() runs on DiameterComponent { var template Subsession_Id_AVP v_subSessionId; f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_awaiting_CCR(mw_CCR_SubSessEnfInf_QoS(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *,//Subscription id {mw_subsesEnforcementInfo_Operation_PDNConn_CalledStationId(mw_subsessionId_dummy(?), mw_subsessionOperation_dummy(Subsession_Operation_Code:ESTABLISHMENT_E), *,//called_Station_Id omit )}, *,//QoS_Rule_Report *//QoS_information )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble for termination of the rest of the subsessions f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VSL_01 } //end group TP_VPCRFRole_VSL group TP_VPCRFRole_VIF { /* * @desc This is the test case function f_TC_VPCRF_VIF_01 * @param */ function f_TC_VPCRF_VIF_01() runs on DiameterComponent { var template Subsession_Id_AVP v_subSessionId; f_preamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync //CCR INITIAL REQUEST f_awaiting_CCR(mw_CCR_SubSessEnfInf_QoS(?, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(INITIAL_REQUEST_E), *,//Subscription id {mw_subsesEnforcementInfo_Operation_RRinstall(mw_subsessionId_dummy(?), mw_subsessionOperation_dummy(Subsession_Operation_Code:ESTABLISHMENT_E), ? //RoutingRuleInstall )}, *,//QoS_Rule_Report *//QoS_information )); f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E), m_resultCode(m_resultCode_diameterSuccess))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_await_session_termination_HPCRF(); // postamble for termination of the rest of the subsessions f_postamble_HPCRF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync } // end function f_TC_VPCRF_VIF_01 } //end group TP_VPCRFRole_VIF } // group TP_VPCRFRole }// end module DiameterS9_S9_TCFunctions No newline at end of file
DiameterS9/ttcn/DiameterS9_Templates.ttcn +67 −0 Original line number Diff line number Diff line Loading @@ -910,6 +910,15 @@ module DiameterS9_Templates { pDN_Connection_ID := p_pDN_Connection_ID } template Subses_Enforcement_Info_AVP mw_subsesEnforcementInfo_Operation_RRinstall (template (present) Subsession_Id_AVP p_subsessionId, template Subsession_Operation_AVP p_subsessionOperation , template Subses_Enforcement_Info_AVP.routing_Rule_Install p_routingRuleInstall ) modifies mw_subsesEnforcementInfo_dummy:= { subsession_Operation := p_subsessionOperation, routing_Rule_Install := p_routingRuleInstall } template Subses_Enforcement_Info_AVP mw_subsesEnforcementInfo_qosInfo (template (present) Subsession_Id_AVP p_subsessionId, template Subses_Enforcement_Info_AVP.qoS_Information p_qoS_Information, Loading Loading @@ -967,6 +976,25 @@ module DiameterS9_Templates { aVP_Header := mw_aVP_Header_VMbit1(c_charging_Rule_Name_AVP_Code), aVP_Data := ? //or PX_CHARGING_RULE_NAME_DATA } template Event_Trigger_AVP mw_event_Trigger(template Event_Trigger p_avpData) := { aVP_Header := mw_aVP_Header_VMbit1(c_event_Trigger_AVP_Code), aVP_Data := p_avpData } template IP_CAN_Type_AVP mw_iP_CAN_Type(template IP_CAN_Type p_avpData):= { aVP_Header := mw_aVP_Header_VMbit1(c_iP_CAN_Type_AVP_Code), aVP_Data := p_avpData } template RAT_Type_AVP mw_rAT_Type(template RAT_Type p_avpData):= { aVP_Header := mw_aVP_Header_Vbit1Mbit0(c_rAT_Type_AVP_Code), aVP_Data := p_avpData } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -1547,6 +1575,45 @@ module DiameterS9_Templates { } } template CCR_MSG mw_CCR_chrgRuleReport_EvTri_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 CC_Request_Type_AVP p_cCRequestType, template CCR_MSG.cCR_Body.subscription_Id p_subscriptionId, template CCR_MSG.cCR_Body.charging_Rule_Report p_charging_Rule_Report, template CCR_MSG.cCR_Body.event_Trigger p_event_Trigger, template CCR_MSG.cCR_Body.aN_GW_Address p_anGwAddress) modifies mw_CCR_basic := { cCR_Body := { subscription_Id := p_subscriptionId, charging_Rule_Report := p_charging_Rule_Report, event_Trigger := p_event_Trigger, aN_GW_Address := p_anGwAddress } } template CCR_MSG mw_CCR_chrgRuleReport_EvTri_IpCan_Rat (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 CC_Request_Type_AVP p_cCRequestType, template CCR_MSG.cCR_Body.subscription_Id p_subscriptionId, template CCR_MSG.cCR_Body.charging_Rule_Report p_charging_Rule_Report, template CCR_MSG.cCR_Body.event_Trigger p_event_Trigger, template CCR_MSG.cCR_Body.iP_CAN_Type p_ipCanType, template CCR_MSG.cCR_Body.rAT_Type p_ratType ) modifies mw_CCR_basic := { cCR_Body := { subscription_Id := p_subscriptionId, charging_Rule_Report := p_charging_Rule_Report, event_Trigger := p_event_Trigger, iP_CAN_Type := p_ipCanType, rAT_Type := p_ratType } } } // end group S9modified_request_templates_receive group S9modified_answer_templates_send { Loading