Commit 3913ead4 authored by Steffen Ludtke's avatar Steffen Ludtke
Browse files

add TC and functions for TC_NGAP_GNB_CMP_02 and 03

parent 5bdf3d1e
Loading
Loading
Loading
Loading
+150 −0
Original line number Original line Diff line number Diff line
@@ -988,6 +988,156 @@ module NGAP_TCFunctions {
                   
                   
               } // End of function f_TC_NGAP_GNB_CMP_01
               } // End of function f_TC_NGAP_GNB_CMP_01
               
               
               /**
               * @desc Testcase function for TP_NGAP_GNB_CMP_02
               */
               function f_TC_NGAP_GNB_CMP_02() 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_InitialContextSetupRequest 
                   		(	
                   		-,
                   		-,
                   		m_gUAMI,
                   		omit,
                   		{ 
                        m_allowedNSSAI_Item(
                        	m_s_NSSAI('00'O, '000000'O)
                            ) 
                        },
                   		m_uESecurityCapabilities,
                   		-	
                   		)));
                   		
                   		
                   f_recv_NGAP_PDU(
                     mw_ngap_succMsg(
                     	mw_n2_InitialContextSetupResponse(
                     		-,
                     		-,
                     		omit
                     	)
                     ));
                     
                   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_02
               
               /**
               * @desc Testcase function for TP_NGAP_GNB_CMP_03
               */
               function f_TC_NGAP_GNB_CMP_03() 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_InitialContextSetupRequest_optionals
                   		(	
                   		-,
                   		-,
                   		m_gUAMI,
                   		{	
                   		  {
                   		  	PX_PDU_SESSION_ID,
                   		  	omit,
							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
                                       ))))
							),
							omit
                   		  }
							
                   		},
                   		{ 
                        m_allowedNSSAI_Item(
                        	m_s_NSSAI('00'O, '000000'O)
                            ) 
                        },
                   		m_uESecurityCapabilities,
                   		-,
                   		m_traceActivation(
                   			'0000000000000001'O,//in template (value) NGRANTraceID p_nGRANTraceID,
                          	'00000000'B,//in template (value) InterfacesToTrace p_interfacesToTrace,
                          	m_traceDepth(minimum),
                          	PX_TRANSPORT_LAYER_ADDRESS,
                          	omit//in template (omit) TraceActivation.iE_Extensions p_iE_Extensions := omit
                   		)	
                   		)));
                   		
                   		
                   f_recv_NGAP_PDU(
                     mw_ngap_succMsg(
                     	mw_n2_InitialContextSetupResponse(
                     		-,
                     		-,
                     		{
                     		  {
                     		    ?,
                     		    ?,
                     		    *
                     		  }
                     		}
                     	)
                     ));
                     
                   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_03
              
            } // End of group Initial_Context_Setup
            } // End of group Initial_Context_Setup
            //8.3.2
            //8.3.2
            group UE_Context_Release_Request_NG_RAN_node_initiated{
            group UE_Context_Release_Request_NG_RAN_node_initiated{
+54 −0
Original line number Original line Diff line number Diff line
@@ -499,6 +499,60 @@ module NGAP_TestCases {
                    f_cf_Down/*gNBoraMF*/();
                    f_cf_Down/*gNBoraMF*/();
                  
                  
                } // End of testcase TC_NGAP_GNB_CMP_01
                } // End of testcase TC_NGAP_GNB_CMP_01
                
                /**
                 * @desc Test objective "Verify that the NG-RAN node successfully processes a INITIAL CONTEXT SETUP REQUEST contains mandatory IEs and answers with INITIAL CONTEXT SETUP RESPONSE with successfully established UE context."
                 */
                testcase TC_NGAP_GNB_CMP_02() runs on aMFNGAPComponent system TestAdapter {
                  
                  	// Local variables
                    var aMFNGAPComponent v_ngap_amf;

                    // Test control
                    if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_2_1)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_2_1' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_aMF_Up(v_ngap_amf);

                    // Start
                    v_ngap_amf.start(f_TC_NGAP_GNB_CMP_02());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();
                  
                } // End of testcase TC_NGAP_GNB_CMP_02
                
                /**
                 * @desc Test objective "Verify that the NG-RAN node successfully processes a INITIAL CONTEXT SETUP REQUEST with optional field Trace Activation and answers with INITIAL CONTEXT SETUP RESPONSE with successfully established UE context."
                 */
                testcase TC_NGAP_GNB_CMP_03() runs on aMFNGAPComponent system TestAdapter {
                  
                  	// Local variables
                    var aMFNGAPComponent v_ngap_amf;

                    // Test control
                    if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_2_1)){
                        log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_2_1' shall be set to true for executing the TC. ***");
                        stop;
                    }

                    // Test component configuration
                    f_cf_NGAP_aMF_Up(v_ngap_amf);

                    // Start
                    v_ngap_amf.start(f_TC_NGAP_GNB_CMP_03());

                    // synchronize PTC on 1 sychronization points
                    f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone});

                    f_cf_Down/*gNBoraMF*/();
                  
                } // End of testcase TC_NGAP_GNB_CMP_03
            } // End of group Initial_Context_Setup
            } // End of group Initial_Context_Setup
            //8.3.2
            //8.3.2
            group UE_Context_Release_Request_NG_RAN_node_initiated{
            group UE_Context_Release_Request_NG_RAN_node_initiated{
+37 −0
Original line number Original line Diff line number Diff line
@@ -904,6 +904,43 @@ module LibNGAP_Templates {
                                            }
                                            }
                        } // End of template m_n2_InitialContextSetupRequest
                        } // End of template m_n2_InitialContextSetupRequest
                        
                        
                        /**
                         * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.1 INITIAL CONTEXT SETUP REQUEST
                         */
                        template (value) InitiatingMessage m_n2_InitialContextSetupRequest_optionals(
                                                                                           in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID,
                                                                                           in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID,
                                                                                           in template (value) GUAMI p_gUAMI,
                                                                                           in template (value) PDUSessionResourceSetupListCxtReq p_pDUSessionResourceSetupListCxtReq,
                                                                                           in template (value) AllowedNSSAI p_allowedNSSAI,
                                                                                           in template (value) UESecurityCapabilities p_uESecurityCapabilities,
                                                                                           in template (value) SecurityKey p_nextHopNH := PX_NEXT_HOP_NH,
                                                                                           in template (value) TraceActivation p_traceActivation := omit
                                                                                           ) := {
                            procedureCode := id_InitialContextSetup,
                            criticality   := reject,
                            value_        := {
                                              InitialContextSetupRequest := {
                                                                             protocolIEs := {
                                                                                             {
                                                                                                 id := id_AMF_UE_NGAP_ID,
                                                                                                 criticality := reject,
                                                                                                 value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID }
                                                                                             },
                                                                                             {
                                                                                                 id := id_RAN_UE_NGAP_ID,
                                                                                                 criticality := reject,
                                                                                                 value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID }
                                                                                             },
                                                                                             {
                                                                                                 id := id_PDUSessionResourceSetupListCxtReq,
                                                                                                 criticality := reject,
                                                                                                 value_ := { PDUSessionResourceSetupListCxtReq := p_pDUSessionResourceSetupListCxtReq }
                                                                                             }
                                                                                            }
                                                                            }
                                            }
                    } // End of group Send
                    } // End of group Send
                    group Receive {
                    group Receive {