Commit a3b9db20 authored by Jaroslava Fiedlerova's avatar Jaroslava Fiedlerova
Browse files

Merge branch 'integration_2025_w26' into 'develop'

Integration: `2025.w26`

See merge request !3493

* !3435 Cleanup PDU Session Handling in RRC/NGAP
* !3371 Add NAS Authentication Reject enc/dec library and unit test
* !3490 nr pdcp security: add a 'decipher' API function
* !3477 CI: Upgrade Aerial version to 25-1
* !3491 Fix Msg3 with MAC CE for C-RNTI and RRCReestablishmentComplete
parents 69d1d5fb 99eb6c72
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -498,10 +498,10 @@ class Containerize():
			elif image != 'ran-build':
				cmd.run(f'sed -i -e "s#ran-build:latest#ran-build:{imageTag}#" docker/Dockerfile.{pattern}{self.dockerfileprefix}')
			if image == 'oai-gnb-aerial':
				cmd.run('cp -f /opt/nvidia-ipc/nvipc_src.*.tar.gz .')
				cmd.run('cp -f /opt/nvidia-ipc/nvipc.src.2025.05.20.tar.gz .')
			ret = cmd.run(f'{self.cli} build {self.cliBuildOptions} --target {image} --tag {name}:{imageTag} --file docker/Dockerfile.{pattern}{self.dockerfileprefix} {option} . > cmake_targets/log/{name}.log 2>&1', timeout=1200)
			if image == 'oai-gnb-aerial':
				cmd.run('rm -f nvipc_src.*.tar.gz')
				cmd.run('rm -f nvipc.src.2025.05.20.tar.gz')
			if image == 'ran-build' and ret.returncode == 0:
				cmd.run(f"docker run --name test-log -d {name}:{imageTag} /bin/true")
				cmd.run(f"docker cp test-log:/oai-ran/cmake_targets/log/ cmake_targets/log/{name}/")
+2 −2
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ services:
      - ../../../cmake_targets/share:/opt/cuBB/share
    userns_mode: host
    ipc: "shareable"
    image: cubb-build:24-3
    image: cubb-build:25-1
    environment:
      - cuBB_SDK=/opt/nvidia/cuBB
    command: bash -c "sudo rm -rf /tmp/phy.log && sudo chmod +x /opt/nvidia/cuBB/aerial_l1_entrypoint.sh && /opt/nvidia/cuBB/aerial_l1_entrypoint.sh"
@@ -33,7 +33,7 @@ services:
      timeout: 5s
      retries: 5
  oai-gnb-aerial:
    cpuset: "13-20"
    cpuset: "13-14"
    image: ${REGISTRY:-oaisoftwarealliance}/oai-gnb-aerial:${TAG:-develop}
    depends_on:
      nv-cubb:
+8 −0
Original line number Diff line number Diff line
@@ -45,6 +45,14 @@ typedef struct nr_guami_s {
  uint8_t amf_pointer;
} nr_guami_t;

typedef enum {
  PDUSessionType_ipv4 = 0,
  PDUSessionType_ipv6 = 1,
  PDUSessionType_ipv4v6 = 2,
  PDUSessionType_ethernet = 3,
  PDUSessionType_unstructured = 4
} pdu_session_type_t;

typedef enum { NON_DYNAMIC, DYNAMIC } fiveQI_t;

#endif
+11 −9
Original line number Diff line number Diff line
@@ -218,25 +218,27 @@ typedef struct nr_lcid_rb_t {
} nr_lcid_rb_t;

typedef struct transport_layer_addr_s {
  /**
   * Transport Layer Address as a bitstring:
   * - 32 bits for IPv4 (RFC 791),
   * - 128 bits for IPv6 (RFC 2460),
   * - 160 bits for both IPv4 and IPv6, with IPv4 in the first 32 bits.
   * The S1AP/NGAP layer forwards this address (bitstring<1..160>)
   * to S1-U/NG-U without interpreting it.
   */
  /** Transport Layer Address in bytes:
   * - 4 bytes for IPv4 (RFC 791), 16 bytes for IPv6 (RFC 2460),
   * - 20 bytes for both IPv4 and IPv6, with IPv4 in the first 4 bytes. */
  uint8_t length;
  /// Buffer: address in network byte order
  uint8_t buffer[20];
} transport_layer_addr_t;

/** @brief GTP tunnel configuration */
typedef struct {
  // Tunnel endpoint identifier
  uint32_t teid;
  // Transport layer address
  transport_layer_addr_t addr;
} gtpu_tunnel_t;

//-----------------------------------------------------------------------------
// GTPV1U TYPES
//-----------------------------------------------------------------------------
typedef uint32_t teid_t; // tunnel endpoint identifier
typedef uint8_t ebi_t; // eps bearer id
typedef uint8_t pdusessionid_t;

//-----------------------------------------------------------------------------
//
+4 −5
Original line number Diff line number Diff line
@@ -123,11 +123,10 @@ void seq_arr_erase_it(seq_arr_t* arr, void* start_it, void* end_it, void (*free_
    return;

  if (free_func != NULL) {
    void* start_it = seq_arr_front(arr);
    void* end_it = seq_arr_end(arr);
    while (start_it != end_it) {
      free_func(start_it);
      start_it = seq_arr_next(arr, start_it);
    void* it = start_it;
    while (it != end_it) {
      free_func(it);
      it = seq_arr_next(arr, it);
    }
  }

Loading