Commit 44e424ca authored by Yann Garcia's avatar Yann Garcia
Browse files

Validating TC_NGAP_AMF_CMP_01

parent 619d1529
Loading
Loading
Loading
Loading
+9 −4
Changes for ttcn/AtsNGAP/NGAP_Steps.ttcn: 9 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -165,7 +165,10 @@ module NGAP_Steps { // TODO FSCOM f_xxx_UE_SecurityMode to be mmoved into NAG_NG
        function f_postamble_NGAP_gNB(
                                      in template (value) Cause p_Cause := m_cause_nas(authentication_failure)
                                      ) runs on gNBNGAPComponent {
            if (not(PICS_OFFLINE_MODE)) {

            if (PICS_USE_AT_COMMANDS) {
                f_postambleNGAP_gNB(m_cause_nas(normal_release));
            } else {
                f_postambleNGAP_gNB(p_Cause);
            }

@@ -452,11 +455,13 @@ module NGAP_Steps { // TODO FSCOM f_xxx_UE_SecurityMode to be mmoved into NAG_NG
        /**
         * @desc
         */
        function f_NGAP_amf_UE_ContextRealease_ContextRealeaseComplete() runs on aMFNGAPComponent {
        function f_NGAP_amf_UE_ContextRealeaseCommand_ContextRealeaseComplete(
                                                                              in template (value) Cause p_Cause := m_cause_nas(authentication_failure)
                                                                              ) runs on aMFNGAPComponent {
            if (PICS_OFFLINE_MODE) {
                f_await_ue_context_release_command_await_ue_context_release_complete();
                f_await_ue_context_release_command_await_ue_context_release_complete(p_Cause);
            } else {
                f_await_ue_context_release_command_send_ue_context_release_complete();
                f_await_ue_context_release_command_send_ue_context_release_complete(p_Cause);
            }
        } // End of function f_await_ue_context_release_command_send_ue_context_release_complete

+28 −14
Changes for ttcn/AtsNGAP/NGAP_TCFunctions.ttcn: 28 added lines, 14 removed lines.
Original line number Diff line number Diff line
@@ -69,10 +69,14 @@ module NGAP_TCFunctions {
                if (PICS_USE_AT_COMMANDS) {
                    // A real UE only gets a PDU session it asked for: wait for its PDU SESSION ESTABLISHMENT
                    // REQUEST (triggered by the data call requested from the upper tester in the preamble),
                    // then send the PDU SESSION RESOURCE SETUP REQUEST carrying the acceptance for the UE
                    // then send the PDU SESSION RESOURCE SETUP REQUEST carrying the acceptance for the UE.
                    // The UE registered without "follow-on request pending", so it holds that request back
                    // until the network has released the N1 NAS signalling connection, and then sends it
                    // through the service request procedure: release the UE context and serve that first
                    var O1_Type v_psi;
                    var O1_Type v_pti;

                    f_send_ue_context_release_command_await_service_request_send_service_accept();
                    f_NGAP_gnb_UE_PDU_SessionEstablishmentRequest();
                    if (not f_get_pdu_session_establishment_request_ids(v_psi, v_pti)) {
                        log("*** " & __SCOPE__ & ": INCONC: No PDU SESSION ESTABLISHMENT REQUEST received from the UE. ***");
@@ -128,22 +132,32 @@ module NGAP_TCFunctions {

                }

                // Any PDU SESSION RESOURCE SETUP RESPONSE is accepted, then checked: the gNB uses the
                // criticality "ignore" for its IEs, which mw_n2_PDUSessionResourceSetupResponse does not
                // match. The PDU session must be in the list of the sessions set up, not of those failed
                f_recv_NGAP_PDU(
                                mw_ngap_succMsg(
                      mw_n2_PDUSessionResourceSetupResponse(
                         -,
                         -,
                                                {
                           (mw_pDUSessionResourceSetupItemSURes(
                               ?,//template (present) PDUSessionID p_pDUSessionID,
                               ?,// Not decoded here: decmatch would decode this OCTET STRING as unaligned PER, while the gNB sends aligned PER
                               *//template PDUSessionResourceSetupItemSURes.iE_Extensions p_iE_Extensions := *
                             )
                           )
                                                    procedureCode := id_PDUSessionResourceSetup,
                                                    criticality   := ?,
                                                    value_        := ?
                                                }
                                ));
                {
                    var boolean v_setup := false;
                    for (var integer i := 0; i < lengthof(vc_recvNGAP_PDU.successfulOutcome.value_.pDUSessionResourceSetupResponse.protocolIEs); i := i + 1) {
                        if (vc_recvNGAP_PDU.successfulOutcome.value_.pDUSessionResourceSetupResponse.protocolIEs[i].id == id_PDUSessionResourceSetupListSURes) {
                            v_setup := true;
                        }
                    }
                    if (v_setup) {
                        log("*** " & __SCOPE__ & ": PASS: PDU session resources set up by the gNB. ***");
                        setverdict(pass);
                    } else {
                        log("*** " & __SCOPE__ & ": FAIL: PDU session resources not set up by the gNB. ***");
                        setverdict(fail);
                    }
                }
                       )
                    )
                );

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");
@@ -4455,7 +4469,7 @@ module NGAP_TCFunctions {
                  // Postamble
                  // Send error response to release the UE context
                  f_NGAP_amf_UE_PDU_InitialContextSetupFailure();
                  f_NGAP_amf_UE_ContextRealease_ContextRealeaseComplete();
                  f_NGAP_amf_UE_ContextRealeaseCommand_ContextRealeaseComplete();
                  f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                  log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");

+3 −0
Changes for ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -736,6 +736,9 @@ module LibNGAP_Pixits {
    /** @desc IPv4 address assigned to the real UE in the PDU SESSION ESTABLISHMENT ACCEPT; see f_encode_dl_nas_transport_pdu_session_establishment_accept */
    modulepar Oct4 PX_UT_PDU_ADDRESS_IPV4 := '0A2D0002'O; // 10.45.0.2

    /** @desc IPv4 address of the DNS server given to the real UE in the PDU SESSION ESTABLISHMENT ACCEPT; see f_encode_dl_nas_transport_pdu_session_establishment_accept */
    modulepar Oct4 PX_UT_DNS_IPV4 := '08080808'O; // 8.8.8.8

    /** @desc Time, in seconds, the upper tester waits for the real UE to be attached before it dials the data call; it must cover the registration procedure */
    modulepar float      PX_UT_DATA_CALL_ATTACH_TIMEOUT := 60.0;

+226 −30

File changed.

Preview size limit exceeded, changes collapsed.

+5 −1
Changes for ttcn/LibNGAP/lib_system/LibNGAP_Steps.ttcn: 5 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -263,7 +263,11 @@ module LibNGAP_Steps {
            function f_postambleNGAP_gNB(
                                         in template (value) Cause p_Cause
                                         ) runs on gNBNGAPComponent {
                f_send_ue_context_release_request_await_ue_context_release_response(p_Cause);
                if (PICS_OFFLINE_MODE) {
                    f_await_ue_context_release_command_await_ue_context_release_complete(p_Cause);
                } else {
                    f_send_ue_context_release_command_await_ue_context_release_complete(p_Cause);
                }
            } // End of function f_postambleNGAP_gNB

            /**