MME_HAS_02-04 tests and related templates added

This commit is contained in:
pintar 2017-05-10 07:37:01 +00:00
parent d748645ebd
commit ea47198fac
3 changed files with 398 additions and 9 deletions

View File

@ -182,6 +182,15 @@ module LibS1AP_Steps {
f_recv_S1AP_successfulOutcome(mw_HandoverCommand(p_value))
} // End of function f_recv_HandoverRequired
/**
* @desc Receive S1AP Message Handover Request
* @param p_value Receive template for Handover Request IEs
*/
function f_recv_HandoverRequest(in template (present) RecordOf_ProtocolIE p_value :=?
) runs on S1APComponent {
f_recv_S1AP_initiatingMessage(mw_HandoverRequest(p_value))
} // End of function f_recv_HandoverRequest
/**
* @desc Receive S1AP Message Handover Cancel
* @param p_value Receive template for Handover Cancel IEs

View File

@ -58,7 +58,7 @@ module LibS1AP_Templates {
group HandoverPreparation {
/**
* @desc Receive template for InitiatingMessage message with Handover Required payload
* @desc Send template for InitiatingMessage message with Handover Required payload
* @param p_value The protocol information elements.
*/
template (value) InitiatingMessage m_HandoverRequired(
@ -83,9 +83,23 @@ module LibS1AP_Templates {
m_targetID_IE(p_targetId_value),
m_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
} // End of template mw_HandoverCommandIEs
template (value) RecordOf_ProtocolIE m_HandoverRequiredIEs_CSGID_CellAccessMode(
in template (value) MME_UE_S1AP_ID p_MME_value,
in template (value) ENB_UE_S1AP_ID p_eNB_value,
in template (value) HandoverType p_handoverType,
in template (value) Cause p_cause,
in template (value) TargetID p_targetId_value,
in template (value) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value,
in template (value) CSG_Id p_CSG_Id_value,
in template (value) CellAccessMode p_CellAccessMode_value
) modifies m_HandoverRequiredIEs := {
m_CSG_Id_IE(p_CSG_Id_value),
m_CellAccessMode_IE(p_CellAccessMode_value)
} // End of template mw_HandoverCommandIEs
/**
* @desc Receive template for SuccessfulOutcome message with Handover Command payload
* @desc Send template for SuccessfulOutcome message with Handover Command payload
* @param p_value The protocol information elements.
*/
template (value) SuccessfulOutcome m_HandoverCommand(
@ -1087,12 +1101,69 @@ module LibS1AP_Templates {
mw_eNB_UE_S1AP_ID(p_eNB_value),
mw_handoverType_IE(p_HandoverType_value),
mw_target_ToSource_TransparentContainer_IE(p_Target_ToSource_TransparentContainer_value)
} // End of template mw_HandoverRequiredIEs
} // End of template mw_HandoverRequiredIEs
template (present) RecordOf_ProtocolIE mw_HandoverCommandIEs_NASSecurity(
template (present) MME_UE_S1AP_ID p_MME_value := ?,
template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
template (present) HandoverType p_HandoverType_value := ?,
template (present) Target_ToSource_TransparentContainer p_Target_ToSource_TransparentContainer_value := ?,
template (present) NASSecurityParameterstoE_UTRAN p_nasSecurityParametersToEutran_value := ?
) modifies mw_HandoverCommandIEs:= {
mw_nasSecurityParametersToEutran_IE(p_nasSecurityParametersToEutran_value)
} // End of template mw_HandoverRequiredIEs
}// End of group HandoverPreparation
group HandoverResourceAllocation{
/**
* @desc Receive template for InitiatingMessage message with Handover Request payload
* @param p_value The list of Protocol IE values
*/
template (present) InitiatingMessage mw_HandoverRequest(
template (present) RecordOf_ProtocolIE p_value) := {
procedureCode := id_HandoverResourceAllocation,
criticality := reject,
value_ := {RecordOf_ProtocolIE := p_value}
} // End of template mw_HandoverRequest
template (present) RecordOf_ProtocolIE mw_HandoverRequestIEs(
template (present) MME_UE_S1AP_ID p_MME_value := ?,
template (present) HandoverType p_HandoverType_value := ?,
template (present) Cause p_Cause_value := ?,
template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?,
template (present) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItem_value := ?,
template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?,
template (present) UESecurityCapabilities p_UESecurityCapabilities := ?,
template (present) SecurityContext p_SecurityContext := ?
) := {
mw_MME_UE_S1AP_ID(p_MME_value),
mw_handoverType_IE(p_HandoverType_value),
mw_cause_IE(p_Cause_value),
mw_UE_aggregate_maximum_bitrate_IE(p_UEAggregateMaximumBitrate),
mw_E_RABToBeSetupListHOReq(p_RecordOf_E_RABToBeSetupItem_value),
mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value),
mw_UE_securityCapabilities_IE(p_UESecurityCapabilities, ignore),
mw_securityContext_IE(p_SecurityContext)
} // End of template mw_HandoverRequestIEs
template (present) RecordOf_ProtocolIE mw_HandoverRequestIEs_CSGID_CellAccessMode(
template (present) MME_UE_S1AP_ID p_MME_value := ?,
template (present) HandoverType p_HandoverType_value := ?,
template (present) Cause p_Cause_value := ?,
template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?,
template (present) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItem_value := ?,
template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?,
template (present) UESecurityCapabilities p_UESecurityCapabilities := ?,
template (present) SecurityContext p_SecurityContext := ?,
template (present) CSG_Id p_CSG_Id_value := ?,
template (present) CellAccessMode p_CellAccessMode_value := ?
) modifies mw_HandoverRequestIEs := {
mw_CSG_Id_IE(p_CSG_Id_value),
mw_CellAccessMode_IE(p_CellAccessMode_value)
} // End of template mw_HandoverRequestIEs
/**
* @desc Receive template for SuccessfulOutcome message with Handover Cancel payload
* @param p_value The expected protocol information elements. Default: ?
@ -3583,6 +3654,17 @@ module LibS1AP_Templates {
}
}
template (value) LAI m_LAI(
in template (value) PLMNidentity p_PLMNidentity,
in template (value) LAC p_lAC
) := {
pLMNidentity := p_PLMNidentity,
lAC := p_lAC,
iE_Extensions := omit
}
template (value) RNC_ID m_rNC_Id := 1;
template (value) TargetID m_Target_CGI (
in template (value) PLMNidentity p_pLMNidentity,
in template (value) LAC p_lAC,
@ -3596,6 +3678,26 @@ module LibS1AP_Templates {
iE_Extensions := omit
}
}
template (value) ProtocolIE m_CSG_Id_IE(
in template (value) CSG_Id p_value,
in template (value) ProtocolIE.criticality p_criticality := reject
) := {
id := S1AP_Constants.id_CSG_Id,
criticality := p_criticality,
value_ := {CSG_Id := valueof(p_value)}
} // End of template m_CSG_Id_IE
//template (value) CellAccessMode m_CellAccessMode_hybrid := hybrid;
template (value) ProtocolIE m_CellAccessMode_IE(
in template (value) CellAccessMode p_value,
in template (value) ProtocolIE.criticality p_criticality := reject
) := {
id := S1AP_Constants.id_CellAccessMode,
criticality := p_criticality,
value_ := {CellAccessMode := valueof(p_value)}
} // End of template m_CellAccessMode_IE
/**
* @desc Send template for UE aggregate maxmum bitrate IE
@ -4318,6 +4420,18 @@ module LibS1AP_Templates {
criticality := reject,
value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value }
} // End of template mw_E_RABToBeSetupCtxtList
/**
* @desc Send template for E-RABToBeSetupListHOReq protocol IE
* @param p_value Protocol IE value. Default: mw_E_RABToBeSetupItemHOReq
*/
template (present) ProtocolIE mw_E_RABToBeSetupListHOReq(
template (present) RecordOf_E_RABToBeSetupItemHOReq p_value := { mw_E_RABToBeSetupItemHOReq }
) := {
id := S1AP_Constants.id_E_RABToBeSetupListHOReq,
criticality := reject,
value_ := { RecordOf_E_RABToBeSetupItemHOReq := p_value }
} // End of template mw_E_RABToBeSetupListHOReq
/**
* @desc Receive template for E-RABModifiedListBearerModReq protocol IE
@ -4374,6 +4488,33 @@ module LibS1AP_Templates {
criticality := reject,
value_ := { RecordOf_E_RABToBeSwitchedDLItem := p_value }
} // End of template mw_E_RABToBeSwitchedDLList
/**
* @desc Receive template for CSG protocol IE
* @param p_value Protocol IE value. Default: ?
*/
template (present) ProtocolIE mw_CSG_Id_IE(
in template (present) CSG_Id p_value,
in template (present) ProtocolIE.criticality p_criticality := reject
) := {
id := S1AP_Constants.id_CSG_Id,
criticality := p_criticality,
value_ := {CSG_Id := p_value}
} // End of template mw_CSG_Id_IE
/**
* @desc Receive template for CellAccessMode protocol IE
* @param p_value Protocol IE value. Default: ?
*/
template (present) ProtocolIE mw_CellAccessMode_IE(
in template (present) CellAccessMode p_value,
in template (present) ProtocolIE.criticality p_criticality := reject
) := {
id := S1AP_Constants.id_CellAccessMode,
criticality := p_criticality,
value_ := {CellAccessMode := p_value}
} // End of template mw_CellAccessMode_IE
/**
* @desc Receive template for UE aggregate maxmum bitrate IE
@ -5017,6 +5158,34 @@ module LibS1AP_Templates {
value_ := {SecurityKey := p_value}
} // End of template mw_securityKey_IE
/**
* @desc Receive template for security context IE
* @param p_value SecurityContext value
* @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.26 Security Context
*/
template (present) ProtocolIE mw_securityContext_IE(
in template (present) SecurityContext p_value,
in template (present) ProtocolIE.criticality p_criticality := reject
) := {
id := S1AP_Constants.id_SecurityContext,
criticality := p_criticality,
value_ := {SecurityContext := p_value}
} // End of template m_securityContext_IE
/**
* @desc receive template for nas Security Parameters To Eutran IE
* @param p_value SecurityContext value
* @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.31 NAS Security Parameters to E_UTRAN
*/
template (present) ProtocolIE mw_nasSecurityParametersToEutran_IE(
in template (present) NASSecurityParameterstoE_UTRAN p_value,
in template (present) ProtocolIE.criticality p_criticality := reject
) := {
id := S1AP_Constants.id_NASSecurityParameterstoE_UTRAN,
criticality := p_criticality,
value_ := {NASSecurityParameterstoE_UTRAN := p_value}
} // End of template m_nasSecurityParametersToEutran_IE
/**
* @desc receive template for security key IE
* @param p_value UESecurityCapabilities value
@ -5299,11 +5468,11 @@ module LibS1AP_Templates {
* @desc
*/
template (omit) E_RABToBeSetupItemHOReq m_E_RABToBeSetupItemHOReq(
in E_RAB_ID p_e_RAB_ID := 0,
in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
in template (value) GTP_TEID p_gTP_TEID := '00000000'O,
in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters,
in template (omit) E_RABToBeSetupItemHOReq.iE_Extensions p_iE_Extensions := omit
in E_RAB_ID p_e_RAB_ID := 0,
in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
in template (value) GTP_TEID p_gTP_TEID := '00000000'O,
in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters,
in template (omit) E_RABToBeSetupItemHOReq.iE_Extensions p_iE_Extensions := omit
) := {
e_RAB_ID := p_e_RAB_ID,
transportLayerAddress := p_transportLayerAddress,
@ -5312,6 +5481,23 @@ module LibS1AP_Templates {
iE_Extensions := p_iE_Extensions
} // End of template m_E_RABToBeSetupItemHOReq
/**
* @desc
*/
template (present) E_RABToBeSetupItemHOReq mw_E_RABToBeSetupItemHOReq(
in template (present) E_RAB_ID p_e_RAB_ID := ?,
in template (present) TransportLayerAddress p_transportLayerAddress := ?,
in template (present) GTP_TEID p_gTP_TEID := ?,
in template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := ?,
in template E_RABToBeSetupItemHOReq.iE_Extensions p_iE_Extensions := *
) := {
e_RAB_ID := p_e_RAB_ID,
transportLayerAddress := p_transportLayerAddress,
gTP_TEID := p_gTP_TEID,
e_RABlevelQosParameters := p_e_RABlevelQoSParameters,
iE_Extensions := p_iE_Extensions
} // End of template mw_E_RABToBeSetupItemHOReq
/**
* @desc
* @param p_e_RAB_ID

View File

@ -4700,7 +4700,201 @@ module S1AP_TCFunctions {
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
} // End of function f_TC_S1AP_MME_HAS_01
/**
* @desc Testcase function for TC_S1AP_MME_HAS_02
*/
function f_TC_S1AP_MME_HAS_02() runs on S1APComponent {
// Local variables
const SourceRNC_ToTargetRNC_TransparentContainer c_sourceRNC_ToTargetRNC_TransparentContainer := '12121212'O;
const TargetRNC_ToSourceRNC_TransparentContainer c_targetRNC_ToSourceRNC_TransparentContainer := '12121212'O;
// Preamble
f_S1AP_mme_init();
// Preamble action: E-RAB Setup is exchanged.
//f_rABSetup...;
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
// Test body
// sends a HANDOVER_REQUIRED
f_send_HandoverRequired(
m_HandoverRequiredIEs(
vc_MME_UE_ID,
vc_eNB_UE_ID,
ltetoutran,
m_cause_ran(unspecified),
m_TargetRNC_ID(m_LAI('000001'O, //plmn id
'0001'O), //lac
m_rNC_Id),
c_sourceRNC_ToTargetRNC_TransparentContainer
));
f_recv_HandoverCommand(
mw_HandoverCommandIEs_NASSecurity(
vc_MME_UE_ID,
vc_eNB_UE_ID,
ltetoutran,//handover_Type
c_targetRNC_ToSourceRNC_TransparentContainer,//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_MME_HAS_02
/**
* @desc Testcase function for TC_S1AP_MME_HAS_03
*/
function f_TC_S1AP_MME_HAS_03() runs on S1APComponent {
// Local variables
const SourceBSS_ToTargetBSS_TransparentContainer c_sourceBSS_ToTargetBSS_TransparentContainer := '12121212'O;
const TargetBSS_ToSourceBSS_TransparentContainer c_targetBSS_ToSourceBSS_TransparentContainer := '12121212'O;
// Preamble
f_S1AP_mme_init();
// Preamble action: E-RAB Setup is exchanged.
//f_rABSetup...;
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
// Test body
// sends a HANDOVER_REQUIRED
f_send_HandoverRequired(
m_HandoverRequiredIEs(
vc_MME_UE_ID,
vc_eNB_UE_ID,
ltetogeran,
m_cause_ran(unspecified),
m_Target_CGI('000001'O, //plmn id
'0001'O,//lac
'0001'O //ci
),
c_sourceBSS_ToTargetBSS_TransparentContainer
));
f_recv_HandoverCommand(
mw_HandoverCommandIEs_NASSecurity(
vc_MME_UE_ID,
vc_eNB_UE_ID,
ltetogeran,//handover_Type
c_targetBSS_ToSourceBSS_TransparentContainer,//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_MME_HAS_03
/**
* @desc Testcase function for TC_S1AP_MME_HAS_04_ENB1
*/
function f_TC_S1AP_MME_HAS_04_ENB1() runs on S1APComponent {
// Local variables
const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
// Preamble
f_S1AP_mme_init();
// Preamble action: E-RAB Setup is exchanged.
//f_rABSetup...;
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
// Test body
// sends a HANDOVER_REQUIRED
f_send_HandoverRequired(
m_HandoverRequiredIEs_CSGID_CellAccessMode(
vc_MME_UE_ID,
vc_eNB_UE_ID,
intralte,
m_cause_ran(unspecified),
m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
m_ENB_ID_macro),
m_TAI('000001'O,
'0001'O)),
c_source_ToTarget_TransparentContainer,
'000000000000000000000000001'B,
hybrid
));
f_recv_HandoverCommand(
mw_HandoverCommandIEs(
vc_MME_UE_ID,
vc_eNB_UE_ID,
intralte,//handover_Type
c_target_ToSource_TransparentContainer//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_MME_HAS_04_ENB1
/**
* @desc Testcase function for TC_S1AP_MME_HAS_04_ENB2
*/
function f_TC_S1AP_MME_HAS_04_ENB2() runs on S1APComponent {
// Local variables
const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
// Preamble
f_S1AP_mme_init();
// Preamble action: E-RAB Setup is exchanged.
//f_rABSetup...;
f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
// Test body
// sends a HANDOVER_REQUIRED
f_recv_HandoverRequest(
mw_HandoverRequestIEs_CSGID_CellAccessMode(
-,
-,
-,
-,
{?},//E_RabsToBeSetupItem
-,
-,
-,
-,
-
));
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
//send HandoverRequestAck
// Postamble
//f_rABSetupRelease...;
f_postamble_S1AP_eNB();
f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
} // End of function f_TC_S1AP_MME_HAS_04_ENB2
} // End of group Handover_signalling_group
/**