From de03f16e67343a491a495197bb9717039dbfe701 Mon Sep 17 00:00:00 2001 From: rennoch Date: Wed, 22 Mar 2017 14:44:20 +0000 Subject: [PATCH] completion of f_TC_S1AP_eNB_CMP_13 --- ttcn3/LibS1AP/LibS1AP_Steps.ttcn | 27 +++++++++++++++-- ttcn3/LibS1AP/LibS1AP_Templates.ttcn | 45 +++++++++++++++++++++++++++- ttcn3/S1AP_TCFunctions.ttcn | 35 ++++++++++++++++++++++ 3 files changed, 104 insertions(+), 3 deletions(-) diff --git a/ttcn3/LibS1AP/LibS1AP_Steps.ttcn b/ttcn3/LibS1AP/LibS1AP_Steps.ttcn index ed2f636..93a0db1 100644 --- a/ttcn3/LibS1AP/LibS1AP_Steps.ttcn +++ b/ttcn3/LibS1AP/LibS1AP_Steps.ttcn @@ -639,7 +639,7 @@ module LibS1AP_Steps { } // End of f_recv_UE_Context_Release_Request /** - * @desc Receive S1AP Message UE Context Release Request + * @desc Receive S1AP Message UE Context Release Complete * @param p_value Receive template for UE CONTEXT RELEASE COMPLETE * @see ETSI TS 136 413 V13.4.0 Clause 9.1.4.7 UE CONTEXT RELEASE COMPLETE */ @@ -648,6 +648,17 @@ module LibS1AP_Steps { ) runs on S1APComponent { f_recv_S1AP_initiatingMessage(mw_UeContextReleaseComplete(p_value)) } // End of f_recv_UE_Context_Release_Complete + + /** + * @desc Receive S1AP Message UE Context Modification Response + * @param p_value Receive template for UE CONTEXT MODIFICATION RESPONSE + * @see ETSI TS 136 413 V13.4.0 Clause 9.1.4.9 UE CONTEXT MODIFICATION RESPONSE + */ + function f_recv_UE_Context_Modification_Response( + template (present) RecordOf_ProtocolIE p_value := ? + ) runs on S1APComponent { + f_recv_S1AP_initiatingMessage(mw_UeContextModificationResponse(p_value)) + } // End of f_recv_UE_Context_Modification_Response } // End of group receivePDU @@ -896,7 +907,19 @@ module LibS1AP_Steps { template (value) RecordOf_ProtocolIE p_value ) runs on S1APComponent { f_send_S1AP_initiatingMessage(m_UeContextReleaseCommand(p_value)) - } // End of f_recv_UE_Context_Release_Request + } // End of f_send_UE_Context_Release_Command + + /** + * @desc Send S1AP Message UE Context Modification Request + * @param p_value Send template for UE CONTEXT MODIFICATION REQUEST + * @see ETSI TS 136 413 V13.4.0 Clause 9.1.4.8 UE CONTEXT MODIFICATION COMMAND + */ + function f_send_UE_Context_Modification_Request( + template (value) RecordOf_ProtocolIE p_value + ) runs on S1APComponent { + f_send_S1AP_initiatingMessage(m_UeContextModificationRequest(p_value)) + } // End of f_send_UE_Context_Modification_Request + } // End of group sendPDU diff --git a/ttcn3/LibS1AP/LibS1AP_Templates.ttcn b/ttcn3/LibS1AP/LibS1AP_Templates.ttcn index 16f1be0..84de950 100644 --- a/ttcn3/LibS1AP/LibS1AP_Templates.ttcn +++ b/ttcn3/LibS1AP/LibS1AP_Templates.ttcn @@ -158,7 +158,7 @@ module LibS1AP_Templates { } // End of template m_InitialContextSetupReqIEs /** - * @desc Send template for InitiatingMessage message with InitialContextSetup payload + * @desc Send template for InitiatingMessage message with UeContextReleaseCommand payload * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeContextReleaseCommand( @@ -183,6 +183,28 @@ module LibS1AP_Templates { m_eNB_UE_S1AP_ID(p_eNB_value), m_cause_IE(p_cause) } // End of template m_UeContextReleaseCommandIEs_ENB + + + /** + * @desc Send template for InitiatingMessage message with m_UeContextModificationRequest payload + * @param p_value Expected procedure code + */ + template (value) InitiatingMessage m_UeContextModificationRequest( + in template (value) RecordOf_ProtocolIE p_value) := { + procedureCode := id_UEContextModification, + criticality := reject, + value_ := {RecordOf_ProtocolIE := valueof(p_value)} + } // End of template m_UeContextModificationRequest + + template (value) RecordOf_ProtocolIE m_ContextModificationReqIEs( + in template (value) MME_UE_S1AP_ID p_MME_value, + in template (value) ENB_UE_S1AP_ID p_eNB_value, + in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate + ) := { + m_MME_UE_S1AP_ID(p_MME_value), + m_eNB_UE_S1AP_ID(p_eNB_value), + m_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate) + } // End of template m_ContextModificationReqIEs }// End of group Context_management_group @@ -670,6 +692,27 @@ module LibS1AP_Templates { mw_eNB_UE_S1AP_ID(p_eNB_value, ignore), mw_cause_IE(p_cause) } // End of template mw_UeContextReleaseCompleteIEs + + /** + * @desc Receive template for mw_UeContextModificationResponse message + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? + */ + template (present) SuccessfulOutcome mw_UeContextModificationResponse( + template (present) RecordOf_ProtocolIE p_value := ? + ) := { + procedureCode := id_UEContextModification, + criticality := reject, + value_ := {RecordOf_ProtocolIE := p_value} + } // End of template mw_UeContextReleaseComplete + + template (present) RecordOf_ProtocolIE mw_UeContextModificationResponseIEs( + template (present) MME_UE_S1AP_ID p_MME_value := ?, + template (present) ENB_UE_S1AP_ID p_eNB_value := ? + ) := { + mw_MME_UE_S1AP_ID(p_MME_value, ignore), + mw_eNB_UE_S1AP_ID(p_eNB_value, ignore) + } // End of template mw_UeContextReleaseCompleteIEs } // End of group Context_management_group diff --git a/ttcn3/S1AP_TCFunctions.ttcn b/ttcn3/S1AP_TCFunctions.ttcn index c8b1bf2..598a1d1 100644 --- a/ttcn3/S1AP_TCFunctions.ttcn +++ b/ttcn3/S1AP_TCFunctions.ttcn @@ -1229,6 +1229,41 @@ module S1AP_TCFunctions { } // End of function f_TC_S1AP_eNB_CMP_12 + /** + * @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(); + + f_rABSetupRequest(); + + f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); + log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); + + // Test body + f_send_UE_Context_Modification_Request(m_ContextModificationReqIEs( + vc_MME_UE_ID, + vc_eNB_UE_ID, + m_UEAggregateMaximumBitrate(1,1) + )); + + f_recv_UE_Context_Modification_Response(mw_UeContextModificationResponseIEs( + 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_13 + } // End of group Context_management_group