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

Finalyse TC_NGAP_AMF_PDU_01

parent 283f489b
Loading
Loading
Loading
Loading
+3.97 KiB

File added.

No diff preview for this file type.

+7 −2
Original line number Diff line number Diff line
@@ -130,8 +130,13 @@ module NGAP_Steps {
        /**
         * @desc
         */
        function f_postamble_NGAP_AMF() runs on aMFNGAPComponent {
            f_postambleNGAP_AMF();
        function f_postamble_NGAP_AMF(
                                      in template (value) Cause p_Cause := m_cause_nas(authentication_failure)
                                      ) runs on aMFNGAPComponent {

            if (not(PICS_OFFLINE_MODE)) {
                f_postambleNGAP_AMF(p_Cause);
            }

            // Deactivate defaults
            deactivate;
+53 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ module NGAP_TCFunctions {
    import from LibCommon_Time all;

    // NG_NAS
    import from NG_NAS_TypeDefs all;
    import from NG_NAS_MsgContainers all;

    // LibNGAP
@@ -4065,10 +4066,60 @@ module NGAP_TCFunctions {
                                                                                         )
                                                                                       }*///in template (value) PDUSessionResourceSetupListSUReq p_pDUSessionResourceSetupListSUReq
                                  )));
                  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
                                                                   ) == 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);
                          }
                          break; // Break the loop as the relevant IE has been processed
                      }
                  } // End of 'for' statement
                  f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict());
                  log("*** " & __SCOPE__ & ": INFO: Testbody done. ***");

                  // Postamble
                  f_NGAP_amf_UE_PDU_SessionResourceResponse(); // f_send_pdu_session_resource_setup_response
                  f_postamble_NGAP_AMF();
                  f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict());
                  log("*** " & __SCOPE__ & ": INFO: Postamble done. ***");
+4 −2
Original line number Diff line number Diff line
@@ -30,8 +30,10 @@ module LibNGAP_EncdecDeclarations {
        with {extension "prototype(convert) encode(LibNGAP_codec)"}    
    external function fx_dec_NGAP_IEs (inout bitstring pdu, out NGAP_IEs p) return integer
        with {extension "prototype(sliding) decode(LibNGAP_codec)"}*/
    //external function dec_PDUSessionResourceSetupResponseTransfer(inout bitstring pdu, out NGAP_IEs.PDUSessionResourceSetupResponseTransfer p) return integer
        //with {extension "prototype(sliding) decode(LibNGAP_codec)"}

    external function fx_enc_PDUSessionResourceSetupResponseTransfer(NGAP_IEs.PDUSessionResourceSetupResponseTransfer p) return bitstring
        with {extension "prototype(convert) encode(PER:ALIGNED)"}

    external function fx_dec_PDUSessionResourceSetupResponseTransfer(inout bitstring pdu, out NGAP_IEs.PDUSessionResourceSetupResponseTransfer p) return integer
        with {extension "prototype(sliding) decode(PER:ALIGNED)"}
        //with {extension "prototype(sliding) decode(LibNGAP_codec)"}
+10 −4
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ module LibNGAP_Templates {
                                                                                         },
                                                                                         {
                                                                                             id := id_PDUSessionResourceSetupListSUReq,
                                                                                             criticality := ignore,
                                                                                             criticality := reject,
                                                                                             value_ := { PDUSessionResourceSetupListSUReq := p_pDUSessionResourceSetupListSUReq }
                                                                                         }
                                                                                 }
@@ -154,7 +154,8 @@ module LibNGAP_Templates {
                        template (present) InitiatingMessage mw_n2_PDUSessionResourceSetupRequest(
                                                                                                  template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?,
                                                                                                  template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?,
                                                                                                  template (present) PDUSessionResourceSetupListSUReq p_pDUSessionResourceSetupListSUReq := ?
                                                                                                  template (present) PDUSessionResourceSetupListSUReq p_pDUSessionResourceSetupListSUReq := ?,
                                                                                                  template (present) UEAggregateMaximumBitRate p_uEAggregateMaximumBitRate := ?
                                                                                                  ) := {
                            procedureCode := id_PDUSessionResourceSetup,
                            criticality   := reject,
@@ -173,8 +174,13 @@ module LibNGAP_Templates {
                                                                    },
                                                                    {
                                                                        id := id_PDUSessionResourceSetupListSUReq,
                                                                        criticality := ignore,
                                                                        criticality := reject,
                                                                        value_ := { PDUSessionResourceSetupListSUReq := p_pDUSessionResourceSetupListSUReq }
                                                                    },
                                                                    {
                                                                         id := id_UEAggregateMaximumBitRate,
                                                                         criticality := ignore,
                                                                         value_ := { UEAggregateMaximumBitRate := p_uEAggregateMaximumBitRate }
                                                                    }
                                                                    }
                                              }
@@ -220,7 +226,7 @@ module LibNGAP_Templates {
                                                                                                 }
                                                                                 }
                                             }
                         } // End of template mw_n2_PDUSessionResourceSetupResponse
                         } // End of template m_n2_PDUSessionResourceSetupResponse
                    } // End of group Send
Loading