Commit 83ae773c authored by pintar's avatar pintar
Browse files

MME_HAS_02-04 tests and related templates added

parent d8b2a231
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -182,6 +182,15 @@ module LibS1AP_Steps {
            f_recv_S1AP_successfulOutcome(mw_HandoverCommand(p_value))
        } // End of function f_recv_HandoverRequired
        
        /**
          * @desc Receive S1AP Message Handover Request
          * @param p_value Receive template for Handover Request IEs
          */
         function f_recv_HandoverRequest(in template (present) RecordOf_ProtocolIE p_value :=?
         ) runs on S1APComponent {
             f_recv_S1AP_initiatingMessage(mw_HandoverRequest(p_value))
         } // End of function f_recv_HandoverRequest
                
        /**
         * @desc Receive S1AP Message Handover Cancel
         * @param p_value Receive template for Handover Cancel IEs
+195 −9
Original line number Diff line number Diff line
@@ -58,7 +58,7 @@ module LibS1AP_Templates {
                group HandoverPreparation { 
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with Handover Required payload
                     * @desc Send template for InitiatingMessage message with Handover Required payload
                     * @param p_value           The protocol information elements.
                     */
                    template (value) InitiatingMessage m_HandoverRequired(
@@ -84,8 +84,22 @@ module LibS1AP_Templates {
                            m_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
                       } // End of template mw_HandoverCommandIEs
                     
                    template (value) RecordOf_ProtocolIE m_HandoverRequiredIEs_CSGID_CellAccessMode(
                        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,
                        in template (value) CSG_Id p_CSG_Id_value,
                        in template (value) CellAccessMode p_CellAccessMode_value
                       ) modifies m_HandoverRequiredIEs := {
                            m_CSG_Id_IE(p_CSG_Id_value),
                            m_CellAccessMode_IE(p_CellAccessMode_value)                            
                       } // End of template mw_HandoverCommandIEs
                                             
                    /**
                     * @desc Receive template for SuccessfulOutcome message with Handover Command payload
                     * @desc Send template for SuccessfulOutcome message with Handover Command payload
                     * @param p_value           The protocol information elements.
                     */
                    template (value) SuccessfulOutcome m_HandoverCommand(
@@ -1089,10 +1103,67 @@ module LibS1AP_Templates {
                            mw_target_ToSource_TransparentContainer_IE(p_Target_ToSource_TransparentContainer_value)
                    } // End of template mw_HandoverRequiredIEs
                    
                    template (present) RecordOf_ProtocolIE mw_HandoverCommandIEs_NASSecurity(
                        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 := ?,
                        template (present) NASSecurityParameterstoE_UTRAN p_nasSecurityParametersToEutran_value := ?
                       ) modifies mw_HandoverCommandIEs:= {
                           mw_nasSecurityParametersToEutran_IE(p_nasSecurityParametersToEutran_value)
                    } // End of template mw_HandoverRequiredIEs
                    
                }// End of group HandoverPreparation
                    
                group HandoverResourceAllocation{
                    
                    /**
                    * @desc Receive template for InitiatingMessage message with Handover Request payload
                    * @param p_value           The list of Protocol IE values
                    */
                    template (present) InitiatingMessage mw_HandoverRequest(
                                                                          template (present) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverResourceAllocation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_HandoverRequest
            
                    template (present) RecordOf_ProtocolIE mw_HandoverRequestIEs(
                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                        template (present) HandoverType p_HandoverType_value := ?,
                        template (present) Cause p_Cause_value := ?,
                        template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?,
                        template (present) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItem_value := ?,
                        template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?,
                        template (present) UESecurityCapabilities p_UESecurityCapabilities := ?,
                        template (present) SecurityContext p_SecurityContext := ?
                    ) := {
                          mw_MME_UE_S1AP_ID(p_MME_value),
                          mw_handoverType_IE(p_HandoverType_value),
                          mw_cause_IE(p_Cause_value),
                          mw_UE_aggregate_maximum_bitrate_IE(p_UEAggregateMaximumBitrate),
                          mw_E_RABToBeSetupListHOReq(p_RecordOf_E_RABToBeSetupItem_value),
                          mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value),
                          mw_UE_securityCapabilities_IE(p_UESecurityCapabilities, ignore),
                          mw_securityContext_IE(p_SecurityContext)
                    } // End of template mw_HandoverRequestIEs
   
                    template (present) RecordOf_ProtocolIE mw_HandoverRequestIEs_CSGID_CellAccessMode(
                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                        template (present) HandoverType p_HandoverType_value := ?,
                        template (present) Cause p_Cause_value := ?,
                        template (present) UEAggregateMaximumBitrate p_UEAggregateMaximumBitrate := ?,
                        template (present) RecordOf_E_RABToBeSetupItemHOReq p_RecordOf_E_RABToBeSetupItem_value := ?,
                        template (present) Source_ToTarget_TransparentContainer p_Source_ToTarget_TransparentContainer_value := ?,
                        template (present) UESecurityCapabilities p_UESecurityCapabilities := ?,
                        template (present) SecurityContext p_SecurityContext := ?,
                        template (present) CSG_Id p_CSG_Id_value := ?,
                        template (present) CellAccessMode p_CellAccessMode_value := ?    
                    ) modifies mw_HandoverRequestIEs := {
                        mw_CSG_Id_IE(p_CSG_Id_value),
                        mw_CellAccessMode_IE(p_CellAccessMode_value)   
                    } // End of template mw_HandoverRequestIEs         

                    /**
                     * @desc Receive template for SuccessfulOutcome message with Handover Cancel payload
                     * @param p_value           The expected protocol information elements. Default: ?
@@ -3583,6 +3654,17 @@ module LibS1AP_Templates {
                 }
            }
            
            template (value) LAI m_LAI(
                in template (value) PLMNidentity p_PLMNidentity,  
                in template (value) LAC p_lAC
            ) := {
                pLMNidentity := p_PLMNidentity,
                lAC := p_lAC,
                iE_Extensions := omit
            }
            
            template (value) RNC_ID m_rNC_Id := 1;
            
            template (value) TargetID m_Target_CGI (
                in template (value) PLMNidentity p_pLMNidentity,  
                in template (value) LAC p_lAC,
@@ -3597,6 +3679,26 @@ module LibS1AP_Templates {
                 }
            }
            
            template (value) ProtocolIE m_CSG_Id_IE(
                                       in template (value) CSG_Id p_value,
                                       in template (value) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_CSG_Id,
                criticality := p_criticality,
                value_ := {CSG_Id := valueof(p_value)}
            } // End of template m_CSG_Id_IE

            //template (value) CellAccessMode m_CellAccessMode_hybrid := hybrid;
            
            template (value) ProtocolIE m_CellAccessMode_IE(
                           in template (value) CellAccessMode p_value,
                           in template (value) ProtocolIE.criticality p_criticality := reject
			) := {
			    id := S1AP_Constants.id_CellAccessMode,
			    criticality := p_criticality,
			    value_ := {CellAccessMode := valueof(p_value)}
			} // End of template m_CellAccessMode_IE

            /**
             * @desc Send template for UE aggregate maxmum bitrate IE
             * @param p_value  UEAggregateMaximumBitrate value
@@ -4319,6 +4421,18 @@ module LibS1AP_Templates {
                value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value }
            } // End of template mw_E_RABToBeSetupCtxtList
                
            /**
             * @desc Send template for E-RABToBeSetupListHOReq protocol IE
             * @param p_value  Protocol IE value. Default: mw_E_RABToBeSetupItemHOReq
             */
            template (present) ProtocolIE mw_E_RABToBeSetupListHOReq(
                                                             template (present) RecordOf_E_RABToBeSetupItemHOReq p_value := { mw_E_RABToBeSetupItemHOReq }
            ) := {
                id := S1AP_Constants.id_E_RABToBeSetupListHOReq,
                criticality := reject,
                value_ := { RecordOf_E_RABToBeSetupItemHOReq := p_value }
            } // End of template mw_E_RABToBeSetupListHOReq
 
            /**
             * @desc Receive template for E-RABModifiedListBearerModReq protocol IE
             * @param p_value  Expected protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
@@ -4375,6 +4489,33 @@ module LibS1AP_Templates {
                value_ := { RecordOf_E_RABToBeSwitchedDLItem := p_value }
            } // End of template mw_E_RABToBeSwitchedDLList
    
            /**
                 * @desc Receive template for CSG protocol IE
                 * @param p_value  Protocol IE value. Default: ?
                 */        
            template (present) ProtocolIE mw_CSG_Id_IE(
                                       in template (present) CSG_Id p_value,
                                       in template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_CSG_Id,
                criticality := p_criticality,
                value_ := {CSG_Id := p_value}
            } // End of template mw_CSG_Id_IE
    
            /**
                 * @desc Receive template for CellAccessMode protocol IE
                 * @param p_value  Protocol IE value. Default: ?
                 */        
            template (present) ProtocolIE mw_CellAccessMode_IE(
                           in template (present) CellAccessMode p_value,
                           in template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_CellAccessMode,
                criticality := p_criticality,
                value_ := {CellAccessMode := p_value}
            } // End of template mw_CellAccessMode_IE
            
            
            /**
             * @desc Receive template for UE aggregate maxmum bitrate IE
             * @param p_value  UEAggregateMaximumBitrate value
@@ -5017,6 +5158,34 @@ module LibS1AP_Templates {
                value_ := {SecurityKey := p_value}
            } // End of template mw_securityKey_IE

            /**
             * @desc Receive template for security context IE
             * @param p_value  SecurityContext value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.26 Security Context
             */
            template (present) ProtocolIE mw_securityContext_IE(
                                                   in template (present) SecurityContext p_value,
                                                   in template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_SecurityContext,
                criticality := p_criticality,
                value_ := {SecurityContext := p_value}
            } // End of template m_securityContext_IE
            
            /**
             * @desc receive template for nas Security Parameters To Eutran IE
             * @param p_value  SecurityContext value
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.31 NAS Security Parameters to E_UTRAN
             */
            template (present) ProtocolIE mw_nasSecurityParametersToEutran_IE(
                                                   in template (present) NASSecurityParameterstoE_UTRAN p_value,
                                                   in template (present) ProtocolIE.criticality p_criticality := reject
            ) := {
                id := S1AP_Constants.id_NASSecurityParameterstoE_UTRAN,
                criticality := p_criticality,
                value_ := {NASSecurityParameterstoE_UTRAN := p_value}
            } // End of template m_nasSecurityParametersToEutran_IE

            /**
             * @desc receive template for security key IE
             * @param p_value  UESecurityCapabilities value
@@ -5312,6 +5481,23 @@ module LibS1AP_Templates {
                iE_Extensions := p_iE_Extensions
            } // End of template m_E_RABToBeSetupItemHOReq
            
            /**
             * @desc 
             */
            template (present) E_RABToBeSetupItemHOReq mw_E_RABToBeSetupItemHOReq(
                in template (present) E_RAB_ID p_e_RAB_ID := ?,
                in template (present) TransportLayerAddress p_transportLayerAddress := ?,
                in template (present) GTP_TEID p_gTP_TEID := ?,
                in template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := ?,
                in template E_RABToBeSetupItemHOReq.iE_Extensions p_iE_Extensions := *
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                transportLayerAddress := p_transportLayerAddress,
                gTP_TEID := p_gTP_TEID,
                e_RABlevelQosParameters := p_e_RABlevelQoSParameters,
                iE_Extensions := p_iE_Extensions
            } // End of template mw_E_RABToBeSetupItemHOReq
            
            /**
             * @desc 
             * @param p_e_RAB_ID
+194 −0
Original line number Diff line number Diff line
@@ -4701,6 +4701,200 @@ module S1AP_TCFunctions {
                
            } // End of function f_TC_S1AP_MME_HAS_01

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_02
             */
            function f_TC_S1AP_MME_HAS_02() runs on S1APComponent { 
                // Local variables
                const SourceRNC_ToTargetRNC_TransparentContainer c_sourceRNC_ToTargetRNC_TransparentContainer := '12121212'O;
                const TargetRNC_ToSourceRNC_TransparentContainer c_targetRNC_ToSourceRNC_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,
                        ltetoutran,
                        m_cause_ran(unspecified),
                        m_TargetRNC_ID(m_LAI('000001'O, //plmn id
                                             '0001'O),  //lac
                                       m_rNC_Id),
                        c_sourceRNC_ToTargetRNC_TransparentContainer
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs_NASSecurity(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetoutran,//handover_Type
                        c_targetRNC_ToSourceRNC_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_02

            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_03
             */
            function f_TC_S1AP_MME_HAS_03() runs on S1APComponent { 
                // Local variables
                const SourceBSS_ToTargetBSS_TransparentContainer c_sourceBSS_ToTargetBSS_TransparentContainer := '12121212'O;
                const TargetBSS_ToSourceBSS_TransparentContainer c_targetBSS_ToSourceBSS_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,
                        ltetogeran,
                        m_cause_ran(unspecified),
                        m_Target_CGI('000001'O, //plmn id
                                     '0001'O,//lac
                                     '0001'O //ci
                                    ),
                        c_sourceBSS_ToTargetBSS_TransparentContainer
                ));
                 
                f_recv_HandoverCommand(
                    mw_HandoverCommandIEs_NASSecurity(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        ltetogeran,//handover_Type
                        c_targetBSS_ToSourceBSS_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_03
            
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_04_ENB1
             */
            function f_TC_S1AP_MME_HAS_04_ENB1() 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_CSGID_CellAccessMode(
                        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,
                        '000000000000000000000000001'B,
                        hybrid
                ));
                 
                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_04_ENB1
            
            /**
             * @desc Testcase function for TC_S1AP_MME_HAS_04_ENB2
             */
            function f_TC_S1AP_MME_HAS_04_ENB2() 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_recv_HandoverRequest(
                    mw_HandoverRequestIEs_CSGID_CellAccessMode(
                        -,
                        -,
                        -,
                        -,
                        {?},//E_RabsToBeSetupItem
                        -,
                        -,
                        -,
                        -,
                        -
                ));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                
                //send HandoverRequestAck
                
                // 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_04_ENB2
                        
        } // End of group Handover_signalling_group
        
        /**