Commit b54c6afa authored by kretzschmann's avatar kretzschmann
Browse files

Merge branch 'devel' of https://forge.etsi.org/rep/int/5g-core/ngap into devel

parents 80066fa0 82d9eb21
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ LogEventTypes:= Yes

[TESTPORT_PARAMETERS]
# In this section you can specify parameters that are passed to Test Ports.
system.N2_gNBaMF_P.params := "SCTP/ETH(mac_src=080027D2B658)/PCAP(file=test.pcap)"
system.N2_gNBaMF_P.params := "SCTP/ETH(mac_src=080027D2B658)/PCAP_FILE(file=test.pcap)"

[DEFINE]
# In this section you can create macro definitions,
@@ -66,6 +66,23 @@ NGAP_TestCases.TC_NGAP_gNB_or_aMF_testcaseName_01
# Verify that the IUT can send a PDU_SESSION_RESOURCE_MODIFY_INDICATION to request modification of established PDU session.
#NGAP_TestCases.TC_NGAP_GNB_PDU_09

# Verify that the IUT can send a HANDOVER REQUIRED message containing mandatory IEs.
#NGAP_TestCases.TC_NGAP_GNB_MMP_01
# Verify that the GNB node successfully processes a HANDOVER REQUEST message that contains mandatory IEs and answers with HANDOVER REQUEST ACKNOWLEDGE to acknowledge the handover.
#NGAP_TestCases.TC_NGAP_GNB_MMP_02
# Verify that the GNB node successfully processes a HANDOVER REQUEST message that contains mandatory IEs and answers with HANDOVER REQUEST FAILURE because the UE is not longer available.
#NGAP_TestCases.TC_NGAP_GNB_MMP_03
# Verify that the GNB node successfully processes a HANDOVER REQUEST message that contains optional IEs and answers with HANDOVER REQUEST ACKNOWLEDGE to acknowledge the handover.
#NGAP_TestCases.TC_NGAP_GNB_MMP_04
# Verify that the GNB node successfully processes a HANDOVER REQUEST message that contains optional IEs within the Handover Request Transfer IEs and answers with correct HANDOVER REQUEST ACKNOWLEDGE.
#NGAP_TestCases.TC_NGAP_GNB_MMP_05
# Verify that the GNB node successfully processes a HANDOVER REQUEST message for an intra-system handover and answers with HANDOVER REQUEST ACKNOWLEDGE to acknowledge the handover.
#NGAP_TestCases.TC_NGAP_GNB_MMP_06
# Verify that the AMF node successfully sends a HANDOVER NOTIFICATION message that contains mandatory IEs to the AMF.
#NGAP_TestCases.TC_NGAP_GNB_MMP_07
# Verify that the AMF node successfully sends a PATH SWITCH REQUEST message that contains mandatory IEs to the AMF.
#NGAP_TestCases.TC_NGAP_GNB_MMP_08

# Verify that the GNB node successfully sends a NG SETUP REQEST message to the AMF.
#NGAP_TestCases.TC_NGAP_GNB_IMP_01
# Verify that the IUT can send a RAN CONFIGURATION UPDATE message to the AMF.
+22 −2
Original line number Diff line number Diff line
@@ -171,8 +171,28 @@ module NGAP_Steps {
         */
        function f_NGAP_amf_UE_PDU_ResourceSetup() runs on NGAPComponent {
        //FIXME: Implementation of PDU session resource setup                
        } // End of function f_NGAP_amf_UE_PDU_ResourceSetup();
        } // End of function f_NGAP_amf_UE_PDU_ResourceSetup()

        /**
         * @desc 
         */
        function f_NGAP_amf_UE_NoLongerAvailable() runs on NGAPComponent {
        //FIXME: Implementation of PDU session resource setup                
        } // End of function f_NGAP_amf_UE_NoLongerAvailable()

        /**
         * @desc The IUT entity indicate the initiation "of a Handover Required procedure"
         */
        function f_NGAP_amf_UE_MMP_Initiate_Handover() runs on NGAPComponent {
        //FIXME: Implementation of Handover init                
        } // End of function f_NGAP_amf_UE_MMP_Initiate_Handover()

        /**
         * @desc 
         */
        function f_NGAP_amf_UE_MMP_Initiate_Handover_Completed() runs on NGAPComponent {
        //FIXME: Implementation of Handover init                
        } // End of function f_NGAP_amf_UE_MMP_Initiate_Handover_Completed()

        /******************************************************************/

@@ -188,7 +208,7 @@ module NGAP_Steps {
         */
        function f_NGAP_gnb_UE_PDU_ResourceSetup() runs on NGAPComponent {
        //FIXME: Implementation of PDU session resource setup                
        } // End of function f_NGAP_gnb_UE_PDU_ResourceSetup();
        } // End of function f_NGAP_gnb_UE_PDU_ResourceSetup()

    }//end group BehaviorFunctions

+303 −0
Original line number Diff line number Diff line
@@ -817,12 +817,315 @@ module NGAP_TCFunctions {
        group UE_Context_Management_Procedures{
            //8.3.1
            group Initial_Context_Setup{

              function f_TC_NGAP_GNB_MMP_01() runs on aMFNGAPComponent {
                // Local variables

                // Preamble
                f_NGAP_amf_init();
                f_NGAP_amf_UE_Register();
                f_NGAP_amf_UE_MMP_Initiate_Handover_Completed();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                // Body
                f_recv_NGAP_PDU(
                                mw_ngap_initMsg(
                                                mw_n2_HandoverRequired(
                                                                       PX_AMF_UE_NGAP_ID,
                                                                       PX_RAN_UE_NGAP_ID,
                                                                       PX_HANDOVER_TYPE,
                                                                       -,
                                                                       mw_targetID_targeteNB_ID, // FIXME FSCOM To be check
                                                                       {
                                                                          *,
                                                                          mw_pDUSessionResourceItemHORqd( // TODO FSCOM Make the template more restrictive
                                                                                                         PX_PDU_SESSION_ID
                                                                                                         ),
                                                                          *
                                                                       }
                                )));


                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                // Postamble
                f_postamble_NGAP_gNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

              } // End of function f_TC_NGAP_GNB_MMP_01

            } // End of group Initial_Context_Setup
            //8.3.2
            group UE_Context_Release_Request_NG_RAN_node_initiated{

              function f_TC_NGAP_GNB_MMP_02() runs on aMFNGAPComponent {
                // Local variables

                // Preamble
                f_NGAP_amf_init();
                f_NGAP_amf_UE_Register();
                f_NGAP_amf_UE_MMP_Initiate_Handover_Completed();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                // Body
                f_send_NGAP_PDU(
                                m_ngap_initMsg(
                                               m_n2_HandoverRequest(
                                                                    -, -, -,
                                                                    m_uEAggregateMaximumBitRate,
                                                                    m_uESecurityCapabilities,
                                                                    m_securityContext,
                                                                    {
                                                                      m_pDUSessionResourceSetupItemHOReq(
                                                                                                         -,
                                                                                                         m_s_NSSAI('00'O, '000000'O),
                                                                                                         bit2oct(
                                                                                                                 encvalue(
                                                                                                                   m_pDUSessionResourceSetupRequestTransfer(
                                                                                                                     m_pDUSessionResourceSetupRequestTransfer_mandatories(
                                                                                                                       m_pDUSessionType(ipv4),
                                                                                                                       {
                                                                                                                         m_qosFlowSetupRequestItem(
                                                                                                                           PX_QOS_FLOW_IDENTIFIER,
                                                                                                                           m_qosFlowLevelQosParameters(
                                                                                                                             m_qosCharacteristics_dynamic5QI(
                                                                                                                               m_dynamic5QIDescriptor(
                                                                                                                                 1,//in template (value) PriorityLevelQos p_priorityLevelQos,
                                                                                                                                 0,//in template (value) PacketDelayBudget p_packetDelayBudget,
                                                                                                                                 m_PacketErrorRate(
                                                                                                                                   0,//in template (value) PacketErrorRate.pERScalar p_pERScalar,
                                                                                                                                   0//in template (value) PacketErrorRate.pERExponent p_pERExponent
                                                                                                                             ))),
                                                                                                                             m_allocationAndRetentionPriority(
                                                                                                                               1,//in template (value) PriorityLevelARP p_priorityLevelARP,
                                                                                                                               shall_not_trigger_pre_emption,//in template (value) Pre_emptionCapability p_pre_emptionCapability,
                                                                                                                               not_pre_emptable//in template (value) Pre_emptionVulnerability p_pre_emptionVulnerability,
                                                                                                                             )))
                                                                                                                       },
                                                                                                                       m_uPTransportLayerInformation_gTPTunnel(
                                                                                                                         m_gTPTunnel
                                                                                                         ))))))
                                                                    },
                                                                    { 
                                                                      m_allowedNSSAI_Item(
                                                                                          m_s_NSSAI('00'O, '000000'O)
                                                                                          ) 
                                                                    },
                                                                    PX_SOURCE_TO_TARGET_TRANSPARENT_CONTAINER, // FIXME FSCOM Should be a bit2oct(enc(???))
                                                                    m_gUAMI
                                )));

                f_recv_NGAP_PDU(
                                mw_ngap_succMsg(
                                                mw_n2_HandoverRequestAcknowledge(
                                                                                 PX_AMF_UE_NGAP_ID,
                                                                                 PX_RAN_UE_NGAP_ID,
                                                                                 {
                                                                                     *,
                                                                                     mw_pDUSessionResourceAdmittedItem( // TODO FSCOM Make the template more restrictive
                                                                                                                       PX_PDU_SESSION_ID
                                                                                                                       ),
                                                                                     *
                                                                                 }
                                 )));


                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                // Postamble
                f_postamble_NGAP_gNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

              } // End of function f_TC_NGAP_GNB_MMP_02

              function f_TC_NGAP_GNB_MMP_03() runs on aMFNGAPComponent {
                // Local variables

                // Preamble
                f_NGAP_amf_init();
                f_NGAP_amf_UE_Register();
                f_NGAP_amf_UE_MMP_Initiate_Handover_Completed();
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");

                // Body
                f_NGAP_amf_UE_NoLongerAvailable();
                f_send_NGAP_PDU(
                                m_ngap_initMsg(
                                               m_n2_HandoverRequest(
                                                                    -, -, -,
                                                                    m_uEAggregateMaximumBitRate,
                                                                    m_uESecurityCapabilities,
                                                                    m_securityContext,
                                                                    {
                                                                      m_pDUSessionResourceSetupItemHOReq(
                                                                                                         -,
                                                                                                         m_s_NSSAI('00'O, '000000'O),
                                                                                                         bit2oct(
                                                                                                                 encvalue(
                                                                                                                   m_pDUSessionResourceSetupRequestTransfer(
                                                                                                                     m_pDUSessionResourceSetupRequestTransfer_mandatories(
                                                                                                                       m_pDUSessionType(ipv4),
                                                                                                                       {
                                                                                                                         m_qosFlowSetupRequestItem(
                                                                                                                           PX_QOS_FLOW_IDENTIFIER,
                                                                                                                           m_qosFlowLevelQosParameters(
                                                                                                                             m_qosCharacteristics_dynamic5QI(
                                                                                                                               m_dynamic5QIDescriptor(
                                                                                                                                 1,//in template (value) PriorityLevelQos p_priorityLevelQos,
                                                                                                                                 0,//in template (value) PacketDelayBudget p_packetDelayBudget,
                                                                                                                                 m_PacketErrorRate(
                                                                                                                                   0,//in template (value) PacketErrorRate.pERScalar p_pERScalar,
                                                                                                                                   0//in template (value) PacketErrorRate.pERExponent p_pERExponent
                                                                                                                             ))),
                                                                                                                             m_allocationAndRetentionPriority(
                                                                                                                               1,//in template (value) PriorityLevelARP p_priorityLevelARP,
                                                                                                                               shall_not_trigger_pre_emption,//in template (value) Pre_emptionCapability p_pre_emptionCapability,
                                                                                                                               not_pre_emptable//in template (value) Pre_emptionVulnerability p_pre_emptionVulnerability,
                                                                                                                             )))
                                                                                                                       },
                                                                                                                       m_uPTransportLayerInformation_gTPTunnel(
                                                                                                                         m_gTPTunnel
                                                                                                         ))))))
                                                                    },
                                                                    { 
                                                                      m_allowedNSSAI_Item(
                                                                                          m_s_NSSAI('00'O, '000000'O)
                                                                                          ) 
                                                                    },
                                                                    PX_SOURCE_TO_TARGET_TRANSPARENT_CONTAINER, // FIXME FSCOM Should be a bit2oct(enc(???))
                                                                    m_gUAMI
                                )));

                f_recv_NGAP_PDU(
                                mw_ngap_unsuccMsg(
                                                  mw_n2_HandoverFailure(
                                                                        PX_AMF_UE_NGAP_ID
                                )));


                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                // Postamble
                f_postamble_NGAP_gNB();
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

              } // End of function f_TC_NGAP_GNB_MMP_03

              function f_TC_NGAP_GNB_MMP_04() runs on aMFNGAPComponent {

              } // End of function f_TC_NGAP_GNB_MMP_04

              function f_TC_NGAP_GNB_MMP_05() runs on aMFNGAPComponent {

              } // End of function f_TC_NGAP_GNB_MMP_05

              function f_TC_NGAP_GNB_MMP_06() runs on aMFNGAPComponent {

              } // End of function f_TC_NGAP_GNB_MMP_06

              function f_TC_NGAP_GNB_MMP_07() runs on aMFNGAPComponent {

              } // End of function f_TC_NGAP_GNB_MMP_07

              function f_TC_NGAP_GNB_MMP_08() runs on aMFNGAPComponent {

              } // End of function f_TC_NGAP_GNB_MMP_08

            } // End of group UE_Context_Release_Request_NG_RAN_node_initiated
            //8.3.3
            group UE_Context_Release_AMF_initiated{
              
              /**
               * @desc Testcase function for TP_NGAP_GNB_CMP_08
               */
               function f_TC_NGAP_GNB_CMP_08() runs on aMFNGAPComponent {
                 
                   // Preamble
                   f_NGAP_amf_init();
                   f_NGAP_amf_UE_Register();
                   f_NGAP_amf_UE_PDU_ResourceSetup();
                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                   
                   
                   // Body
                   f_send_NGAP_PDU(
                   	m_ngap_initMsg(
                   		m_n2_UEContextReleaseCommand 
                   		(	
                   			m_uE_NGAP_IDs_uE_NGAP_ID_pair
                   			(
                   				m_uE_NGAP_ID_pair
                   			),
                   			-
                   		)));
                   		
                   		
                   f_recv_NGAP_PDU(
                     mw_ngap_succMsg(
                     	mw_n2_UEContextReleaseComplete
                     ));
                     
                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_gNB();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                   
               } // End of function f_TC_NGAP_GNB_CMP_08
               
               /**
               * @desc Testcase function for f_TC_NGAP_GNB_CMP_09
               */
               function f_TC_NGAP_GNB_CMP_09() runs on aMFNGAPComponent {
                 
                   // Preamble
                   f_NGAP_amf_init();
                   f_NGAP_amf_UE_Register();
                   f_NGAP_amf_UE_PDU_ResourceSetup();
                   f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Preamble done. ***");
                   
                   
                   // Body
                   f_send_NGAP_PDU(
                   	m_ngap_initMsg(
                   		m_n2_UEContextReleaseCommand 
                   		(	
                   			m_uE_NGAP_IDs_aMF_UE_NGAP_ID
                   			(
                   				-
                   			),
                   			-
                   		)));
                   		
                   		
                   f_recv_NGAP_PDU(
                     mw_ngap_succMsg(
                     	mw_n2_UEContextReleaseComplete
                     ));
                     
                   f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                   // Postamble
                   f_postamble_NGAP_gNB();
                   f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                   log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
                   
               } // End of function f_TC_NGAP_GNB_CMP_09
              
            } // End of group UE_Context_Release_AMF_initiated
            //8.3.4
            group UE_Context_Modification{
+302 −0

File changed.

Preview size limit exceeded, changes collapsed.

+26 −0

File changed.

Preview size limit exceeded, changes collapsed.

Loading