Commit c7a095f2 authored by pintar's avatar pintar
Browse files

MME_HAS_01 test and related templates added

parent 88062e28
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -191,6 +191,15 @@ module LibS1AP_Steps {
            f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value))
        } // End of function f_recv_HandoverRequired
        
        /**
         * @desc Receive S1AP Message Handover Command
         * @param p_value Receive template for Handover Command IEs
         */
        function f_recv_HandoverCommand(in template (present) RecordOf_ProtocolIE p_value :=?
        ) runs on S1APComponent {
            f_recv_S1AP_successfulOutcome(mw_HandoverCommand(p_value))
        } // End of function f_recv_HandoverRequired
        
        /**
         * @desc Receive S1AP Message Handover Cancel
         * @param p_value Receive template for Handover Cancel IEs
@@ -1009,6 +1018,15 @@ module LibS1AP_Steps {
            ))
        } // End of function f_send_InitialContext_SetupRequest
        
        /**
         * @desc Send S1AP Message f_send_HandoverRequired
         * @param p_value Send template with IE for HandoverRequest
         */
        function f_send_HandoverRequired(in template (value) RecordOf_ProtocolIE p_value
        ) runs on S1APComponent {
            f_send_S1AP_initiatingMessage(m_HandoverRequired(p_value))
        } // End of function f_send_HandoverRequest
          
        /**
         * @desc Send S1AP Message f_send_HandoverRequest
         * @param p_value Send template with IE for HandoverRequest
@@ -1541,6 +1559,18 @@ module LibS1AP_Steps {
        
        group mmeRole {
            
            /**
             * @desc Trigger a Handover preparation procedure
             * @return true on success, false otherwise
             */
            external function fx_MME_Handover_preparation_procedure() return boolean;
            
            /**
             * @desc Trigger a Handover notification procedure
             * @return true on success, false otherwise
             */
            external function fx_MME_Handover_notification_procedure() return boolean;
                        
            /**
             * @desc Trigger a PAGING event
             * @return true on success, false otherwise
+130 −2
Original line number Diff line number Diff line
@@ -43,7 +43,7 @@ module LibS1AP_Templates {
                    criticality := reject,
                    value_ := p_value
                }
            } // End of template m_initiatingMessage
            } // End of template m_HandoverPreparation
            
        } // End of group g_S1AP_PDU
        
@@ -57,13 +57,40 @@ module LibS1AP_Templates {
            
                group HandoverPreparation { 
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with Handover Required payload
                     * @param p_value           The procedure code value
                     */
                    template (value) InitiatingMessage m_HandoverRequired(
                                                                           template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverPreparation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_HandoverRequired
                    
                    template (value) RecordOf_ProtocolIE m_HandoverRequiredIEs(
                        in template (value) MME_UE_S1AP_ID p_MME_value,
                        in template (value) ENB_UE_S1AP_ID p_eNB_value,
                        in template (value) HandoverType p_handoverType,
                        in template (value) Cause p_cause,
                        in template (value) TargetID p_targetId_value,
                        in template (value) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value
                       ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_handoverType_IE(p_handoverType),
                            m_cause_IE(p_cause),
                            m_targetID_IE(p_targetId_value),
                            m_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
                       } // End of template mw_HandoverCommandIEs
                       
                    /**
                     * @desc Receive template for SuccessfulOutcome message with Handover Command payload
                     * @param p_value           The procedure code value
                     */
                    template (value) SuccessfulOutcome m_HandoverCommand(
                                                                           template (value) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverCancel,
                        procedureCode := id_HandoverPreparation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template m_HandoverCommand
@@ -915,6 +942,29 @@ module LibS1AP_Templates {
                
                group HandoverPreparation{
                     
                     /**
                     * @desc Receive template for SuccessfulOutcome message with Handover Command payload
                     * @param p_value           The procedure code value
                     */
                    template (present) SuccessfulOutcome mw_HandoverCommand(
                                                                           template (present) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverPreparation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_HandoverCommand
                    
                    template (present) RecordOf_ProtocolIE mw_HandoverCommandIEs(
                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                        template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                        template (present) HandoverType p_HandoverType_value := ?,
                        template (present) Target_ToSource_TransparentContainer p_Target_ToSource_TransparentContainer_value := ?
                       ) := {
                            mw_MME_UE_S1AP_ID(p_MME_value),
                            mw_eNB_UE_S1AP_ID(p_eNB_value),
                            mw_handoverType_IE(p_HandoverType_value),
                            mw_target_ToSource_TransparentContainer_IE(p_Target_ToSource_TransparentContainer_value)
                       } // End of template mw_HandoverRequiredIEs
                    
                }// End of group HandoverPreparation
                    
                group HandoverResourceAllocation{
@@ -3302,6 +3352,84 @@ module LibS1AP_Templates {
                value_ := {Cause := valueof(p_cause)}
            } // End of template m_cause_IE
            
            /**
             * @desc Send template for TargetID protocol IE
             * @param p_cause  Expected Cause value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.8 TargetID
             */
            template (value) ProtocolIE m_targetID_IE(
                                                   in template (value) TargetID p_target,
                                                   in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_TargetID,
                criticality := p_criticality,
                value_ := {TargetID := valueof(p_target)}
            } // End of template m_targetID_IE
            
            template (value) TargetID m_TargeteNB_ID (
                in template (value) Global_ENB_ID p_global_ENB_ID,  
                in template (value) TAI p_selected_TAI
            ) := {
                targeteNB_ID :={
                    global_ENB_ID := p_global_ENB_ID,
                    selected_TAI := p_selected_TAI,
                    iE_Extensions := omit
                 }
            }
            
            template (value) Global_ENB_ID m_Global_ENB_ID(
                in template (value) PLMNidentity p_PLMNidentity,  
                in template (value) ENB_ID p_ENB_ID
            ) := {
                pLMNidentity := p_PLMNidentity,
                eNB_ID := p_ENB_ID,
                iE_Extensions := omit
            }
            
            template  ENB_ID m_ENB_ID_macro:={
                macroENB_ID :='00000000000000000001'B
            }
            
            template  ENB_ID m_ENB_ID_home:={
                homeENB_ID :='0000000000000000000000000001'B
            }
            
            template (value) TAI m_TAI (
                in template (value) PLMNidentity p_PLMNidentity,  
                in template (value) TAC p_TAC
            ) :={
                pLMNidentity := p_PLMNidentity,
                tAC := p_TAC,
                iE_Extensions := omit
            }
            
            template (value) TargetID m_TargetRNC_ID (
                in template (value) LAI p_lAI,  
                in template (value) RNC_ID p_rNC_ID
            ) := {
                targetRNC_ID :={
                     lAI := p_lAI,
                     rAC:= omit,
                     rNC_ID := p_rNC_ID,
                     extendedRNC_ID := omit,
                     iE_Extensions := omit
                 }
            }
            
            template (value) TargetID m_Target_CGI (
                in template (value) PLMNidentity p_pLMNidentity,  
                in template (value) LAC p_lAC,
                in template (value) CI p_cI
            ) := {
                cGI :={
                     pLMNidentity := p_pLMNidentity,
                     lAC := p_lAC,
                     cI := p_cI,
                     rAC := omit,
                     iE_Extensions := omit
                 }
            }

            /**
             * @desc Send template for UE aggregate maxmum bitrate IE
             * @param p_value  UEAggregateMaximumBitrate value
+48 −0
Original line number Diff line number Diff line
@@ -4591,6 +4591,54 @@ module S1AP_TCFunctions {
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.2.4  Handover signalling group
         */
        group Handover_signalling_group {
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_01
             */
            function f_TC_S1AP_MME_HAS_01() runs on S1APComponent { 
                // Local variables
                const Source_ToTarget_TransparentContainer c_source_ToTarget_TransparentContainer := '12121212'O;
                const Target_ToSource_TransparentContainer c_target_ToSource_TransparentContainer := '12121212'O;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged.
                //f_rABSetup...;
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // sends a HANDOVER_REQUIRED
                f_send_HandoverRequired(
                    m_HandoverRequiredIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,
                        m_cause_ran(unspecified),
                        m_TargeteNB_ID(m_Global_ENB_ID('000001'O,
                                                       m_ENB_ID_macro),
                                       m_TAI('000001'O,
                                             '0001'O)),
                        c_source_ToTarget_TransparentContainer
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        intralte,//handover_Type
                        c_target_ToSource_TransparentContainer//TargetToSourceTransparentContainer
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                // Postamble
                //f_rABSetupRelease...;
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_HAS_01
            
        } // End of group Handover_signalling_group