Commit a2269845 authored by garciay's avatar garciay
Browse files

STF519 Week #19:

- TODOs: f_rABSetupRelease,f_initiate_deactivateTrace,f_writeReplaceWarningExchanges
- eNB CONFIGURATION UPDATE optional PICS added
- ERROR_IND optional PICS added
- Comments review
parent 5cc7d191
Loading
Loading
Loading
Loading
+71 −42
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ module LibS1AP_Steps {
    
    // LibS1AP
    import from S1AP_PDU_Descriptions language "ASN.1:1997" all;
    import from S1AP_IEs language "ASN.1:1997" all;
    
    import from LibS1AP_TypesAndValues all;
    import from LibS1AP_Interface all;
    import from LibS1AP_Pixits all;
@@ -33,7 +35,7 @@ module LibS1AP_Steps {
         * @return true if value of p_int greater than 0
         * @param p_int - integer value
         */
        function f_gtZero( // FIXME Do we really need a function for <= mathematical operation???
        function f_gtZero( // FIXME: Not used to be removed
                          in integer p_int
        ) return boolean {
            if (p_int > 0){
@@ -49,7 +51,7 @@ module LibS1AP_Steps {
         * @return incremented value of p_int 0
         * @param p_int - integer value
         */
        function f_inc(
        function f_inc( // FIXME: Not used to be removed
                       inout UInt32 p_int
        ) return UInt32 {
            p_int := p_int + 1;
@@ -809,7 +811,6 @@ module LibS1AP_Steps {
            f_recv_S1AP_initiatingMessage(mw_UeContextResumeRequest(p_value))
        } // End of f_recv_Ue_Context_Resume_Request


        /**
        * @desc Receive S1AP Message UE RADIO_CAPABILITY_MATCH_RESPONSE
        * @param p_value Receive template for UE_RADIO_CAPABILITY_MATCH_RESPONSE
@@ -1209,7 +1210,29 @@ module LibS1AP_Steps {
         * @desc Setup a full E-RAB Release procedure
         */
        function f_rABSetupRelease() runs on S1APComponent {
            // TODO 
            // Local variables
            const E_RAB_ID c_E_RAB_ID_A := 0;
            
            f_send_E_RABReleaseRequest(m_E_RABReleaseReqIEs(
                vc_MME_UE_ID,
                vc_eNB_UE_ID,
                {
                    m_E_RABItem(
                        c_E_RAB_ID_A,
                        m_cause_ran(user_inactivity) // FIXME To be checked
                    )
                }
            ));
                
            f_recv_E_RABReleaseResponse(mw_E_RABReleaseResIEs(
                vc_MME_UE_ID,
                vc_eNB_UE_ID,
                {
                    mw_E_RABItem(
                        c_E_RAB_ID_A
                    )
                }
            ));
        } // End of function f_rABSetupRelease
        
        /**
@@ -1237,14 +1260,33 @@ module LibS1AP_Steps {
         * @desc Initiate a Deactivate Trace procedure
         */
        function f_initiate_deactivateTrace() runs on S1APComponent {
            // TODO 
            f_send_deactivate_Trace(
                m_deactivate_TraceIEs(
                    vc_MME_UE_ID,
                    vc_eNB_UE_ID,
                    PX_EUTRAN_TRACE_ID
            ));
        } // End of function f_initiate_deactivateTrace
        
        /**
         * @desc Initiate a an Write-Replace Warning Request procedure
         */
        function f_writeReplaceWarningExchanges() runs on S1APComponent {
            // TODO 
            if (fx_MME_Write_Replace_Warning_procedure() == true) {
                f_recv_Write_Replace_Warning_Request(
                    mw_write_Replace_Warning_RequestIEs(
                        PX_MESSAGE_IDENTIFIER,
                        PX_SERIAL_NUMBER,
                        PX_REPETITION_PERIOD, 
                        PX_NUMBER_OF_BROADCASTS_REQUESTED
                ));
                f_send_Write_Replace_Warning_Response(
                    m_write_Replace_Warning_ResponseIEs(
                        PX_MESSAGE_IDENTIFIER,
                        PX_SERIAL_NUMBER
                ));
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); 
            }
        } // End of function f_writeReplaceWarningExchanges
        
    } // End of group fullProcedures
@@ -1533,7 +1575,7 @@ module LibS1AP_Steps {
         */
        function f_S1AP_Init_Component()
        runs on S1APComponent {
            
            // Nothing to do
        } // End of function  f_S1AP_Init_Component
        
        /**
@@ -1571,19 +1613,6 @@ module LibS1AP_Steps {
            return v_ret;
        } // End of function 
        
        /**
         * 
         * @desc Wait for particular time before next expected message
         */
//        function f_wait(float p_time) // FIXME To be replace by LibCommon.f_sleep!!!
//        runs on S1APComponent {
//            
//            tc_wait.start(p_time);
//            alt {
//                [] tc_wait.timeout{ }
//            }
//        } // End of function f_wait
        
    } // End of group globalSteps
    
    /**
+44 −0
Original line number Diff line number Diff line
@@ -27,9 +27,53 @@ module S1AP_Pics {
    } // End of group PICS_A2
    
    group PICS_A3 {
        
        /**
         * @desc Does eNB support repetition of the sending of eNB CONFIGURATION UPDATE messages in case of no reply? 
         * @see  ETSI DTS_INT-00135-1 A.3/6.4.1 
         */
        modulepar boolean PICS_S1AP_eNB_REPETITION_SENDING_CONF_UPDATE := false;
        
        /**
         * @desc Does eNB support initiation oft the Error Indication procedure when a transfer syntax error is detected? 
         * @see  ETSI DTS_INT-00135-1 A.3/17.1 
         */
        modulepar boolean PICS_S1AP_eNB_INITIATION_ERROR_IND_PROCEDURE := false;
        
        /**
         * @desc Does eNB support initiation of the Error Indication procedure when an abstract syntax error is detected? 
         * @see  ETSI DTS_INT-00135-1 A.3/17.2 
         */
        modulepar boolean PICS_S1AP_eNB_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE := false;
        
        /**
         * @desc Does eNB support initiation of the Error Indication procedure when a logical error is detected? 
         * @see  ETSI DTS_INT-00135-1 A.3/17.3 
         */
        modulepar boolean PICS_S1AP_eNB_INITIATION_ERROR_IND_LOGICAL_ERROR_PROCEDURE := false;
        
    } // End of group PICS_A3
    
    group PICS_A4 { 
        
        /**
         * @desc Does eNB support initiation oft the Error Indication procedure when a transfer syntax error is detected? 
         * @see  ETSI DTS_INT-00135-1 A.4/17.1 
         */
        modulepar boolean PICS_S1AP_MME_INITIATION_ERROR_IND_PROCEDURE := false;
        
        /**
         * @desc Does eNB support initiation of the Error Indication procedure when an abstract syntax error is detected? 
         * @see  ETSI DTS_INT-00135-1 A.4/17.2 
         */
        modulepar boolean PICS_S1AP_MME_INITIATION_ERROR_IND_ABSTRACT_SYNTAX_PROCEDURE := false;
        
        /**
         * @desc Does eNB support initiation of the Error Indication procedure when a logical error is detected? 
         * @see  ETSI DTS_INT-00135-1 A.4/17.3 
         */
        modulepar boolean PICS_S1AP_MME_INITIATION_ERROR_IND_LOGICAL_ERROR_PROCEDURE := false;
        
    } // End of group PICS_A4
    
} // End of module S1AP_Pics 
+6 −6
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ module S1AP_Steps {
            // Defaults
            vc_default_s1ap := activate (a_defaultS1AP());
            
            //Base LibDiameter init function if there will be any base initialisation
            // Base LibS1AP init function if there will be any base initialisation
            f_S1AP_Init_Component();
            
            vc_ETS_address := PX_S1AP_MME_ETS_IPADDR;
@@ -48,7 +48,7 @@ module S1AP_Steps {
            // Defaults
            vc_default_s1ap := activate (a_defaultS1AP());
            
            //Base LibDiameter init function if there will be any base initialisation
            // Base LibS1AP init function if there will be any base initialisation
            f_S1AP_Init_Component();
            
            vc_ETS_address := PX_S1AP_eNB_ETS_IPADDR;
@@ -67,7 +67,7 @@ module S1AP_Steps {
            // Defaults
            vc_default_s1ap := activate (a_defaultS1AP());
            
            //Base LibDiameter init function if there will be any base initialisation
            // Base LibS1AP init function if there will be any base initialisation
            f_S1AP_Init_Component();
            
            vc_ETS_address := PX_S1AP_eNB_ETS_IPADDR2;
+3 −12
Original line number Diff line number Diff line
@@ -3449,19 +3449,14 @@ module S1AP_TCFunctions {
            
        } // End of group ENB_direct_information_transfer_group



        /**
         * @desc NAS transport group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.14  MME direct information transport group
         */
        group MME_direct_information_transfer_group {

            
            // Void
        } // End of group MME_direct_information_transfer_group


        
        /**
         * @desc eNB configuration transfer group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.15  eNB configuration transfer group
@@ -3504,18 +3499,14 @@ module S1AP_TCFunctions {
            
        } // End of group ENB_configuration_transfer_group 


        /**
         * @desc NAS transport group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.16  MME configuration transport group
         */
        group MME_configuration_transfer_group {

            
            // Void
        } // End of group MME_configuration_transfer_group


        
        /**
         * @desc LPPa transport group
         * @see ETSI DTS/INT-00135-2 Clause 5.2.2.1.17  LPPa transport group
@@ -4595,7 +4586,7 @@ module S1AP_TCFunctions {
                
                // Preamble
                f_S1AP_mme_init();
                // Preamble action: E-RAB Setup is exchanged
                // Preamble action: A warning message procedure is exchanged
                f_writeReplaceWarningExchanges(); 
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); 
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");