diff --git a/ttcn3/LibS1AP/LibS1AP_Steps.ttcn b/ttcn3/LibS1AP/LibS1AP_Steps.ttcn index 05ba548..791a9ca 100644 --- a/ttcn3/LibS1AP/LibS1AP_Steps.ttcn +++ b/ttcn3/LibS1AP/LibS1AP_Steps.ttcn @@ -996,6 +996,15 @@ module LibS1AP_Steps { ) runs on S1APComponent { f_send_S1AP_initiatingMessage(m_E_RABSetupRequest(p_value)) } // End of function f_send_E_RABSetupRequest + + /** + * @desc Send S1AP Message E-RAB_SetupResponse + * @param p_value Send template with IE for E-RAB_SetupResponse + */ + function f_send_E_RABSetupResponse(in template (value) RecordOf_ProtocolIE p_value + ) runs on S1APComponent { + f_send_S1AP_initiatingMessage(m_E_RABSetupResponse(p_value)) + } // End of function f_send_E_RABSetupResponse /** * @desc Send S1AP Message E-RAB_ReleaseRequest diff --git a/ttcn3/LibS1AP/LibS1AP_Templates.ttcn b/ttcn3/LibS1AP/LibS1AP_Templates.ttcn index 5f51d7a..c83d1b5 100644 --- a/ttcn3/LibS1AP/LibS1AP_Templates.ttcn +++ b/ttcn3/LibS1AP/LibS1AP_Templates.ttcn @@ -274,6 +274,28 @@ module LibS1AP_Templates { m_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate), m_E_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value) } // End of template m_E_RABSetupReqIEs + + /** + * @desc Send template for InitiatingMessage message with E-RABSetup response payload + * @param p_value The procedure code value + */ + template (value) InitiatingMessage m_E_RABSetupResponse( + in template (value) RecordOf_ProtocolIE p_value) := { + procedureCode := id_E_RABSetup, + criticality := reject, + value_ := {RecordOf_ProtocolIE := valueof(p_value)} + } // End of template m_E_RABSetupResponse + + template (value) RecordOf_ProtocolIE m_E_RABSetupResIEs( + in template (value) MME_UE_S1AP_ID p_MME_value, + in template (value) ENB_UE_S1AP_ID p_eNB_value, + in template (value) RecordOf_E_RABSetupItemBearerSURes p_RecordOf_E_RABSetupItem_value + ) := { + m_MME_UE_S1AP_ID(p_MME_value), + m_eNB_UE_S1AP_ID(p_eNB_value), + m_E_RABSetupList(p_RecordOf_E_RABSetupItem_value) + } // End of template m_E_RABSetupResIEs + } // End of group ERABSetup @@ -419,15 +441,6 @@ module LibS1AP_Templates { m_securityKey_IE(p_SecurityKey) } // End of templaunknown_IDunknown_IDte m_InitialContextSetupReqIEs - /** - * @desc Send template for InitialContextSetupReq message, with no eNB ID - * @param p_eNB_value The eNB UE S1AP ID value. - * @param p_MME_value The MME UE S1AP ID value. - * @param p_uEAggregateMaximumBitrate The UE Aggregate Maximum Bit rate value. - * @param p_RecordOf_E_RABToBeSetupItemCtxt_value The list og E-RAB To Be Setup Item Ctxt values. - * @param @param p_uESecurityCapabilities The UE Security Capabilities value. - * @param p_SecurityKey The security key value. - */ template (value) RecordOf_ProtocolIE m_InitialContextSetupReqIEs_noENB( in template (value) MME_UE_S1AP_ID p_MME_value, in template (value) UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate, @@ -460,17 +473,8 @@ module LibS1AP_Templates { in template (value) SecurityKey p_SecurityKey ) modifies m_InitialContextSetupReqIEs := { m_eNB_UE_S1AP_ID(p_eNB_value) - } // End of templaunknown_IDunknown_IDte m_InitialContextSetupReqIEs_duplicate_eNB + } // End of templaunknown_IDunknown_IDte m_InitialContextSetupReqIEs_duplicate_ENB - /** - * @desc Send template for InitialContextSetupReq message, with some unknown IE - * @param p_eNB_value The eNB UE S1AP ID value. - * @param p_MME_value The MME UE S1AP ID value. - * @param p_uEAggregateMaximumBitrate The UE Aggregate Maximum Bit rate value. - * @param p_RecordOf_E_RABToBeSetupItemCtxt_value The list og E-RAB To Be Setup Item Ctxt values. - * @param @param p_uESecurityCapabilities The UE Security Capabilities value. - * @param p_SecurityKey The security key value. - */ template (value) RecordOf_ProtocolIE m_InitialContextSetupReqIEs_unknown_ID( in template (value) MME_UE_S1AP_ID p_MME_value, in template (value) ENB_UE_S1AP_ID p_eNB_value, @@ -484,7 +488,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with UeContextReleaseRequest payload - * @param p_value The protocol information elements. + * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeContextReleaseRequest( in template (value) RecordOf_ProtocolIE p_value) := { @@ -506,7 +510,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with UEContextRelease payload - * @param p_value The protocol information elements. + * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeContextReleaseCommand( in template (value) RecordOf_ProtocolIE p_value) := { @@ -533,7 +537,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with UEContextReleaseComplete payload - * @param p_value The protocol information elements. + * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeContextReleaseComplete( in template (value) RecordOf_ProtocolIE p_value) := { @@ -553,7 +557,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with UEContextSuspendRequest payload - * @param p_value The protocol information elements. + * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeContextSuspendRequest( in template (value) RecordOf_ProtocolIE p_value) := { @@ -572,8 +576,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with UEContextResumeRequest payload - * @param p_value The protocol information elements. - * @param p_criticality The Criticality value. defaulf: reject + * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeContextResumeRequest( in template (value) RecordOf_ProtocolIE p_value, @@ -626,7 +629,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with m_UeContextModificationRequest payload - * @param p_value The protocol information elements. + * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeContextModificationRequest( in template (value) RecordOf_ProtocolIE p_value) := { @@ -671,7 +674,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with m_UeContextModificationIndication payload - * @param p_value The protocol information elements. + * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeContextModificationIndication( in template (value) RecordOf_ProtocolIE p_value) := { @@ -700,7 +703,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with m_UeRadioCapabilityMatchRequest payload - * @param p_value The protocol information elements. + * @param p_value Expected procedure code */ template (value) InitiatingMessage m_UeRadioCapabilityMatchRequest( in template (value) RecordOf_ProtocolIE p_value) := { @@ -806,7 +809,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with ENB CONFIGURATION UPDATE ACKNOWLEDGE payload - * @param p_value The protocol information elements. + * @param p_value Expected protocol information elements. */ template (value) SuccessfulOutcome m_eNB_Configuration_Update_Acknowledge( in template (value) RecordOf_ProtocolIE p_value @@ -825,7 +828,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with MME CONFIGURATION UPDATE payload - * @param p_value The protocol information elements. + * @param p_value Expected protocol information elements. */ template (value) InitiatingMessage m_mME_Configuration_Update( in template (value) RecordOf_ProtocolIE p_value @@ -848,7 +851,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with MME CONFIGURATION UPDATE ACKNOWLEDGE payload - * @param p_value The protocol information elements. + * @param p_value Expected protocol information elements. */ template (value) SuccessfulOutcome m_mME_Configuration_Update_Acknowledge( in template (value) RecordOf_ProtocolIE p_value @@ -960,7 +963,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with KILL REQUEST payload - * @param p_value The protocol information elements + * @param p_value The procedure code value */ template (value) InitiatingMessage m_kill_Request( in template (value) RecordOf_ProtocolIE p_value) := { @@ -984,7 +987,7 @@ module LibS1AP_Templates { /** * @desc Send template for InitiatingMessage message with KILL REQUEST payload - * @param p_value The protocol information elements + * @param p_value The procedure code value */ template (value) InitiatingMessage m_kill_Response( in template (value) RecordOf_ProtocolIE p_value) := { @@ -1202,8 +1205,7 @@ module LibS1AP_Templates { /** * @desc Receive template for SuccessfulOutcome/R-RAB_Setup message - * @param p_procedureCode Expected procedure code. Default: ? - * @param p_value Expected procedure code. Default: ? + * @param p_value The expected protocol information elements. Default: ? */ template (present) SuccessfulOutcome mw_E_RABModifiedResponse( template (present) RecordOf_ProtocolIE p_value := ? @@ -1374,12 +1376,6 @@ module LibS1AP_Templates { mw_E_RABFailedToSetupList(p_E_RABItem_value) } // End of template mw_InitialContextSetupResIEs - /** - * @desc Receive template for InitialContextSetupFailure message - * @param p_MME_value The expected MME UE S1AP ID value. Default: ? - * @param p_eNB_value The expected eNB UE S1AP ID value. Default: ? - * @param p_cause The expected cause value. Default: ? - */ template (present) RecordOf_ProtocolIE mw_InitialContextSetupFailureIEs( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) ENB_UE_S1AP_ID p_eNB_value := ?, @@ -1390,13 +1386,6 @@ module LibS1AP_Templates { mw_cause_IE(p_cause) } // End of template mw_InitialContextSetupResIEs - /** - * @desc Receive template for InitialContextSetupFailure message with Criticaly Diagnostic IE - * @param p_MME_value The expected MME UE S1AP ID value. Default: ? - * @param p_eNB_value The expected eNB UE S1AP ID value. Default: ? - * @param p_cause The expected cause value. Default: ? - * @param p_criticalyDiagnostic The expected criticaly diagnostic value. Default: ? - */ template (present) RecordOf_ProtocolIE mw_InitialContextSetupFailureIEs_CriticalyDiagnostic( template (present) MME_UE_S1AP_ID p_MME_value := ?, template (present) ENB_UE_S1AP_ID p_eNB_value := ?, @@ -1411,8 +1400,8 @@ module LibS1AP_Templates { /** * @desc Receive template for InitialContextSetup message - * @param p_value The expected protocol information elements. Default: ? - * @param p_criticality The expected criticality value. Default: reject + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_InitialContextSetupRequest( template (present) RecordOf_ProtocolIE p_value := ?, @@ -1442,7 +1431,8 @@ module LibS1AP_Templates { /** * @desc Receive template for UeContextReleaseRequest message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextReleaseRequest( template (present) RecordOf_ProtocolIE p_value := ? @@ -1466,7 +1456,8 @@ module LibS1AP_Templates { /** * @desc Receive template for UeContextReleaseCommand message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextReleaseCommand( template (present) RecordOf_ProtocolIE p_value := ? @@ -1495,7 +1486,8 @@ module LibS1AP_Templates { /** * @desc Receive template for UeContextReleaseComplete message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextReleaseComplete( template (present) RecordOf_ProtocolIE p_value := ? @@ -1518,7 +1510,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextModificationResponse message - * @param p_value The expected protocol information elements. Default: ? + * @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 := ? @@ -1538,7 +1531,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextModificationFailure message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextModificationFailure( template (present) RecordOf_ProtocolIE p_value := ? @@ -1562,7 +1556,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextModificationRequest message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextModificationRequest( template (present) RecordOf_ProtocolIE p_value := ? @@ -1585,7 +1580,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextModificationIndication message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextModificationIndication( template (present) RecordOf_ProtocolIE p_value := ? @@ -1606,7 +1602,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextModificationConfirm message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextModificationConfirm( template (present) RecordOf_ProtocolIE p_value := ? @@ -1635,7 +1632,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextSuspendRequest message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextSuspendRequest( template (present) RecordOf_ProtocolIE p_value := ? @@ -1655,7 +1653,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextResumeRequest message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextSuspendResponse( template (present) RecordOf_ProtocolIE p_value := ? @@ -1675,7 +1674,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextResumeFailure message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextResumeRequest( template (present) RecordOf_ProtocolIE p_value := ? @@ -1699,7 +1699,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextResumeResponse message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextResumeResponse( template (present) RecordOf_ProtocolIE p_value := ? @@ -1719,7 +1720,7 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeContextResumeFailure message - * @param p_value The expected protocol information elements. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeContextResumeFailure( template (present) RecordOf_ProtocolIE p_value := ? @@ -1743,7 +1744,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeRadioCapabilityMatchResponse message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeRadioCapabilityMatchResponse( template (present) RecordOf_ProtocolIE p_value := ? @@ -1766,7 +1768,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_UeRadioCapabilityMatchRequest message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_UeRadioCapabilityMatchRequest( template (present) RecordOf_ProtocolIE p_value := ? @@ -1786,7 +1789,8 @@ module LibS1AP_Templates { /** * @desc Receive template for mw_ConnectionEstablishmentIndication message - * @param p_value The expected protocol information elements. Default: ? + * @param p_procedureCode Expected procedure code. Default: ? + * @param p_value Expected procedure code. Default: ? */ template (present) SuccessfulOutcome mw_ConnectionEstablishmentIndication( template (present) RecordOf_ProtocolIE p_value := ? @@ -3806,6 +3810,18 @@ module LibS1AP_Templates { criticality := reject, value_ := { RecordOf_E_RABToBeSetupItemHOReq := valueof(p_value) } } // End of template m_E_RABToBeSetupListHOReq + + /** + * @desc Send template for E-RABSetupListBearerSURes protocol IE + * @param p_value Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq + */ + template (value) ProtocolIE m_E_RABSetupList( + in template (value) RecordOf_E_RABSetupItemBearerSURes p_value := { m_E_RABSetupItemBearerSURes } + ) := { + id := S1AP_Constants.id_E_RABSetupListBearerSURes, + criticality := reject, + value_ := { RecordOf_E_RABSetupItemBearerSURes := valueof(p_value) } + } // End of template m_E_RABSetupList /** * @desc Send template for E-RABToBeModifiedItemBearerModReq protocol IE @@ -5147,6 +5163,23 @@ module LibS1AP_Templates { gTP_TEID := ?, iE_Extensions := * } // End of template mw_E_RABSetupItemBearerSURes + + /** + * @desc + * @param p_e_RAB_ID + * @param p_cause + */ + template (present) E_RABSetupItemBearerSURes m_E_RABSetupItemBearerSURes( + in template (value) 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 (omit) E_RABSetupItemBearerSURes.iE_Extensions p_iE_Extensions := omit + ) := { + e_RAB_ID := p_e_RAB_ID, + transportLayerAddress := p_transportLayerAddress, + gTP_TEID := p_gTP_TEID, + iE_Extensions := p_iE_Extensions + } // End of template mw_E_RABSetupItemBearerSURes /** * @desc @@ -5745,10 +5778,6 @@ module LibS1AP_Templates { } // End of group nasRelated_IEs - /** - * @desc NAS Related IEs group - * @see ETSI TS 136 413 V13.4.0 Clause 10 Handling of Unknown, Unforeseen and Erroneous Protocol Data - */ group Unknown_unforseen_errorneous_group { /** diff --git a/ttcn3/S1AP_TCFunctions.ttcn b/ttcn3/S1AP_TCFunctions.ttcn index ef4afa9..b05639c 100644 --- a/ttcn3/S1AP_TCFunctions.ttcn +++ b/ttcn3/S1AP_TCFunctions.ttcn @@ -4213,19 +4213,26 @@ module S1AP_TCFunctions { f_S1AP_mme_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); - - + + // Test body + action("trigger an Initial E-RAB Setup procedure"); + f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs( vc_MME_UE_ID, vc_eNB_UE_ID, - {mw_E_RABToBeSetupItemBearerSUReq(?,?,?,?,?)} + mw_E_RABToBeSetupItemBearerSUReq(?,?,?,?,?) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); - - // Test body - + + // Postamble + f_send_E_RABSetupResponse(m_E_RABSetupResIEs( + vc_MME_UE_ID, + vc_eNB_UE_ID, + {m_E_RABSetupItemBearerSURes} + )); f_postamble_S1AP_MME(); + f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); @@ -5875,7 +5882,7 @@ module S1AP_TCFunctions { // Test body // 1. on receipt of a E-RAB_MODIFICATION_INDICATION f_send_E_RABModifiedInd( - m_E_RABModifiedIndIEs_Unknown_ID( + m_E_RABModifiedIndIEs_Unknown_ID( vc_MME_UE_ID, vc_eNB_UE_ID, { @@ -5970,7 +5977,7 @@ module S1AP_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_ERR_04 - + /** * @desc Testcase function for TC_S1AP_MME_ERR_05 */ @@ -6123,7 +6130,7 @@ module S1AP_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_S1AP_MME_ERR_07 - + } // End of group Unknown_unforseen_errorneous_group } // End of group MME_Role