Commit e18f703b authored by rennoch's avatar rennoch
Browse files

completion of f_TC_S1AP_eNB_CMP_14 and f_TC_S1AP_eNB_CMP_15

parent e8b1e26b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -660,6 +660,17 @@ module LibS1AP_Steps {
			f_recv_S1AP_initiatingMessage(mw_UeContextModificationResponse(p_value))
		} // End of f_recv_UE_Context_Modification_Response

		/**
		* @desc Receive S1AP Message UE Context Modification Failure
		* @param p_value Receive template for UE CONTEXT MODIFICATION FAILURE
		* @see ETSI TS 136 413 V13.4.0 Clause 9.1.4.10 UE CONTEXT MODIFICATION FAILURE
		*/
		function f_recv_UE_Context_Modification_Failure(
										template (present) RecordOf_ProtocolIE p_value := ?
		) runs on S1APComponent {
			f_recv_S1AP_initiatingMessage(mw_UeContextModificationFailure(p_value))
		} // End of f_recv_UE_Context_Modification_Failure
        
    } // End of group receivePDU
    
    /**
+63 −1
Original line number Diff line number Diff line
@@ -196,7 +196,7 @@ module LibS1AP_Templates {
						value_ := {RecordOf_ProtocolIE := valueof(p_value)}
					} // End of template m_UeContextModificationRequest

					template (value) RecordOf_ProtocolIE m_ContextModificationReqIEs(
					template (value) RecordOf_ProtocolIE m_ContextModificationReqIEsUEAgg(
																			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
@@ -206,6 +206,30 @@ module LibS1AP_Templates {
						m_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate)
					} // End of template m_ContextModificationReqIEs

					template (value) RecordOf_ProtocolIE m_ContextModificationReqIEsSecKey(
																			in template (value) MME_UE_S1AP_ID p_MME_value,
																			in template (value) ENB_UE_S1AP_ID p_eNB_value,
																			in template (value) CSFallbackIndicator p_CSFallbackIndicator,
																			in template (value) SecurityKey p_SecurityKey
					) := {
						m_MME_UE_S1AP_ID(p_MME_value),
						m_eNB_UE_S1AP_ID(p_eNB_value),
						m_CS_Fallback_indicator_IE(p_CSFallbackIndicator),
						m_securityKey_IE(p_SecurityKey)
					} // End of template m_ContextModificationReqIEsSecKey

					template (value) RecordOf_ProtocolIE m_ContextModificationReqIEsSecCap(
																			in template (value) MME_UE_S1AP_ID p_MME_value,
																			in template (value) ENB_UE_S1AP_ID p_eNB_value,
																			in template (value) CSFallbackIndicator p_CSFallbackIndicator,
																			in template (value) UESecurityCapabilities p_UeSecurityCapabilities
					) := {
						m_MME_UE_S1AP_ID(p_MME_value),
						m_eNB_UE_S1AP_ID(p_eNB_value),
						m_CS_Fallback_indicator_IE(p_CSFallbackIndicator),
						m_UE_securityCapabilities_IE(p_UeSecurityCapabilities)
					} // End of template m_ContextModificationReqIEsSecCap
                    
                }// End of group Context_management_group
                
                /**
@@ -714,6 +738,29 @@ module LibS1AP_Templates {
						mw_eNB_UE_S1AP_ID(p_eNB_value, ignore)
					} // End of template mw_UeContextReleaseCompleteIEs

					/**
					 * @desc Receive template for mw_UeContextModificationFailure message
					 * @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 := ?
					) := {
						procedureCode := id_UEContextModification,
						criticality := reject,
						value_ := {RecordOf_ProtocolIE := p_value}
					} // End of template mw_UeContextModificationFailure
                    
					template (present) RecordOf_ProtocolIE mw_UeContextModificationFailureIEs(
																			   template (present) MME_UE_S1AP_ID p_MME_value := ?,
																			   template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
																			   template (present) Cause p_cause := ?
					) := {
						mw_MME_UE_S1AP_ID(p_MME_value, ignore),
						mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
						mw_cause_IE(p_cause)
					} // End of template mw_UeContextModificationFailureIEs
                    
                } // End of group Context_management_group
                
                /**
@@ -2357,6 +2404,21 @@ module LibS1AP_Templates {
				value_ := {Correlation_ID := valueof(p_value)}
			} // End of template m_SIPTO_correlationID_IE


			/**
			 * @desc Send template for CS Fallback indicator IE
			 * @param p_value  CSFallbackIndicator value
			 * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.21 CS Fallback indicator
			 */
			template (value) ProtocolIE m_CS_Fallback_indicator_IE(
												   in template (value) CSFallbackIndicator p_value,
												   in template (value) ProtocolIE.criticality p_criticality := ignore
			) := {
				id := S1AP_Constants.id_CSFallbackIndicator,
				criticality := p_criticality,
				value_ := {CSFallbackIndicator := valueof(p_value)}
			} // End of template m_CS_Fallback_indicator_IE
            
            group E_RAB_IEsend {
                
                /**
+75 −1
Original line number Diff line number Diff line
@@ -1279,7 +1279,7 @@ module S1AP_TCFunctions {
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
				f_send_UE_Context_Modification_Request(m_ContextModificationReqIEs(
				f_send_UE_Context_Modification_Request(m_ContextModificationReqIEsUEAgg(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    m_UEAggregateMaximumBitrate(1,1)
@@ -1299,6 +1299,80 @@ module S1AP_TCFunctions {
                
            } // End of function f_TC_S1AP_eNB_CMP_13

            /**
             * @desc Testcase function for TC_S1AP_eNB_CMP_14
             */
            function f_TC_S1AP_eNB_CMP_14() 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_ContextModificationReqIEsSecKey(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
				    cs_fallback_required,
					m_securityKey
                ));

				f_recv_UE_Context_Modification_Failure(mw_UeContextModificationFailureIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
					? // cause
                )); 
												                   
                // 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_14

            /**
             * @desc Testcase function for TC_S1AP_eNB_CMP_15
             */
            function f_TC_S1AP_eNB_CMP_15() 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_ContextModificationReqIEsSecCap(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
				    cs_fallback_required,
				    m_UESecurityCapabilities('0101010101010101'B,'0101010101010101'B)
                ));

				f_recv_UE_Context_Modification_Failure(mw_UeContextModificationFailureIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
					? // cause
                )); 
												                   
                // 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_15


        } // End of group Context_management_group