Commit cbcb68b0 authored by pintar's avatar pintar
Browse files

new IE(E-RABToBeSetup) prepared for Context Management Group and will be used in TCFunction module

New test for Handover group added.
parent c35c2728
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -177,6 +177,15 @@ module LibS1AP_Steps {
            f_recv_S1AP_initiatingMessage(mw_HandoverRequired(p_value))
        } // End of function f_recv_HandoverRequired
        
        /**
         * @desc Receive S1AP Message Handover Cancel
         * @param p_value Receive template for Handover Cancel IEs
         */
        function f_recv_HandoverCancel(in template (present) RecordOf_ProtocolIE p_value :=?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_HandoverCancel(p_value))
        } // End of function f_recv_HandoverCancel
        
        /**
         * @desc Receive S1AP Message InitialContext_SetupResponse
         * @param p_value Receive template for InitialContext_SetupResponse IEs
+91 −3
Original line number Diff line number Diff line
@@ -614,9 +614,8 @@ module LibS1AP_Templates {
                              mw_handoverType_IE(p_HandoverType_value),
                            mw_cause_IE(p_Cause_value),
                            mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
                       } // End of template mw_HandoverRequiredIEs
                       
                              
                       } // End of template m_E_RABSetupReqIEs
                }// End of group HandoverPreparation
                
                group HandoverPreparation{
@@ -627,6 +626,31 @@ module LibS1AP_Templates {
                    
                }// End of group HandoverResourceAllocation
                
                group HandoverCancelation{
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with Handover Cancel payload
                     * @param p_value           The procedure code value
                     */
                    template (present) InitiatingMessage mw_HandoverCancel(
                                                                           template (present) RecordOf_ProtocolIE p_value) := {
                        procedureCode := id_HandoverCancel,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_HandoverCancel
                    
                    template (value) RecordOf_ProtocolIE mw_HandoverCancelIEs(
                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                        template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                        template (present) Cause p_Cause_value := ?
                       ) := {
                            mw_MME_UE_S1AP_ID(p_MME_value),
                            mw_eNB_UE_S1AP_ID(p_eNB_value),
                            mw_cause_IE(p_Cause_value)
                       } // End of template mw_HandoverCancelIEs
                       
                }// End of group HandoverCancelation
                
                
                group ERABModify{

@@ -2758,6 +2782,20 @@ module LibS1AP_Templates {
                    value_ := { RecordOf_E_RABToBeSetupItemBearerSUReq := valueof(p_value) }
                } // End of template m_E_RABToBeSetupList
                
                /**
                 * @desc Send template for E-RABToBeSetupListCtxtSUReq protocol IE
                 * @param p_value  Protocol IE value. Default: m_E_RABToBeSetupListCtxtSUReq
                 */
                template (value) ProtocolIE m_E_RABToBeSetupListCtxt(
                                                                 in template (value) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { m_E_RABToBeSetupItemCtxtSUReq }
                ) := {
                    id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
                    criticality := reject,
                    value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := valueof(p_value) }
                } // End of template m_E_RABToBeSetupListCtxt
                
                
                
                /**
                 * @desc Send template for E-RABToBeModifiedItemBearerModReq protocol IE
                 * @param p_value  Protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
@@ -3065,6 +3103,18 @@ module LibS1AP_Templates {
                value_ := { RecordOf_E_RABSetupItemBearerSURes := p_value }
            } // End of template 
            
            /**
             * @desc Receive template for E-RABSetupListCtxtSUReq protocol IE
             * @param p_value  Expected protocol IE value. Default: m_E_RABToBeSetupItemBearerSUReq
             */
            template (present) ProtocolIE mw_E_RABSetupListCtxt(
                                                            template (present) RecordOf_E_RABToBeSetupItemCtxtSUReq p_value := { mw_E_RABToBeSetupItemCtxtSUReq }
            ) := {
                id := S1AP_Constants.id_E_RABToBeSetupListCtxtSUReq,
                criticality := ignore,
                value_ := { RecordOf_E_RABToBeSetupItemCtxtSUReq := p_value }
            } // End of template 
 
            /**
             * @desc Receive template for E-RABToBeSetupListBearerSUReq protocol IE
             * @param p_value  Protocol IE value. Default: mw_E_RABToBeSetupItemBearerSUReq
@@ -3890,6 +3940,44 @@ module LibS1AP_Templates {
                 iE_Extensions                   := *
            } // End of template mw_E_RABSetupItemBearerSURes
            
            /**
             * @desc 
             */
            template(omit) E_RABToBeSetupItemCtxtSUReq m_E_RABToBeSetupItemCtxtSUReq(
                                                                                          in E_RAB_ID p_e_RAB_ID := 0,
                                                                                          in template (value) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := m_e_RABlevelQoSParameters,
                                                                                          in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                                          in template (value) GTP_TEID p_gTP_TEID := '00000000'O,
                                                                                          in template (omit) NAS_PDU p_nAS_PDU := '0000'O,
                                                                                          in template (omit) E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := omit
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                e_RABlevelQoSParameters := valueof(p_e_RABlevelQoSParameters),
                transportLayerAddress := p_transportLayerAddress,
                gTP_TEID := p_gTP_TEID,
                nAS_PDU := p_nAS_PDU,
                iE_Extensions := p_iE_Extensions
            } // End of template m_E_RABToBeSetupItemCtxtSUReq

            /**
             * @desc 
             */
            template (present) E_RABToBeSetupItemCtxtSUReq mw_E_RABToBeSetupItemCtxtSUReq(
                                                                                          template (present) E_RAB_ID p_e_RAB_ID := 0,
                                                                                          template (present) E_RABLevelQoSParameters p_e_RABlevelQoSParameters := mw_e_RABlevelQoSParameters,
                                                                                          template (present) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                                          template (present) GTP_TEID p_gTP_TEID := '00000000'O,
                                                                                          template NAS_PDU p_nAS_PDU := ?,
                                                                                          template E_RABToBeSetupItemCtxtSUReq.iE_Extensions p_iE_Extensions := *
            ) := {
                e_RAB_ID := p_e_RAB_ID,
                e_RABlevelQoSParameters := p_e_RABlevelQoSParameters,
                transportLayerAddress := p_transportLayerAddress,
                gTP_TEID := p_gTP_TEID,
                nAS_PDU := p_nAS_PDU,
                iE_Extensions := p_iE_Extensions
            } // End of template mw_E_RABToBeSetupItemCtxtSUReq
            
            /**
             * @desc 
             */
+5 −0
Original line number Diff line number Diff line
@@ -20,6 +20,11 @@ module LibS1AP_TypesAndValues {
     */
    type record of E_RABToBeSetupItemBearerSUReq RecordOf_E_RABToBeSetupItemBearerSUReq;

    /**
     * @desc List of E-RABToBeSetupItemCtxtSUReq IEs
     */
    type record of E_RABToBeSetupItemCtxtSUReq RecordOf_E_RABToBeSetupItemCtxtSUReq;
    
    /**
     * @desc List of E-RABModifiedItemBearerSURes IEs
     */
+54 −1
Original line number Diff line number Diff line
@@ -1680,7 +1680,7 @@ module S1AP_TCFunctions {
                        )}
                    ));
                    
                    
                    //TODO check case1 and case2 option
                    
                    
                    f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
@@ -1693,6 +1693,59 @@ module S1AP_TCFunctions {
                
            } // End of function f_TC_S1AP_eNB_HAS_04
            
            /**
             * @desc Testcase function for TC_S1AP_eNB_HAS_05
             */
            function f_TC_S1AP_eNB_HAS_05() 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
                    ));
                    
                    log("No response is send to IUT before timer TS1RELOCprep expires.");
                    
                    //TODO f_wait
                    
                    f_recv_HandoverCancel(
	                    mw_HandoverCancelIEs(
	                        vc_MME_UE_ID,
	                        vc_eNB_UE_ID,
	                        -//Cause
	                ));
                    
                    
                    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_05
            
        } // End of group Handover_signalling_group
        
        /**