new IE(E-RABToBeSetup) prepared for Context Management Group and will be used in TCFunction module

New test for Handover group added.
This commit is contained in:
pintar 2017-03-24 12:51:00 +00:00
parent 5d536932f8
commit 853d097ee7
4 changed files with 159 additions and 4 deletions

View File

@ -177,6 +177,15 @@ module LibS1AP_Steps {
f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value))
} // End of function f_recv_HandoverRequired
/**
* @desc Receive S1AP Message Handover Cancel
* @param p_value Receive template for Handover Cancel IEs
*/
function f_recv_HandoverCancel(in template (present) RecordOf_ProtocolIE p_value :=?
) runs on S1APComponent {
f_recv_S1AP_initiatingMessage(mw_HandoverCancel(p_value))
} // End of function f_recv_HandoverCancel
/**
* @desc Receive S1AP Message InitialContext_SetupResponse
* @param p_value Receive template for InitialContext_SetupResponse IEs

View File

@ -614,9 +614,8 @@ module LibS1AP_Templates {
mw_handoverType_IE(p_HandoverType_value),
mw_cause_IE(p_Cause_value),
mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
} // End of template m_E_RABSetupReqIEs
} // End of template mw_HandoverRequiredIEs
}// End of group HandoverPreparation
group HandoverPreparation{
@ -627,6 +626,31 @@ module LibS1AP_Templates {
}// End of group HandoverResourceAllocation
group HandoverCancelation{
/**
* @desc Receive template for InitiatingMessage message with Handover Cancel payload
* @param p_value The procedure code value
*/
template (present) InitiatingMessage mw_HandoverCancel(
template (present) RecordOf_ProtocolIE p_value) := {
procedureCode := id_HandoverCancel,
criticality := reject,
value_ := {RecordOf_ProtocolIE := p_value}
} // End of template mw_HandoverCancel
template (value) RecordOf_ProtocolIE mw_HandoverCancelIEs(
template (present) MME_UE_S1AP_ID p_MME_value := ?,
template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
template (present) Cause p_Cause_value := ?
) := {
mw_MME_UE_S1AP_ID(p_MME_value),
mw_eNB_UE_S1AP_ID(p_eNB_value),
mw_cause_IE(p_Cause_value)
} // End of template mw_HandoverCancelIEs
}// End of group HandoverCancelation
group ERABModify{
@ -2758,6 +2782,20 @@ module LibS1AP_Templates {
value_ := { RecordOf_E_RABToBeSetupItemBearerSUReq := valueof(p_value) }
} // End of template m_E_RABToBeSetupList
/**
* @desc Send template for E-RABToBeSetupListCtxtSUReq protocol IE
* @param p_value Protocol IE value. Default: m_E_RABToBeSetupListCtxtSUReq
*/
template (value) ProtocolIE m_E_RABToBeSetupListCtxt(
in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { m_E_RABToBeSetupItemCtxtSUReq }
) := {
id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
criticality := reject,
value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := valueof(p_value) }
} // End of template m_E_RABToBeSetupListCtxt
/**
* @desc Send template for E-RABToBeModifiedItemBearerModReq protocol IE
* @param p_value Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
@ -3064,6 +3102,18 @@ module LibS1AP_Templates {
criticality := ignore,
value_ := { RecordOf_E_RABSetupItemBearerSURes := p_value }
} // End of template
/**
* @desc Receive template for E-RABSetupListCtxtSUReq protocol IE
* @param p_value Expected protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
*/
template (present) ProtocolIE mw_E_RABSetupListCtxt(
template (present) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { mw_E_RABToBeSetupItemCtxtSUReq }
) := {
id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
criticality := ignore,
value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value }
} // End of template
/**
* @desc Receive template for E-RABToBeSetupListBearerSUReq protocol IE
@ -3890,6 +3940,44 @@ module LibS1AP_Templates {
iE_Extensions := *
} // End of template mw_E_RABSetupItemBearerSURes
/**
* @desc
*/
template(omit) E_RABToBeSetupItemCtxtSUReq m_E_RABToBeSetupItemCtxtSUReq(
in E_RAB_ID p_e_RAB_ID := 0,
in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters,
in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
in template (value) GTP_TEID p_gTP_TEID := '00000000'O,
in template (omit) NAS_PDU p_nAS_PDU := '0000'O,
in template (omit) E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := omit
) := {
e_RAB_ID := p_e_RAB_ID,
e_RABlevelQoSParameters := valueof(p_e_RABlevelQoSParameters),
transportLayerAddress := p_transportLayerAddress,
gTP_TEID := p_gTP_TEID,
nAS_PDU := p_nAS_PDU,
iE_Extensions := p_iE_Extensions
} // End of template m_E_RABToBeSetupItemCtxtSUReq
/**
* @desc
*/
template (present) E_RABToBeSetupItemCtxtSUReq mw_E_RABToBeSetupItemCtxtSUReq(
template (present) E_RAB_ID p_e_RAB_ID := 0,
template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := mw_e_RABlevelQoSParameters,
template (present) TransportLayerAddress p_transportLayerAddress := '0'B,
template (present) GTP_TEID p_gTP_TEID := '00000000'O,
template NAS_PDU p_nAS_PDU := ?,
template E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := *
) := {
e_RAB_ID := p_e_RAB_ID,
e_RABlevelQoSParameters := p_e_RABlevelQoSParameters,
transportLayerAddress := p_transportLayerAddress,
gTP_TEID := p_gTP_TEID,
nAS_PDU := p_nAS_PDU,
iE_Extensions := p_iE_Extensions
} // End of template mw_E_RABToBeSetupItemCtxtSUReq
/**
* @desc
*/

View File

@ -20,6 +20,11 @@ module LibS1AP_TypesAndValues {
*/
type record of E_RABToBeSetupItemBearerSUReq RecordOf_E_RABToBeSetupItemBearerSUReq;
/**
* @desc List of E-RABToBeSetupItemCtxtSUReq IEs
*/
type record of E_RABToBeSetupItemCtxtSUReq RecordOf_E_RABToBeSetupItemCtxtSUReq;
/**
* @desc List of E-RABModifiedItemBearerSURes IEs
*/

View File

@ -1680,7 +1680,7 @@ module S1AP_TCFunctions {
)}
));
//TODO check case1 and case2 option
f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
@ -1693,6 +1693,59 @@ module S1AP_TCFunctions {
} // End of function f_TC_S1AP_eNB_HAS_04
/**
* @desc Testcase function for TC_S1AP_eNB_HAS_05
*/
function f_TC_S1AP_eNB_HAS_05() 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();
// Preamble action: TODO check if some preamble required
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.");
//TODO f_wait
f_recv_HandoverCancel(
mw_HandoverCancelIEs(
vc_MME_UE_ID,
vc_eNB_UE_ID,
-//Cause
));
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_HAS_05
} // End of group Handover_signalling_group
/**