Loading DiameterRfRo/ttcn/DiameterRfRo_PICS.ttcn +5 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,11 @@ module DiameterRfRo_PICS { * @see ETSI DTS/INT 00121-1 V0.0.6 (2015-07) A.3/1 */ modulepar boolean PICS_EVENT_BASED_CHARGING := true; /** * @desc Does the IUT support session based charging? * @see ETSI DTS/INT 00121-1 V0.0.6 (2015-07) A.3/2 */ modulepar boolean PICS_SESSION_BASED_CHARGING := true; } // End of group PICS_A3 Loading DiameterRfRo/ttcn/DiameterRfRo_Steps.ttcn +22 −8 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ } f_DiameterRf_init(); f_preambleDiameterBaseClient(c_applIdRf);//TODO change to Rf/Ro f_preambleDiameterBaseClient(c_applIdRfRo); } function f_preamble_Rf_CTF() runs on DiameterComponent Loading @@ -129,7 +129,7 @@ } f_DiameterRf_init(); f_preambleDiameterBaseServer(c_applIdRf);//TODO change to Rf/Ro f_preambleDiameterBaseServer(c_applIdRfRo); } function f_preamble_Ro_OCF() runs on DiameterComponent Loading @@ -140,7 +140,7 @@ } f_DiameterRo_init(); f_preambleDiameterBaseClient(c_applIdCommonMsg);//TODO change to Rf/Ro f_preambleDiameterBaseClient(c_applIdRfRo); } function f_preamble_Ro_CTF() runs on DiameterComponent Loading @@ -150,15 +150,28 @@ f_preambleServer(); } f_DiameterRf_init(); f_preambleDiameterBaseServer(c_applIdCommonMsg);//TODO change to Rf/Ro f_DiameterRo_init(); f_preambleDiameterBaseServer(c_applIdRfRo); } } // End of group Preambles group Postambles { function f_postamble_CTF() runs on DiameterComponent function f_postamble_Rf_CDF() runs on DiameterComponent { f_postambleDiameterBase(); if(PX_DIAM_LLP_ENABLED) { f_postambleDisconnect(); } // Deactivate defaults deactivate; } function f_postamble_Rf_CTF() runs on DiameterComponent { f_postambleDiameterBase(); Loading @@ -172,7 +185,7 @@ deactivate; } function f_postamble_CDF() runs on DiameterComponent function f_postamble_Ro_OCF() runs on DiameterComponent { f_postambleDiameterBase(); Loading @@ -185,8 +198,9 @@ deactivate; } function f_postamble_OCF() runs on DiameterComponent function f_postamble_Ro_CTF() runs on DiameterComponent { f_postambleDiameterBase(); if(PX_DIAM_LLP_ENABLED) Loading DiameterRfRo/ttcn/DiameterRfRo_TCFunctions.ttcn +153 −84 Original line number Diff line number Diff line Loading @@ -36,17 +36,15 @@ module DiameterRfRo_TCFunctions { * @desc Verify that the IUT can successfully process all mandatory AVPs in an AC-Request received due to Charging Data Transfer * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_CDF_UL_01() runs on DiameterComponent { function f_TC_CDF_MS_01() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Rf_CDF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***"); f_preamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body // Clause 'when': the IUT receives an AC-Request f_triggerAcRequest( f_send_ACR( md_aCR( vc_sessionId, md_acrBodyAvps( Loading @@ -62,11 +60,7 @@ module DiameterRfRo_TCFunctions { ) ); // Clause 'then': the IUT sends an AC-Response tc_wait.start; alt { [] DIAMP.receive( mw_cdfAccountingResponse( f_awaiting_ACA( mdw_aCA( vc_sessionId, // containing a Session-ID AVP mdw_acaBodyAvps( Loading @@ -81,23 +75,52 @@ module DiameterRfRo_TCFunctions { mw_accounting_Record_Number( // containing an Acct-Application-Id AVP 3 // indicating the value 3 ) )))) { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": PASS: Expected was received. ***"); } [] tc_wait.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***"); } } // End of 'altstep' statement // Postamble f_postamble_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); )) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_CDF_UL_01 } // End of function f_TC_CDF_MS_01 function f_TC_CDF_MS_02() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_ACR( md_aCR( vc_sessionId, md_acrBodyAvps( vc_originHost, // containing an Origin-Host AVP vc_originRealm, // containing an Origin-Realm AVP m_accounting_Record_Type( // containing an Accounting-Record-Type AVP EVENT_RECORD_E ), m_accounting_Record_Number( // containing an Accounting-Record-Number AVP 3 // indicating the value 3 ) ) ) ); f_awaiting_ACA( mw_ACA_MessageFlags ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_CDF_MS_02 } // End of group messageSyntax // 5.2.2.1.3 Type of Charging Loading @@ -107,17 +130,15 @@ module DiameterRfRo_TCFunctions { * @desc Verify that the IUT can successfully process an AC-Request [Event] where Event Based Charging is used * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RF_CDF_TC_01() runs on DiameterComponent { function f_TC_RF_CDF_TC_01() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Rf_CDF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***"); f_preamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body // Clause 'when': the IUT receives an AC-Request f_triggerAcRequest( f_send_ACR( md_aCR( vc_sessionId, md_acrBodyAvps( Loading @@ -134,11 +155,7 @@ module DiameterRfRo_TCFunctions { ) ); // Clause 'then': the IUT sends an AC-Response tc_wait.start; alt { [] DIAMP.receive( mw_cdfAccountingResponse( f_awaiting_ACA( mdw_aCA( vc_sessionId, // containing a Session-ID AVP mdw_acaBodyAvps( Loading @@ -153,23 +170,75 @@ module DiameterRfRo_TCFunctions { mw_accounting_Record_Number( // containing an Acct-Application-Id AVP 3 // indicating the value 3 ) )))) { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": PASS: Expected was received. ***"); } [] tc_wait.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***"); } } // End of 'altstep' statement // Postamble f_postamble_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); )) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RF_CDF_TC_01 /** * @desc Verify that the IUT can successfully process an AC-Request [Start] where Session Based Charging is used * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RF_CDF_TC_02() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_ACR( md_aCR( vc_sessionId, md_acrBodyAvps_TypeOfCharging_Session( vc_originHost, // containing an Origin-Host AVP vc_originRealm, // containing an Origin-Realm AVP m_accounting_Record_Type( // containing an Accounting-Record-Type AVP START_RECORD_E ), m_accounting_Record_Number( // containing an Accounting-Record-Number AVP 3 // indicating the value 3 ), m_event_timestamp(1), m_service_Information_AVP_dummy // FIXME To be continue by creating a m_service_Information template modifying m_service_Information_AVP_dummy ) ) ); f_awaiting_ACA( mdw_aCA( vc_sessionId, // containing a Session-ID AVP mdw_acaBodyAvps( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER_SUCCESS ), vc_originHost, // containing an Origin-Host AVP vc_originRealm, // containing an Origin-Realm AVP mw_accounting_Record_Type( // containing an Accounting-Record-Type AVP START_RECORD_E ), mw_accounting_Record_Number( // containing an Acct-Application-Id AVP 3 // indicating the value 3 ) )) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RF_CDF_TC_02 } // End of group TypeOfCharging } // End of group TP_RF_CDF_Role Loading DiameterRfRo/ttcn/DiameterRfRo_Templates.ttcn +43 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,11 @@ module DiameterRfRo_Templates { group HeaderFieldTemplates { template DiameterHeader mw_diameterHeaderAns_CmdFlags(Command_Code p_cmdcode, template (present) UInt32 p_applid, template (present) Command_Flags p_commandFlags) modifies mw_diameterHeaderAns_dummy := { cmdflags := p_commandFlags } /** * @desc Received generic command flag template */ Loading @@ -53,6 +58,14 @@ module DiameterRfRo_Templates { t_bit := '1'B // T message } // End of template mw_cmdTFlagsAns /** * @desc Received generic command flag template */ template (present) Command_Flags mw_cmd_0TFlagsAns modifies mw_cmdFlagsAns := { t_bit := '0'B // !T message } // End of template mw_cmdTFlagsAns template AVP_Header mw_aVP_HeaderVid_Vbit1Mbit0 ( AVP_Code p_avpCode, template (present) AVP_Vendor_ID p_avpVid ) := { aVP_Code := p_avpCode, aVP_flags := mw_avpFlags_VMbits('1'B, '0'B), Loading Loading @@ -303,10 +316,35 @@ module DiameterRfRo_Templates { service_Information_AVP := p_service_Information } // End of template md_acrBodyAvps /** * @desc Send template for ACR message body */ template (omit) ACR_Body_AVP md_acrBodyAvps_TypeOfCharging_Session( in template (value) Origin_Host_AVP p_originHost, in template (value) Origin_Realm_AVP p_originRealm, in template (value) Accounting_Record_Type_AVP p_accounting_Record_Type, in template (value) Accounting_Record_Number_AVP p_accounting_Record_Number, in template (omit) Event_Timestamp_AVP p_event_Timestamp := omit, in template (omit) Service_Information_AVP p_service_Information := omit ) modifies m_rf_ACR_Body_dummy := { origin_Host := p_originHost, origin_Realm := p_originRealm, accounting_Record_Type := p_accounting_Record_Type, accounting_Record_Number := p_accounting_Record_Number, event_Timestamp := p_event_Timestamp, service_Information_AVP := p_service_Information } // End of template md_acrBodyAvps_TypeOfCharging_Session } // End of group Rf_request_message_templates_send group Rf_answer_message_templates_receive { template ACA_MSG mw_ACA_MessageFlags modifies mw_ACA_dummy := { header := mw_diameterHeaderAns_CmdFlags(ACA_E, ?, mw_cmd_0TFlagsAns), session_Id := ?, aCA_Body := mw_ACA_Body_dummy } /** * @desc Main receive message for CDF_Rf port * @param p_aCA_MSG AC-Answer message Loading Loading @@ -656,6 +694,11 @@ module DiameterRfRo_Templates { address_AVP := p_address_AVP } // End of template m_cg_Address_AVP template (value) Event_Timestamp_AVP m_event_timestamp (UInt32 p_data_AVP) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_event_Timestamp_AVP_Code, 4, omit), aVP_Data := p_data_AVP } // End of template m_cg_Address_AVP /** * @desc The GGSN-Address send template * @param p_address_AVP Holds the IP-address of the P-GW that generated the GPRS/EPC Charging ID Loading DiameterRfRo/ttcn/DiameterRfRo_TestCases.ttcn +132 −8 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
DiameterRfRo/ttcn/DiameterRfRo_PICS.ttcn +5 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,11 @@ module DiameterRfRo_PICS { * @see ETSI DTS/INT 00121-1 V0.0.6 (2015-07) A.3/1 */ modulepar boolean PICS_EVENT_BASED_CHARGING := true; /** * @desc Does the IUT support session based charging? * @see ETSI DTS/INT 00121-1 V0.0.6 (2015-07) A.3/2 */ modulepar boolean PICS_SESSION_BASED_CHARGING := true; } // End of group PICS_A3 Loading
DiameterRfRo/ttcn/DiameterRfRo_Steps.ttcn +22 −8 Original line number Diff line number Diff line Loading @@ -118,7 +118,7 @@ } f_DiameterRf_init(); f_preambleDiameterBaseClient(c_applIdRf);//TODO change to Rf/Ro f_preambleDiameterBaseClient(c_applIdRfRo); } function f_preamble_Rf_CTF() runs on DiameterComponent Loading @@ -129,7 +129,7 @@ } f_DiameterRf_init(); f_preambleDiameterBaseServer(c_applIdRf);//TODO change to Rf/Ro f_preambleDiameterBaseServer(c_applIdRfRo); } function f_preamble_Ro_OCF() runs on DiameterComponent Loading @@ -140,7 +140,7 @@ } f_DiameterRo_init(); f_preambleDiameterBaseClient(c_applIdCommonMsg);//TODO change to Rf/Ro f_preambleDiameterBaseClient(c_applIdRfRo); } function f_preamble_Ro_CTF() runs on DiameterComponent Loading @@ -150,15 +150,28 @@ f_preambleServer(); } f_DiameterRf_init(); f_preambleDiameterBaseServer(c_applIdCommonMsg);//TODO change to Rf/Ro f_DiameterRo_init(); f_preambleDiameterBaseServer(c_applIdRfRo); } } // End of group Preambles group Postambles { function f_postamble_CTF() runs on DiameterComponent function f_postamble_Rf_CDF() runs on DiameterComponent { f_postambleDiameterBase(); if(PX_DIAM_LLP_ENABLED) { f_postambleDisconnect(); } // Deactivate defaults deactivate; } function f_postamble_Rf_CTF() runs on DiameterComponent { f_postambleDiameterBase(); Loading @@ -172,7 +185,7 @@ deactivate; } function f_postamble_CDF() runs on DiameterComponent function f_postamble_Ro_OCF() runs on DiameterComponent { f_postambleDiameterBase(); Loading @@ -185,8 +198,9 @@ deactivate; } function f_postamble_OCF() runs on DiameterComponent function f_postamble_Ro_CTF() runs on DiameterComponent { f_postambleDiameterBase(); if(PX_DIAM_LLP_ENABLED) Loading
DiameterRfRo/ttcn/DiameterRfRo_TCFunctions.ttcn +153 −84 Original line number Diff line number Diff line Loading @@ -36,17 +36,15 @@ module DiameterRfRo_TCFunctions { * @desc Verify that the IUT can successfully process all mandatory AVPs in an AC-Request received due to Charging Data Transfer * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_CDF_UL_01() runs on DiameterComponent { function f_TC_CDF_MS_01() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Rf_CDF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***"); f_preamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body // Clause 'when': the IUT receives an AC-Request f_triggerAcRequest( f_send_ACR( md_aCR( vc_sessionId, md_acrBodyAvps( Loading @@ -62,11 +60,7 @@ module DiameterRfRo_TCFunctions { ) ); // Clause 'then': the IUT sends an AC-Response tc_wait.start; alt { [] DIAMP.receive( mw_cdfAccountingResponse( f_awaiting_ACA( mdw_aCA( vc_sessionId, // containing a Session-ID AVP mdw_acaBodyAvps( Loading @@ -81,23 +75,52 @@ module DiameterRfRo_TCFunctions { mw_accounting_Record_Number( // containing an Acct-Application-Id AVP 3 // indicating the value 3 ) )))) { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": PASS: Expected was received. ***"); } [] tc_wait.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***"); } } // End of 'altstep' statement // Postamble f_postamble_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); )) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_CDF_UL_01 } // End of function f_TC_CDF_MS_01 function f_TC_CDF_MS_02() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_ACR( md_aCR( vc_sessionId, md_acrBodyAvps( vc_originHost, // containing an Origin-Host AVP vc_originRealm, // containing an Origin-Realm AVP m_accounting_Record_Type( // containing an Accounting-Record-Type AVP EVENT_RECORD_E ), m_accounting_Record_Number( // containing an Accounting-Record-Number AVP 3 // indicating the value 3 ) ) ) ); f_awaiting_ACA( mw_ACA_MessageFlags ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_CDF_MS_02 } // End of group messageSyntax // 5.2.2.1.3 Type of Charging Loading @@ -107,17 +130,15 @@ module DiameterRfRo_TCFunctions { * @desc Verify that the IUT can successfully process an AC-Request [Event] where Event Based Charging is used * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RF_CDF_TC_01() runs on DiameterComponent { function f_TC_RF_CDF_TC_01() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Rf_CDF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamblue done. ***"); f_preamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Test Body // Clause 'when': the IUT receives an AC-Request f_triggerAcRequest( f_send_ACR( md_aCR( vc_sessionId, md_acrBodyAvps( Loading @@ -134,11 +155,7 @@ module DiameterRfRo_TCFunctions { ) ); // Clause 'then': the IUT sends an AC-Response tc_wait.start; alt { [] DIAMP.receive( mw_cdfAccountingResponse( f_awaiting_ACA( mdw_aCA( vc_sessionId, // containing a Session-ID AVP mdw_acaBodyAvps( Loading @@ -153,23 +170,75 @@ module DiameterRfRo_TCFunctions { mw_accounting_Record_Number( // containing an Acct-Application-Id AVP 3 // indicating the value 3 ) )))) { f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": PASS: Expected was received. ***"); } [] tc_wait.timeout { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); log("*** " & __SCOPE__ & ": INCONC: Message was not received in due time. ***"); } } // End of 'altstep' statement // Postamble f_postamble_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); )) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RF_CDF_TC_01 /** * @desc Verify that the IUT can successfully process an AC-Request [Start] where Session Based Charging is used * @verdict pass on success, fail on error or inconc on timeout only */ function f_TC_RF_CDF_TC_02() runs on DiameterRfRo { // Local variables // Preamble f_preamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); f_send_ACR( md_aCR( vc_sessionId, md_acrBodyAvps_TypeOfCharging_Session( vc_originHost, // containing an Origin-Host AVP vc_originRealm, // containing an Origin-Realm AVP m_accounting_Record_Type( // containing an Accounting-Record-Type AVP START_RECORD_E ), m_accounting_Record_Number( // containing an Accounting-Record-Number AVP 3 // indicating the value 3 ), m_event_timestamp(1), m_service_Information_AVP_dummy // FIXME To be continue by creating a m_service_Information template modifying m_service_Information_AVP_dummy ) ) ); f_awaiting_ACA( mdw_aCA( vc_sessionId, // containing a Session-ID AVP mdw_acaBodyAvps( mw_resultCode( // containing a Result-Code AVP DIAMETER_SUCCESS_E // indicating DIAMETER_SUCCESS ), vc_originHost, // containing an Origin-Host AVP vc_originRealm, // containing an Origin-Realm AVP mw_accounting_Record_Type( // containing an Accounting-Record-Type AVP START_RECORD_E ), mw_accounting_Record_Number( // containing an Acct-Application-Id AVP 3 // indicating the value 3 ) )) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync f_postamble_Rf_CTF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_RF_CDF_TC_02 } // End of group TypeOfCharging } // End of group TP_RF_CDF_Role Loading
DiameterRfRo/ttcn/DiameterRfRo_Templates.ttcn +43 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,11 @@ module DiameterRfRo_Templates { group HeaderFieldTemplates { template DiameterHeader mw_diameterHeaderAns_CmdFlags(Command_Code p_cmdcode, template (present) UInt32 p_applid, template (present) Command_Flags p_commandFlags) modifies mw_diameterHeaderAns_dummy := { cmdflags := p_commandFlags } /** * @desc Received generic command flag template */ Loading @@ -53,6 +58,14 @@ module DiameterRfRo_Templates { t_bit := '1'B // T message } // End of template mw_cmdTFlagsAns /** * @desc Received generic command flag template */ template (present) Command_Flags mw_cmd_0TFlagsAns modifies mw_cmdFlagsAns := { t_bit := '0'B // !T message } // End of template mw_cmdTFlagsAns template AVP_Header mw_aVP_HeaderVid_Vbit1Mbit0 ( AVP_Code p_avpCode, template (present) AVP_Vendor_ID p_avpVid ) := { aVP_Code := p_avpCode, aVP_flags := mw_avpFlags_VMbits('1'B, '0'B), Loading Loading @@ -303,10 +316,35 @@ module DiameterRfRo_Templates { service_Information_AVP := p_service_Information } // End of template md_acrBodyAvps /** * @desc Send template for ACR message body */ template (omit) ACR_Body_AVP md_acrBodyAvps_TypeOfCharging_Session( in template (value) Origin_Host_AVP p_originHost, in template (value) Origin_Realm_AVP p_originRealm, in template (value) Accounting_Record_Type_AVP p_accounting_Record_Type, in template (value) Accounting_Record_Number_AVP p_accounting_Record_Number, in template (omit) Event_Timestamp_AVP p_event_Timestamp := omit, in template (omit) Service_Information_AVP p_service_Information := omit ) modifies m_rf_ACR_Body_dummy := { origin_Host := p_originHost, origin_Realm := p_originRealm, accounting_Record_Type := p_accounting_Record_Type, accounting_Record_Number := p_accounting_Record_Number, event_Timestamp := p_event_Timestamp, service_Information_AVP := p_service_Information } // End of template md_acrBodyAvps_TypeOfCharging_Session } // End of group Rf_request_message_templates_send group Rf_answer_message_templates_receive { template ACA_MSG mw_ACA_MessageFlags modifies mw_ACA_dummy := { header := mw_diameterHeaderAns_CmdFlags(ACA_E, ?, mw_cmd_0TFlagsAns), session_Id := ?, aCA_Body := mw_ACA_Body_dummy } /** * @desc Main receive message for CDF_Rf port * @param p_aCA_MSG AC-Answer message Loading Loading @@ -656,6 +694,11 @@ module DiameterRfRo_Templates { address_AVP := p_address_AVP } // End of template m_cg_Address_AVP template (value) Event_Timestamp_AVP m_event_timestamp (UInt32 p_data_AVP) := { aVP_Header := m_aVP_HeaderVid_Mbit1(c_event_Timestamp_AVP_Code, 4, omit), aVP_Data := p_data_AVP } // End of template m_cg_Address_AVP /** * @desc The GGSN-Address send template * @param p_address_AVP Holds the IP-address of the P-GW that generated the GPRS/EPC Charging ID Loading
DiameterRfRo/ttcn/DiameterRfRo_TestCases.ttcn +132 −8 File changed.Preview size limit exceeded, changes collapsed. Show changes