Commit f1de0f6f authored by garciay's avatar garciay
Browse files

STF519: Week #12, Finalise NAS transport group

parent 44b09a1f
Loading
Loading
Loading
Loading
+92 −10
Original line number Diff line number Diff line
@@ -159,6 +159,16 @@ module LibS1AP_Steps {
            f_recv_S1AP_successfulOutcome(mw_InitialContextSetupResponse(p_value))
        } // End of f_recv_InitialContext_SetupResponse

        /**
         * @desc Receive S1AP Message INITIAL UE MESSAGE
         * @param p_value Receive template for INITIAL UE MESSAGE IEs
         */
        function f_recv_Initial_UE_Message(
                                           template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_initial_uE_Message(p_value))
        } // End of f_recv_Initial_UE_Message
        
        /**
         * @desc Receive S1AP Message S1 SETUP REQUEST
         * @param p_value Receive template for S1 SETUP REQUEST IEs
@@ -269,6 +279,46 @@ module LibS1AP_Steps {
            f_recv_S1AP_successfulOutcome(mw_mME_Configuration_Update_Failure(p_value))
        } // End of f_recv_MME_Configuration_Update_Failure
        
        /**
         * @desc Receive S1AP Message DOWNLINK NAS TRANSPORT
         * @param p value Receive template for DOWNLINK NAS TRANSPORT IEs
         */
        function f_recv_Downlink_NAS_Transport(
                                               template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_downlink_nAS_Transport(p_value))
        } // End of f_recv_Downlink_NAS_Transport
        
        /**
         * @desc Receive S1AP Message UPLINK NAS TRANSPORT
         * @param p value Receive template for UPLINK NAS TRANSPORT IEs
         */
        function f_recv_Uplink_NAS_Transport(
                                               template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_uplink_nAS_Transport(p_value))
        } // End of f_recv_Uplink_NAS_Transport
        
        /**
         * @desc Receive S1AP Message sends a NAS NON DELIVERY INDICATION
         * @param p value Receive template for NAS NON DELIVERY INDICATION IEs
         */
        function f_recv_NAS_Non_Delivery_Indication(
                                                    template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_nAS_Non_Delivery_Indication(p_value))
        } // End of f_recv_NAS_Non_Delivery_Indication
        
        /**
         * @desc Receive S1AP Message REROUTE NAS REQUEST
         * @param p value Receive template for REROUTE NAS REQUEST IEs
         */
        function f_recv_Reroute_NAS_Request(
                                            template (present) RecordOf_ProtocolIE p_value := ?
        ) runs on S1APComponent {
            f_recv_S1AP_initiatingMessage(mw_reroute_nAS_Request(p_value))
        } // End of f_recv_Reroute_NAS_Request
        
        /**
         * @desc Receive S1AP Message RESET
         * @param p_value Receive template for RESET IEs
@@ -883,6 +933,20 @@ module LibS1AP_Steps {
    
    group externalFunctions {
        
        group eNBRole {
            
            /**
             * @desc Trigger an INITIAL UE MESSAGE procedure
             * @return true on success, false otherwise
             */
            external function fx_eNB_Initiate_NAS_transport_procedure() return boolean;
            
            /**
             * @desc Trigger an INITIAL UE MESSAGE procedure
             * @return true on success, false otherwise
             */
            external function fx_eNB_NAS_transport_procedure() return boolean;
            
        /**
         * @desc Trigger an S1 SETUP procedure
         * @return true on success, false otherwise
@@ -967,6 +1031,31 @@ module LibS1AP_Steps {
         */
        external function fx_eNB_Configuration_Transfer_procedure() return boolean;
        
        /**
             * @desc Trigger a LPPa Transport procedure using a UE associated signalling on eNodeB
             * @param p_associated_signalling_mode Set to true for an associated signalling mode, false otherwise
             * @return true on success, false otherwise
             */
            external function fx_eNB_LPPa_Transport_procedure_ind(
                                                                  in boolean p_associated_signalling_mode
            ) return boolean;
            
        } // End of group eNBRole
        
        group mmeRole {
            
            /**
             * @desc Trigger a DOWNLINK NAS TRANSPORT event
             * @return true on success, false otherwise
             */
            external function fx_MME_Downlink_NAS_Transport_procedure() return boolean;
            
            /**
             * @desc Trigger a REROUTE NAS REQUEST event
             * @return true on success, false otherwise
             */
            external function fx_MME_Reroute_NAS_Request_procedure() return boolean;
            
            /**
         * @desc Trigger a RESET event
         * @return true on success, false otherwise
@@ -1027,24 +1116,17 @@ module LibS1AP_Steps {
         */
        external function fx_MME_Configuration_Transfer_procedure() return boolean;
        
        /**
         * @desc Trigger a LPPa Transport procedure using a UE associated signalling on eNodeB
         * @param p_associated_signalling_mode Set to true for an associated signalling mode, false otherwise
         * @return true on success, false otherwise
         */
        external function fx_eNB_LPPa_Transport_procedure_ind(
                                                              in boolean p_associated_signalling_mode
        ) return boolean;
        
        /**
         * @desc Trigger a LPPa Transport procedure using a UE associated signalling on MME
         * @param p_associated_signalling_mode Set to true for an associated signalling mode, false otherwise
         * @return true on success, false otherwise
         */
        external function fx_mme_LPPa_Transport_procedure_ind(
            external function fx_MME_LPPa_Transport_procedure_ind(
                                                              in boolean p_associated_signalling_mode
        ) return boolean;
            
        } // End of group mmeRole
        
    } // End of group externalFunctions
    
    group preambles {
+353 −169
Original line number Diff line number Diff line
@@ -438,8 +438,9 @@ module LibS1AP_Templates {
                            mw_MME_UE_S1AP_ID(p_MME_value),
                            mw_eNB_UE_S1AP_ID(p_eNB_value),
                              mw_handoverType_IE(p_HandoverType_value),
	  						mw_cause_IE(p_Cause_value),
						    mw_source_ToTarget_TransparentContainer_IE(p_Source_ToTarget_TransparentContainer_value)
                              mw_cause_IE(p_Cause_value)
                              
                              // TODO
                              
                              
                       } // End of template m_E_RABSetupReqIEs
@@ -481,12 +482,12 @@ module LibS1AP_Templates {
                    template (present) RecordOf_ProtocolIE mw_E_RABSetupResIEs_FailedToSetupList(
                                                                                                 template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                                                 template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                                                 template RecordOf_E_RABSetupItemBearerSURes p_RecordOf_E_RABSetupItem_value := omit,
                                                                                                 template (present) RecordOf_E_RABSetupItemBearerSURes p_RecordOf_E_RABSetupItem_value := ?,
                                                                                                 template (present) RecordOf_E_RABItem p_E_RABItem_value := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
                        mw_E_RABSetupList(p_RecordOf_E_RABSetupItem_value) ifpresent,
                        mw_E_RABSetupList(p_RecordOf_E_RABSetupItem_value),
                        mw_E_RABFailedToSetupList(p_E_RABItem_value)
                    } // End of template mw_E_RABSetupResIEs
                    
@@ -510,13 +511,11 @@ module LibS1AP_Templates {
                    template (present) RecordOf_ProtocolIE mw_InitialContextSetupResIEs(
                                                                               template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                               template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
																			   template RecordOf_E_RABSetupItemBearerSURes p_RecordOf_E_RABSetupItem_value := omit,
																			   template (present) RecordOf_E_RABItem p_E_RABItem_value := ?
                                                                               template (present) RecordOf_E_RABSetupItemBearerSURes p_RecordOf_E_RABSetupItem_value := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value, ignore),
                        mw_eNB_UE_S1AP_ID(p_eNB_value, ignore),
						mw_E_RABSetupList(p_RecordOf_E_RABSetupItem_value) ifpresent,
						mw_E_RABFailedToSetupList(p_E_RABItem_value)
                        mw_E_RABSetupList(p_RecordOf_E_RABSetupItem_value)
                    } // End of template mw_InitialContextSetupResIEs

					template (present) RecordOf_ProtocolIE mw_InitialContextSetupFailureIEs(
@@ -1103,6 +1102,168 @@ module LibS1AP_Templates {
                    
                } // End of group Error_Indication_receive
                
                /**
                 * @desc Receive messages for Management procedures
                 */
                group NAS_transport_group {
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with INITIAL_UE_MESSAGE payload
                     * @param p_value           Expected protocol information elements. Default: ?
                     */
                    template (present) InitiatingMessage mw_initial_uE_Message(
                                                                               template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_initialUEMessage,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_initial_uE_Message
                    
                    /**
                     * @desc Receive template for INITIAL_UE_MESSAGE message
                     * @param p_eNB_value           The expected eNB UE S1AP ID value. Default: ?
                     * @param p_nasPdu              The expected NAS-PDU value. Default: ?
                     * @param p_tAI                 The expected TAI value. Default: ?
                     * @param p_eUTRAN_CGI          The expected Type Request value. Default: ?
                     * @param p_cause               The expected RRC Establishment Cause value. Default: ?
                     */
                    template (present) RecordOf_ProtocolIE mw_initial_uE_MessageIEs(
                                                                                    template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                                    template (present) octetstring p_nasPdu := ?,
                                                                                    template (present) TAI p_tAI := ?,
                                                                                    template (present) EUTRAN_CGI p_eUTRAN_CGI := ?,
                                                                                    template (present) Cause p_cause := ?
                    ) := {
                        mw_eNB_UE_S1AP_ID(p_eNB_value),
                        mw_nAS_Pdu_IE(p_nasPdu),
                        mw_tAI_IE(p_tAI),
                        mw_eUTRAN_CGI_IE(p_eUTRAN_CGI),
                        mw_cause_IE(p_cause)
                    } // End of template mw_initial_uE_MessageIEs
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with DOWNLINK_NAS_TRANSPORT payload
                     * @param p_value           Expected protocol information elements. Default: ?
                     */
                    template (present) InitiatingMessage mw_downlink_nAS_Transport(
                                                                                   template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_downlinkNASTransport,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_downlink_nAS_Transport
                    
                    /**
                     * @desc Receive template for DOWNLINK_NAS_TRANSPORT message
                     * @param p_MME_value   The expected MME UE S1AP ID value. Default: ?
                     * @param p_eNB_value   The expected eNB UE S1AP ID value. Default: ?
                     * @param p_nasPdu      The expected NAS-PDU value. Default: ?
                     */
                    template (present) RecordOf_ProtocolIE mw_downlink_nAS_TransportIEs(
                                                                                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                                        template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                                        template (present) octetstring p_nasPdu := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value),
                        mw_eNB_UE_S1AP_ID(p_eNB_value),
                        mw_nAS_Pdu_IE(p_nasPdu)
                    } // End of template mw_downlink_nAS_TransportIEs
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with UPLINK_NAS_TRANSPORT payload
                     * @param p_value           Expected protocol information elements. Default: ?
                     */
                    template (present) InitiatingMessage mw_uplink_nAS_Transport(
                                                                                   template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_uplinkNASTransport,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_uplink_nAS_Transport
                    
                    /**
                     * @desc Receive template for UPLINK_NAS_TRANSPORT message
                     * @param p_MME_value   The expected MME UE S1AP ID value. Default: ?
                     * @param p_eNB_value   The expected eNB UE S1AP ID value. Default: ?
                     * @param p_nasPdu      The expected NAS-PDU value. Default: ?
                     */
                    template (present) RecordOf_ProtocolIE mw_uplink_nAS_TransportIEs(
                                                                                        template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                                        template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                                        template (present) octetstring p_nasPdu := ?,
                                                                                        template (present) EUTRAN_CGI p_eUTRAN_CGI := ?,
                                                                                        template (present) TAI p_tAI := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value),
                        mw_eNB_UE_S1AP_ID(p_eNB_value),
                        mw_nAS_Pdu_IE(p_nasPdu),
                        mw_eUTRAN_CGI_IE(p_eUTRAN_CGI),
                        mw_tAI_IE(p_tAI)
                    } // End of template mw_uplink_nAS_TransportIEs
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with NAS_NON_DELIVERY_INDICATION payload
                     * @param p_value           Expected protocol information elements. Default: ?
                     */
                    template (present) InitiatingMessage mw_nAS_Non_Delivery_Indication(
                                                                                   template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_NASNonDeliveryIndication,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_nAS_Non_Delivery_Indication
                    
                    /**
                     * @desc Receive template for NAS_NON_DELIVERY_INDICATION message
                     * @param p_MME_value   The expected MME UE S1AP ID value. Default: ?
                     * @param p_eNB_value   The expected eNB UE S1AP ID value. Default: ?
                     * @param p_nasPdu      The expected NAS-PDU value. Default: ?
                     */
                    template (present) RecordOf_ProtocolIE mw_nAS_Non_Delivery_IndicationIEs(
                                                                                             template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                                             template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                                             template (present) octetstring p_nasPdu := ?,
                                                                                             template (present) Cause p_cause := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value),
                        mw_eNB_UE_S1AP_ID(p_eNB_value),
                        mw_nAS_Pdu_IE(p_nasPdu),
                        mw_cause_IE(p_cause)
                    } // End of template mw_nAS_Non_Delivery_IndicationIEs
                    
                    /**
                     * @desc Receive template for REROUTE_NAS_REQUEST message
                     * @param p_value           Expected protocol information elements. Default: ?
                     */
                    template (present) InitiatingMessage mw_reroute_nAS_Request(
                                                                                   template (present) RecordOf_ProtocolIE p_value := ?
                    ) := {
                        procedureCode := id_RerouteNASRequest,
                        criticality := reject,
                        value_ := {RecordOf_ProtocolIE := p_value}
                    } // End of template mw_reroute_nAS_Request
                    
                    /**
                     * @desc Receive template for InitiatingMessage message with REROUTE_NAS_REQUEST payload
                     * @param p_MME_value     The expected MME UE S1AP ID value. Default: ?
                     * @param p_eNB_value     The expected eNB UE S1AP ID value. Default: ?
                     * @param p_s1Message     The expected INITIAL UE MESSAGE value. Default: ?
                     * @param p_mME_Group_ID  The expected MME_Group_ID value. Default: ?
                     */
                    template (present) RecordOf_ProtocolIE mw_reroute_nAS_RequestIEs(
                                                                                    template (present) MME_UE_S1AP_ID p_MME_value := ?,
                                                                                    template (present) ENB_UE_S1AP_ID p_eNB_value := ?,
                                                                                    template (present) octetstring p_s1Message := ?,
                                                                                    template (present) MME_Group_ID p_mME_Group_ID := ?
                    ) := {
                        mw_MME_UE_S1AP_ID(p_MME_value),
                        mw_eNB_UE_S1AP_ID(p_eNB_value),
                        mw_s1_Message_IE(p_s1Message),
                        mw_mME_Group_ID_IE(p_mME_Group_ID)
                    } // End of template mw_reroute_nAS_RequestIEs
                    
                } // End of group NAS_transport_group
                
                /**
                 * @desc Receive messages for Management procedures
                 */
@@ -2364,6 +2525,19 @@ module LibS1AP_Templates {
                value_ := { RelativeMMECapacity := p_value }
            } // End of template mw_relativeMMECapacity_IE
            
            /**
             * @desc Receive template for NAS-PDU
             * @param p_nasPDU The expected NAS-PDU value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.5 NAS-PDU
             */
            template (present) ProtocolIE mw_nAS_Pdu_IE(
                                                        template (present) octetstring p_nasPDU := ?
            ) := {
                id := S1AP_Constants.id_NAS_PDU,
                criticality := reject,
                value_ := {octetstring := p_nasPDU}
            } // End of template mw_nAS_Pdu_IE
            
            /**
             * @desc Receive template for SupportedTAs protocol IE 
             * @param p_value The SupportedTAs value. Default: ?
@@ -2529,8 +2703,8 @@ module LibS1AP_Templates {
            
            /**
             * @desc Receive template for CDMA2000-PDU
             * @param p_traceActivation The expected CDMA2000-PDU value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.23 CDMA2000-PDU. Default: ?
             * @param p_cdma2000PDU The expected CDMA2000-PDU value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.1.23 CDMA2000-PDU
             */
            template (present) ProtocolIE mw_cdma2000_Pdu_IE(
                                                             template (present) octetstring p_cdma2000PDU := ?
@@ -2669,6 +2843,31 @@ module LibS1AP_Templates {
                value_ := { Routing_ID := p_value }
            } // End of template mw_routing_ID_IE
            
            /**
             * @desc Receive template for S1 Message
             * @param p_value The expected S1 Message value. Default: ?
             */
            template (present) ProtocolIE mw_s1_Message_IE(
                                                           template (present) octetstring p_value := ?
            ) := {
                id := S1AP_Constants.id_S1_Message,
                criticality := ignore,
                value_ := { octetstring := p_value }
            } // End of template mw_s1_Message_IE
            
            /**
             * @desc Receive template for MME Group ID
             * @param p_value The expected MME Group ID value. Default: ?
             * @see ETSI TS 136 413 V13.4.0 Clause 9.2.3.44 MME Group ID
             */
            template (present) ProtocolIE mw_mME_Group_ID_IE(
                                                             template (present) MME_Group_ID p_value := ?
            ) := {
                id := S1AP_Constants.id_MME_Group_ID,
                criticality := ignore,
                value_ := { MME_Group_ID := p_value }
            } // End of template mw_mME_Group_ID_IE
            
            /**
             * @desc Send template for MessageIdentifier IE
             * @param p_message_Identifier The expected message identifier value. Default: ?
@@ -2798,21 +2997,6 @@ module LibS1AP_Templates {
                criticality := p_criticality,
                value_ := { HandoverType := p_handoverType }
            } // End of template mw_handoverType
			
			/**
			 * @desc 
			 * @param p_handoverType
			 * @param p_criticality
			 */
			template (present) ProtocolIE mw_source_ToTarget_TransparentContainer_IE(
				template (present) Source_ToTarget_TransparentContainer p_value := ?,
				template (present) ProtocolIE.criticality p_criticality := reject
			) := {
				id := S1AP_Constants.id_Source_ToTarget_TransparentContainer,
				criticality := p_criticality,
				value_ := { Source_ToTarget_TransparentContainer := p_value }
			} // End of template mw_handoverType			
			
        } // End of group Receive_IEs
        
        group g_IEParameters {
@@ -2941,7 +3125,7 @@ module LibS1AP_Templates {
            /**
             * @desc
             */
			template(value) SecurityKey m_securityKey := oct2bit('012345678901234567890123456789AB'O); // 32 octets = 256 bits
            template(value) SecurityKey m_securityKey := oct2bit('012345678901234567890123456789AB012345678901234567890123456789AB'O); // 32 octets = 256 bits
            
            group Management_group {
                
+689 −492

File changed.

Preview size limit exceeded, changes collapsed.

+226 −0

File changed.

Preview size limit exceeded, changes collapsed.

+4 −5
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ module S1AP_TestConfiguration {
         */
        function f_cf_S1AP_MME_Up(
                                  out S1AP p_S1APComponent_mme
        ) runs on S1AP {
        ) runs on S1AP system TestAdapter {
            //Variables
            var FncRetCode v_ret := e_success;
            
@@ -57,7 +57,7 @@ module S1AP_TestConfiguration {
         */
        function f_cf_S1AP_eNB_Up(
                                  out S1AP p_S1APComponent_enb
        ) runs on S1AP {
        ) runs on S1AP system TestAdapter {
            //Variables
            var FncRetCode v_ret := e_success;
            
@@ -83,7 +83,7 @@ module S1AP_TestConfiguration {
        function f_cf_S1AP_2eNB_Up(
                                   out S1AP p_S1APComponent_enb1,
                                   out S1AP p_S1APComponent_enb2
        ) runs on S1AP {
        ) runs on S1AP system TestAdapter {
            //Variables
            var FncRetCode v_ret := e_success;
            
@@ -114,8 +114,7 @@ module S1AP_TestConfiguration {
         * @desc Deletes configuration
         * @param 
         */
        function f_cf_Down()
        runs on S1AP {
        function f_cf_Down() runs on S1AP system TestAdapter {
            // Deactivte all
            deactivate;
            // Unmap all
Loading