MME_HAS_01 test and related templates added

This commit is contained in:
pintar 2017-05-09 08:42:18 +00:00
parent 68538a0752
commit e60fc2e524
3 changed files with 208 additions and 2 deletions

View File

@ -191,6 +191,15 @@ module LibS1AP_Steps {
f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value))
} // End of function f_recv_HandoverRequired
/**
* @desc Receive S1AP Message Handover Command
* @param p_value Receive template for Handover Command IEs
*/
function f_recv_HandoverCommand(in template (present) RecordOf_ProtocolIE p_value :=?
) runs on S1APComponent {
f_recv_S1AP_successfulOutcome(mw_HandoverCommand(p_value))
} // End of function f_recv_HandoverRequired
/**
* @desc Receive S1AP Message Handover Cancel
* @param p_value Receive template for Handover Cancel IEs
@ -1009,6 +1018,15 @@ module LibS1AP_Steps {
))
} // End of function f_send_InitialContext_SetupRequest
/**
* @desc Send S1AP Message f_send_HandoverRequired
* @param p_value Send template with IE for HandoverRequest
*/
function f_send_HandoverRequired(in template (value) RecordOf_ProtocolIE p_value
) runs on S1APComponent {
f_send_S1AP_initiatingMessage(m_HandoverRequired(p_value))
} // End of function f_send_HandoverRequest
/**
* @desc Send S1AP Message f_send_HandoverRequest
* @param p_value Send template with IE for HandoverRequest
@ -1541,6 +1559,18 @@ module LibS1AP_Steps {
group mmeRole {
/**
* @desc Trigger a Handover preparation procedure
* @return true on success, false otherwise
*/
external function fx_MME_Handover_preparation_procedure() return boolean;
/**
* @desc Trigger a Handover notification procedure
* @return true on success, false otherwise
*/
external function fx_MME_Handover_notification_procedure() return boolean;
/**
* @desc Trigger a PAGING event
* @return true on success, false otherwise

View File

@ -43,7 +43,7 @@ module LibS1AP_Templates {
criticality := reject,
value_ := p_value
}
} // End of template m_initiatingMessage
} // End of template m_HandoverPreparation
} // End of group g_S1AP_PDU
@ -57,13 +57,40 @@ module LibS1AP_Templates {
group HandoverPreparation {
/**
* @desc Receive template for InitiatingMessage message with Handover Required payload
* @param p_value The procedure code value
*/
template (value) InitiatingMessage m_HandoverRequired(
template (value) RecordOf_ProtocolIE p_value) := {
procedureCode := id_HandoverPreparation,
criticality := reject,
value_ := {RecordOf_ProtocolIE := p_value}
} // End of template m_HandoverRequired
template (value) RecordOf_ProtocolIE m_HandoverRequiredIEs(
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
) := {
m_MME_UE_S1AP_ID(p_MME_value),
m_eNB_UE_S1AP_ID(p_eNB_value),
m_handoverType_IE(p_handoverType),
m_cause_IE(p_cause),
m_targetID_IE(p_targetId_value),
m_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
} // End of template mw_HandoverCommandIEs
/**
* @desc Receive template for SuccessfulOutcome message with Handover Command payload
* @param p_value The procedure code value
*/
template (value) SuccessfulOutcome m_HandoverCommand(
template (value) RecordOf_ProtocolIE p_value) := {
procedureCode := id_HandoverCancel,
procedureCode := id_HandoverPreparation,
criticality := reject,
value_ := {RecordOf_ProtocolIE := p_value}
} // End of template m_HandoverCommand
@ -914,6 +941,29 @@ module LibS1AP_Templates {
}// End of group HandoverPreparation
group HandoverPreparation{
/**
* @desc Receive template for SuccessfulOutcome message with Handover Command payload
* @param p_value The procedure code value
*/
template (present) SuccessfulOutcome mw_HandoverCommand(
template (present) RecordOf_ProtocolIE p_value) := {
procedureCode := id_HandoverPreparation,
criticality := reject,
value_ := {RecordOf_ProtocolIE := p_value}
} // End of template mw_HandoverCommand
template (present) RecordOf_ProtocolIE mw_HandoverCommandIEs(
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 := ?
) := {
mw_MME_UE_S1AP_ID(p_MME_value),
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 group HandoverPreparation
@ -3301,6 +3351,84 @@ module LibS1AP_Templates {
criticality := p_criticality,
value_ := {Cause := valueof(p_cause)}
} // End of template m_cause_IE
/**
* @desc Send template for TargetID protocol IE
* @param p_cause Expected Cause value
* @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.8 TargetID
*/
template (value) ProtocolIE m_targetID_IE(
in template (value) TargetID p_target,
in template (value) ProtocolIE.criticality p_criticality := reject
) := {
id := S1AP_Constants.id_TargetID,
criticality := p_criticality,
value_ := {TargetID := valueof(p_target)}
} // End of template m_targetID_IE
template (value) TargetID m_TargeteNB_ID (
in template (value) Global_ENB_ID p_global_ENB_ID,
in template (value) TAI p_selected_TAI
) := {
targeteNB_ID :={
global_ENB_ID := p_global_ENB_ID,
selected_TAI := p_selected_TAI,
iE_Extensions := omit
}
}
template (value) Global_ENB_ID m_Global_ENB_ID(
in template (value) PLMNidentity p_PLMNidentity,
in template (value) ENB_ID p_ENB_ID
) := {
pLMNidentity := p_PLMNidentity,
eNB_ID := p_ENB_ID,
iE_Extensions := omit
}
template ENB_ID m_ENB_ID_macro:={
macroENB_ID :='00000000000000000001'B
}
template ENB_ID m_ENB_ID_home:={
homeENB_ID :='0000000000000000000000000001'B
}
template (value) TAI m_TAI (
in template (value) PLMNidentity p_PLMNidentity,
in template (value) TAC p_TAC
) :={
pLMNidentity := p_PLMNidentity,
tAC := p_TAC,
iE_Extensions := omit
}
template (value) TargetID m_TargetRNC_ID (
in template (value) LAI p_lAI,
in template (value) RNC_ID p_rNC_ID
) := {
targetRNC_ID :={
lAI := p_lAI,
rAC:= omit,
rNC_ID := p_rNC_ID,
extendedRNC_ID := omit,
iE_Extensions := omit
}
}
template (value) TargetID m_Target_CGI (
in template (value) PLMNidentity p_pLMNidentity,
in template (value) LAC p_lAC,
in template (value) CI p_cI
) := {
cGI :={
pLMNidentity := p_pLMNidentity,
lAC := p_lAC,
cI := p_cI,
rAC := omit,
iE_Extensions := omit
}
}
/**
* @desc Send template for UE aggregate maxmum bitrate IE

View File

@ -4591,6 +4591,54 @@ module S1AP_TCFunctions {
* @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.4 Handover signalling group
*/
group Handover_signalling_group {
/**
* @desc Testcase function for TC_S1AP_MME_HAS_01
*/
function f_TC_S1AP_MME_HAS_01() 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(
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
));
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_01
} // End of group Handover_signalling_group