Commit ed6ed6e9 authored by rennoch's avatar rennoch
Browse files

completion of f_TC_S1AP_mME_CMP_02

parent 98c18647
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -676,6 +676,18 @@ module LibS1AP_Steps {
			f_recv_S1AP_initiatingMessage(mw_UeContextReleaseComplete(p_value))
		} // End of f_recv_UE_Context_Release_Complete


		/**
		* @desc Receive S1AP Message UE Context Release Command
		* @param p_value Receive template for UE CONTEXT RELEASE COMMAND
		* @see ETSI TS 136 413 V13.4.0 Clause 9.1.4.6 UE CONTEXT RELEASE COMMAND
		*/
		function f_recv_UE_Context_Release_Command(
										template (present) RecordOf_ProtocolIE p_value := ?
		) runs on S1APComponent {
			f_recv_S1AP_initiatingMessage(mw_UeContextReleaseCommand(p_value))
		} // End of f_recv_UE_Context_Release_Command

		/**
		* @desc Receive S1AP Message UE Context Modification Response
		* @param p_value Receive template for UE CONTEXT MODIFICATION RESPONSE
@@ -993,6 +1005,29 @@ module LibS1AP_Steps {
			f_send_S1AP_initiatingMessage(m_UeContextReleaseCommand(p_value))
		} // End of f_send_UE_Context_Release_Command


		/**
		* @desc Send S1AP Message UE Context Release Complete
		* @param p_value Send template for UE CONTEXT RELEASE COMPLETE
		* @see ETSI TS 136 413 V13.4.0 Clause 9.1.4.7 UE CONTEXT RELEASE COMPLETE
		*/
		function f_send_UE_Context_Release_Complete(
										template (value) RecordOf_ProtocolIE p_value
		) runs on S1APComponent {
			f_send_S1AP_initiatingMessage(m_UeContextReleaseComplete(p_value))
		} // End of f_send_UE_Context_Release_Command
		
		/**
		* @desc Send S1AP Message UE Context Release Request
		* @param p_value Receive template for UE CONTEXT RELEASE REQUEST
		* @see ETSI TS 136 413 V13.4.0 Clause 9.1.4.5 UE CONTEXT RELEASE REQUEST
		*/
		function f_send_UE_Context_Release_Request(
										template (value) RecordOf_ProtocolIE p_value
		) runs on S1APComponent {
			f_send_S1AP_initiatingMessage(m_UeContextReleaseRequest(p_value))
		} // End of f_send_UE_Context_Release_Request

		/**
		* @desc Send S1AP Message UE Context Modification Request
		* @param p_value Send template for UE CONTEXT MODIFICATION REQUEST
+74 −2
Original line number Diff line number Diff line
@@ -161,7 +161,30 @@ module LibS1AP_Templates {
                    } // End of template m_InitialContextSetupReqIEs

					/**
                     * @desc Send template for InitiatingMessage message with InitialContextSetup payload
					 * @desc Send template for InitiatingMessage message with UeContextReleaseRequest payload
					 * @param p_value           Expected procedure code
					 */
					template (value) InitiatingMessage m_UeContextReleaseRequest(
																		   in template (value) RecordOf_ProtocolIE p_value) := {
						procedureCode := id_UEContextReleaseRequest,
						criticality := reject,
						value_ := {RecordOf_ProtocolIE := valueof(p_value)}
					} // End of template m_UeContextReleaseRequest


					template (value) RecordOf_ProtocolIE m_UeContextReleaseRequestIEs(
																			in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                            in template (value) ENB_UE_S1AP_ID p_eNB_value,
																			in template (value) Cause p_cause
					) := {
						m_MME_UE_S1AP_ID(p_MME_value),
                        m_eNB_UE_S1AP_ID(p_eNB_value),
						m_cause_IE(p_cause)
					} // End of template m_UeContextReleaseRequestIEs_MME


                    /**
                     * @desc Send template for InitiatingMessage message with UEContextRelease payload
                     * @param p_value           Expected procedure code
                     */
                    template (value) InitiatingMessage m_UeContextReleaseCommand(
@@ -187,6 +210,24 @@ module LibS1AP_Templates {
                        m_cause_IE(p_cause)
                    } // End of template m_UeContextReleaseCommandIEs_ENB

					/**
					 * @desc Send template for InitiatingMessage message with UEContextReleaseComplete payload
					 * @param p_value           Expected procedure code
					 */
					template (value) InitiatingMessage m_UeContextReleaseComplete(
																		   in template (value) RecordOf_ProtocolIE p_value) := {
						procedureCode := id_UEContextRelease,
						criticality := reject,
						value_ := {RecordOf_ProtocolIE := valueof(p_value)}
					} // End of template m_UeContextReleaseComplete                    

					template (value) RecordOf_ProtocolIE m_UeContextReleaseCompleteIEs(
																			in template (value) MME_UE_S1AP_ID p_MME_value,
																			in template (value) ENB_UE_S1AP_ID p_eNB_value
					) := {
						m_MME_UE_S1AP_ID(p_MME_value),
						m_eNB_UE_S1AP_ID(p_eNB_value)
					} // End of template m_UeContextReleaseCompleteIEs

                    /**
                     * @desc Send template for InitiatingMessage message with m_UeContextModificationRequest payload
@@ -781,6 +822,37 @@ module LibS1AP_Templates {
                        mw_cause_IE(p_cause)
                    } // End of template mw_UeContextReleaseRequestIEs


					/**
					 * @desc Receive template for UeContextReleaseCommand message
					 * @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 := ?
					) := {
						procedureCode := id_UEContextRelease,
						criticality := reject,
						value_ := {RecordOf_ProtocolIE := p_value}
					} // End of template mw_UeContextReleaseCommand

					template (present) RecordOf_ProtocolIE mw_UeContextReleaseCommandIEs_MME(
																			   template (present) MME_UE_S1AP_ID p_MME_value := ?,
																			   template (present) Cause p_cause := ?
					) := {
						mw_MME_UE_S1AP_ID(p_MME_value, ignore),
						mw_cause_IE(p_cause)
					} // End of template mw_UeContextReleaseCommandIEs


					template (present) RecordOf_ProtocolIE mw_UeContextReleaseCommandIEs_ENB(
																			   template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
																			   template (present) Cause p_cause := ?
					) := {
						mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
						mw_cause_IE(p_cause)
					} // End of template mw_UeContextReleaseCommandIEs

                    /**
                     * @desc Receive template for UeContextReleaseComplete message
                     * @param p_procedureCode   Expected procedure code. Default: ?
+49 −0
Original line number Diff line number Diff line
@@ -3062,6 +3062,55 @@ module S1AP_TCFunctions {
                
            } // End of function f_TC_S1AP_eNB_CMP_01

			/**
			 * @desc Testcase function for TC_S1AP_mME_CMP_02
			 */
			function f_TC_S1AP_mME_CMP_02() runs on S1APComponent { 
				// Local variables
				var template(value) Cause v_cause;
				select(PX_VA){
					case(1){v_cause := m_cause_ran(user_inactivity)}
					case(2){v_cause := m_cause_ran(radio_connection_with_ue_lost)}
					case(3){v_cause := m_cause_nas(csg_subscription_expiry)}
					case(4){v_cause := m_cause_ran(cs_fallback_triggered)}
					case(5){v_cause := m_cause_ran(redirection_towards_1xRTT)}
					case(6){v_cause := m_cause_ran(interrat_redirection)}
					case(7){v_cause := m_cause_ran(ue_not_available_for_ps_service)}
					case else {setverdict(fail, "undefined PIXIT value for variant")}
				}
				                
				// Preamble
				f_S1AP_mme_init();
				
				f_rABSetupRequest();
				
				f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
				// Test body

				f_send_UE_Context_Release_Command(m_UeContextReleaseRequestIEs(
					vc_MME_UE_ID,
					vc_eNB_UE_ID,
					v_cause
					));
					
				f_recv_InitialContext_SetupRequest((mw_UeContextReleaseCommandIEs_MME, mw_UeContextReleaseCommandIEs_ENB));                
                
				// Postamble
				f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 

				f_send_UE_Context_Release_Complete(m_UeContextReleaseCompleteIEs(
					vc_MME_UE_ID,
					vc_eNB_UE_ID
					));
                
				f_postamble_S1AP_MME();
				f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
				log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
			} // End of function f_TC_S1AP_eNB_CMP_02
            
        } // End of group Context_management_group