Commit 67371803 authored by Yann Garcia's avatar Yann Garcia
Browse files

Add support of NAS NON DELIVERY INDICATION in a_defaultNGAP(); Align some templates with ASN.1

parent 3474d237
Loading
Loading
Loading
Loading
+129 −129

File changed.

Preview size limit exceeded, changes collapsed.

+22 −0
Changes for ttcn/LibNGAP/lib_system/LibNGAP_Steps.ttcn: 22 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ module LibNGAP_Steps {
    import from NGAP_CommonDataTypes language "ASN.1:1997" all;
    import from NGAP_PDU_Descriptions language "ASN.1:1997" all;
    import from NGAP_IEs language "ASN.1:1997" all;
    import from NGAP_Constants language "ASN.1:2002" all;

    import from LibNGAP_TypesAndValues all;
    import from LibNGAP_Interface all;
@@ -391,6 +392,10 @@ module LibNGAP_Steps {
         *          - ERROR INDICATION for the current UE: verdict inconc, then ends the test case.
         *          - NG RESET (radio network cause, part of the NG interface): verdict inconc, answers with
         *            an NG RESET ACKNOWLEDGE, then ends the test case.
         *          - NAS NON DELIVERY INDICATION (TS 38.413 clause 8.6.5): the gNB could not deliver a downlink
         *            NAS message to the UE, so the procedure in progress cannot complete. Preamble and test body:
         *            verdict inconc, then ends the test case. Postamble: logged only, the verdict of the test body
         *            stands (e.g. the DEREGISTRATION ACCEPT that a UE switching to flight mode never gets).
         *          - Any other NGAP initiating message, successful or unsuccessful outcome: discarded, and
         *            the interrupted alt is re-evaluated (repeat).
         *            Hence a message the test is waiting for, but that does not match its template, is
@@ -446,6 +451,23 @@ module LibNGAP_Steps {
                    testcase.stop("*** " & __SCOPE__ & ": INCONC: NGReset received. ***");
                }
            }
            [] N2_gNBaMF_P.receive(mw_ngap_initMsg_anyProcedure(id_NASNonDeliveryIndication)) -> value vc_recvNGAP_PDUDefault {
                // Any criticality: the gNB uses the ones of the ASN.1 (NAS-PDU ignore), mw_n2_NASNonDeliveryIndication does not
                if (vc_testcaseStep == e_postamble) {
                    log("*** " & __SCOPE__ & ": INFO: NAS NON DELIVERY INDICATION received in the postamble, ignored: ", vc_recvNGAP_PDUDefault, " ***");
                    repeat;
                }
                log("*** " & __SCOPE__ & ": NAS NON DELIVERY INDICATION: ", vc_recvNGAP_PDUDefault, " ***");
                setverdict(inconc, "*** " & __SCOPE__ & ": INCONC: NAS NON DELIVERY INDICATION received, a downlink NAS message did not reach the UE. ***");
                // Terminate the test case execution
                all timer.stop;
                if (vc_serverStop==false) {
                    f_selfOrClientSyncAndVerdict("error", e_timeout);
                }
                else {
                    testcase.stop("*** " & __SCOPE__ & ": INCONC: NAS NON DELIVERY INDICATION received. ***");
                }
            }
            [] N2_gNBaMF_P.receive (NGAP_PDU:{initiatingMessage := ?}) -> value vc_recvNGAP_PDUDefault {
                repeat;
            }