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()
//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));
pintar
committed
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_DiameterRf_init2()
//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_IPADDR2;
vc_ETS_port := PX_DIAMETER_RF_ETS_PORT2;
vc_SUT_address := PX_DIAMETER_RF_SUT_IPADDR;
vc_SUT_port := PX_DIAMETER_RF_SUT_PORT;
vc_originHost := m_originHost(PX_OriginHost_2nd);
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_2nd);
vc_destinationRealm_IUT := m_destinationRealm(PX_OriginRealm);
vc_hostIPAddress := valueof(f_IPV4or6_String2Address (PX_DIAMETER_RF_ETS_IPADDR2));
pintar
committed
vc_accountingRecordNumber := mw_accounting_Record_Number(3);
vc_send_hopid:=hex2int('00000100'H);
vc_send_endid:=hex2int('01000000'H);
} // End of function f_DiameterRf_init2
/*
* @desc This is a test step that init global variables
* @param
*/
function f_DiameterRo_init()
//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_destinationHost_IUT := m_destinationHost(PX_OriginHost);
vc_destinationRealm_IUT := m_destinationRealm(PX_OriginRealm);
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
/*
* @desc This is a test step that init global variables
* @param
*/
function f_DiameterRo_init2()
//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_IPADDR2;
vc_ETS_port := PX_DIAMETER_RO_ETS_PORT2;
vc_SUT_address := PX_DIAMETER_RO_SUT_IPADDR;
vc_SUT_port := PX_DIAMETER_RO_SUT_PORT;
vc_sessionId := m_sessionId(PX_SessionID);
vc_originHost := m_originHost(PX_OriginHost_2nd);
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_2nd);
vc_destinationRealm_IUT := m_destinationRealm(PX_OriginRealm);
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
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
} // Endgroup GlobalSteps
group Preambles{
function f_preamble_Rf_CDF() runs on DiameterRfRo
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleClient();
}
f_DiameterRf_init();
f_preambleDiameterBaseClient(c_applIdRfRo);
}
function f_preamble_Rf_CDF2() runs on DiameterRfRo
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleClient();
}
f_DiameterRf_init2();
f_preambleDiameterBaseClient(c_applIdRfRo);
}
function f_preamble_Rf_CTF() runs on DiameterRfRo
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleServer();
}
f_DiameterRf_init();
f_preambleDiameterBaseServer(c_applIdRfRo);
}
function f_preamble_Ro_OCF() runs on DiameterRfRo
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleClient();
}
f_DiameterRo_init();
f_preambleDiameterBaseClient(c_applIdRfRo);
}
function f_preamble_Ro_OCF2() runs on DiameterRfRo
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleClient();
}
f_DiameterRo_init2();
f_preambleDiameterBaseClient(c_applIdRfRo);
}
function f_preamble_Ro_CTF() runs on DiameterRfRo
{
if(PX_DIAM_LLP_ENABLED)
{
f_preambleServer();
}
f_DiameterRo_init();
f_preambleDiameterBaseServer(c_applIdRfRo);
}
} // End of group Preambles
group Postambles {
function f_postamble_Rf_CDF() runs on DiameterRfRo
{
f_postambleDiameterBase();
if(PX_DIAM_LLP_ENABLED)
{
f_postambleDisconnect();
}
// Deactivate defaults
deactivate;
}
function f_postamble_Rf_CDF2() runs on DiameterRfRo
{
f_postamble_Rf_CDF();
}
function f_postamble_Rf_CTF() runs on DiameterRfRo
{
f_postambleDiameterBase();
if(PX_DIAM_LLP_ENABLED)
{
f_postambleDisconnect();
}
// Deactivate defaults
deactivate;
}
function f_postamble_Ro_OCF() runs on DiameterRfRo
{
f_postambleDiameterBase();
if(PX_DIAM_LLP_ENABLED)
{
f_postambleDisconnect();
}
// Deactivate defaults
deactivate;
}
function f_postamble_Ro_OCF2() runs on DiameterRfRo
{
f_postambleDiameterBase();
if(PX_DIAM_LLP_ENABLED)
{
f_postambleDisconnect();
}
// Deactivate defaults
deactivate;
}
function f_postamble_Ro_CTF() runs on DiameterRfRo
{
f_postambleDiameterBase();
if(PX_DIAM_LLP_ENABLED)
{
f_postambleDisconnect();
}
// Deactivate defaults
deactivate;
}
} // End of group Postambles
group AVPOperations {
} // End of group AVPOperations
group CheckFunctions {
} // End of group CheckFunctions
group SendMessage {
//SEND/AWAIT messages defined in LibDiameter_Steps module - where endid and hopid parameters are automaticali handled
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_cC_Request_Number 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_cC_Request_Number, in UInt32 p_ts) runs on DiameterRfRo
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_cC_Request_Number // indicating the value
)
)
);
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
pintar
committed
mw_accounting_Record_Type( // containing an Accounting-Record-Type AVP
pintar
committed
mw_accounting_Record_Number(// containing an Acct-Application-Id AVP
p_cC_Request_Number // indicating the value
group RO {
group TypeOfCharging {
/**
* @desc Function used to send CC-Request and receive CC-Answer
* @param p_cC_Request_Ty_Type Request type - eg.: EVENT_REQUEST
* @param p_cC_Request_Number acc Request number
* @param p_service_Context_Id Service context ID
* @verdict depend on receive message and its matching with template
*/
function f_sendCCR_awaitCCA_(
in CC_Request_Ty_Type p_cC_Request_Ty_Type,
in UInt32 p_cC_Request_Number,
in template (omit) Service_Context_Id_AVP p_service_Context_Id := omit,
in template (omit) Requested_Action_AVP p_requested_Action := omit,
in template (omit) Multiple_Services_Credit_Control_AVP p_multiple_Services_Credit_Control := omit
f_send_CCR(
md_cCR(
vc_sessionId,
md_ccrBodyAvps_TypeOfCharging(
vc_originHost,
vc_originRealm,
vc_destinationRealm,
pintar
committed
md_cC_Request_Type(
pintar
committed
md_cC_Request_Number(
p_service_Context_Id,
p_requested_Action,
p_multiple_Services_Credit_Control
)
)
);
f_awaiting_CCA(
mdw_cCA(
vc_sessionId,
mdw_ccaBodyAvps(
mw_resultCode(
DIAMETER_SUCCESS_E
),
vc_originHost,
vc_originRealm,
pintar
committed
mw_auth_Application_Id(4),
mw_cC_Request_Type(
pintar
committed
mw_cC_Request_Number(
p_cC_Request_Number
)
)
)
);
}
/**
* @desc Function used to await CC-Request and send CC-Answer
* @param p_cC_Request_Ty_Type Request type - eg.: EVENT_REQUEST
* @param p_cC_Request_Number acc Request number
* @param p_service_Context_Id Service context ID
* @verdict depend on receive message and its matching with template
*/
function f_awaitCCR_sendCCA_(
in CC_Request_Ty_Type p_cC_Request_Ty_Type,
in UInt32 p_cC_Request_Number,
in template (omit) Requested_Action_AVP p_requested_Action := omit,
in template (omit) CCR_Body_AVP.multiple_Services_Credit_Control p_multiple_Services_Credit_Control := omit
f_awaiting_CCR(
mdw_cCR(
?,
mdw_ccrBodyAvps(
vc_originHost, // containing an Origin-Host AVP
vc_originRealm, // containing an Origin-Realm AVP
vc_destinationRealm, // containing a Destination-Realm AVP
pintar
committed
mw_cC_Request_Type(p_cC_Request_Ty_Type),// containing a CC-Request-Type AVP
mw_cC_Request_Number(p_cC_Request_Number),// containing a CC-Request-Number AVP
?, // containing a Service-Context-Id AVP
p_requested_Action, // not containing a Requested Action AVP due to Request-Type is not EVENT-REQUEST
p_multiple_Services_Credit_Control // containing a Multiple-Services-Credit-Control AVP
)
)
);
f_send_CCA(
md_cCA(
vc_sessionId, // containing a Session-ID AVP
md_ccaBodyAvps_ReqNumber(
m_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
m_cC_Request_Type(p_cC_Request_Ty_Type),
m_cC_Request_Number(p_cC_Request_Number)// containing a CC-Request-Number AVP
))
);
}
} // End of group TypeOfCharging
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
group ReAuthorization {
/**
* @desc Function used to await RA-Request and send RA-Answer
* @param p_ex
* @verdict depend on receive message and its matching with template
*/
function f_awaitRAR_sendRAA_(
) runs on DiameterRfRo {
f_awaiting_RAR(
mdw_rAR(
?,
mdw_rarBodyAvps(
vc_originHost, // containing an Origin-Host AVP
vc_originRealm, // containing an Origin-Realm AVP
vc_destinationRealm, // containing a Destination-Realm AVP
vc_destinationHost, // containing a CC-Request-Type AVP
mw_auth_Application_Id( // containing an Auth-Application-Id AVP
4 // indicating the value 4
),
mw_re_Auth_Request( // containing a Re-Auth-Request-Type AVP
AUTHORIZE_ONLY_E // indicating AUTHORIZE_ONLY
)
)
)
);
f_send_RAA(
md_rAA(
vc_sessionId, // containing a Session-ID AVP
md_raaBodyAvps(
m_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
))
);
}//end function f_awaitRAR_sendRAA_(
}//end group ReAuthorization
} // End of group SendMessage
} // End of module DiameterGx_Steps