Newer
Older
* @desc This module provides ATS specific steps used by the test cases
* for IMS-DIAMETER RfRo tests.
*/
module DiameterRfRo_Steps {
//LibCommon
import from LibCommon_DataStrings {type Bit1, Bit4, Bit5, Bit8;}//all;
import from LibCommon_BasicTypesAndValues {type UInt8;type UInt32;};//LibCommon
import from LibCommon_Sync all ;
import from LibCommon_VerdictControl all ;
//LibDiameter
import from LibDiameter_Types_Base_AVPs all;
import from LibDiameter_TypesAndValues all;
import from LibDiameter_Templates all;
import from LibDiameter_Steps all;
import from LibDiameter_PIXITS all;
import from LibDiameter_Interface all;
import from DiameterRfRo_PIXITS all;
import from DiameterRfRo_Templates all;
import from DiameterRfRo_SIP_Templates all;
import from DiameterRfRo_TestConfiguration all;
import from DiameterRfRo_TestSystem all;
group GlobalSteps {
/*
* @desc This is a test step that init global variables
* @param
*/
function f_DiameterRf_init()
runs on DiameterComponent {
//Defaults
vc_default_diameter := activate (a_diameter_default());
//Base LibDiameter init function if there will be any base initialisation
f_Diameter_Init_Component();
vc_ETS_address := PX_DIAMETER_RF_ETS_IPADDR;
vc_ETS_port := PX_DIAMETER_RF_ETS_PORT;
vc_SUT_address := PX_DIAMETER_RF_SUT_IPADDR;
vc_SUT_port := PX_DIAMETER_RF_SUT_PORT;
vc_originHost := m_originHost(PX_OriginHost);
vc_originRealm := m_originRealm(PX_OriginRealm); // realm of the originator (TS)
vc_originHost_IUT := m_originHost(PX_DestinationHost);
vc_originRealm_IUT := m_originRealm(PX_DestinationRealm); // realm of the originator (TS)
vc_destinationHost := m_destinationHost(PX_DestinationHost);
vc_destinationRealm := m_destinationRealm(PX_DestinationRealm);
vc_destinationHost_IUT := m_destinationHost(PX_OriginHost);
vc_destinationRealm_IUT := m_destinationRealm(PX_OriginRealm);
vc_hostIPAddress := valueof(f_IPV4or6_String2Address (PX_DIAMETER_RF_ETS_IPADDR));
vc_accountingRecordNumber := mw_accounting_Record_Number(3);
vc_send_hopid:=hex2int('00000100'H);
vc_send_endid:=hex2int('01000000'H);
} // End of function f_DiameterRf_init
/*
* @desc This is a test step that init global variables
* @param
*/
function f_DiameterRo_init()
runs on DiameterComponent {
//Defaults
vc_default_diameter := activate (a_diameter_default());
//Base LibDiameter init function if there will be any base initialisation
f_Diameter_Init_Component();
vc_ETS_address := PX_DIAMETER_RO_ETS_IPADDR;
vc_ETS_port := PX_DIAMETER_RO_ETS_PORT;
vc_SUT_address := PX_DIAMETER_RO_SUT_IPADDR;
vc_SUT_port := PX_DIAMETER_RO_SUT_PORT;
vc_originHost := m_originHost(PX_OriginHost);
vc_originRealm := m_originRealm(PX_OriginRealm); // realm of the originator (TS)
vc_originHost_IUT := m_originHost(PX_DestinationHost);
vc_originRealm_IUT := m_originRealm(PX_DestinationRealm); // realm of the originator (TS)
vc_destinationHost := m_destinationHost(PX_DestinationHost);
vc_destinationRealm := m_destinationRealm(PX_DestinationRealm);
vc_hostIPAddress := valueof(f_IPV4or6_String2Address (PX_DIAMETER_RO_ETS_IPADDR));
vc_send_hopid:=hex2int('00000100'H);
vc_send_endid:=hex2int('01000000'H);
} // End of function f_DiameterRo_init
//TODO check for 2nd Ro or Rf configuration!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
group RF{
group TypeOfCharging{
/**
* @desc Function used to send AC-Request and receive AC-Answer
* @param p_art accounting record type - EVENT_E,START_E,INTERIM_E,STOP_E
* p_acc_rec_nr acc record number
* p_ts timestamp of event
* @verdict depend on receive message and its matching with template
*/
function f_sendACR_awaitACA_(in Acc_Record_Type p_art, in UInt32 p_acc_rec_nr, in UInt32 p_ts) runs on DiameterComponent
{
f_send_ACR(
md_aCR(
vc_sessionId,
vc_originHost, // containing an Origin-Host AVP
vc_originRealm, // containing an Origin-Realm AVP
m_accounting_Record_Type( // containing an Accounting-Record-Type AVP
p_art
),
m_accounting_Record_Number( // containing an Accounting-Record-Number AVP
p_acc_rec_nr // indicating the value
),
m_event_timestamp(p_ts),
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
)
)
);
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
p_art
),
mw_accounting_Record_Number( // containing an Acct-Application-Id AVP
p_acc_rec_nr // indicating the value
)
))
);
}
}//End group TypeOfCharging
}//End group RF
function f_preamble_Rf_CDF() runs on DiameterComponent
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleClient();
}
f_DiameterRf_init();
function f_preamble_Rf_CTF() runs on DiameterComponent
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleServer();
}
f_DiameterRf_init();
function f_preamble_Ro_OCF() runs on DiameterComponent
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleClient();
}
f_DiameterRo_init();
function f_preamble_Ro_CTF() runs on DiameterComponent
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleServer();
}
f_DiameterRo_init();
f_preambleDiameterBaseServer(c_applIdRfRo);
} // End of group Preambles
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
if(PX_DIAM_LLP_ENABLED)
{
f_postambleDisconnect();
}
if(PX_DIAM_LLP_ENABLED)
{
f_postambleDisconnect();
}
if(PX_DIAM_LLP_ENABLED)
{
f_postambleDisconnect();
}
} // End of group Postambles
} // End of group AVPOperations
} // End of group CheckFunctions
group SendMessage {
/**
* @desc Function used to trigger a AC-Request message
* @param p_acrMSG AC-Request message to send
* @verdict Unchanged
*/
function f_triggerAcRequest(in template (value) ACR_MSG p_acrMSG)
runs on DiameterComponent {
DIAMP.send(
DIAMETER_MSG : { aCR_MSG := p_acrMSG }
);
} // End of function f_triggerAcRequest
} // End of group SendMessage
} // End of module DiameterGx_Steps