Commit 43db0161 authored by garciay's avatar garciay
Browse files

STF519 Week #19:

- Implementation of MME/Unknown, Unforseen and Erroneous Protocol Data group TPs
parent 9391ae69
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -226,7 +226,7 @@ module LibS1AP_Pixits {
    
    modulepar TriggeringMessage PX_TRIGGERING_CODE := initiating_message;
    
    modulepar Criticality PX_CRITICALITY := reject;
    modulepar Criticality PX_CRITICALITY := ignore;
    
} // End of module LibS1AP_Pixits
+10 −1
Original line number Diff line number Diff line
@@ -1014,6 +1014,15 @@ module LibS1AP_Steps {
            f_send_S1AP_initiatingMessage(m_E_RABModifiedRequest(p_value))
        } // End of function f_send_E_RABModifiedRequest
        
        /**
         * @desc Send S1AP Message E-RAB_ModifiedInd
         * @param p_value Send template with IE for E-RAB_ModifiedInd
         */
        function f_send_E_RABModifiedInd(in template (value) RecordOf_ProtocolIE p_value
        ) runs on S1APComponent {
            f_send_S1AP_initiatingMessage(m_E_RABModifiedInd(p_value))
        } // End of function f_send_E_RABModifiedInd
        
        /**
         * @desc Send S1AP Message InitialContext_SetupRequest
         * @param p_value Send template with IE for InitialContext_SetupRequest
+99 −33
Original line number Diff line number Diff line
@@ -277,18 +277,7 @@ module LibS1AP_Templates {
    
                    } // End of group ERABSetup

                    group ERABModify {

                       /**
                         * @desc Send template for InitiatingMessage message with E-RABRelease payload
                         * @param p_value           The procedure code value
                         */
                        template (value) InitiatingMessage m_E_RABReleaseRequest(
                                                                               in template (value) RecordOf_ProtocolIE p_value) := {
                            procedureCode := id_E_RABRelease,
                            criticality := reject,
                            value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                        } // End of template m_E_RABRleaseRequest        
                    group ERABModifyRequest { 
                        
                       /**
                         * @desc Send template for InitiatingMessage message with E-RABModify payload
@@ -296,7 +285,7 @@ module LibS1AP_Templates {
                         */
                        template (value) InitiatingMessage m_E_RABModifiedRequest(
                                                                               in template (value) RecordOf_ProtocolIE p_value) := {
                            procedureCode := id_E_RABSetup,
                            procedureCode := id_E_RABModify,
                            criticality := reject,
                            value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                        } // End of template m_E_RABModifiedRequest        
@@ -311,10 +300,46 @@ module LibS1AP_Templates {
                            m_E_RABToBeModifiedList(p_RecordOf_E_RABToBeModifiedItem_value)
                        } // End of template m_E_RABSetupReqIEs
                        
                    }
                    } // End of group ERABModifyRequest
                    
                    group ERABModifyInd {
                        
                       /**
                         * @desc Send template for InitiatingMessage message with E-RABModifyInd payload
                         * @param p_value           The procedure code value
                         */
                        template (value) InitiatingMessage m_E_RABModifiedInd(
                                                                              in template (value) RecordOf_ProtocolIE p_value) := {
                            procedureCode := id_E_RABModificationIndication,
                            criticality := reject,
                            value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                        } // End of template m_E_RABModifiedInd
                        
                        template (value) RecordOf_ProtocolIE m_E_RABModifiedIndIEs(
                                                                                   in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                   in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                   in template (value) RecordOf_E_RABToBeModifiedItemBearerModInd p_RecordOf_E_RABToBeModifiedItemBearerModInd_value
                        ) := {
                            m_MME_UE_S1AP_ID(p_MME_value),
                            m_eNB_UE_S1AP_ID(p_eNB_value),
                            m_E_RABToBeModifiedItemBearerModIndList(p_RecordOf_E_RABToBeModifiedItemBearerModInd_value)
                        } // End of template m_E_RABModifiedIndIEs
                        
                    } // End of group ERABModifyInd
                    
                    group ERABRelease {

                       /**
                         * @desc Send template for InitiatingMessage message with E-RABRelease payload
                         * @param p_value           The procedure code value
                         */
                        template (value) InitiatingMessage m_E_RABReleaseRequest(
                                                                               in template (value) RecordOf_ProtocolIE p_value) := {
                            procedureCode := id_E_RABRelease,
                            criticality := reject,
                            value_ := {RecordOf_ProtocolIE := valueof(p_value)}
                        } // End of template m_E_RABRleaseRequest        

                        template (value) RecordOf_ProtocolIE m_E_RABReleaseReqIEs(
                                    in template (value) MME_UE_S1AP_ID p_MME_value,
                                    in template (value) ENB_UE_S1AP_ID p_eNB_value,
@@ -502,18 +527,34 @@ module LibS1AP_Templates {
                                                                                     in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                     in template (value) ENB_UE_S1AP_ID p_eNB_value
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore)
                        m_MME_UE_S1AP_ID(p_MME_value, ignore),
                        m_eNB_UE_S1AP_ID(p_eNB_value, ignore)
                    } // End of template m_UeContextResumeRequestIEs 
                    
                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs_RABFailedToResumeItem(
                                                                                                           in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                                           in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                                           in template (value) E_RABFailedToResumeItemResumeReq p_E_RABFailedToResumeItemResumeReq
                                                                                                           in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_RecordOf_E_RABFailedToResumeItemResumeReq_value
                    ) modifies m_UeContextResumeRequestIEs := {
                        m_E_RABFailedToResumeListResumeReq_IE(p_E_RABFailedToResumeItemResumeReq)
                        m_E_RABFailedToResumeItemResumeReqList(p_RecordOf_E_RABFailedToResumeItemResumeReq_value)
                    } // End of template m_UeContextResumeRequestIEs_RABFailedToResumeItem 
                    
                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs_Unknown_ID(
                                                                                                in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                                in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                                in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_RecordOf_E_RABFailedToResumeItemResumeReq_value
                    ) modifies m_UeContextResumeRequestIEs_RABFailedToResumeItem := {
                        m_Unknown_ID_IE(-, reject)
                    } // End of template m_UeContextResumeRequestIEs_Unknown_ID 
                    
                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs_no_eNB(
                                                                                            in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                            in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_RecordOf_E_RABFailedToResumeItemResumeReq_value
                    ) := {
                        m_MME_UE_S1AP_ID(p_MME_value, ignore),
                        m_E_RABFailedToResumeItemResumeReqList(p_RecordOf_E_RABFailedToResumeItemResumeReq_value)
                    } // End of template m_UeContextResumeRequestIEs_no_eNB 
                    
                    /**
                     * @desc Send template for InitiatingMessage message with m_UeContextModificationRequest payload
                     * @param p_value           Expected procedure code
@@ -609,14 +650,6 @@ module LibS1AP_Templates {
                        m_UE_Radio_capability_IE(p_UeRadioCapabilities)
                    } // End of template m_ContextModificationReqIEsSecCap
                    
                    template (value) RecordOf_ProtocolIE m_UeContextResumeRequestIEs_Unknown_ID(
                                                                                                in template (value) MME_UE_S1AP_ID p_MME_value,
                                                                                                in template (value) ENB_UE_S1AP_ID p_eNB_value,
                                                                                                in template (value) E_RABFailedToResumeItemResumeReq p_E_RABFailedToResumeItemResumeReq
                    ) modifies m_UeContextResumeRequestIEs := {
                        m_Unknown_ID_IE(-, reject)
                    } // End of template m_UeContextResumeRequestIEs_Unknown_ID 
                    
                }// End of group Context_management_group
                
                /**
@@ -3714,7 +3747,29 @@ module LibS1AP_Templates {
                    value_ := { RecordOf_E_RABToBeModifiedItemBearerModReq := valueof(p_value) }
                } // End of template m_E_RABToBeSetupList
                
                /**
                 * @desc Send template for E-RABToBeModifiedItemBearerModInd protocol IE
                 * @param p_value  Protocol IE value
                 */
                template (value) ProtocolIE m_E_RABToBeModifiedItemBearerModIndList(
                                                                                    in template (value) RecordOf_E_RABToBeModifiedItemBearerModInd p_value
                ) := {
                    id := S1AP_Constants.id_E_RABToBeModifiedItemBearerModInd,
                    criticality := reject,
                    value_ := { RecordOf_E_RABToBeModifiedItemBearerModInd := valueof(p_value) }
                } // End of template m_E_RABToBeModifiedItemBearerModIndList
                
                /**
                 * @desc Send template for E-RABFailedToResumeItemResumeReq protocol IE
                 * @param p_value  Protocol IE value
                 */
                template (value) ProtocolIE m_E_RABFailedToResumeItemResumeReqList(
                                                                                   in template (value) RecordOf_E_RABFailedToResumeItemResumeReq p_value
                ) := {
                    id := S1AP_Constants.id_E_RABFailedToResumeItemResumeReq,
                    criticality := reject,
                    value_ := { RecordOf_E_RABFailedToResumeItemResumeReq := valueof(p_value) }
                } // End of template m_E_RABFailedToResumeItemResumeReqList
                
            } // End of group E_RAB_IEsend
            
@@ -3767,7 +3822,7 @@ module LibS1AP_Templates {
                } // End of template m_target_ToSource_TransparentContainer_IE
            
                
            }//end group Handover_group {
            } // End of group Handover_group
            
            /**
             * @desc Management group
@@ -5667,6 +5722,17 @@ module LibS1AP_Templates {
                    iE_Extensions   := omit
                } // End of template m_E_RABFailedToResumeItemResumeReq
                
                template (value) E_RABToBeModifiedItemBearerModInd m_E_RABToBeModifiedItemBearerModInd(
                                                                                                       in template (value) E_RAB_ID p_e_RAB_ID,
                                                                                                       in template (value) TransportLayerAddress p_transportLayerAddress := '0'B,
                                                                                                       in template (value) GTP_TEID p_dL_GTP_TEID := '00000000'O
                ) := {
                    e_RAB_ID                := p_e_RAB_ID,
                    transportLayerAddress   := p_transportLayerAddress,
                    dL_GTP_TEID             := p_dL_GTP_TEID,
                    iE_Extensions           := omit
                } // End of template m_E_RABToBeModifiedItemBearerModInd
                
            } // End of group Unknown_unforseen_errorneous_group
            
        } // End of group g_IEParameters
+10 −0
Original line number Diff line number Diff line
@@ -30,6 +30,11 @@ module LibS1AP_TypesAndValues {
     */
    type record of E_RABToBeModifiedItemBearerModReq RecordOf_E_RABToBeModifiedItemBearerModReq;
    
    /**
     * @desc List of E-RABToBeModifiedItemBearerModInd IEs
     */
    type record of E_RABToBeModifiedItemBearerModInd RecordOf_E_RABToBeModifiedItemBearerModInd;
    
    /**
     * @desc List of E-RABSetupItemBearerSURes IEs
     */
@@ -55,6 +60,11 @@ module LibS1AP_TypesAndValues {
     */
    type record of E_RABItem RecordOf_E_RABItem;
    
    /**
     * @desc List of E-RABFailedToResumeItemResumeReq IEs
     */
    type record of E_RABFailedToResumeItemResumeReq RecordOf_E_RABFailedToResumeItemResumeReq;
    
    /**
     * @desc List of E-RABs Subject to Forwarding
     */
+94 −31
Original line number Diff line number Diff line
@@ -4570,10 +4570,12 @@ module S1AP_TCFunctions {
                    m_UeContextResumeRequestIEs_RABFailedToResumeItem(
                    vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        {
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                        }
                    )
                ); 
                    
@@ -5768,10 +5770,12 @@ module S1AP_TCFunctions {
                    m_UeContextResumeRequestIEs_RABFailedToResumeItem(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        { 
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                        }
                    ),
                    PX_VA_CRITICALITY
                ); 
@@ -5818,12 +5822,13 @@ module S1AP_TCFunctions {
                    m_UeContextResumeRequestIEs_Unknown_ID(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        { 
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                    )
                ); 
                        }
                )); 
                // 2. sends an UE_CONTEXT_RESUME_FAILURE
                f_recv_Ue_Context_Resume_Failure(
                    mw_UeContextResumeFailureIEs(
@@ -5831,9 +5836,9 @@ module S1AP_TCFunctions {
                        vc_eNB_UE_ID,
                        mw_cause_protocol(unspecified),
                        mw_criticalityDiagnostics(
                            PX_PROCEURE_CODE,
                            PX_TRIGGERING_CODE,
                            PX_CRITICALITY,
                            ?,
                            ?,
                            ?,
                            { 
                                mw_criticalityDiagnostics_IE_Item(
                                    reject, 
@@ -5869,15 +5874,18 @@ module S1AP_TCFunctions {
                
                // Test body
                // 1. on receipt of a E-RAB_MODIFICATION_INDICATION
                // TODO
//                f_send_Ue_Context_Resume_Request(
//                    m_UeContextResumeRequestIEs(
//                        vc_MME_UE_ID,
//                        vc_eNB_UE_ID,
//                        m_E_RABFailedToResumeItemResumeReq(
//                            c_E_RAB_ID_A,
//                            m_cause_ran(user_inactivity)
//                ))); 
                f_send_E_RABModifiedInd(
                    m_E_RABModifiedIndIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        {
                            m_E_RABToBeModifiedItemBearerModInd(
                                c_E_RAB_ID_A,
                                -,
                                -
                            )
                        }
                )); 
                // 2. sends an ERROR_INDICATION
                f_recv_Error_Indication(
                    mw_error_IndicationIEs(
@@ -5908,6 +5916,61 @@ module S1AP_TCFunctions {
                
            } // End of function f_TC_S1AP_MME_ERR_03
            
            /**
             * @desc Testcase function for TC_S1AP_MME_ERR_04
             */
            function f_TC_S1AP_MME_ERR_04() runs on S1APComponent { 
                // Local variables
                const E_RAB_ID c_E_RAB_ID_A := 0;
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                f_rABSetupRequest();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                
                // Test body
                // 1. on receipt of a UE_CONTEXT_RESUME_REQUEST
                f_send_Ue_Context_Resume_Request(
                    m_UeContextResumeRequestIEs_no_eNB(
                        vc_MME_UE_ID,
                        { 
                            m_E_RABFailedToResumeItemResumeReq(
                                c_E_RAB_ID_A,
                                m_cause_ran(user_inactivity)
                            )
                        }
                )); 
                // 2. sends an UE_CONTEXT_RESUME_FAILURE
                f_recv_Ue_Context_Resume_Failure(
                    mw_UeContextResumeFailureIEs(
                        vc_MME_UE_ID,
                        vc_eNB_UE_ID,
                        mw_cause_protocol(unspecified),
                        mw_criticalityDiagnostics(
                            ?,
                            ?,
                            ?,
                            { 
                                mw_criticalityDiagnostics_IE_Item(
                                    reject, 
                                    -, 
                                    missing
                                ) 
                            }
                        )
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
                
                // Postamble
                f_rABSetupRelease();
                f_postamble_S1AP_MME();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                
            } // End of function f_TC_S1AP_MME_ERR_04
            
        } // End of group Unknown_unforseen_errorneous_group
        
    } // End of group MME_Role
Loading