2017-01-13 10:16:04 +00:00
|
|
|
/**
|
2017-01-16 09:27:10 +00:00
|
|
|
* @author ETSI / STF519
|
2017-01-24 14:14:30 +00:00
|
|
|
* @version $URL$
|
|
|
|
* $Id$
|
2017-01-16 09:27:10 +00:00
|
|
|
* @desc This module provides RfRo test functions used by the test cases.
|
|
|
|
* @copyright ETSI Copyright Notification
|
|
|
|
* No part may be reproduced except as authorized by written permission.
|
|
|
|
* The copyright and the foregoing restriction extend to reproduction in all media.
|
|
|
|
* All rights reserved.
|
|
|
|
* @see ETSI TS 136 413 / 3GPP TS 36.413 version 13.4.0 Release 13
|
2017-01-13 10:16:04 +00:00
|
|
|
*/
|
|
|
|
module S1AP_TCFunctions {
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-01-13 10:16:04 +00:00
|
|
|
// LibCommon
|
|
|
|
import from LibCommon_Sync all;
|
2017-03-17 13:09:21 +00:00
|
|
|
import from LibCommon_VerdictControl all;
|
2017-05-05 12:49:24 +00:00
|
|
|
import from LibCommon_Time {function f_sleepIgnoreDef};
|
2017-01-13 10:16:04 +00:00
|
|
|
|
2017-03-20 13:35:02 +00:00
|
|
|
// LibS1AP
|
2017-03-21 14:47:31 +00:00
|
|
|
import from S1AP_IEs language "ASN.1:1997" all;
|
2017-03-20 13:35:02 +00:00
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
import from LibS1AP_Pixits all;
|
2017-01-13 10:16:04 +00:00
|
|
|
import from LibS1AP_Templates all;
|
|
|
|
import from LibS1AP_Interface all;
|
|
|
|
import from LibS1AP_Steps all;
|
|
|
|
|
2017-03-24 12:29:50 +00:00
|
|
|
// S1AP_Ats
|
2017-01-13 10:16:04 +00:00
|
|
|
import from S1AP_Steps all;
|
2017-01-16 09:27:10 +00:00
|
|
|
import from S1AP_Pixits all;
|
2017-01-13 10:16:04 +00:00
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
group eNB_Role {
|
2017-01-13 10:16:04 +00:00
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
/**
|
|
|
|
* @desc E-RAB management group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.2 E-RAB management group
|
|
|
|
*/
|
2017-01-16 09:27:10 +00:00
|
|
|
group ERAB_management_group {
|
2017-01-24 14:14:30 +00:00
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_01
|
2017-01-16 09:27:10 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_RAB_01() runs on S1APComponent {
|
2017-01-16 09:27:10 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-23 07:34:01 +00:00
|
|
|
|
2017-01-20 19:48:49 +00:00
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-01-20 19:48:49 +00:00
|
|
|
{m_E_RABToBeSetupItemBearerSUReq (
|
|
|
|
-,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5)
|
|
|
|
)}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-01-16 09:27:10 +00:00
|
|
|
{
|
2017-01-20 19:48:49 +00:00
|
|
|
mw_E_RABSetupItemBearerSURes
|
2017-01-16 09:27:10 +00:00
|
|
|
}
|
2017-01-20 19:48:49 +00:00
|
|
|
));
|
2017-01-16 09:27:10 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_01
|
2017-01-13 10:16:04 +00:00
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_02
|
2017-01-24 14:14:30 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_RAB_02() runs on S1APComponent {
|
2017-01-16 09:27:10 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
// Test body
|
2017-01-20 19:48:49 +00:00
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-01-16 09:27:10 +00:00
|
|
|
{
|
2017-01-20 19:48:49 +00:00
|
|
|
m_E_RABToBeSetupItemBearerSUReq(1),
|
|
|
|
m_E_RABToBeSetupItemBearerSUReq(
|
|
|
|
2,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(255)
|
2017-01-16 09:27:10 +00:00
|
|
|
)
|
|
|
|
}
|
2017-01-20 19:48:49 +00:00
|
|
|
));
|
2017-03-23 07:34:01 +00:00
|
|
|
|
2017-01-20 19:48:49 +00:00
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-01-20 19:48:49 +00:00
|
|
|
{
|
|
|
|
mw_E_RABSetupItemBearerSURes(1)
|
|
|
|
},
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
2,
|
2017-01-16 09:27:10 +00:00
|
|
|
{
|
2017-01-20 19:48:49 +00:00
|
|
|
radioNetwork :=not_supported_QCI_value
|
2017-01-16 09:27:10 +00:00
|
|
|
}
|
2017-01-20 19:48:49 +00:00
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_02
|
2017-01-16 09:27:10 +00:00
|
|
|
|
2017-03-20 17:04:08 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_03
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_03() runs on S1APComponent {
|
|
|
|
// Local variables
|
2017-03-21 12:19:16 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-21 12:19:16 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
m_E_RABToBeSetupItemBearerSUReq
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-, //omit
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
0,
|
|
|
|
{
|
|
|
|
radioNetwork :=
|
|
|
|
(s1_intra_system_handover_triggered,
|
|
|
|
s1_inter_system_handover_triggered,
|
|
|
|
x2_handover_triggered)
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_Handover_Required(mw_HandoverRequiredIEs(
|
2017-03-21 14:47:31 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
ltetoutran,
|
|
|
|
?,
|
|
|
|
?,
|
|
|
|
?
|
|
|
|
));
|
2017-03-21 12:19:16 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-21 12:19:16 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-21 12:19:16 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_03
|
2017-03-21 13:38:53 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_04
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_04() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const QCI c_qci_id := 1; // TODO
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeSetupItemBearerSUReq (
|
|
|
|
-,
|
|
|
|
m_e_RABlevelQoSParameters(c_qci_id)
|
|
|
|
)}
|
|
|
|
));
|
|
|
|
|
|
|
|
|
2017-03-21 13:38:53 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-, //omit
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
0,
|
|
|
|
{
|
|
|
|
radioNetwork := not_supported_QCI_value
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
2017-03-21 13:38:53 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_04
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_05
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_05() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const QCI c_qci_id := 1; // TODO
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
m_E_RABToBeSetupItemBearerSUReq(1),
|
|
|
|
m_E_RABToBeSetupItemBearerSUReq(1)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
2017-03-21 13:45:57 +00:00
|
|
|
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-, //omit
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
1,
|
|
|
|
{
|
|
|
|
radioNetwork := multiple_E_RAB_ID_instances
|
|
|
|
}
|
|
|
|
),
|
|
|
|
mw_E_RABItem(
|
|
|
|
1,
|
|
|
|
{
|
|
|
|
radioNetwork := multiple_E_RAB_ID_instances
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
2017-03-21 13:45:57 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-21 13:45:57 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-21 13:45:57 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_05
|
2017-03-21 14:52:45 +00:00
|
|
|
|
2017-03-22 15:38:56 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_06
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_06() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-21 14:52:45 +00:00
|
|
|
|
2017-03-22 15:38:56 +00:00
|
|
|
// Test body
|
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeSetupItemBearerSUReq (
|
|
|
|
1,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5)
|
|
|
|
)}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABSetupItemBearerSURes
|
|
|
|
}
|
|
|
|
));
|
2017-03-21 14:52:45 +00:00
|
|
|
|
2017-03-22 15:38:56 +00:00
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
m_E_RABToBeSetupItemBearerSUReq(1)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-, //omit
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
1,
|
|
|
|
{
|
|
|
|
radioNetwork := multiple_E_RAB_ID_instances
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-21 14:52:45 +00:00
|
|
|
|
2017-03-22 15:38:56 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-21 14:52:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_06
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_07
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_07() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const TransportLayerAddress c_transportLayerAddress := '0'B;
|
|
|
|
const GTP_TEID c_gTP_TEID := '00000000'O;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 08:50:11 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeSetupItemBearerSUReq (
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(1),
|
|
|
|
c_transportLayerAddress,
|
|
|
|
c_gTP_TEID,
|
|
|
|
c_nAS_PDU,
|
|
|
|
{m_correlationID_IE('01020304'O), m_SIPTO_correlationID_IE('01020304'O)} // iE_Extensions
|
|
|
|
)}
|
|
|
|
));
|
2017-05-05 12:49:24 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs_FailedToSetupList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-, //omit
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
1,
|
|
|
|
?
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 08:50:11 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_07
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_08
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_08() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeModifiedItemBearerSUReq(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters(5),
|
|
|
|
c_nAS_PDU
|
|
|
|
)}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABModifyItemBearerModRes(c_E_RAB_ID_A)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_08
|
2017-03-21 14:52:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_09
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_09 () runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeModifiedItemBearerSUReq(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters(255),
|
|
|
|
c_nAS_PDU
|
|
|
|
)}
|
|
|
|
));
|
2017-03-22 13:47:56 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs_FailedToModifyList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
omit,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
{
|
|
|
|
radioNetwork := not_supported_QCI_value
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_09
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_10
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_10 () runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeModifiedItemBearerSUReq(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters(255),
|
|
|
|
c_nAS_PDU
|
|
|
|
)}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs_FailedToModifyList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
omit,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
{
|
|
|
|
radioNetwork := (s1_intra_system_handover_triggered,
|
|
|
|
s1_inter_system_handover_triggered,
|
|
|
|
x2_handover_triggered)
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
f_recv_Handover_Required(mw_HandoverRequiredIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
ltetoutran,
|
|
|
|
?,
|
|
|
|
?,
|
|
|
|
?
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_10
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_11
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_11 () runs on S1APComponent {
|
|
|
|
// Local variables
|
2017-03-24 09:06:50 +00:00
|
|
|
const QCI c_qci_id := 1; // TODO
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeModifiedItemBearerSUReq(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters(c_qci_id),
|
|
|
|
c_nAS_PDU
|
|
|
|
)}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs_FailedToModifyList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
omit,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
?
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_11
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_12
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_12 () runs on S1APComponent {
|
|
|
|
// Local variables
|
2017-03-24 09:06:50 +00:00
|
|
|
const QCI c_qci_id := 0;
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
2017-03-22 15:43:52 +00:00
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
m_E_RABToBeModifiedItemBearerSUReq(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters(c_qci_id),
|
|
|
|
c_nAS_PDU
|
|
|
|
),m_E_RABToBeModifiedItemBearerSUReq(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters(c_qci_id),
|
|
|
|
c_nAS_PDU
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs_FailedToModifyList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
omit,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
{
|
|
|
|
radioNetwork := multiple_E_RAB_ID_instances
|
|
|
|
}
|
|
|
|
),
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
{
|
|
|
|
radioNetwork := multiple_E_RAB_ID_instances
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
2017-03-22 15:43:52 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_12
|
2017-03-22 11:21:45 +00:00
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_13
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_13 () runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const QCI c_qci_id := 99; // TODO unknown QCI Id
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
m_E_RABToBeModifiedItemBearerSUReq(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters(c_qci_id),
|
|
|
|
c_nAS_PDU
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABModifiedResponse(mw_E_RABModifiedResIEs_FailedToModifyList(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
omit,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
{
|
|
|
|
radioNetwork := unknown_E_RAB_ID
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_13
|
|
|
|
|
2017-04-06 06:53:40 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_14
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_14 () runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
2017-05-03 14:42:49 +00:00
|
|
|
// f_send_E_RABReleaseRequest(m_E_RABReleaseReqIEs(
|
|
|
|
// vc_MME_UE_ID,
|
|
|
|
// vc_eNB_UE_ID,
|
|
|
|
// {
|
|
|
|
// m_E_RABItem(
|
|
|
|
// c_E_RAB_ID_A
|
|
|
|
// )
|
|
|
|
// }
|
|
|
|
// ));
|
2017-04-06 06:53:40 +00:00
|
|
|
|
|
|
|
f_recv_E_RABReleaseResponse(mw_E_RABReleaseResIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_14
|
|
|
|
|
2017-04-21 12:42:37 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_15
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_15 () runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-05-03 14:42:49 +00:00
|
|
|
|
|
|
|
// S1-MME Interface
|
|
|
|
|
|
|
|
// f_send_E_RABReleaseRequest(m_E_RABReleaseReqIEs(
|
|
|
|
// vc_MME_UE_ID,
|
|
|
|
// vc_eNB_UE_ID,
|
|
|
|
// {
|
|
|
|
// m_E_RABItem(
|
|
|
|
// c_E_RAB_ID_A
|
|
|
|
// )
|
|
|
|
// }
|
|
|
|
// )
|
|
|
|
// );
|
2017-04-21 12:42:37 +00:00
|
|
|
|
|
|
|
f_recv_E_RABReleaseResponse(mw_E_RABReleaseResIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A
|
|
|
|
)
|
2017-05-03 14:42:49 +00:00
|
|
|
}
|
|
|
|
// (
|
|
|
|
// mw_TAI(
|
|
|
|
// PX_PLMN_IDENTITY,
|
|
|
|
// PX_TAC
|
|
|
|
// ),
|
|
|
|
// mw_eUTRAN_CGI(
|
|
|
|
// PX_PLMN_IDENTITY,
|
|
|
|
// PX_CELL_ID
|
|
|
|
// )
|
|
|
|
// )
|
2017-04-21 12:42:37 +00:00
|
|
|
));
|
2017-04-24 05:57:20 +00:00
|
|
|
|
|
|
|
|
2017-04-21 12:42:37 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_15
|
2017-04-24 05:57:20 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_16
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_RAB_16 () runs on S1APComponent {
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
2017-05-03 14:42:49 +00:00
|
|
|
// f_send_E_RABReleaseRequest(m_E_RABReleaseReqIEs(
|
|
|
|
// vc_MME_UE_ID,
|
|
|
|
// vc_eNB_UE_ID,
|
|
|
|
// {
|
|
|
|
// m_E_RABItem(
|
|
|
|
// c_E_RAB_ID_A
|
|
|
|
// )
|
|
|
|
// }
|
|
|
|
// )
|
|
|
|
// );
|
2017-04-24 05:57:20 +00:00
|
|
|
|
|
|
|
f_recv_E_RABReleaseResponse(mw_E_RABReleaseResIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeSetupItemBearerSUReq (
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5)
|
|
|
|
)}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_E_RABSetupResponse(mw_E_RABSetupResIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABSetupItemBearerSURes(c_E_RAB_ID_A)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_RAB_16
|
2017-01-16 09:27:10 +00:00
|
|
|
} // End of group ERAB_management_group
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Context management group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.3 Context management group
|
|
|
|
*/
|
|
|
|
group Context_management_group {
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-20 14:42:01 +00:00
|
|
|
/**
|
2017-03-20 16:39:11 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_01
|
2017-03-20 14:42:01 +00:00
|
|
|
*/
|
2017-03-20 16:39:11 +00:00
|
|
|
function f_TC_S1AP_eNB_CMP_01() runs on S1APComponent {
|
2017-03-20 14:42:01 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-21 14:47:31 +00:00
|
|
|
f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
|
2017-03-20 14:42:01 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
2017-03-21 14:47:31 +00:00
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-04-24 12:19:44 +00:00
|
|
|
{m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-20 14:42:01 +00:00
|
|
|
-,
|
|
|
|
m_e_RABlevelQoSParameters
|
2017-03-20 16:39:11 +00:00
|
|
|
(5),
|
2017-03-21 11:15:55 +00:00
|
|
|
-
|
2017-03-20 16:15:34 +00:00
|
|
|
)},
|
2017-03-21 14:47:31 +00:00
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
|
|
|
|
m_securityKey
|
2017-03-20 14:42:01 +00:00
|
|
|
));
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs(
|
2017-03-20 14:42:01 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABSetupItemBearerSURes
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-20 16:39:11 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_01
|
2017-03-20 14:42:01 +00:00
|
|
|
|
2017-03-21 11:15:55 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
2017-03-21 12:15:11 +00:00
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const E_RAB_ID c_E_RAB_ID_B := 1;
|
2017-03-21 14:47:31 +00:00
|
|
|
const TransportLayerAddress c_transportLayerAddress := '0'B;
|
|
|
|
const GTP_TEID c_gTP_TEID := '00000000'O;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
2017-03-21 11:15:55 +00:00
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-21 14:47:31 +00:00
|
|
|
f_send_InitialContext_SetupRequest(
|
|
|
|
m_InitialContextSetupReqIEs(
|
2017-03-22 15:38:56 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-03-21 14:47:31 +00:00
|
|
|
{
|
2017-04-24 12:19:44 +00:00
|
|
|
m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-22 15:38:56 +00:00
|
|
|
c_E_RAB_ID_A,
|
2017-03-21 14:47:31 +00:00
|
|
|
m_e_RABlevelQoSParameters(5),
|
2017-03-22 15:38:56 +00:00
|
|
|
c_transportLayerAddress,
|
2017-04-24 12:19:44 +00:00
|
|
|
c_gTP_TEID
|
2017-03-22 15:38:56 +00:00
|
|
|
),
|
2017-04-24 12:19:44 +00:00
|
|
|
m_E_RABToBeSetupItemCtxtSUReq(
|
2017-03-22 15:38:56 +00:00
|
|
|
c_E_RAB_ID_B,
|
2017-03-21 14:47:31 +00:00
|
|
|
m_e_RABlevelQoSParameters(255),
|
2017-03-22 15:38:56 +00:00
|
|
|
c_transportLayerAddress,
|
2017-04-24 12:19:44 +00:00
|
|
|
c_gTP_TEID
|
2017-03-21 14:47:31 +00:00
|
|
|
)
|
|
|
|
},
|
2017-03-22 15:38:56 +00:00
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
|
|
|
|
m_securityKey
|
2017-03-21 11:15:55 +00:00
|
|
|
));
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_InitialContext_SetupResponse(
|
|
|
|
mw_InitialContextSetupResIEs(
|
2017-03-22 15:38:56 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABSetupItemBearerSURes(c_E_RAB_ID_A)
|
|
|
|
},
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_B,
|
|
|
|
{
|
|
|
|
radioNetwork :=not_supported_QCI_value
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
2017-03-21 11:15:55 +00:00
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_02
|
|
|
|
|
2017-03-21 12:47:12 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_03
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_03() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
2017-03-21 14:47:31 +00:00
|
|
|
const TransportLayerAddress c_transportLayerAddress := '0'B;
|
|
|
|
const GTP_TEID c_gTP_TEID := '00000000'O;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
2017-03-21 12:47:12 +00:00
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-21 14:47:31 +00:00
|
|
|
f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
|
2017-03-21 12:47:12 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
2017-03-21 14:47:31 +00:00
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-04-24 12:19:44 +00:00
|
|
|
{m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-21 12:47:12 +00:00
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(1),
|
2017-03-21 14:47:31 +00:00
|
|
|
c_transportLayerAddress,
|
2017-04-24 12:19:44 +00:00
|
|
|
c_gTP_TEID
|
2017-03-21 12:47:12 +00:00
|
|
|
)},
|
2017-03-21 14:47:31 +00:00
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
|
|
|
|
m_securityKey
|
2017-03-21 12:47:12 +00:00
|
|
|
));
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs(
|
2017-03-21 12:47:12 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,
|
2017-03-21 14:47:31 +00:00
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
?
|
|
|
|
)
|
|
|
|
}
|
2017-03-21 12:47:12 +00:00
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_03
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_04
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_04() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const TransportLayerAddress c_transportLayerAddress := '0'B;
|
|
|
|
const GTP_TEID c_gTP_TEID := '00000000'O;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-04-24 12:19:44 +00:00
|
|
|
{m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-21 14:47:31 +00:00
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5),
|
|
|
|
c_transportLayerAddress,
|
2017-04-24 12:19:44 +00:00
|
|
|
c_gTP_TEID
|
2017-03-21 14:47:31 +00:00
|
|
|
),
|
2017-04-24 12:19:44 +00:00
|
|
|
m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-21 14:47:31 +00:00
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5),
|
|
|
|
c_transportLayerAddress,
|
2017-04-24 12:19:44 +00:00
|
|
|
c_gTP_TEID
|
2017-03-21 14:47:31 +00:00
|
|
|
)},
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
|
|
|
|
m_securityKey
|
|
|
|
));
|
2017-03-21 12:47:12 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,
|
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
{
|
|
|
|
radioNetwork := multiple_E_RAB_ID_instances
|
|
|
|
}
|
|
|
|
),
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
{
|
|
|
|
radioNetwork := multiple_E_RAB_ID_instances
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_04
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_05
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_05() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const TransportLayerAddress c_transportLayerAddress := '0'B;
|
|
|
|
const GTP_TEID c_gTP_TEID := '00000000'O;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
const EncryptionAlgorithms c_notSupportedEncryptionAlgorithms := '0000000000000000'B;
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-04-24 12:19:44 +00:00
|
|
|
{m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-21 14:47:31 +00:00
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5),
|
|
|
|
c_transportLayerAddress,
|
2017-04-24 12:19:44 +00:00
|
|
|
c_gTP_TEID
|
2017-03-21 14:47:31 +00:00
|
|
|
)},
|
|
|
|
m_UESecurityCapabilities(c_notSupportedEncryptionAlgorithms,'0101010101010101'B),
|
|
|
|
m_securityKey
|
|
|
|
));
|
2017-03-21 13:47:03 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_InitialContext_SetupResponse(mw_InitialContextSetupFailureIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_cause_ran(encryption_and_or_integrity_protection_algorithms_not_supported)
|
|
|
|
));
|
2017-03-21 13:47:03 +00:00
|
|
|
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-21 13:47:03 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-21 13:47:03 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_05
|
2017-03-21 13:47:03 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_06
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_06() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const TransportLayerAddress c_transportLayerAddress := '0'B;
|
|
|
|
const GTP_TEID c_gTP_TEID := '00000000'O;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
const IntegrityProtectionAlgorithms c_notSupportedIntegrityProtectionAlgorithms := '0000000000000000'B;
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-04-24 12:19:44 +00:00
|
|
|
{m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-21 14:47:31 +00:00
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5),
|
|
|
|
c_transportLayerAddress,
|
2017-04-24 12:19:44 +00:00
|
|
|
c_gTP_TEID
|
2017-03-21 14:47:31 +00:00
|
|
|
)},
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B, c_notSupportedIntegrityProtectionAlgorithms),
|
|
|
|
m_securityKey
|
|
|
|
));
|
2017-03-21 14:24:45 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_InitialContext_SetupResponse(mw_InitialContextSetupFailureIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_cause_ran(encryption_and_or_integrity_protection_algorithms_not_supported)
|
|
|
|
));
|
2017-03-21 14:24:45 +00:00
|
|
|
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-21 14:24:45 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-21 14:24:45 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_06
|
2017-03-21 14:24:45 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_07
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_07() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const TransportLayerAddress c_transportLayerAddress := '0'B;
|
|
|
|
const GTP_TEID c_gTP_TEID := '00000000'O;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. NOTE: the cell accessed by the UE need to be a hybrid cell!***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-04-24 12:19:44 +00:00
|
|
|
{m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-21 14:47:31 +00:00
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5),
|
|
|
|
c_transportLayerAddress,
|
2017-04-24 12:19:44 +00:00
|
|
|
c_gTP_TEID
|
2017-03-21 14:47:31 +00:00
|
|
|
)},
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B, '0101010101010101'B),
|
|
|
|
m_securityKey
|
|
|
|
));
|
2017-03-21 14:24:45 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
f_recv_InitialContext_SetupResponse(mw_InitialContextSetupFailureIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_cause_nas(csg_subscription_expiry)
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_07
|
2017-03-20 09:42:56 +00:00
|
|
|
|
2017-03-22 07:58:37 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_08
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_08() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
2017-03-22 15:43:52 +00:00
|
|
|
const TransportLayerAddress c_transportLayerAddress := '0'B;
|
|
|
|
const GTP_TEID c_gTP_TEID := '00000000'O;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
2017-03-22 07:58:37 +00:00
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
|
2017-03-22 07:58:37 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
2017-03-22 15:43:52 +00:00
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-03-22 07:58:37 +00:00
|
|
|
{m_E_RABToBeSetupItemBearerSUReq (
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(1),
|
2017-03-22 15:43:52 +00:00
|
|
|
c_transportLayerAddress,
|
|
|
|
c_gTP_TEID,
|
|
|
|
c_nAS_PDU,
|
|
|
|
{m_correlationID_IE('01020304'O), m_SIPTO_correlationID_IE('01020304'O)} // iE_Extensions
|
2017-03-22 07:58:37 +00:00
|
|
|
)},
|
2017-03-22 15:43:52 +00:00
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
|
|
|
|
m_securityKey
|
2017-03-22 07:58:37 +00:00
|
|
|
));
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs(
|
2017-03-22 07:58:37 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,
|
2017-03-22 15:43:52 +00:00
|
|
|
{
|
|
|
|
mw_E_RABItem(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
?
|
|
|
|
)
|
|
|
|
}
|
2017-03-22 07:58:37 +00:00
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_08
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_09
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_09() runs on S1APComponent {
|
|
|
|
// Local variables
|
2017-03-22 08:59:58 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_recv_UE_Context_Release_Request(mw_UeContextReleaseRequestIEs
|
|
|
|
(vc_MME_UE_ID, vc_eNB_UE_ID,
|
|
|
|
?));
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_09
|
2017-03-20 09:42:56 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_10
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_10() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
var template(value) Cause v_cause;
|
|
|
|
select(PX_VA){
|
|
|
|
case(1){v_cause := m_cause_ran(user_inactivity)}
|
|
|
|
case(2){v_cause := m_cause_ran(radio_connection_with_ue_lost)}
|
|
|
|
case(3){v_cause := m_cause_nas(csg_subscription_expiry)}
|
|
|
|
case(4){v_cause := m_cause_ran(cs_fallback_triggered)}
|
|
|
|
case(5){v_cause := m_cause_ran(redirection_towards_1xRTT)}
|
|
|
|
case(6){v_cause := m_cause_ran(interrat_redirection)}
|
|
|
|
case(7){v_cause := m_cause_ran(ue_not_available_for_ps_service)}
|
|
|
|
case else {setverdict(fail, "undefined PIXIT value for variant")}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-22 10:10:54 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_UE_Context_Release_Command(m_UeContextReleaseCommandIEs_MME(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
v_cause
|
|
|
|
));
|
2017-03-22 10:10:54 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_UE_Context_Release_Complete(mw_UeContextReleaseCompleteIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
2017-03-22 10:10:54 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 10:10:54 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 10:10:54 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_10
|
2017-03-22 10:10:54 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_11
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_11() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
var template(value) Cause v_cause;
|
|
|
|
select(PX_VA){
|
|
|
|
case(1){v_cause := m_cause_ran(user_inactivity)}
|
|
|
|
case(2){v_cause := m_cause_ran(radio_connection_with_ue_lost)}
|
|
|
|
case(3){v_cause := m_cause_nas(csg_subscription_expiry)}
|
|
|
|
case(4){v_cause := m_cause_ran(cs_fallback_triggered)}
|
|
|
|
case(5){v_cause := m_cause_ran(redirection_towards_1xRTT)}
|
|
|
|
case(6){v_cause := m_cause_ran(interrat_redirection)}
|
|
|
|
case(7){v_cause := m_cause_ran(ue_not_available_for_ps_service)}
|
|
|
|
case else {setverdict(fail, "undefined PIXIT value for variant")}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-22 11:25:06 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_UE_Context_Release_Command(m_UeContextReleaseCommandIEs_ENB(
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
v_cause
|
|
|
|
));
|
2017-03-22 11:25:06 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_UE_Context_Release_Complete(mw_UeContextReleaseCompleteIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
2017-03-22 11:25:06 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 11:25:06 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 11:25:06 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_11
|
2017-03-22 11:25:06 +00:00
|
|
|
|
2017-03-22 12:45:30 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_12
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_12() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_InitialContext_SetupRequest(m_InitialContextSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),
|
2017-04-24 12:19:44 +00:00
|
|
|
{m_E_RABToBeSetupItemCtxtSUReq (
|
2017-03-22 12:45:30 +00:00
|
|
|
-,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5),
|
|
|
|
-
|
|
|
|
)},
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),
|
|
|
|
m_securityKey
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_InitialContext_SetupResponse(mw_InitialContextSetupResIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{
|
|
|
|
mw_E_RABSetupItemBearerSURes
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
tc_wait.start(PX_TS1RELOCOverall);
|
|
|
|
tc_wait.timeout;
|
2017-03-22 12:45:30 +00:00
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_UE_Context_Release_Request(mw_UeContextReleaseRequestIEs
|
|
|
|
(vc_MME_UE_ID, vc_eNB_UE_ID,
|
|
|
|
?));
|
|
|
|
|
2017-03-22 12:45:30 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_12
|
|
|
|
|
2017-03-22 14:44:20 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_13
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_13() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_rABSetupRequest();
|
2017-03-22 14:44:20 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_UE_Context_Modification_Request(m_ContextModificationReqIEsUEAgg(
|
2017-03-22 14:44:20 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
m_UEAggregateMaximumBitrate(1,1)
|
|
|
|
));
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_UE_Context_Modification_Response(mw_UeContextModificationResponseIEs(
|
2017-03-22 14:44:20 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
2017-03-22 15:43:52 +00:00
|
|
|
|
2017-03-22 14:44:20 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_13
|
|
|
|
|
2017-03-22 15:27:21 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_14
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_14() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_rABSetupRequest();
|
2017-03-22 15:27:21 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_UE_Context_Modification_Request(m_ContextModificationReqIEsSecKey(
|
2017-03-22 15:27:21 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
2017-03-22 15:43:52 +00:00
|
|
|
cs_fallback_required,
|
|
|
|
m_securityKey
|
2017-03-22 15:27:21 +00:00
|
|
|
));
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_UE_Context_Modification_Failure(mw_UeContextModificationFailureIEs(
|
2017-03-22 15:27:21 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
2017-03-22 15:43:52 +00:00
|
|
|
? // cause
|
2017-03-22 15:27:21 +00:00
|
|
|
));
|
2017-03-22 15:43:52 +00:00
|
|
|
|
2017-03-22 15:27:21 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_14
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_15
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_15() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_rABSetupRequest();
|
2017-03-22 15:27:21 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-22 15:43:52 +00:00
|
|
|
f_send_UE_Context_Modification_Request(m_ContextModificationReqIEsSecCap(
|
2017-03-22 15:27:21 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
2017-03-22 15:43:52 +00:00
|
|
|
cs_fallback_required,
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B)
|
2017-03-22 15:27:21 +00:00
|
|
|
));
|
|
|
|
|
2017-03-22 15:43:52 +00:00
|
|
|
f_recv_UE_Context_Modification_Failure(mw_UeContextModificationFailureIEs(
|
2017-03-22 15:27:21 +00:00
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
2017-03-22 15:43:52 +00:00
|
|
|
? // cause
|
2017-03-22 15:27:21 +00:00
|
|
|
));
|
2017-03-22 15:43:52 +00:00
|
|
|
|
2017-03-22 15:27:21 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_15
|
|
|
|
|
2017-03-22 12:45:30 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_16
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_16() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-03-22 16:14:14 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_UE_Radio_Capability_Match_Request(m_UeRadioCapabilityMatchReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
'0001'O // UERadioCapability
|
|
|
|
));
|
2017-03-22 16:14:14 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_recv_UeRadioCapabilityMatchResponse(mw_UeRadioCapabilityMatchResponseIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
? // Voice_Support_Match_Indicator
|
|
|
|
));
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_16
|
2017-03-22 16:14:14 +00:00
|
|
|
|
2017-03-22 17:33:11 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_17
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_17() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-03-22 17:33:11 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 17:33:11 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
// Test body
|
2017-03-22 17:33:11 +00:00
|
|
|
action("trigger a UE context modification indication");
|
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_recv_Ue_Context_Modification_Indication(mw_UeContextModificationIndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
2017-03-22 17:33:11 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 17:33:11 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 17:33:11 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_17
|
2017-03-22 17:33:11 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_18
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_18() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-03-22 17:40:03 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 17:40:03 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
// Test body
|
|
|
|
action("trigger a UE context suspend request");
|
2017-03-22 17:40:03 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_recv_Ue_Context_Suspend_Request(mw_UeContextSuspendRequestIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
2017-03-22 17:40:03 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 17:40:03 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 17:40:03 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_18
|
2017-03-22 17:40:03 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_CMP_19
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_CMP_19() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-03-22 17:44:50 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 17:44:50 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
// Test body
|
|
|
|
action("trigger a UE context resume request");
|
2017-03-22 17:44:50 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_recv_Ue_Context_Resume_Request(mw_UeContextResumeRequestIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
2017-03-22 17:44:50 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-22 17:44:50 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-22 17:44:50 +00:00
|
|
|
|
2017-03-23 07:34:01 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_19
|
2017-03-22 17:44:50 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group Context_management_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Handover signalling group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.4 Handover signalling group
|
|
|
|
*/
|
|
|
|
group Handover_signalling_group {
|
2017-03-20 09:42:56 +00:00
|
|
|
|
2017-03-23 13:29:34 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
2017-05-05 12:49:24 +00:00
|
|
|
const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
|
2017-03-23 13:29:34 +00:00
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-05-05 12:49:24 +00:00
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
2017-03-23 13:29:34 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Handover to be forwarded
|
|
|
|
if (fx_eNB_Handover_preparation_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a HANDOVER_REQUIRED
|
|
|
|
f_recv_HandoverRequired(
|
|
|
|
mw_HandoverRequiredIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
intralte,//handover_Type
|
|
|
|
-,//Cause
|
|
|
|
-,//TargetId
|
|
|
|
-//SourceToTargetTransparentContainer
|
|
|
|
));
|
2017-05-05 12:49:24 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_send_HandoverCommand(
|
|
|
|
m_HandoverCommandIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
intralte,//handover_Type
|
|
|
|
c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
|
|
|
|
));
|
2017-03-23 13:29:34 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
2017-05-05 12:49:24 +00:00
|
|
|
f_rABSetupRelease();
|
2017-03-23 13:29:34 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_01
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-05-05 12:49:24 +00:00
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
2017-03-23 13:29:34 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Handover to be forwarded
|
|
|
|
if (fx_eNB_Handover_preparation_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a HANDOVER_REQUIRED
|
|
|
|
f_recv_HandoverRequired(
|
|
|
|
mw_HandoverRequiredIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
ltetoutran,//handover_Type
|
|
|
|
-,//Cause
|
|
|
|
-,//TargetId
|
|
|
|
-//TODO Check if SourceRNCToTargetRNCTransparentContainer with UE History Information is present
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
2017-05-05 12:49:24 +00:00
|
|
|
f_rABSetupRelease();
|
2017-03-23 13:29:34 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_02
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_03
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_03() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-05-05 12:49:24 +00:00
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
2017-03-23 13:29:34 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Handover to be forwarded
|
|
|
|
if (fx_eNB_Handover_preparation_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a HANDOVER_REQUIRED
|
|
|
|
f_recv_HandoverRequired(
|
|
|
|
mw_HandoverRequiredIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
ltetogeran,//handover_Type
|
|
|
|
-,//Cause
|
|
|
|
-,//TargetId
|
|
|
|
-//TODO Check if SourceBSSToTargetBSSTransparentContainer
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
2017-05-05 12:49:24 +00:00
|
|
|
f_rABSetupRelease();
|
2017-03-23 13:29:34 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_03
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_04
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_04() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const E_RAB_ID c_E_RAB_ID_A := 0;
|
|
|
|
const NAS_PDU c_nAS_PDU := '0000'O;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-05-05 12:49:24 +00:00
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
2017-03-23 13:29:34 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Handover to be forwarded
|
|
|
|
if (fx_eNB_Handover_preparation_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a HANDOVER_REQUIRED
|
|
|
|
f_recv_HandoverRequired(
|
|
|
|
mw_HandoverRequiredIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
intralte,//handover_Type
|
|
|
|
-,//Cause
|
|
|
|
-,//TargetId
|
|
|
|
-//SourceToTargetTransparentContainer
|
|
|
|
));
|
|
|
|
|
|
|
|
f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
{m_E_RABToBeModifiedItemBearerSUReq(
|
|
|
|
c_E_RAB_ID_A,
|
|
|
|
m_e_RABlevelQoSParameters(5),
|
|
|
|
c_nAS_PDU
|
|
|
|
)}
|
|
|
|
));
|
|
|
|
|
2017-03-24 12:51:00 +00:00
|
|
|
//TODO check case1 and case2 option
|
2017-03-23 13:29:34 +00:00
|
|
|
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
2017-05-05 12:49:24 +00:00
|
|
|
f_rABSetupRelease();
|
2017-03-23 13:29:34 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_04
|
2017-03-27 07:18:34 +00:00
|
|
|
|
2017-03-24 12:51:00 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_05
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_05() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
2017-05-05 12:49:24 +00:00
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
2017-03-24 12:51:00 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Handover to be forwarded
|
|
|
|
if (fx_eNB_Handover_preparation_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a HANDOVER_REQUIRED
|
|
|
|
f_recv_HandoverRequired(
|
|
|
|
mw_HandoverRequiredIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
intralte,//handover_Type
|
|
|
|
-,//Cause
|
|
|
|
-,//TargetId
|
|
|
|
-//SourceToTargetTransparentContainer
|
|
|
|
));
|
|
|
|
|
|
|
|
log("No response is send to IUT before timer TS1RELOCprep expires.");
|
|
|
|
|
2017-05-05 12:49:24 +00:00
|
|
|
//wait for timer TS1RELOCprep
|
|
|
|
f_sleepIgnoreDef(1.0);
|
2017-03-24 12:51:00 +00:00
|
|
|
|
|
|
|
f_recv_HandoverCancel(
|
2017-03-27 07:18:34 +00:00
|
|
|
mw_HandoverCancelIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-//Cause
|
|
|
|
));
|
2017-03-24 12:51:00 +00:00
|
|
|
|
2017-05-05 12:49:24 +00:00
|
|
|
f_send_HandoverCancelAcknowledge(
|
|
|
|
m_HandoverCancelAckIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
2017-03-24 12:51:00 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
2017-05-05 12:49:24 +00:00
|
|
|
f_rABSetupRelease();
|
2017-03-24 12:51:00 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_05
|
2017-05-05 12:49:24 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_06
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_06() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_HandoverRequest(m_HandoverReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
intralte,//Handover Type
|
|
|
|
m_cause_ran(successful_handover),//Cause
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),//UE Aggregate_Max_Bit_Rate
|
|
|
|
{m_E_RABToBeSetupItemHOReq (
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5)
|
|
|
|
)},//E_RabsToBeSetupList
|
|
|
|
c_source_ToTarget_TransparentContainer,//SourceToTargetTransparentContainer
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),//UeSecurityCapabilities
|
|
|
|
m_securityContext//SecurityContext
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_HandoverRequestAck(mw_HandoverRequestAckIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,//ERabsAdmittedList
|
|
|
|
-//TargetToSourceTransparentContainer
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_06
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_07
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_07() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
|
|
|
|
const NASSecurityParameterstoE_UTRAN c_nASSecurityParameterstoE_UTRAN := '000000000000'O;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_HandoverRequest(m_HandoverReqIEs_nASSecParToEUTRAN(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
utrantolte,//Handover Type
|
|
|
|
m_cause_ran(successful_handover),//Cause
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),//UE Aggregate_Max_Bit_Rate
|
|
|
|
{m_E_RABToBeSetupItemHOReq (
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5)
|
|
|
|
)},//E_RabsToBeSetupList
|
|
|
|
c_source_ToTarget_TransparentContainer,//SourceToTargetTransparentContainer
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),//UeSecurityCapabilities
|
|
|
|
m_securityContext,//SecurityContext
|
|
|
|
c_nASSecurityParameterstoE_UTRAN//NASSecurityParameterstoE_UTRAN//for coding see TS 124 301 clause 9.9.2.7
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_HandoverRequestAck(mw_HandoverRequestAckIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,//ERabsAdmittedList
|
|
|
|
-//TargetToSourceTransparentContainer
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_07
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_08
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_08() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
|
|
|
|
const NASSecurityParameterstoE_UTRAN c_nASSecurityParameterstoE_UTRAN := '000000000000'O;
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_HandoverRequest(m_HandoverReqIEs_nASSecParToEUTRAN(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
gerantolte,//Handover Type
|
|
|
|
m_cause_ran(successful_handover),//Cause
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),//UE Aggregate_Max_Bit_Rate
|
|
|
|
{m_E_RABToBeSetupItemHOReq (
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5)
|
|
|
|
)},//E_RabsToBeSetupList
|
|
|
|
c_source_ToTarget_TransparentContainer,//SourceToTargetTransparentContainer
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),//UeSecurityCapabilities
|
|
|
|
m_securityContext,//SecurityContext
|
|
|
|
c_nASSecurityParameterstoE_UTRAN//NASSecurityParameterstoE_UTRAN//for coding see TS 124 301 clause 9.9.2.7
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_HandoverRequestAck(mw_HandoverRequestAckIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,//ERabsAdmittedList
|
|
|
|
-//TargetToSourceTransparentContainer
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_08
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_09
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_09() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_HandoverRequest(m_HandoverReqIEs_cSGMembershipStatus(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
gerantolte,//Handover Type
|
|
|
|
m_cause_ran(successful_handover),//Cause
|
|
|
|
m_UEAggregateMaximumBitrate(1,1),//UE Aggregate_Max_Bit_Rate
|
|
|
|
{m_E_RABToBeSetupItemHOReq (
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
m_e_RABlevelQoSParameters
|
|
|
|
(5)
|
|
|
|
)},//E_RabsToBeSetupList
|
|
|
|
c_source_ToTarget_TransparentContainer,//SourceToTargetTransparentContainer
|
|
|
|
m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B),//UeSecurityCapabilities
|
|
|
|
m_securityContext,//SecurityContext
|
|
|
|
member//CSG_MembershipStatus
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_HandoverFailure(mw_HandoverFailureIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_cause_ran(?)
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_09
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_10
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_10() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
// And UE is not exchanged
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate handover notification procedureE
|
|
|
|
if (fx_eNB_Handover_notification_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a HANDOVER NOTIFY
|
|
|
|
f_recv_HandoverNotify(
|
|
|
|
mw_HandoverNotifyIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,//E-UTRAN_CGI
|
|
|
|
-//TAI
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_10
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_11
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_11() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
// And UE is not exchanged
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate path switch request procedureE
|
|
|
|
if (fx_eNB_Path_switch_request_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a PATH SWITCH REQUEST
|
|
|
|
f_recv_PathSwitchRequest(
|
|
|
|
mw_PathSwitchRequestIEs(
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,//E-RAB to be Switched
|
|
|
|
vc_MME_UE_ID,//Source MME_UE_S1AP_ID
|
|
|
|
-,//E-UTRAN_CGI
|
|
|
|
-,//TAI
|
|
|
|
-//UE Security capabilities
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
|
|
|
|
f_send_PathSwitchRequestAcknowledge(m_PathSwitchRequestAckIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
m_securityContext//Security Context
|
|
|
|
));
|
|
|
|
|
|
|
|
}
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_11
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_12
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_12() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Handover to be forwarded
|
|
|
|
if (fx_eNB_Handover_preparation_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a HANDOVER_REQUIRED
|
|
|
|
f_recv_HandoverRequired(
|
|
|
|
mw_HandoverRequiredIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
intralte,//handover_Type
|
|
|
|
-,//Cause
|
|
|
|
-,//TargetId
|
|
|
|
-//SourceToTargetTransparentContainer
|
|
|
|
));
|
|
|
|
|
|
|
|
log("No response is send to IUT before timer TS1RELOCprep expires.");
|
|
|
|
|
|
|
|
//wait for timer TS1RELOCprep
|
|
|
|
f_sleepIgnoreDef(1.0);
|
|
|
|
|
|
|
|
f_recv_HandoverCancel(
|
|
|
|
mw_HandoverCancelIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-//Cause
|
|
|
|
));
|
|
|
|
|
|
|
|
f_send_HandoverCancelAcknowledge(
|
|
|
|
m_HandoverCancelAckIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_12
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_HAS_13
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_HAS_13() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Handover to be forwarded
|
|
|
|
if (fx_eNB_Handover_preparation_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a HANDOVER_REQUIRED
|
|
|
|
f_recv_HandoverRequired(
|
|
|
|
mw_HandoverRequiredIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
intralte,//handover_Type
|
|
|
|
-,//Cause
|
|
|
|
-,//TargetId
|
|
|
|
-//SourceToTargetTransparentContainer
|
|
|
|
));
|
|
|
|
|
|
|
|
f_send_HandoverCommand(
|
|
|
|
m_HandoverCommandIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
intralte,//handover_Type
|
|
|
|
c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
|
|
|
|
));
|
|
|
|
|
|
|
|
action("Await eNB_STATUS_TRANSFER MESSAGE.");
|
|
|
|
|
|
|
|
f_recv_EnbStatusTransfer(
|
|
|
|
mw_EnbStatusTransferIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_eNBStatusTransferTransparentContainer//eNB Status Transfer Transparent Container
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_HAS_13
|
2017-03-24 12:51:00 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group Handover_signalling_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Paging group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.5 Paging group
|
|
|
|
*/
|
|
|
|
group Paging_group {
|
2017-03-20 09:42:56 +00:00
|
|
|
|
2017-03-22 15:38:56 +00:00
|
|
|
// void
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group Paging_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc NAS transport group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.6 NAS transport group
|
|
|
|
*/
|
|
|
|
group NAS_transport_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_NAS_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_NAS_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate the initiation of a NAS Transport procedure
|
|
|
|
if (fx_eNB_Initiate_NAS_transport_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends an INITIAL UE MESSAGE
|
|
|
|
f_recv_Initial_UE_Message(
|
|
|
|
mw_initial_uE_MessageIEs(
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,
|
|
|
|
mw_TAI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_TAC
|
|
|
|
),
|
|
|
|
mw_eUTRAN_CGI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_CELL_ID
|
|
|
|
),
|
|
|
|
mw_cause_ran(
|
|
|
|
- // TODO To be refined
|
|
|
|
)));
|
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_NAS_01
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_NAS_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_NAS_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
// And a NAS procedure is initiated
|
|
|
|
fx_eNB_Initiate_NAS_transport_procedure();
|
|
|
|
f_recv_Initial_UE_Message(
|
|
|
|
mw_initial_uE_MessageIEs(
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,
|
|
|
|
mw_TAI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_TAC
|
|
|
|
),
|
|
|
|
mw_eUTRAN_CGI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_CELL_ID
|
|
|
|
),
|
|
|
|
mw_cause_ran(
|
|
|
|
- // TODO To be refined
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an ongoing NAS Transport procedure
|
|
|
|
if (fx_eNB_NAS_transport_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends an UPLINK_NAS_TRANSPORT
|
|
|
|
f_recv_Uplink_NAS_Transport(
|
|
|
|
mw_uplink_nAS_TransportIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,
|
|
|
|
mw_eUTRAN_CGI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_CELL_ID
|
|
|
|
),
|
|
|
|
mw_TAI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_TAC
|
|
|
|
)));
|
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_NAS_02
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_NAS_03
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_NAS_03() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
// And UE is not exchanged
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a UE has not received a INITIAL_UE_MESSAGE
|
|
|
|
if (fx_eNB_NAS_transport_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a NAS_NON_DELIVERY_INDICATION
|
|
|
|
f_recv_NAS_Non_Delivery_Indication(
|
|
|
|
mw_nAS_Non_Delivery_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-,
|
|
|
|
mw_cause_ran(
|
|
|
|
unspecified // TODO Check the value to be used
|
|
|
|
)
|
|
|
|
));
|
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_NAS_03
|
|
|
|
|
|
|
|
} // End of group NAS_transport_group
|
|
|
|
|
2017-03-15 08:33:46 +00:00
|
|
|
/**
|
|
|
|
* @desc Management group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.7 Management group
|
|
|
|
*/
|
|
|
|
group Management_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_01
|
2017-03-15 08:33:46 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_MNP_01() runs on S1APComponent {
|
2017-03-15 08:33:46 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Reset(
|
|
|
|
m_resetIEs(
|
|
|
|
m_cause_nas(
|
2017-03-21 14:47:31 +00:00
|
|
|
unspecified // TODO Check the value to be used
|
2017-03-15 08:33:46 +00:00
|
|
|
),
|
|
|
|
m_resetType_all
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_Reset_Acknowledge(
|
|
|
|
mw_reset_AcknowledgeIEs(
|
|
|
|
{
|
|
|
|
?/*mw_uE_associatedLogicalS1_ConnectionItemResAck_IE(
|
|
|
|
mw_uE_associatedLogicalS1_ConnectionItem(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID
|
2017-03-15 08:33:46 +00:00
|
|
|
))*/
|
|
|
|
}
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_01
|
2017-03-15 08:33:46 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_02
|
2017-03-15 08:33:46 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_MNP_02() runs on S1APComponent {
|
2017-03-15 08:33:46 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Reset procedure initiated from the E-UTRAN
|
2017-03-17 13:09:21 +00:00
|
|
|
if (fx_eNB_Reset_procedure() == false) {
|
2017-03-15 08:33:46 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a RESET
|
|
|
|
f_recv_Reset(
|
|
|
|
mw_resetIEs(
|
|
|
|
mw_cause_nas(
|
2017-03-21 14:47:31 +00:00
|
|
|
unspecified // TODO Check the value to be used
|
2017-03-15 08:33:46 +00:00
|
|
|
),
|
|
|
|
m_resetType_all
|
|
|
|
));
|
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_02
|
2017-03-15 08:33:46 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_03
|
2017-03-15 08:33:46 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_MNP_03() runs on S1APComponent {
|
2017-03-15 08:33:46 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Reset(
|
|
|
|
m_resetIEs(
|
|
|
|
m_cause_nas(
|
2017-03-21 14:47:31 +00:00
|
|
|
unspecified // TODO Check the value to be used
|
2017-03-15 08:33:46 +00:00
|
|
|
),
|
|
|
|
m_resetType_partOfS1_Interface(
|
|
|
|
{
|
|
|
|
m_uE_associatedLogicalS1_ConnectionItemResAck_IE(
|
|
|
|
m_uE_associatedLogicalS1_ConnectionItem(
|
|
|
|
0,
|
|
|
|
0
|
|
|
|
))
|
|
|
|
}
|
|
|
|
)
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_Reset_Acknowledge(
|
|
|
|
mw_reset_AcknowledgeIEs(
|
|
|
|
{
|
|
|
|
?/*mw_uE_associatedLogicalS1_ConnectionItemResAck_IE(
|
|
|
|
mw_uE_associatedLogicalS1_ConnectionItem(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID
|
2017-03-15 08:33:46 +00:00
|
|
|
))*/
|
|
|
|
}
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_03
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_04
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_MNP_04() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an Error Indication procedure
|
|
|
|
if (fx_eNB_Error_Indication_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a ERROR_INDICATION
|
|
|
|
f_recv_Error_Indication(
|
2017-03-24 09:06:50 +00:00
|
|
|
superset (
|
|
|
|
all from
|
|
|
|
mw_error_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_cause_IE(
|
|
|
|
-
|
|
|
|
)
|
|
|
|
),
|
|
|
|
mw_error_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_criticalityDiagnostics_IE(
|
|
|
|
-
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
2017-03-17 13:09:21 +00:00
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_04
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_05
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_MNP_05() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a S1 Setup procedure
|
|
|
|
if (fx_eNB_S1_Setup_Request_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a S1 SETUP REQUEST
|
|
|
|
f_recv_S1_Setup_Request(
|
|
|
|
mw_s1_Setup_RequestIEs(
|
|
|
|
mw_Global_eNB_ID(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_eNB_ID
|
|
|
|
),
|
|
|
|
{
|
|
|
|
mw_supportedTAs_Item(
|
|
|
|
PX_TAC,
|
|
|
|
{
|
|
|
|
PX_PLMN_IDENTITY
|
|
|
|
}
|
|
|
|
)
|
|
|
|
},
|
|
|
|
PX_PAGING_DRX
|
|
|
|
));
|
|
|
|
// Send the response to finalyse the procedure
|
|
|
|
f_send_S1_Setup_Response(
|
|
|
|
m_s1_Setup_ResponseIEs(
|
|
|
|
{
|
|
|
|
m_servedGUMMEIsItem(
|
|
|
|
{ PX_PLMN_IDENTITY },
|
|
|
|
{ PX_MME_GROUP_ID },
|
|
|
|
{ PX_MME_CODE }
|
|
|
|
)
|
|
|
|
},
|
|
|
|
PX_RELATIVE_MME_CAPAVCITY
|
|
|
|
));
|
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_05
|
2017-03-15 08:33:46 +00:00
|
|
|
|
2017-03-20 13:35:02 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_06
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_MNP_06() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an eNB Configuration Update procedure
|
|
|
|
if (fx_eNB_Configuration_Update_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends an ENB_CONFIGURATION_UPDATE
|
|
|
|
f_recv_eNB_Configuration_Update(
|
|
|
|
mw_eNB_Configuration_UpdateIEs(
|
|
|
|
mw_Global_eNB_ID(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_eNB_ID
|
|
|
|
),
|
|
|
|
{
|
|
|
|
mw_supportedTAs_Item(
|
|
|
|
PX_TAC,
|
|
|
|
{
|
|
|
|
PX_PLMN_IDENTITY
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
// Send the acknowledge to finalyse the procedure
|
|
|
|
f_send_eNB_Configuration_Update_Acknowledge(
|
|
|
|
m_eNB_Configuration_Update_AcknowledgeIEs
|
|
|
|
);
|
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_06
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_07
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_MNP_07() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_MME_Configuration_Update(
|
|
|
|
m_mME_Configuration_UpdateIEs(
|
|
|
|
{
|
|
|
|
m_servedGUMMEIsItem(
|
|
|
|
{ PX_PLMN_IDENTITY },
|
|
|
|
{ PX_MME_GROUP_ID },
|
|
|
|
{ PX_MME_CODE }
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_MME_Configuration_Update_Acknowledge(
|
|
|
|
mw_mME_Configuration_Update_AcknowledgeIEs
|
|
|
|
);
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_07
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_08
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_eNB_MNP_08() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_MME_Configuration_Update(
|
|
|
|
m_mME_Configuration_UpdateIEs(
|
|
|
|
{
|
|
|
|
m_servedGUMMEIsItem(
|
|
|
|
{
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_PLMN_IDENTITY_UNKNOWN
|
|
|
|
},
|
|
|
|
{ PX_MME_GROUP_ID },
|
|
|
|
{ PX_MME_CODE }
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_MME_Configuration_Update_Failure(
|
|
|
|
mw_mME_Configuration_Update_FailureIEs(
|
|
|
|
mw_cause_misc(
|
|
|
|
unknown_PLMN
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_08
|
|
|
|
|
2017-03-15 08:33:46 +00:00
|
|
|
} // End of group Management_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc S1 CDMA 2000 tunnelling group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.8 S1 CDMA 2000 tunnelling group
|
|
|
|
*/
|
|
|
|
group S1_CDMA_2000_tunnelling_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_STP_01
|
2017-03-15 08:33:46 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_STP_01() runs on S1APComponent {
|
2017-03-15 08:33:46 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a CDMA2000 to be forwarded
|
2017-03-17 13:09:21 +00:00
|
|
|
if (fx_eNB_Uplink_S1_CDMA2000_Tunnelling_procedure() == false) {
|
2017-03-15 08:33:46 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a an UPLINK_S1_CDMA2000_TUNNELLING
|
|
|
|
f_recv_Uplink_S1_CDMA2000_Tunnelling(
|
|
|
|
mw_uplink_S1_CDMA2000_TunnellingIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-03-15 08:33:46 +00:00
|
|
|
PX_CDMA200_RAT_TYPE,
|
|
|
|
PX_CDMA200_SECTOR_ID,
|
|
|
|
PX_CDMA200_PDU
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
2017-03-21 14:47:31 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
2017-03-15 08:33:46 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_STP_01
|
2017-03-15 08:33:46 +00:00
|
|
|
|
|
|
|
} // End of group S1_CDMA_2000_tunnelling_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc UE capability info indication group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.9 UE capability info indication group
|
|
|
|
*/
|
|
|
|
group UE_capability_info_indication_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_UEC_01
|
2017-03-15 08:33:46 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_UEC_01() runs on S1APComponent {
|
2017-03-15 08:33:46 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a capability-related information update
|
2017-03-17 13:09:21 +00:00
|
|
|
if (fx_eNB_UE_Capability_Info_Indication_procedure() == false) {
|
2017-03-15 08:33:46 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a UE_CAPABILITY_INFO_INDICATION
|
|
|
|
f_recv_eNB_UE_Capability_Info_Indication(
|
|
|
|
mw_uE_Capability_Info_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-03-15 08:33:46 +00:00
|
|
|
- // TODO To be refined
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
2017-03-21 14:47:31 +00:00
|
|
|
f_postamble_S1AP_eNB();
|
2017-03-15 08:33:46 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_UEC_01
|
2017-03-15 08:33:46 +00:00
|
|
|
|
|
|
|
} // End of group UE_capability_info_indication_group
|
|
|
|
|
2017-02-24 13:59:39 +00:00
|
|
|
/**
|
|
|
|
* @desc Warning message transmission group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.10 Trace group
|
|
|
|
*/
|
|
|
|
group Trace_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_01
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_TRP_01() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_initiate_handover();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Trace_Start(
|
|
|
|
m_trace_StartIEs(
|
|
|
|
m_traceActivation(
|
|
|
|
PX_EUTRAN_TRACE_ID,
|
|
|
|
PX_INTERFACES_TO_TRACE,
|
|
|
|
PX_TRACE_DEPTH,
|
|
|
|
PX_TRANSPORT_LAYER_ADDRESS
|
|
|
|
)));
|
|
|
|
|
|
|
|
f_recv_Trace_Failure_Indication(
|
|
|
|
mw_trace_Failure_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
PX_EUTRAN_TRACE_ID,
|
|
|
|
- // TODO To be refined
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_TRP_01
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_02
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_TRP_02() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_initiate_traceStart();
|
|
|
|
f_initiate_handover();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_deactivate_Trace(
|
|
|
|
m_deactivate_TraceIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
PX_EUTRAN_TRACE_ID
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_Trace_Failure_Indication(
|
|
|
|
mw_trace_Failure_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
PX_EUTRAN_TRACE_ID,
|
|
|
|
- // TODO To be refined
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_initiate_deactivateTrace();
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_TRP_02
|
2017-02-24 13:59:39 +00:00
|
|
|
|
2017-03-15 08:33:46 +00:00
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_TRP_03
|
2017-03-15 08:33:46 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_TRP_03() runs on S1APComponent {
|
2017-03-15 08:33:46 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_initiate_traceStart();
|
|
|
|
|
|
|
|
f_recv_Cell_Traffic_Trace(
|
|
|
|
mw_cell_Traffic_TraceIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-03-15 08:33:46 +00:00
|
|
|
PX_EUTRAN_TRACE_ID,
|
|
|
|
mw_eUTRAN_CGI,
|
|
|
|
- // TODO To be refined
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_initiate_deactivateTrace();
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_TRP_03
|
2017-03-15 08:33:46 +00:00
|
|
|
|
2017-02-24 13:59:39 +00:00
|
|
|
} // End of group Trace_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Warning message transmission group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.11 Location reporting group
|
|
|
|
*/
|
|
|
|
group Location_reporting_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_LRP_01
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_LRP_01() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Location_Reporting_Control(
|
|
|
|
m_location_Reporting_ControlIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
m_request_Type(
|
|
|
|
direct,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
|
|
|
|
f_recv_Location_Report(
|
|
|
|
mw_location_ReportIEs(
|
|
|
|
?,
|
|
|
|
?,
|
|
|
|
mw_eUTRAN_CGI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_CELL_ID
|
|
|
|
),
|
|
|
|
mw_TAI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_TAC
|
|
|
|
),
|
|
|
|
mw_request_Type(
|
|
|
|
direct,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_LRP_01
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_LRP_02
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_LRP_02() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Location_Reporting_Control(
|
|
|
|
m_location_Reporting_ControlIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
m_request_Type(
|
|
|
|
change_of_serve_cell,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
|
|
|
|
fx_move_UE_to_new_cell(); // when UE changes to new cell
|
|
|
|
|
|
|
|
f_recv_Location_Report(
|
|
|
|
mw_location_ReportIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
mw_eUTRAN_CGI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_CELL_ID
|
|
|
|
),
|
|
|
|
mw_TAI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_TAC
|
|
|
|
),
|
|
|
|
mw_request_Type(
|
|
|
|
change_of_serve_cell,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_LRP_02
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_LRP_03
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_LRP_03() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Location_Reporting_Control(
|
|
|
|
m_location_Reporting_ControlIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
m_request_Type(
|
|
|
|
stop_change_of_serve_cell,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
|
|
|
|
fx_check_UE_stops_reporting(); // when UE stop reporting at change of serving cell
|
|
|
|
|
|
|
|
f_recv_Location_Report(
|
|
|
|
mw_location_ReportIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
mw_eUTRAN_CGI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_CELL_ID
|
|
|
|
),
|
|
|
|
mw_TAI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_TAC
|
|
|
|
),
|
|
|
|
mw_request_Type(
|
|
|
|
stop_change_of_serve_cell,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_LRP_03
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_LRP_04
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_LRP_04() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_initiate_handover();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Location_Reporting_Control(
|
|
|
|
m_location_Reporting_ControlIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
m_request_Type(
|
|
|
|
PX_EVENT_TYPE,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
|
|
|
|
f_recv_Location_Report_Failure_Indication(
|
|
|
|
mw_location_Report_Failure_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
? // TODO To be refined: what kind of cause :-(
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_LRP_04
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
} // End of group Location_reporting_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Warning message transmission group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.12 Warning message transmission group
|
|
|
|
*/
|
|
|
|
group Warning_message_transmission_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_WTP_01
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_WTP_01() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Write_Replace_Warning_Request(
|
|
|
|
m_write_Replace_Warning_RequestIEs(
|
|
|
|
PX_MESSAGE_IDENTIFIER,
|
|
|
|
PX_SERIAL_NUMBER,
|
|
|
|
PX_REPETITION_PERIOD,
|
|
|
|
PX_NUMBER_OF_BROADCASTS_REQUESTED
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_Write_Replace_Warning_Response(
|
|
|
|
mw_write_Replace_Warning_ResponseIEs(
|
|
|
|
?,
|
|
|
|
?
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_WTP_01
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_WTP_02
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_WTP_02() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Kill_Request(
|
|
|
|
m_kill_RequestIEs(
|
|
|
|
PX_MESSAGE_IDENTIFIER,
|
|
|
|
PX_SERIAL_NUMBER
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_Kill_Response(
|
|
|
|
mw_kill_ResponseIEs(
|
|
|
|
?,
|
|
|
|
?
|
|
|
|
));
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_WTP_02
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_WTP_03
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_WTP_03() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a PWS Restart Indication procedure
|
2017-03-17 13:09:21 +00:00
|
|
|
if (fx_eNB_PWS_Restart_Indication_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a PWS_RESTART_INDICATION
|
|
|
|
f_recv_eNB_PWS_Restart_Indication(
|
|
|
|
mw_pWS_Restart_IndicationIEs(
|
|
|
|
{
|
|
|
|
mw_eUTRAN_CGI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_CELL_ID
|
|
|
|
)
|
|
|
|
},
|
2017-03-17 13:09:21 +00:00
|
|
|
mw_Global_eNB_ID(
|
2017-02-24 13:59:39 +00:00
|
|
|
PX_PLMN_IDENTITY,
|
2017-03-17 13:09:21 +00:00
|
|
|
PX_eNB_ID
|
2017-02-24 13:59:39 +00:00
|
|
|
),
|
|
|
|
{
|
|
|
|
mw_TAI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_TAC
|
|
|
|
)
|
|
|
|
},
|
|
|
|
{ PX_EMERGENCY_AREA_ID }
|
|
|
|
));
|
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_WTP_03
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_WTP_04
|
2017-02-24 13:59:39 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_WTP_04() runs on S1APComponent {
|
2017-02-24 13:59:39 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a PWS Failure Indication procedure
|
2017-03-17 13:09:21 +00:00
|
|
|
if (fx_eNB_PWS_Failure_Indication_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a PWS_FAILURE_INDICATION
|
|
|
|
f_recv_eNB_PWS_Failure_Indication(
|
|
|
|
mw_pWS_Failure_IndicationIEs(
|
|
|
|
{
|
|
|
|
mw_eUTRAN_CGI(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_CELL_ID
|
|
|
|
)
|
|
|
|
},
|
2017-03-17 13:09:21 +00:00
|
|
|
mw_Global_eNB_ID(
|
2017-02-24 13:59:39 +00:00
|
|
|
PX_PLMN_IDENTITY,
|
2017-03-17 13:09:21 +00:00
|
|
|
PX_eNB_ID
|
2017-02-24 13:59:39 +00:00
|
|
|
)
|
|
|
|
));
|
|
|
|
}
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_WTP_04
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
} // End of group Warning_message_transmission_group
|
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
/**
|
|
|
|
* @desc eNB direct information transfer group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.13 eNB direct information transfer group
|
|
|
|
*/
|
|
|
|
group ENB_direct_information_transfer_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_EIT_01
|
2017-01-24 14:14:30 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_EIT_01() runs on S1APComponent {
|
2017-01-24 14:14:30 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an ENB Direct Information Transfer procedure
|
2017-03-17 13:09:21 +00:00
|
|
|
if (fx_eNB_Direct_Information_Transfer_procedure() == false) {
|
2017-01-24 14:14:30 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a ENB_DIRECT_INFORMATION_TRANSFER
|
|
|
|
f_recv_eNB_Direct_Information_Transfer(
|
|
|
|
mw_eNBDirectInformationTransfer_EDT(
|
|
|
|
mw_Inter_SystemInformationTransferType(
|
|
|
|
mw_RIMTransfer(
|
|
|
|
? // FIXME To be refined
|
|
|
|
))));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_EIT_01
|
2017-01-24 14:14:30 +00:00
|
|
|
|
|
|
|
} // End of group ENB_direct_information_transfer_group
|
2017-03-20 09:42:56 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc NAS transport group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.14 MME direct information transport group
|
|
|
|
*/
|
|
|
|
group MME_direct_information_transfer_group {
|
2017-03-20 09:42:56 +00:00
|
|
|
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group MME_direct_information_transfer_group
|
2017-03-20 09:42:56 +00:00
|
|
|
|
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
|
|
|
|
/**
|
2017-02-24 13:59:39 +00:00
|
|
|
* @desc eNB configuration transfer group
|
2017-01-24 14:14:30 +00:00
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.15 eNB configuration transfer group
|
|
|
|
*/
|
|
|
|
group ENB_configuration_transfer_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_ECT_01
|
2017-01-24 14:14:30 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_ECT_01() runs on S1APComponent {
|
2017-01-24 14:14:30 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an ENB Configuration Transfer procedure
|
2017-03-17 13:09:21 +00:00
|
|
|
if (fx_eNB_Configuration_Transfer_procedure() == false) {
|
2017-01-24 14:14:30 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a ENB_CONFIGURATION_TRANSFER
|
|
|
|
f_recv_eNB_Direct_Information_Transfer(
|
|
|
|
mw_sON_Configuration_Transfer_ECT(
|
|
|
|
mw_sON_Configuration_Transfer(
|
2017-03-17 13:09:21 +00:00
|
|
|
mw_TargeteNB_ID(mw_Global_eNB_ID, mw_TAI),
|
|
|
|
mw_SourceeNB_ID(mw_Global_eNB_ID, mw_TAI),
|
2017-01-24 14:14:30 +00:00
|
|
|
? // FIXME To be refined
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_ECT_01
|
2017-01-24 14:14:30 +00:00
|
|
|
|
|
|
|
} // End of group ENB_configuration_transfer_group
|
2017-03-20 09:42:56 +00:00
|
|
|
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc NAS transport group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.16 MME configuration transport group
|
|
|
|
*/
|
|
|
|
group MME_configuration_transfer_group {
|
2017-03-20 09:42:56 +00:00
|
|
|
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group MME_configuration_transfer_group
|
2017-03-20 09:42:56 +00:00
|
|
|
|
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc LPPa transport group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.17 LPPa transport group
|
|
|
|
*/
|
|
|
|
group LPPa_transport_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_LPP_01
|
2017-01-24 14:14:30 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_LPP_01() runs on S1APComponent {
|
2017-01-24 14:14:30 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a LPPa Transport procedure using a UE associated signalling
|
|
|
|
if (fx_eNB_LPPa_Transport_procedure_ind(true) == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a UPLINK_UE_ASSOCIATED_LPPA_TRANSPORT
|
|
|
|
f_recv_Uplink_UE_Associated_Lppa_Transport(
|
|
|
|
mw_UplinkUEAssociatedLppaTransportIEs_LPPa_PDU(
|
|
|
|
?
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_LPP_01
|
2017-01-24 14:14:30 +00:00
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_LPP_02
|
2017-01-24 14:14:30 +00:00
|
|
|
*/
|
2017-03-17 13:09:21 +00:00
|
|
|
function f_TC_S1AP_eNB_LPP_02() runs on S1APComponent {
|
2017-01-24 14:14:30 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_enb_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a LPPa Transport procedure using a UE associated signalling
|
|
|
|
if (fx_eNB_LPPa_Transport_procedure_ind(false) == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a UPLINK_NONE_UE_ASSOCIATED_LPPA_TRANSPORT
|
|
|
|
f_recv_Uplink_Non_UE_Associated_Lppa_Transport(
|
|
|
|
mw_UplinkNonUEAssociatedLppaTransportIEs_LPPa_PDU(
|
|
|
|
?
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_LPP_02
|
2017-01-24 14:14:30 +00:00
|
|
|
|
|
|
|
} // End of group LPPa_transport_group
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
2017-03-22 15:38:56 +00:00
|
|
|
* @desc Unknown, Unforseen and Erroneous Protocol Data
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.18 Unknown, Unforseen and Erroneous Protocol Data
|
2017-03-21 14:47:31 +00:00
|
|
|
*/
|
|
|
|
group Unknown_unforseen_errorneous_group {
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group Unknown_unforseen_errorneous_group
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
} // End of group eNB_Role
|
2017-01-13 10:16:04 +00:00
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
group MME_Role {
|
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
/**
|
|
|
|
* @desc E-RAB management group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.2 E-RAB management group
|
|
|
|
*/
|
2017-01-16 09:27:10 +00:00
|
|
|
group ERAB_management_group {
|
|
|
|
|
|
|
|
/**
|
2017-03-17 13:09:21 +00:00
|
|
|
* @desc Testcase function for TC_S1AP_eNB_RAB_01
|
2017-01-16 09:27:10 +00:00
|
|
|
*/
|
2017-01-24 14:14:30 +00:00
|
|
|
function f_TC_S1AP_MME_RAB_01() runs on S1APComponent {
|
2017-01-16 09:27:10 +00:00
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
|
2017-03-23 13:29:34 +00:00
|
|
|
f_recv_E_RABSetupRequest(superset (all from mw_E_RABSetupReqIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
?
|
|
|
|
)));
|
2017-01-16 09:27:10 +00:00
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
// Test body
|
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
2017-02-24 13:59:39 +00:00
|
|
|
} // End of function f_TC_S1AP_MME_RAB_01
|
2017-01-16 09:27:10 +00:00
|
|
|
|
|
|
|
} // End of group ERAB_management_group
|
2017-03-20 09:52:23 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Context management group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.3 Context management group
|
|
|
|
*/
|
|
|
|
group Context_management_group {
|
2017-03-20 09:52:23 +00:00
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_mME_CMP_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_mME_CMP_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
2017-03-24 08:39:22 +00:00
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-24 08:39:22 +00:00
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
// Test body
|
2017-03-24 08:39:22 +00:00
|
|
|
action("trigger an Initial Context Setup procedure");
|
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
f_recv_InitialContext_SetupRequest(mw_InitialContextSetupRequestIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_UEAggregateMaximumBitrate(?,?),
|
|
|
|
{
|
2017-04-24 12:19:44 +00:00
|
|
|
mw_E_RABToBeSetupItemCtxtSUReq(?,mw_e_RABlevelQoSParameters(5),?,?,?,omit)
|
2017-03-24 09:06:50 +00:00
|
|
|
},
|
|
|
|
?,
|
|
|
|
?
|
|
|
|
));
|
2017-03-24 08:39:22 +00:00
|
|
|
|
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-24 08:39:22 +00:00
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
2017-03-24 08:39:22 +00:00
|
|
|
|
2017-03-24 09:06:50 +00:00
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_01
|
2017-03-24 11:11:45 +00:00
|
|
|
|
2017-03-24 12:29:50 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_mME_CMP_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_mME_CMP_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
var template(value) Cause v_cause;
|
|
|
|
select(PX_VA){
|
|
|
|
case(1){v_cause := m_cause_ran(user_inactivity)}
|
|
|
|
case(2){v_cause := m_cause_ran(radio_connection_with_ue_lost)}
|
|
|
|
case(3){v_cause := m_cause_nas(csg_subscription_expiry)}
|
|
|
|
case(4){v_cause := m_cause_ran(cs_fallback_triggered)}
|
|
|
|
case(5){v_cause := m_cause_ran(redirection_towards_1xRTT)}
|
|
|
|
case(6){v_cause := m_cause_ran(interrat_redirection)}
|
|
|
|
case(7){v_cause := m_cause_ran(ue_not_available_for_ps_service)}
|
|
|
|
case else {setverdict(fail, "undefined PIXIT value for variant")}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
|
|
|
|
f_rABSetupRequest();
|
|
|
|
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
|
|
|
|
f_send_UE_Context_Release_Command(m_UeContextReleaseRequestIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
v_cause
|
|
|
|
));
|
|
|
|
|
|
|
|
f_recv_InitialContext_SetupRequest((mw_UeContextReleaseCommandIEs_MME, mw_UeContextReleaseCommandIEs_ENB));
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
f_send_UE_Context_Release_Complete(m_UeContextReleaseCompleteIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
));
|
|
|
|
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_CMP_02
|
2017-03-20 09:52:23 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group Context_management_group
|
2017-03-20 09:52:23 +00:00
|
|
|
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Handover signalling group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.4 Handover signalling group
|
|
|
|
*/
|
|
|
|
group Handover_signalling_group {
|
2017-03-20 09:52:23 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group Handover_signalling_group
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Paging group
|
2017-03-22 15:38:56 +00:00
|
|
|
* @see ETSI TS 103 497-2 Clause 5.2.2.2.5 Paging group
|
2017-03-21 14:47:31 +00:00
|
|
|
*/
|
2017-03-22 15:38:56 +00:00
|
|
|
group Pagin_group {
|
2017-03-20 09:52:23 +00:00
|
|
|
|
2017-03-22 15:38:56 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_PAG_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_PAG_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Paging procedure
|
|
|
|
if (fx_MME_Paging_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a PAGING
|
|
|
|
f_recv_Paging(
|
|
|
|
mw_pagingIEs(
|
|
|
|
PX_UE_IDENTITY_INDEX_VALUE,
|
|
|
|
mw_uEPagingID_iMSI(
|
|
|
|
PX_IMSI
|
|
|
|
),
|
|
|
|
PX_CNDOMAIN,
|
|
|
|
- // TODO To be refined
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_PAG_01
|
|
|
|
|
|
|
|
} // End of group Pagin_group
|
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc NAS transport group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.6 NAS transport group
|
|
|
|
*/
|
|
|
|
group NAS_transport_group {
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_NAS_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_NAS_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
// Test body
|
|
|
|
// 1. to indicate an ongoing NAS Transport procedure
|
|
|
|
if (fx_MME_Downlink_NAS_Transport_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a DOWNLINK_NAS_TRANSPORT
|
|
|
|
f_recv_Downlink_NAS_Transport(
|
|
|
|
mw_downlink_nAS_TransportIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
-
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_NAS_01
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_NAS_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_NAS_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged, and a NAS procedure is initiated.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Reroute NAS Request procedure
|
|
|
|
if (fx_MME_Reroute_NAS_Request_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a REROUTE_NAS_REQUEST
|
|
|
|
f_recv_Reroute_NAS_Request(
|
|
|
|
mw_reroute_nAS_RequestIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
-,
|
|
|
|
PX_MME_GROUP_ID
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_NAS_02
|
|
|
|
|
|
|
|
} // End of group NAS_transport_group
|
2017-01-16 09:27:10 +00:00
|
|
|
|
2017-02-24 13:59:39 +00:00
|
|
|
/**
|
2017-03-15 08:33:46 +00:00
|
|
|
* @desc Management group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.7 Management group
|
|
|
|
*/
|
|
|
|
group Management_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Reset procedure initiated from the MME
|
|
|
|
if (fx_MME_Reset_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a RESET
|
|
|
|
f_recv_Reset(
|
|
|
|
mw_resetIEs(
|
|
|
|
mw_cause_nas(
|
2017-03-21 14:47:31 +00:00
|
|
|
unspecified // TODO Check the value to be used
|
2017-03-15 08:33:46 +00:00
|
|
|
),
|
|
|
|
m_resetType_all
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_01
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Reset(
|
|
|
|
m_resetIEs(
|
|
|
|
m_cause_nas(
|
2017-03-21 14:47:31 +00:00
|
|
|
unspecified // TODO Check the value to be used
|
2017-03-15 08:33:46 +00:00
|
|
|
),
|
|
|
|
m_resetType_all
|
|
|
|
));
|
|
|
|
f_recv_Reset_Acknowledge(
|
|
|
|
mw_reset_AcknowledgeIEs(
|
|
|
|
{
|
|
|
|
?/*mw_uE_associatedLogicalS1_ConnectionItemResAck_IE(
|
|
|
|
mw_uE_associatedLogicalS1_ConnectionItem(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID
|
2017-03-15 08:33:46 +00:00
|
|
|
))*/
|
|
|
|
}
|
|
|
|
));
|
2017-03-20 13:35:02 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-15 08:33:46 +00:00
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_02
|
|
|
|
|
2017-03-17 13:09:21 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_03
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_03() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_Reset(
|
|
|
|
m_resetIEs(
|
|
|
|
m_cause_nas(
|
2017-03-21 14:47:31 +00:00
|
|
|
unspecified // TODO Check the value to be used
|
2017-03-17 13:09:21 +00:00
|
|
|
),
|
|
|
|
m_resetType_all
|
|
|
|
));
|
|
|
|
f_recv_Reset_Acknowledge(
|
|
|
|
mw_reset_AcknowledgeIEs(
|
|
|
|
{
|
|
|
|
?/*mw_uE_associatedLogicalS1_ConnectionItemResAck_IE(
|
|
|
|
mw_uE_associatedLogicalS1_ConnectionItem(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID
|
|
|
|
))*/
|
|
|
|
}
|
|
|
|
));
|
2017-03-20 13:35:02 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-17 13:09:21 +00:00
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_03
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_04
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_04() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an Error Indication procedure
|
|
|
|
if (fx_MME_Error_Indication_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a ERROR INDICATION
|
|
|
|
f_recv_Error_Indication(
|
2017-03-24 09:06:50 +00:00
|
|
|
superset (
|
|
|
|
all from
|
|
|
|
mw_error_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_cause_IE
|
|
|
|
),
|
|
|
|
mw_error_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
|
|
|
vc_eNB_UE_ID,
|
|
|
|
mw_criticalityDiagnostics_IE
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
2017-03-17 13:09:21 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_04
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_05
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_05() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_S1_Setup_Request(
|
|
|
|
m_s1_Setup_RequestIEs(
|
|
|
|
m_Global_eNB_ID(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_eNB_ID
|
|
|
|
),
|
|
|
|
{
|
|
|
|
m_supportedTAs_Item(
|
|
|
|
PX_TAC,
|
|
|
|
{
|
|
|
|
PX_PLMN_IDENTITY
|
|
|
|
}
|
|
|
|
)
|
|
|
|
},
|
|
|
|
PX_PAGING_DRX
|
|
|
|
));
|
|
|
|
f_recv_S1_Setup_Response(
|
|
|
|
mw_s1_Setup_ResponseIEs(
|
|
|
|
{
|
|
|
|
mw_servedGUMMEIsItem(
|
|
|
|
{ PX_PLMN_IDENTITY },
|
|
|
|
{ PX_MME_GROUP_ID },
|
|
|
|
{ PX_MME_CODE }
|
|
|
|
)
|
|
|
|
},
|
|
|
|
PX_RELATIVE_MME_CAPAVCITY
|
|
|
|
));
|
2017-03-20 13:35:02 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
2017-03-17 13:09:21 +00:00
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_05
|
|
|
|
|
2017-03-20 13:35:02 +00:00
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_06
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_06() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_S1_Setup_Request(
|
|
|
|
m_s1_Setup_RequestIEs(
|
|
|
|
m_Global_eNB_ID(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_eNB_ID
|
|
|
|
),
|
|
|
|
{
|
|
|
|
m_supportedTAs_Item(
|
|
|
|
PX_TAC,
|
|
|
|
{
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_PLMN_IDENTITY_UNKNOWN
|
|
|
|
}
|
|
|
|
)
|
|
|
|
},
|
|
|
|
PX_PAGING_DRX
|
|
|
|
));
|
|
|
|
f_recv_S1_Setup_Failure(
|
|
|
|
mw_s1_Setup_FailureIEs(
|
|
|
|
mw_cause_misc(
|
|
|
|
unknown_PLMN
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_06
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_07
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_07() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_eNB_Configuration_Update(
|
|
|
|
m_eNB_Configuration_UpdateIEs(
|
|
|
|
m_Global_eNB_ID(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_eNB_ID
|
|
|
|
),
|
|
|
|
{
|
|
|
|
m_supportedTAs_Item(
|
|
|
|
PX_TAC,
|
|
|
|
{
|
|
|
|
PX_PLMN_IDENTITY
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
f_recv_eNB_Configuration_Update_Acknowledge(
|
2017-03-23 09:34:06 +00:00
|
|
|
mw_eNB_Configuration_Update_AcknowledgeIEs
|
2017-03-20 13:35:02 +00:00
|
|
|
);
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_07
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_08
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_08() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
f_send_eNB_Configuration_Update(
|
|
|
|
m_eNB_Configuration_UpdateIEs(
|
|
|
|
m_Global_eNB_ID(
|
|
|
|
PX_PLMN_IDENTITY_UNKNOWN,
|
|
|
|
PX_eNB_ID_UNKNOWN
|
|
|
|
),
|
|
|
|
{
|
|
|
|
m_supportedTAs_Item(
|
|
|
|
PX_TAC,
|
|
|
|
{
|
|
|
|
PX_PLMN_IDENTITY_UNKNOWN
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
f_recv_eNB_Configuration_Update_Failure(
|
|
|
|
mw_eNB_Configuration_Update_FailureIEs(
|
|
|
|
mw_cause_misc(
|
|
|
|
unknown_PLMN
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_eNB();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_eNB_MNP_08
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_09
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_09() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an eNB Configuration Update procedure
|
|
|
|
if (fx_eNB_Configuration_Update_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends an ENB Configuration Update
|
|
|
|
f_recv_eNB_Configuration_Update(
|
|
|
|
mw_eNB_Configuration_UpdateIEs(
|
|
|
|
mw_Global_eNB_ID(
|
|
|
|
PX_PLMN_IDENTITY,
|
|
|
|
PX_eNB_ID
|
|
|
|
),
|
|
|
|
{
|
|
|
|
mw_supportedTAs_Item(
|
|
|
|
PX_TAC,
|
|
|
|
{
|
|
|
|
PX_PLMN_IDENTITY
|
|
|
|
}
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_09
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_10
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_10() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an Overload Start procedure
|
|
|
|
if (fx_eNB_Overload_Start_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends an OVERLOAD_START
|
|
|
|
f_recv_eNB_Overload_Start(
|
|
|
|
mw_eNB_Overload_StartIEs(
|
|
|
|
mw_OverloadResponse(
|
|
|
|
reject_non_emergency_mo_dt
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_10
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MNP_11
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MNP_11() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an Overload Stop procedure
|
|
|
|
if (fx_eNB_Overload_Stop_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends an OVERLOAD_STOP
|
|
|
|
f_recv_eNB_Overload_Stop(
|
|
|
|
mw_eNB_Overload_StopIEs(
|
|
|
|
{
|
|
|
|
mw_gUMMEI(
|
|
|
|
-,
|
|
|
|
-,
|
|
|
|
-
|
|
|
|
)
|
|
|
|
}
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MNP_11
|
|
|
|
|
2017-03-15 08:33:46 +00:00
|
|
|
} // End of group Management_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc S1 CDMA 2000 tunnelling group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.8 S1 CDMA 2000 tunnelling group
|
|
|
|
*/
|
|
|
|
group S1_CDMA_2000_tunnelling_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_STP_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_STP_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a CDMA2000 signalling event
|
|
|
|
if (fx_MME_Downlink_S1_CDMA2000_Tunnelling_procedure() == false) {
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a DOWNLINK_S1_CDMA2000_TUNNELLING
|
|
|
|
f_recv_Downlink_S1_CDMA2000_Tunnelling(
|
|
|
|
mw_downlink_S1_CDMA2000_TunnellingIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-03-15 08:33:46 +00:00
|
|
|
{
|
|
|
|
mw_eRABDataForwardingItem // TODO To be refined
|
|
|
|
},
|
|
|
|
PX_CDMA200_PDU,
|
|
|
|
PX_CDMA200_RAT_TYPE
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_STP_01
|
|
|
|
|
|
|
|
} // End of group S1_CDMA_2000_tunnelling_group
|
2017-03-20 09:52:23 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc UE capability info indication group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.9 UE capability info indication group
|
|
|
|
*/
|
|
|
|
group UE_capability_info_indication_group {
|
|
|
|
|
|
|
|
} // End of group UE_capability_info_indication_group
|
|
|
|
|
2017-03-15 08:33:46 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Trace Procedures group
|
2017-02-24 13:59:39 +00:00
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.10 Trace group
|
|
|
|
*/
|
|
|
|
group Trace_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_TRP_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_TRP_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Trace Start procedure
|
2017-03-15 08:33:46 +00:00
|
|
|
if (fx_MME_Trace_Start_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a TRACE_START
|
|
|
|
f_recv_Trace_Start(
|
|
|
|
mw_trace_StartIEs(
|
|
|
|
mw_traceActivation(
|
|
|
|
PX_EUTRAN_TRACE_ID,
|
|
|
|
PX_INTERFACES_TO_TRACE,
|
|
|
|
PX_TRACE_DEPTH,
|
|
|
|
PX_TRANSPORT_LAYER_ADDRESS
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_TRP_01
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_TRP_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_TRP_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
2017-03-15 08:33:46 +00:00
|
|
|
fx_MME_Trace_Start_procedure();
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
2017-03-15 08:33:46 +00:00
|
|
|
// 1. to indicate a Deactivate Trace procedure
|
|
|
|
if (fx_MME_Deactivate_Trace_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
2017-03-15 08:33:46 +00:00
|
|
|
// 2. sends a DEACTIVATE_TRACE
|
2017-02-24 13:59:39 +00:00
|
|
|
f_recv_Deactivate_Trace(
|
|
|
|
mw_deactivate_TraceIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
PX_EUTRAN_TRACE_ID
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_TRP_02
|
|
|
|
|
|
|
|
} // End of group Trace_group
|
|
|
|
|
|
|
|
/**
|
2017-03-15 08:33:46 +00:00
|
|
|
* @desc Location Reporting Procedures group
|
2017-02-24 13:59:39 +00:00
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.11 Location reporting group
|
|
|
|
*/
|
|
|
|
group Location_reporting_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_LRP_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_LRP_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Location Reporting Control procedure
|
2017-03-15 08:33:46 +00:00
|
|
|
if (fx_MME_Location_Reporting_Control_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a LOCATION_REPORTING_CONTROL
|
|
|
|
f_recv_Location_Reporting_Control(
|
|
|
|
mw_location_Reporting_ControlIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
m_request_Type(
|
|
|
|
PX_EVENT_TYPE,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_LRP_01
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_LRP_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_LRP_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged, and a handover procedure is initiated.
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_initiate_handover();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Location Reporting Control procedure
|
2017-03-15 08:33:46 +00:00
|
|
|
if (fx_MME_Location_Reporting_Control_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a LOCATION_REPORTING_CONTROL
|
|
|
|
f_recv_Location_Reporting_Control(
|
|
|
|
mw_location_Reporting_ControlIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
m_request_Type(
|
|
|
|
direct,
|
|
|
|
PX_REPORT_AREA
|
|
|
|
)));
|
|
|
|
f_send_Location_Report_Failure_Indication(
|
|
|
|
m_location_Report_Failure_IndicationIEs(
|
|
|
|
vc_MME_UE_ID,
|
2017-03-17 13:09:21 +00:00
|
|
|
vc_eNB_UE_ID,
|
2017-02-24 13:59:39 +00:00
|
|
|
m_cause_nas(
|
|
|
|
unspecified
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_LRP_02
|
|
|
|
|
|
|
|
} // End of group Location_reporting_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc MME direct information transfer group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.12 Warning message transmission group
|
|
|
|
*/
|
|
|
|
group MME_Warning_message_transmission_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_WTP_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_WTP_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Warning Message Transmission procedure
|
2017-03-15 08:33:46 +00:00
|
|
|
if (fx_MME_Write_Replace_Warning_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a WRITE-REPLACE_WARNING_REQUEST
|
|
|
|
f_recv_Write_Replace_Warning_Request(
|
|
|
|
mw_write_Replace_Warning_RequestIEs(
|
|
|
|
PX_MESSAGE_IDENTIFIER,
|
|
|
|
PX_SERIAL_NUMBER,
|
|
|
|
PX_REPETITION_PERIOD,
|
|
|
|
PX_NUMBER_OF_BROADCASTS_REQUESTED
|
|
|
|
));
|
|
|
|
f_send_Write_Replace_Warning_Response(
|
|
|
|
m_write_Replace_Warning_ResponseIEs(
|
|
|
|
PX_MESSAGE_IDENTIFIER,
|
|
|
|
PX_SERIAL_NUMBER
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_WTP_01
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_WTP_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_WTP_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged
|
|
|
|
f_writeReplaceWarningExchanges();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a Warning Message Transmission procedure
|
2017-03-15 08:33:46 +00:00
|
|
|
if (fx_MME_Kill_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a KILLG_REQUEST
|
|
|
|
f_recv_Kill_Request(
|
|
|
|
mw_kill_RequestIEs(
|
|
|
|
PX_MESSAGE_IDENTIFIER,
|
|
|
|
PX_SERIAL_NUMBER
|
|
|
|
));
|
|
|
|
f_send_Kill_Response(
|
|
|
|
m_kill_ResponseIEs(
|
|
|
|
PX_MESSAGE_IDENTIFIER,
|
|
|
|
PX_SERIAL_NUMBER
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_WTP_02
|
|
|
|
|
|
|
|
} // End of group MME_Warning_message_transmission_group
|
2017-03-20 09:52:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc eNB direct information transfer group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.13 eNB direct information transfer group
|
|
|
|
*/
|
|
|
|
group ENB_direct_information_transfer_group {
|
|
|
|
|
|
|
|
} // End of group ENB_direct_information_transfer_group
|
|
|
|
|
|
|
|
|
2017-02-24 13:59:39 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc MME direct information transfer group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.14 MME direct information transfer group
|
|
|
|
*/
|
|
|
|
group MME_direct_information_transfer_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MIT_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MIT_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an MME Direct Information Transfer procedure
|
2017-03-15 08:33:46 +00:00
|
|
|
if (fx_MME_Direct_Information_Transfer_procedure() == false) {
|
2017-02-24 13:59:39 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a MME_DIRECT_INFORMATION_TRANSFER
|
|
|
|
f_recv_Mme_Direct_Information_Transfer(
|
|
|
|
mw_mMEDirectInformationTransfer(
|
|
|
|
mw_Inter_SystemInformationTransferType(
|
|
|
|
mw_RIMTransfer(
|
|
|
|
? // FIXME To be refined
|
|
|
|
))));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MIT_01
|
|
|
|
|
|
|
|
} // End of group MME_direct_information_transfer_group
|
2017-03-20 09:52:23 +00:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc eNB configuration transfer group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.15 eNB configuration transfer group
|
|
|
|
*/
|
|
|
|
group ENB_configuration_transfer_group {
|
|
|
|
|
|
|
|
} // End of group ENB_configuration_transfer_group
|
|
|
|
|
|
|
|
|
2017-02-24 13:59:39 +00:00
|
|
|
|
2017-01-24 14:14:30 +00:00
|
|
|
/**
|
|
|
|
* @desc MME configuration transfer group
|
2017-02-24 13:59:39 +00:00
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.16 MME configuration transfer group
|
2017-01-24 14:14:30 +00:00
|
|
|
*/
|
|
|
|
group MME_configuration_transfer_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_MCT_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_MCT_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate an MME Configuration Transfer procedure
|
2017-03-15 08:33:46 +00:00
|
|
|
if (fx_MME_Configuration_Transfer_procedure() == false) {
|
2017-01-24 14:14:30 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a MME_CONFIGURATION_TRANSFER
|
|
|
|
f_recv_Mme_Configuration_Transfer(
|
|
|
|
mw_sON_Configuration_Transfer_MCT(
|
|
|
|
mw_sON_Configuration_Transfer(
|
2017-03-17 13:09:21 +00:00
|
|
|
mw_TargeteNB_ID(mw_Global_eNB_ID, mw_TAI),
|
|
|
|
mw_SourceeNB_ID(mw_Global_eNB_ID, mw_TAI),
|
2017-01-24 14:14:30 +00:00
|
|
|
? // FIXME To be refined
|
|
|
|
)));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_MCT_01
|
|
|
|
|
|
|
|
} // End of group MME_configuration_transfer_group
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc LPPa transport group
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.17 LPPa transport group
|
|
|
|
*/
|
|
|
|
group LPPa_transport_group {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_LPP_01
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_LPP_01() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a LPPa Transport procedure using a UE associated signalling
|
2017-03-21 14:47:31 +00:00
|
|
|
if (fx_MME_LPPa_Transport_procedure_ind(true) == false) {
|
2017-01-24 14:14:30 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a DOWNLINK_UE_ASSOCIATED_LPPA_TRANSPORT
|
|
|
|
f_recv_Downlink_UE_Associated_Lppa_Transport(
|
|
|
|
mw_DownlinkUEAssociatedLppaTransportIEs_LPPa_PDU(
|
|
|
|
?
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_LPP_01
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @desc Testcase function for TC_S1AP_MME_LPP_02
|
|
|
|
*/
|
|
|
|
function f_TC_S1AP_MME_LPP_02() runs on S1APComponent {
|
|
|
|
// Local variables
|
|
|
|
|
|
|
|
// Preamble
|
|
|
|
f_S1AP_mme_init();
|
|
|
|
// Preamble action: E-RAB Setup is exchanged
|
|
|
|
f_rABSetupRequest();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
|
|
|
|
|
|
|
|
// Test body
|
|
|
|
// 1. to indicate a LPPa Transport procedure using a UE associated signalling
|
2017-03-21 14:47:31 +00:00
|
|
|
if (fx_MME_LPPa_Transport_procedure_ind(false) == false) {
|
2017-01-24 14:14:30 +00:00
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
|
|
|
|
} else {
|
|
|
|
// 2. sends a DOWNLINK_NONE_UE_ASSOCIATED_LPPA_TRANSPORT
|
|
|
|
f_recv_Downlink_Non_UE_Associated_Lppa_Transport(
|
|
|
|
mw_DownlinkNonUEAssociatedLppaTransportIEs_LPPa_PDU(
|
|
|
|
?
|
|
|
|
));
|
|
|
|
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
|
|
|
|
}
|
|
|
|
|
|
|
|
// Postamble
|
|
|
|
f_rABSetupRelease();
|
|
|
|
f_postamble_S1AP_MME();
|
|
|
|
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
|
|
|
|
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
|
|
|
|
|
|
|
|
} // End of function f_TC_S1AP_MME_LPP_02
|
|
|
|
|
|
|
|
} // End of group LPPa_transport_group
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
/**
|
2017-03-22 15:38:56 +00:00
|
|
|
* @desc Unknown, Unforseen and Erroneous Protocol Data
|
|
|
|
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.18 Unknown, Unforseen and Erroneous Protocol Data
|
2017-03-21 14:47:31 +00:00
|
|
|
*/
|
|
|
|
group Unknown_unforseen_errorneous_group {
|
2017-03-22 15:38:56 +00:00
|
|
|
|
2017-03-20 09:52:23 +00:00
|
|
|
|
2017-03-21 14:47:31 +00:00
|
|
|
} // End of group Unknown_unforseen_errorneous_group
|
2017-01-24 14:14:30 +00:00
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
} // End of group MME_Role
|
2017-01-13 10:16:04 +00:00
|
|
|
|
2017-01-16 09:27:10 +00:00
|
|
|
} // End of module S1AP_TCFunctions
|
2017-01-13 10:16:04 +00:00
|
|
|
|