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_send_hopid:=hex2int('00000100'H);
vc_send_endid:=hex2int('01000000'H);
} // End of function f_DiameterS9_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,
124
125
126
127
128
129
130
131
132
133
134
135
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
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),
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
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