Commit 646601de authored by pintar's avatar pintar
Browse files

New tests for S1AP_ENB_HAS group added.

Additional trial with superset in MME_RAB group added
parent 203d6951
Loading
Loading
Loading
Loading
+15 −11
Original line number Diff line number Diff line
@@ -168,6 +168,15 @@ module LibS1AP_Steps {
			f_recv_S1AP_successfulOutcome(mw_E_RABModifiedResponse(p_value))
		} // End of f_recv_E_RABModifiedResponse
        
        /**
         * @desc Receive S1AP Message Handover Required
         * @param p_value Receive template for Handover Required IEs
         */
        function f_recv_HandoverRequired(in template (present) RecordOf_ProtocolIE p_value :=?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value))
        } // End of function f_recv_HandoverRequired
        
        /**
         * @desc Receive S1AP Message InitialContext_SetupResponse
         * @param p_value Receive template for InitialContext_SetupResponse IEs
@@ -569,17 +578,6 @@ module LibS1AP_Steps {
            f_recv_S1AP_initiatingMessage(mw_eNB_Configuration_Transfer(p_value))
        } // End of f_recv_eNB_Configuration_Transfer
        
        /**
         * @desc Receive S1AP Message MME Direct Information Transfer
         * @param p_value Receive template for MME DIRECT INFORMATION TRANSFER IEs
         * @see ETSI TS 136 413 V13.4.0 Clause 9.1.15 MME DIRECT INFORMATION TRANSFER
         */
        function f_MME_Direct_Information_Transfer_procedure(
                                                             template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_Mme_Configuration_Transfer(p_value))
        } // End of fx_MME_Direct_Information_Transfer_procedure
        
        /**
         * @desc Receive S1AP Message MME CONFIGURATION TRANSFER
         * @param p_value Receive template for MME_CONFIGURATION_TRANSFER IEs
@@ -1097,6 +1095,12 @@ module LibS1AP_Steps {
        
        group eNBRole {
            
            /**
             * @desc Trigger a Handover preparation procedure
             * @return true on success, false otherwise
             */
            external function fx_eNB_Handover_preparation_procedure() return boolean;
            
            /**
             * @desc Trigger an INITIAL UE MESSAGE procedure
             * @return true on success, false otherwise
+13 −11
Original line number Diff line number Diff line
@@ -59,14 +59,6 @@ module LibS1AP_Templates {
            
                group HandoverPreparation {
                    
                    group initiatingMessage {
                    } // End of group initiatingMessage
                    
                    group successfulOutcome {
                    } // End of group successfulOutcome
                    
                    group unsuccessfulOutcome {
                    } // End of group unsuccessfulOutcome
                    
                } // End of group HandoverPreparation
                
@@ -558,6 +550,18 @@ module LibS1AP_Templates {
            group receiveClass1 {
                
                group HandoverRequired{
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with Handover Required payload
                     * @param p_value           The procedure code value
                     */
                    template (present) InitiatingMessage mw_HandoverRequired(
                                                                           template (present) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverPreparation,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_HandoverRequired
                    
                    template (value) RecordOf_ProtocolIE mw_HandoverRequiredIEs(
                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                        template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
@@ -641,12 +645,10 @@ module LibS1AP_Templates {
                    template (present) RecordOf_ProtocolIE mw_E_RABSetupReqIEs(
                                                                            template (present) MME_UE_S1AP_ID p_MME_value,
                                                                            template (present) ENB_UE_S1AP_ID p_eNB_value,
                                                                            template UEAggregateMaximumBitrate p_uEAggregateMaximumBitrate := ?,
                                                                            template (present) RecordOf_E_RABToBeSetupItemBearerSUReq p_RecordOf_E_RABToBeSetupItem_value
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value),
                        mw_eNB_UE_S1AP_ID(p_eNB_value),
                        mw_UE_aggregate_maximum_bitrate_IE(p_uEAggregateMaximumBitrate) ifpresent,
                        mw_E_RABToBeSetupList(p_RecordOf_E_RABToBeSetupItem_value)
                    } // End of template mw_E_RABSetupReqIEs
                    
+173 −150
Original line number Diff line number Diff line
@@ -53,154 +53,6 @@ module S1AP_TCFunctions {
                f_S1AP_enb_init();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
//              TODO Delete folowing loopback execution code


                              log("V1: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE");
                              log("V1: Await E_RAB WITH UE_Agregate_Max_Bit_Rate_IE");
                              f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  m_UEAggregateMaximumBitrate(1024,2048),
                                  {m_E_RABToBeSetupItemBearerSUReq (
                                      -,
                                      m_e_RABlevelQoSParameters
                                      (5)
                                  )}
                              ));

                              f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  mw_UEAggregateMaximumBitrate(?,?),
                                  {mw_E_RABToBeSetupItemBearerSUReq(
                                      -,
                                      mw_e_RABlevelQoSParameters(?))}
                              ));


//                              log("V2: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE");
//                              log("V2: Await E_RAB without UE_Agregate_Max_Bit_Rate_IE");
//
//                              f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate(
//                                  vc_MME_UE_ID,
//                                  vc_eNB_UE_ID,
//                                  m_UEAggregateMaximumBitrate(1024,2048),
//                                  {m_E_RABToBeSetupItemBearerSUReq (
//                                      -,
//                                      m_e_RABlevelQoSParameters
//                                      (5)
//                                  )}
//                              ));
//                
//                              f_recv_E_RABSetupRequest(
//                              mw_E_RABSetupReqIEs(
//                                  vc_MME_UE_ID,
//                                  vc_eNB_UE_ID,
//                                  {mw_E_RABToBeSetupItemBearerSUReq(
//                                      -,
//                                      mw_e_RABlevelQoSParameters(?))}
//                              )
//                              );


                              log("V3: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE");
                              log("V3: Await E_RAB with AND without UE_Agregate_Max_Bit_Rate_IE");
                              f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  m_UEAggregateMaximumBitrate(1024,2048),
                                  {m_E_RABToBeSetupItemBearerSUReq (
                                      -,
                                      m_e_RABlevelQoSParameters
                                      (5)
                                  )}
                              ));

                              f_recv_E_RABSetupRequest(
                              (
                              mw_E_RABSetupReqIEs(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  mw_UEAggregateMaximumBitrate(?,?),
                                  {mw_E_RABToBeSetupItemBearerSUReq(
                                      -,
                                      mw_e_RABlevelQoSParameters(?))}
                              ),
                              mw_E_RABSetupReqIEs(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  -,
                                  {mw_E_RABToBeSetupItemBearerSUReq(
                                      -,
                                      mw_e_RABlevelQoSParameters(?))}
                              )
                              )
                              );


                              log("V4: Send E_RAB WITH UE_Agregate_Max_Bit_Rate_IE");
                              log("V4: Await E_RAB with ifpresent UE_Agregate_Max_Bit_Rate_IE");
                              f_send_E_RABSetupRequest(m_E_RABSetupReqIEs_UeAggregateMaxBitRate(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  m_UEAggregateMaximumBitrate(1024,2048),
                                  {m_E_RABToBeSetupItemBearerSUReq (
                                      -,
                                      m_e_RABlevelQoSParameters
                                      (5)
                                  )}
                              ));

                              f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  -,
                                  ?
                              ));


                              log("V5: Send E_RAB without UE_Agregate_Max_Bit_Rate_IE");
                              log("V5: Await E_RAB without UE_Agregate_Max_Bit_Rate_IE");
                              f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  {m_E_RABToBeSetupItemBearerSUReq (
                                      -,
                                      m_e_RABlevelQoSParameters
                                      (5)
                                  )}
                              ));

                              f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  -,
                                  ?
                              ));


                              log("V6: Send E_RAB without UE_Agregate_Max_Bit_Rate_IE");
                              log("V6: Await E_RAB with ifpresent UE_Agregate_Max_Bit_Rate_IE");
                              f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  {m_E_RABToBeSetupItemBearerSUReq (
                                      -,
                                      m_e_RABlevelQoSParameters
                                      (5)
                                  )}
                              ));

                              f_recv_E_RABSetupRequest(mw_E_RABSetupReqIEs(
                                  vc_MME_UE_ID,
                                  vc_eNB_UE_ID,
                                  -,
                                  ?
                              ));


//              TODO Delete above loopback execution code
                
                f_send_E_RABSetupRequest(m_E_RABSetupReqIEs(
                    vc_MME_UE_ID,
@@ -1681,6 +1533,174 @@ module S1AP_TCFunctions {
         */
        group Handover_signalling_group {
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_HAS_01
             */
            function f_TC_S1AP_eNB_HAS_01() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                // Preamble action: TODO check if some preamble required
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a Handover to be forwarded
                if (fx_eNB_Handover_preparation_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a HANDOVER_REQUIRED
                    f_recv_HandoverRequired(
                        mw_HandoverRequiredIEs(
                            vc_MME_UE_ID,
                            vc_eNB_UE_ID,
                            intralte,//handover_Type
                            -,//Cause
                            -,//TargetId
                            -//SourceToTargetTransparentContainer
                    ));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_HAS_01
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_HAS_02
             */
            function f_TC_S1AP_eNB_HAS_02() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                // Preamble action: TODO check if some preamble required
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a Handover to be forwarded
                if (fx_eNB_Handover_preparation_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a HANDOVER_REQUIRED
                    f_recv_HandoverRequired(
                        mw_HandoverRequiredIEs(
                            vc_MME_UE_ID,
                            vc_eNB_UE_ID,
                            ltetoutran,//handover_Type
                            -,//Cause
                            -,//TargetId
                            -//TODO Check if SourceRNCToTargetRNCTransparentContainer with UE History Information is present
                    ));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_HAS_02
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_HAS_03
             */
            function f_TC_S1AP_eNB_HAS_03() runs on S1APComponent { 
                // Local variables
                
                // Preamble
                f_S1AP_enb_init();
                // Preamble action: TODO check if some preamble required
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a Handover to be forwarded
                if (fx_eNB_Handover_preparation_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a HANDOVER_REQUIRED
                    f_recv_HandoverRequired(
                        mw_HandoverRequiredIEs(
                            vc_MME_UE_ID,
                            vc_eNB_UE_ID,
                            ltetogeran,//handover_Type
                            -,//Cause
                            -,//TargetId
                            -//TODO Check if SourceBSSToTargetBSSTransparentContainer
                    ));
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_HAS_03
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_HAS_04
             */
            function f_TC_S1AP_eNB_HAS_04() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                const NAS_PDU c_nAS_PDU := '0000'O;
                
                // Preamble
                f_S1AP_enb_init();
                // Preamble action: TODO check if some preamble required
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. to indicate a Handover to be forwarded
                if (fx_eNB_Handover_preparation_procedure() == false) {
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_error); 
                } else {
                    // 2. sends a HANDOVER_REQUIRED
                    f_recv_HandoverRequired(
                        mw_HandoverRequiredIEs(
                            vc_MME_UE_ID,
                            vc_eNB_UE_ID,
                            intralte,//handover_Type
                            -,//Cause
                            -,//TargetId
                            -//SourceToTargetTransparentContainer
                    ));
                    
                    f_send_E_RABModifiedRequest(m_E_RABModifiedReqIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        {m_E_RABToBeModifiedItemBearerSUReq(
                            c_E_RAB_ID_A,
                            m_e_RABlevelQoSParameters(5),
                            c_nAS_PDU
                        )}
                    ));
                    
                    
                    
                    
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                }
                
                // Postamble
                f_postamble_S1AP_eNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_eNB_HAS_04
            
        } // End of group Handover_signalling_group
        
        /**
@@ -2968,9 +2988,12 @@ module S1AP_TCFunctions {
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                //f_send_(                    );
                
                //f_recv_(                    );
                f_recv_E_RABSetupRequest(superset (all from mw_E_RABSetupReqIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    ?
                )));
                
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
+16 −0
Original line number Diff line number Diff line
@@ -1914,6 +1914,14 @@ module S1AP_TestCases {
            
        } // End of group LPPa_transport_group
        
        /**
         * @desc Unknown, Unforseen and Erroneous Protocol Data
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.18  Unknown, Unforseen and Erroneous Protocol Data
         */
        group Unknown_unforseen_errorneous_group {
            
        } // End of group Unknown_unforseen_errorneous_group
        
    } // End of group eNB_Role
    
    group MME_Role { // TODO Review all preamble action: E-RAB Setup is exchanged for MME role, shall not be f_rABSetupRequest
@@ -3072,6 +3080,14 @@ module S1AP_TestCases {
            
        } // End of group LPPa_transport_group
        
        /**
         * @desc Unknown, Unforseen and Erroneous Protocol Data
         * @see ETSI TS 103 497-2 Clause 5.2.2.2.18  Unknown, Unforseen and Erroneous Protocol Data
         */
        group Unknown_unforseen_errorneous_group {
            
        } // End of group Unknown_unforseen_errorneous_group
        
        
    } // End of group MME_Role