Loading DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +62 −0 Original line number Diff line number Diff line Loading @@ -2647,6 +2647,68 @@ module DiameterGx_Gx_TCFunctions { } // end function f_TC_PCEF_RAU_04 /* * @desc This is the test case function TC_PCEF_RAU_05 * @param */ function f_TC_PCEF_RAU_05() 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)); // requesting montitoring control f_send_RAR(DiameterGx_Templates.m_RAR_EvTrigger_UMI // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_event_Trigger(USAGE_REPORT_E), m_usageMonitoringInformation(omit, omit))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // trigger for usage report (explicit request) f_send_RAR(DiameterGx_Templates.m_RAR_UMI // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_usageMonitoringInformationRequestReport(m_usageMonitoringReport(USAGE_MONITORING_REPORT_REQUIRED_E)))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); f_awaiting_CCR(mw_CCR_Request_EvtTrig_UMI(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(UPDATE_REQUEST_E), mw_usageMonitoringInfo_Key_UsedServiceUnit(mw_usedServiceUnit(*,*)), mw_eventTrigger(USAGE_REPORT_E))); // check that uplink or downlink volune has been indicated if (not (ispresent(vc_recvDiamMsg.cCR_MSG.usage_Monitoring_Information[0].used_Service_Unit.cC_Input_Octets) or ispresent(vc_recvDiamMsg.cCR_MSG.usage_Monitoring_Information[0].used_Service_Unit.cC_Output_Octets) ) ) {setverdict(fail)}; f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync 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_RAU_05 }//end group TP_PCEFRole_RAU Loading DiameterGx/ttcn/DiameterGx_Templates.ttcn +33 −1 Original line number Diff line number Diff line Loading @@ -770,6 +770,12 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Usage_Monitoring_Report_AVP m_usageMonitoringReport (Usage_Monitoring_Report p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Report_AVP, 8, omit), aVP_Data := p_avpData } template Usage_Monitoring_Information_AVP m_usageMonitoringInformation (template Monitoring_Key_AVP p_monitoringKey, Loading @@ -786,6 +792,20 @@ module DiameterGx_Templates { aVP_Type := omit }; template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestReport (template Usage_Monitoring_Report_AVP p_usageMonitoringReport) := { aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(p_usageMonitoringReport)), omit), monitoring_Key := omit, granted_Service_Unit := omit, used_Service_Unit := omit, usage_Monitoring_Level := omit, usage_Monitoring_Report := p_usageMonitoringReport, usage_Monitoring_Support := omit, aVP_Type := omit }; }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -1465,6 +1485,18 @@ module DiameterGx_Templates { usage_Monitoring_Information := {p_usageMonitoringInformation} } template RAR_MSG m_RAR_UMI(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 Usage_Monitoring_Information_AVP p_usageMonitoringInformation) modifies m_RAR_basic := { usage_Monitoring_Information := {p_usageMonitoringInformation} } template RAR_MSG m_RAR_CharRuleRemove(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, Loading Loading
DiameterGx/ttcn/DiameterGx_Gx_TCFunctions.ttcn +62 −0 Original line number Diff line number Diff line Loading @@ -2647,6 +2647,68 @@ module DiameterGx_Gx_TCFunctions { } // end function f_TC_PCEF_RAU_04 /* * @desc This is the test case function TC_PCEF_RAU_05 * @param */ function f_TC_PCEF_RAU_05() 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)); // requesting montitoring control f_send_RAR(DiameterGx_Templates.m_RAR_EvTrigger_UMI // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_event_Trigger(USAGE_REPORT_E), m_usageMonitoringInformation(omit, omit))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync // trigger for usage report (explicit request) f_send_RAR(DiameterGx_Templates.m_RAR_UMI // RAR in Rx-module has different header! (vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, vc_destinationHost, m_usageMonitoringInformationRequestReport(m_usageMonitoringReport(USAGE_MONITORING_REPORT_REQUIRED_E)))); f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); f_awaiting_CCR(mw_CCR_Request_EvtTrig_UMI(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, mw_cC_Request_Type(UPDATE_REQUEST_E), mw_usageMonitoringInfo_Key_UsedServiceUnit(mw_usedServiceUnit(*,*)), mw_eventTrigger(USAGE_REPORT_E))); // check that uplink or downlink volune has been indicated if (not (ispresent(vc_recvDiamMsg.cCR_MSG.usage_Monitoring_Information[0].used_Service_Unit.cC_Input_Octets) or ispresent(vc_recvDiamMsg.cCR_MSG.usage_Monitoring_Information[0].used_Service_Unit.cC_Output_Octets) ) ) {setverdict(fail)}; f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync 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_RAU_05 }//end group TP_PCEFRole_RAU Loading
DiameterGx/ttcn/DiameterGx_Templates.ttcn +33 −1 Original line number Diff line number Diff line Loading @@ -770,6 +770,12 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template Usage_Monitoring_Report_AVP m_usageMonitoringReport (Usage_Monitoring_Report p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Report_AVP, 8, omit), aVP_Data := p_avpData } template Usage_Monitoring_Information_AVP m_usageMonitoringInformation (template Monitoring_Key_AVP p_monitoringKey, Loading @@ -786,6 +792,20 @@ module DiameterGx_Templates { aVP_Type := omit }; template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestReport (template Usage_Monitoring_Report_AVP p_usageMonitoringReport) := { aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(p_usageMonitoringReport)), omit), monitoring_Key := omit, granted_Service_Unit := omit, used_Service_Unit := omit, usage_Monitoring_Level := omit, usage_Monitoring_Report := p_usageMonitoringReport, usage_Monitoring_Support := omit, aVP_Type := omit }; }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -1465,6 +1485,18 @@ module DiameterGx_Templates { usage_Monitoring_Information := {p_usageMonitoringInformation} } template RAR_MSG m_RAR_UMI(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 Usage_Monitoring_Information_AVP p_usageMonitoringInformation) modifies m_RAR_basic := { usage_Monitoring_Information := {p_usageMonitoringInformation} } template RAR_MSG m_RAR_CharRuleRemove(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, Loading