Commit 2028ee8b authored by Yann Garcia's avatar Yann Garcia
Browse files

Enhance TC_NGAP_AMF_PDU_01_02

parent 7067b053
Loading
Loading
Loading
Loading
−11.5 KiB (4.97 KiB)

File changed.

No diff preview for this file type.

+5.47 KiB

File added.

No diff preview for this file type.

+2 −2
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ system.NGAP_AMF.params := "NGAP/SCTP(server=127.0.0.5,port=38412,debug=1)"
# Verify that the IUT can send a  PDU SESSION RESOURCE SETUP REQUEST with at least one PDU session resource list to established PDU session.
#NGAP_TestCases.TC_NGAP_AMF_PDU_01
# Verify that the IUT successfully receives and processes the PDU_SESSION_RESOURCE_SETUP_RESPONSE message and completes the PDU Session Resource Setup procedure for a single PDU_Session_Resource.
#NGAP_TestCases.TC_NGAP_AMF_PDU_01_02
NGAP_TestCases.TC_NGAP_AMF_PDU_01_02
# Verify that the IUT can send a  PDU_SESSION_RESOURCE_RELEASE_COMMAND to release PDU session.
#NGAP_TestCases.TC_NGAP_AMF_PDU_02
# Verify that the IUT successfully receives and processes the PDU_SESSION_RESOURCE_RELEASE_RESPONSE message and completes the PDU Session Resource Release procedure for a single PDU_Session_Resource.
@@ -184,7 +184,7 @@ system.NGAP_AMF.params := "NGAP/SCTP(server=127.0.0.5,port=38412,debug=1)"
# Verify that the AMF node successfully processes a RAN_CONFIGURATION_UPDATE message containing new slice with RAN_CONFIGURATION_UPDATE_ACKNOWLEDGE to acknowledge the update with supported slice at AMF.
#NGAP_TestCases.TC_NGAP_AMF_IMP_05
# Verify that the AMF node successfully declines a RAN CONFIGURATION UPDATE message with RAN CONFIGURATION UPDATE FAILURE when the AMF is not able to handle the request.
NGAP_TestCases.TC_NGAP_AMF_IMP_06
#NGAP_TestCases.TC_NGAP_AMF_IMP_06
# Verify that the IUT can send a AMF CONFIGURATION UPDATE message to the AMF.
#NGAP_TestCases.TC_NGAP_AMF_IMP_07
# Verify that the AMF node successfully processes a NG RESET message that contains mandatory IEs and answers with NG RESET ACKNOWLEDGE to acknowledge the reset.
+30 −54
Original line number Diff line number Diff line
@@ -3922,65 +3922,41 @@ module NGAP_TCFunctions {

                  f_recv_NGAP_PDU(
                                  mw_ngap_initMsg(
                                                  mw_n2_PDUSessionResourceSetupRequest(
                                                  f_mw_n2_PDUSessionResourceSetupRequest(
                                                                                        vc_AMF_UE_ID,
                                                                                       vc_RAN_UE_ID
                                  )));
                  var integer numOfIEs := lengthof(vc_recvNGAP_PDU.initiatingMessage.value_.pDUSessionResourceSetupRequest.protocolIEs)
                  log("*** " & __SCOPE__ & ": DBG: numOfIEs: ", numOfIEs, " ***");
                  for (var integer i :=0 ; i < numOfIEs; i := i + 1) { // Loop over the protocolIEs found
                      if ((vc_recvNGAP_PDU.initiatingMessage.value_.pDUSessionResourceSetupRequest.protocolIEs[i].id) == 74 /*id_NAS_PDU*/) {
                          var integer numOfItems := lengthof(vc_recvNGAP_PDU.initiatingMessage.value_.pDUSessionResourceSetupRequest.protocolIEs[i].value_.pDUSessionResourceSetupListSUReq)
                          log("*** " & __SCOPE__ & ": DBG: Number of items in pDUSessionResourceSetupListSUReq: ", numOfItems);
                          if (numOfItems > 0) {
                              vc_pdu_session_resource_setup_list_su_req := vc_recvNGAP_PDU.initiatingMessage.value_.pDUSessionResourceSetupRequest.protocolIEs[i].value_.pDUSessionResourceSetupListSUReq;
                              for (var integer j :=0; j < numOfItems; j := j + 1) { // Loop over the PDUSessionResourceSetupListSUReq items
                                  log("*** " & __SCOPE__ & ": DBG: pDUSessionNAS_PDU of item ", j, ": ", vc_recvNGAP_PDU.initiatingMessage.value_.pDUSessionResourceSetupRequest.protocolIEs[i].value_.pDUSessionResourceSetupListSUReq[j].pDUSessionNAS_PDU);
                                  var NG_NAS_DL_Message_Type v_message;
                                  if (f_Check_5GAKA_NAS_DL_Message(
                                                                   vc_recvNGAP_PDU.initiatingMessage.value_.pDUSessionResourceSetupRequest.protocolIEs[i].value_.pDUSessionResourceSetupListSUReq[j].pDUSessionNAS_PDU, 
                                                                   mw_NG_DL_NAS_TRANSPORT,
                                                                   vc_ng_nas_security_params_type, 
                                                                   vc_previous_nas_count_dl, 
                                                                   v_message,
                                                                   vc_inner_message
                                                                   ) == false) {
                                      log("*** " & __SCOPE__ & ": FAIL: NG_PDU_SESSION_ESTABLISHMENT_ACCEPT mismatch. ***");
                                      setverdict(fail);
                                  } else {
                                      log("*** " & __SCOPE__ & ": DBG: v_message.dl_Nas_Transport ", v_message.dl_Nas_Transport);
                                      var bitstring v_bs := oct2bit(v_message.dl_Nas_Transport.payload.payload);
                                      var NG_PDU_SESSION_ESTABLISHMENT_ACCEPT v_ng_pdu_session_establishment_accept;
                                      if (decvalue(v_bs, v_ng_pdu_session_establishment_accept) != 0) {
                                          log("*** " & __SCOPE__ & ": INCONC: Failed to decode dl_Nas_Transport payload ***");
                                          setverdict(inconc);
                                      } else {
                                          log("*** " & __SCOPE__ & ": DBG: v_ng_pdu_session_establishment_accept: ", v_ng_pdu_session_establishment_accept);
                                          var NG_NAS_DL_Message_Type v_expected_message;
                                          v_expected_message.pdu_Session_Establishment_Accept := v_ng_pdu_session_establishment_accept;
                                          if (not(match(v_expected_message, mw_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT_noPTI))) {
                                              log(match(v_expected_message, mw_NG_PDU_SESSION_ESTABLISHMENT_ACCEPT_noPTI)); // Log mismatch
                                              log("*** " & __SCOPE__ & ": FAIL: NG_PDU_SESSION_ESTABLISHMENT_ACCEPT mismatch. ***");
                                              setverdict(fail);
                                          } else {
                                            log("*** " & __SCOPE__ & ": PASS: Expected NG_PDU_SESSION_ESTABLISHMENT_ACCEPT ***");
                                            setverdict(pass);
                                          }
                                      }
                                  }
                              } // End of 'for' statement
                          } else {
                              log("*** " & __SCOPE__ & ": FAIL: No items in pDUSessionResourceSetupListSUReq. ***");
                              setverdict(fail);
                                                                                        vc_RAN_UE_ID,
                                                                                        -,
                                                                                        ?,
                                                                                        {
                                                                                            mw_pDUSessionResourceSetupItemSUReq(
                                                                                                                                PX_PDU_SESSION_ID,
                                                                                                                                mw_s_NSSAI(
                                                                                                                                            PX_SST/*,
                                                                                                                                            PX_SD,
                                                                                                                                            -*/
                                                                                                                                ),
                                                                                                                                decmatch(
                                                                                                                                         mw_pDUSessionResourceSetupRequestTransfer(
                                                                                                                                                                                   mw_pDUSessionResourceSetupRequestTransfer_mandatories(
                                                                                                                                                                                                                                         -,
                                                                                                                                                                                                                                         mw_pDUSessionType,
                                                                                                                                                                                                                                         {
                                                                                                                                                                                                                                           *,
                                                                                                                                                                                                                                           mw_qosFlowSetupRequestItem(
                                                                                                                                                                                                                                                                      1,
                                                                                                                                                                                                                                                                      mw_qosFlowLevelQosParameters(
                                                                                                                                                                                                                                                                                                   mw_qosCharacteristics_nonDynamic5QI
                                                                                                                                                                                                                                                                      )),
                                                                                                                                                                                                                                           *
                                                                                                                                                                                                                                         }
                          break; // Break the loop as the relevant IE has been processed
                                                                                                                                ))))
                                                                                        }
                  } // End of 'for' statement
                                  )));
                  f_NGAP_amf_UE_PDU_SessionResourceSetupResponse(); // f_send_pdu_session_resource_setup_response
                  f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                  log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                  // Postamble
                  f_NGAP_amf_UE_PDU_SessionResourceSetupResponse(); // f_send_pdu_session_resource_setup_response
                  f_postamble_NGAP_AMF();
                  f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                  log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
+24 −18
Original line number Diff line number Diff line
@@ -22120,10 +22120,21 @@ module LibNGAP_Templates {
                } // End of template mw_pDUSessionResourceSetupRequestTransfer
                template (present) PDUSessionResourceSetupRequestTransfer.protocolIEs mw_pDUSessionResourceSetupRequestTransfer_mandatories(
                                                                                                                                            template (present) PDUSessionAggregateMaximumBitRate p_pDUSessionAggregateMaximumBitRate := ?,
                                                                                                                                            template (present) PDUSessionType p_pDUSessionType := ?,
                                                                                                                                            template (present) QosFlowSetupRequestList p_qosFlowSetupRequestList := ?,
                                                                                                                                            template (present) UPTransportLayerInformation p_uPTransportLayerInformation := ?
                                                                                                                                            ) := {
                    {
                        id          := id_PDUSessionAggregateMaximumBitRate,
                        criticality := reject,
                        value_      := { PDUSessionAggregateMaximumBitRate := p_pDUSessionAggregateMaximumBitRate }
                    },
                    {
                        id          := id_UL_NGU_UP_TNLInformation,
                        criticality := reject,
                        value_      := { UPTransportLayerInformation := p_uPTransportLayerInformation }
                    },
                    {
                        id          := id_PDUSessionType,
                        criticality := reject,
@@ -22133,11 +22144,6 @@ module LibNGAP_Templates {
                        id          := id_QosFlowSetupRequestList,
                        criticality := reject,
                        value_      := { QosFlowSetupRequestList := p_qosFlowSetupRequestList }
                    },
                    {
                        id          := id_UL_NGU_UP_TNLInformation,
                        criticality := reject,
                        value_      := { UPTransportLayerInformation := p_uPTransportLayerInformation }
                    }
                } // End of template mw_pDUSessionResourceSetupRequestTransfer_mandatories