Skip to content

Commit

Permalink
Update main
Browse files Browse the repository at this point in the history
# Conflicts:
#	include/srsran/support/dynlink_manager.h
#	lib/support/dynlink_manager.cpp
  • Loading branch information
codebot committed Dec 20, 2024
2 parents e74f7f3 + 93c93e8 commit 61c1065
Show file tree
Hide file tree
Showing 103 changed files with 1,736 additions and 1,416 deletions.
6 changes: 3 additions & 3 deletions .gitlab/ci-shared/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,11 @@ variables:
ARTIFACT_COMPRESSION_LEVEL: slowest
RUNNER_AFTER_SCRIPT_TIMEOUT: 1m
KUBERNETES_CPU_REQUEST: 1
KUBERNETES_CPU_LIMIT: 1
KUBERNETES_CPU_LIMIT: 2
KUBERNETES_MEMORY_REQUEST: 2Gi
KUBERNETES_MEMORY_LIMIT: 2Gi
KUBERNETES_EPHEMERAL_STORAGE_REQUEST: "10G"
KUBERNETES_EPHEMERAL_STORAGE_LIMIT: "10G"
KUBERNETES_EPHEMERAL_STORAGE_REQUEST: "20G"
KUBERNETES_EPHEMERAL_STORAGE_LIMIT: "20G"
<<: *setup_kube_variables
GROUP: zmq
tags:
Expand Down
8 changes: 4 additions & 4 deletions .gitlab/ci/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ amari 32UE 2x2 mimo:

cudu amari 8UE:
extends: .zmq
timeout: 1h
timeout: 2h
variables:
TESTBED: zmq_cudu
MARKERS: "zmq and not smoke"
Expand All @@ -279,7 +279,7 @@ cudu amari 8UE:

cudu amari 32UE:
extends: .zmq
timeout: 1h
timeout: 2h
variables:
TESTBED: zmq_cudu
MARKERS: "zmq and not smoke"
Expand All @@ -290,7 +290,7 @@ cudu amari 32UE:

cudu amari 64UE:
extends: .zmq
timeout: 2h
timeout: 3h
variables:
TESTBED: zmq_cudu
MARKERS: "zmq and not smoke"
Expand Down Expand Up @@ -473,7 +473,7 @@ android x300:
artifacts: true
- *retina-needs

android x300 drx:
android drx:
stage: rf
extends: .e2e-run
allow_failure: true
Expand Down
2 changes: 1 addition & 1 deletion .gitlab/ci/e2e/.env
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
SRSGNB_REGISTRY_URI=registry.gitlab.com/softwareradiosystems/srsgnb
RETINA_REGISTRY_PREFIX=registry.gitlab.com/softwareradiosystems/ci/retina
RETINA_VERSION=0.59.0
RETINA_VERSION=0.59.2
UBUNTU_VERSION=24.04
AMARISOFT_VERSION=2023-09-08
SRSUE_VERSION=23.11
Expand Down
6 changes: 3 additions & 3 deletions .gitlab/ci/e2e/retina_request_rf_b200.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@
- name: amarisoft-ue
type: ue
image: ${RETINA_REGISTRY_PREFIX}/amarisoftue:${AMARISOFT_VERSION}_${RETINA_VERSION}
labels: ["kubernetes.io/hostname=hp-oran"]
labels: ["kubernetes.io/hostname=ci-buildmaster"]
nof_ports: 4
requirements:
arch: amd64
cpu:
requests: 12
limits: 12
memory:
requests: "48G"
limits: "48G"
requests: "20G"
limits: "20G"
ephemeral-storage:
requests: "6G"
limits: "6G"
Expand Down
2 changes: 2 additions & 0 deletions .gitlab/run_viavi_pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@ def run_test(args_definition: _ArgsDefinition, test_definition: _TestDefinition)
{"key": "TEST_MODE", "value": TESTMODE},
{"key": "BUILD_ARGS", "value": BUILD_ARGS},
{"key": "MAKE_ARGS", "value": MAKE_ARGS},
{"key": "SRS_TARGET", "value": "gnb_split_7_2"},
{"key": "PLUGIN_BRANCH", "value": "main"},
{"key": "UHD_VERSION", "value": ""},
{"key": "DPDK_VERSION", "value": DPDK_VERSION},
{"key": "TESTBED", "value": TESTBED},
Expand Down
1 change: 0 additions & 1 deletion apps/gnb/gnb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@
#include "srsran/support/backtrace.h"
#include "srsran/support/config_parsers.h"
#include "srsran/support/cpu_features.h"
#include "srsran/support/dynlink_manager.h"
#include "srsran/support/io/io_broker_factory.h"
#include "srsran/support/signal_handling.h"
#include "srsran/support/tracing/event_tracing.h"
Expand Down
6 changes: 5 additions & 1 deletion apps/units/flexible_o_du/o_du_high/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,8 @@ add_subdirectory(fapi)

add_library(srsran_o_du_high_unit_helpers STATIC o_du_high_unit_factory.cpp)
target_include_directories(srsran_o_du_high_unit_helpers PRIVATE ${CMAKE_SOURCE_DIR})
target_link_libraries(srsran_o_du_high_unit_helpers PRIVATE srsran_du_high_unit_helpers srsran_fapi_app_unit srsran_o_du_high_app_unit_e2)
target_link_libraries(srsran_o_du_high_unit_helpers PRIVATE
srsran_du_high_unit_helpers
srsran_fapi_app_unit
srsran_o_du_high_app_unit_e2
srsran_o_du_high)
2 changes: 1 addition & 1 deletion apps/units/flexible_o_du/o_du_low/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ set(SOURCES

add_library(srsran_o_du_low_unit_helpers STATIC ${SOURCES})
target_include_directories(srsran_o_du_low_unit_helpers PRIVATE ${CMAKE_SOURCE_DIR})
set(DU_LOW_UNIT_HELPERS_LIBRARIES srsran_upper_phy srsran_cpu_affinities_helper)
set(DU_LOW_UNIT_HELPERS_LIBRARIES srsran_upper_phy srsran_cpu_affinities_helper srsran_o_du_low)

# Hardware acceleration for both PUSCH and PDSCH is enabled by default when using DPDK.
if (DPDK_FOUND)
Expand Down
12 changes: 7 additions & 5 deletions apps/units/flexible_o_du/split_6/split6_o_du_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
*/

#include "split6_o_du_impl.h"
#include "srsran/fapi_adaptor/mac/mac_fapi_adaptor.h"
#include "srsran/fapi_adaptor/mac/mac_fapi_sector_adaptor.h"
#include "srsran/support/srsran_assert.h"

using namespace srsran;
Expand All @@ -32,15 +34,15 @@ split6_o_du_impl::split6_o_du_impl(std::vector<std::unique_ptr<fapi::fapi_adapto
srsran_assert(odu_hi, "Invalid O-DU high");
srsran_assert(adaptors.size(), "Invalid FAPI adaptor");

// Hardcoded 0 is because at this moment there is one DU instance with one cell per cell, so we can always access the
// cell id 0 of the DU.
for (unsigned i = 0, e = adaptors.size(); i != e; ++i) {
fapi_adaptor::mac_fapi_sector_adaptor& fapi_sector = odu_hi->get_mac_fapi_adaptor().get_sector_adaptor(i);

adaptors[i]->get_message_interface_collection().set_slot_data_message_notifier(
odu_hi->get_slot_data_message_notifier(i));
fapi_sector.get_slot_data_message_notifier());
adaptors[i]->get_message_interface_collection().set_slot_error_message_notifier(
odu_hi->get_slot_error_message_notifier(i));
fapi_sector.get_slot_error_message_notifier());
adaptors[i]->get_message_interface_collection().set_slot_time_message_notifier(
odu_hi->get_slot_time_message_notifier(i));
fapi_sector.get_slot_time_message_notifier());
}
}

Expand Down
29 changes: 23 additions & 6 deletions apps/units/flexible_o_du/split_helpers/flexible_o_du_factory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
#include "flexible_o_du_impl.h"
#include "srsran/du/o_du_factory.h"
#include "srsran/e2/e2_du_metrics_connector.h"
#include "srsran/fapi_adaptor/mac/mac_fapi_adaptor.h"
#include "srsran/fapi_adaptor/mac/mac_fapi_sector_adaptor.h"
#include "srsran/fapi_adaptor/phy/phy_fapi_adaptor.h"
#include "srsran/fapi_adaptor/phy/phy_fapi_sector_adaptor.h"

using namespace srsran;

Expand Down Expand Up @@ -74,16 +78,29 @@ o_du_unit flexible_o_du_factory::create_flexible_o_du(const o_du_unit_dependenci

// Adjust the dependencies.
for (unsigned i = 0, e = du_cells.size(); i != e; ++i) {
auto& sector_dependencies = odu_hi_unit_dependencies.o_du_hi_dependencies.sectors.emplace_back();
sector_dependencies.gateway = &odu_lo_unit.o_du_lo->get_slot_message_gateway(i);
sector_dependencies.last_msg_notifier = &odu_lo_unit.o_du_lo->get_slot_last_message_notifier(i);
sector_dependencies.fapi_executor = config.odu_high_cfg.fapi_cfg.l2_nof_slots_ahead != 0
? std::optional(dependencies.workers->fapi_exec[i])
: std::make_optional<task_executor*>();
auto& sector_dependencies = odu_hi_unit_dependencies.o_du_hi_dependencies.sectors.emplace_back();
sector_dependencies.gateway =
&odu_lo_unit.o_du_lo->get_phy_fapi_adaptor().get_sector_adaptor(i).get_slot_message_gateway();
sector_dependencies.last_msg_notifier =
&odu_lo_unit.o_du_lo->get_phy_fapi_adaptor().get_sector_adaptor(i).get_slot_last_message_notifier();
sector_dependencies.fapi_executor = config.odu_high_cfg.fapi_cfg.l2_nof_slots_ahead != 0
? std::optional(dependencies.workers->fapi_exec[i])
: std::make_optional<task_executor*>();
}

o_du_high_unit odu_hi_unit = make_o_du_high_unit(config.odu_high_cfg, std::move(odu_hi_unit_dependencies));

// Connect the adaptors.
for (unsigned i = 0, e = du_cells.size(); i != e; ++i) {
fapi_adaptor::phy_fapi_sector_adaptor& odu_lo = odu_lo_unit.o_du_lo->get_phy_fapi_adaptor().get_sector_adaptor(i);
fapi_adaptor::mac_fapi_sector_adaptor& odu_hi = odu_hi_unit.o_du_hi->get_mac_fapi_adaptor().get_sector_adaptor(i);

// Connect O-DU low with O-DU high.
odu_lo.set_slot_time_message_notifier(odu_hi.get_slot_time_message_notifier());
odu_lo.set_slot_error_message_notifier(odu_hi.get_slot_error_message_notifier());
odu_lo.set_slot_data_message_notifier(odu_hi.get_slot_data_message_notifier());
}

o_du.metrics = std::move(odu_hi_unit.metrics);
o_du.commands = std::move(odu_hi_unit.commands);

Expand Down
14 changes: 7 additions & 7 deletions apps/units/flexible_o_du/split_helpers/flexible_o_du_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@

using namespace srsran;

flexible_o_du_impl::flexible_o_du_impl(unsigned nof_cells) :
ru_ul_adapt(nof_cells), ru_timing_adapt(nof_cells), ru_error_adapt(nof_cells)
flexible_o_du_impl::flexible_o_du_impl(unsigned nof_cells_) :
nof_cells(nof_cells_), ru_ul_adapt(nof_cells_), ru_timing_adapt(nof_cells_), ru_error_adapt(nof_cells_)
{
}

Expand Down Expand Up @@ -63,11 +63,11 @@ void flexible_o_du_impl::add_du(std::unique_ptr<srs_du::o_du> active_du)
srsran_assert(du, "Cannot set an invalid DU");

// Connect all the sectors of the DU low to the RU adaptors.
span<upper_phy*> upper_ptrs = du->get_o_du_low().get_du_low().get_all_upper_phys();
for (auto* upper : upper_ptrs) {
for (unsigned i = 0; i != nof_cells; ++i) {
auto& upper = du->get_o_du_low().get_du_low().get_upper_phy(i);
// Make connections between DU and RU.
ru_ul_adapt.map_handler(upper->get_sector_id(), upper->get_rx_symbol_handler());
ru_timing_adapt.map_handler(upper->get_sector_id(), upper->get_timing_handler());
ru_error_adapt.map_handler(upper->get_sector_id(), upper->get_error_handler());
ru_ul_adapt.map_handler(i, upper.get_rx_symbol_handler());
ru_timing_adapt.map_handler(i, upper.get_timing_handler());
ru_error_adapt.map_handler(i, upper.get_error_handler());
}
}
3 changes: 2 additions & 1 deletion apps/units/flexible_o_du/split_helpers/flexible_o_du_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class radio_unit;
class flexible_o_du_impl : public srs_du::du, public du_power_controller
{
public:
explicit flexible_o_du_impl(unsigned nof_cells);
explicit flexible_o_du_impl(unsigned nof_cells_);

// See interface for documentation.
du_power_controller& get_power_controller() override { return *this; }
Expand All @@ -63,6 +63,7 @@ class flexible_o_du_impl : public srs_du::du, public du_power_controller
upper_phy_ru_ul_request_adapter& get_upper_ru_ul_request_adapter() { return ru_ul_request_adapt; }

private:
const unsigned nof_cells;
upper_phy_ru_ul_adapter ru_ul_adapt;
upper_phy_ru_timing_adapter ru_timing_adapt;
upper_phy_ru_error_adapter ru_error_adapt;
Expand Down
2 changes: 2 additions & 0 deletions external/fmt/include/fmt/format.h
Original file line number Diff line number Diff line change
Expand Up @@ -673,6 +673,8 @@ FMT_CONSTEXPR void for_each_codepoint(string_view s, F f) {
}
}
if (auto num_chars_left = s.data() + s.size() - p) {
// Suppress bogus -Wstringop-overflow.
if (FMT_GCC_VERSION) num_chars_left &= 3;
char buf[2 * block_size - 1] = {};
copy<char>(p, p + num_chars_left, buf);
const char* buf_ptr = buf;
Expand Down
4 changes: 2 additions & 2 deletions include/srsran/cu_cp/cu_cp_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "srsran/ran/cause/ngap_cause.h"
#include "srsran/ran/crit_diagnostics.h"
#include "srsran/ran/cu_types.h"
#include "srsran/ran/gnb_constants.h"
#include "srsran/ran/gnb_id.h"
#include "srsran/ran/nr_cgi.h"
#include "srsran/ran/pci.h"
Expand All @@ -38,7 +39,6 @@
#include "srsran/ran/tac.h"
#include "srsran/ran/up_transport_layer_info.h"
#include <cstdint>
#include <map>
#include <string>
#include <type_traits>
#include <vector>
Expand All @@ -49,7 +49,7 @@ namespace srs_cu_cp {
/// Maximum number of DUs supported by CU-CP (implementation-defined).
const uint16_t MAX_NOF_DUS = 65535;
/// Maximum number of cells per DU supported by CU-CP (implementation-defined).
const uint16_t MAX_NOF_DU_CELLS = 16;
const uint16_t MAX_NOF_DU_CELLS = MAX_CELLS_PER_DU;
/// Maximum number of CU-UPs supported by CU-CP (implementation-defined).
const uint16_t MAX_NOF_CU_UPS = 65535;
/// Maximum number of UEs supported by CU-CP (implementation-defined).
Expand Down
1 change: 1 addition & 0 deletions include/srsran/cu_cp/up_context.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "srsran/cu_cp/cu_cp_types.h"
#include "srsran/ran/rb_id.h"
#include "srsran/rlc/rlc_config.h"
#include <map>

namespace srsran {

Expand Down
18 changes: 5 additions & 13 deletions include/srsran/du/du_high/o_du_high.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,9 @@ namespace srsran {

class du_power_controller;

namespace fapi {
class slot_data_message_notifier;
class slot_error_message_notifier;
class slot_time_message_notifier;
} // namespace fapi
namespace fapi_adaptor {
class mac_fapi_adaptor;
} // namespace fapi_adaptor

namespace srs_du {

Expand All @@ -48,14 +46,8 @@ class o_du_high
/// Returns the DU high from this O-RAN DU high.
virtual du_high& get_du_high() = 0;

/// Returns the FAPI slot data message notifier for the given cell of this O-RAN DU high.
virtual fapi::slot_data_message_notifier& get_slot_data_message_notifier(unsigned cell_id) = 0;

/// Returns the FAPI slot error message notifier for the given cell of this O-RAN DU high.
virtual fapi::slot_error_message_notifier& get_slot_error_message_notifier(unsigned cell_id) = 0;

/// Returns the FAPI slot time message notifier for the given cell of this O-RAN DU high.
virtual fapi::slot_time_message_notifier& get_slot_time_message_notifier(unsigned cell_id) = 0;
/// Returns the MAC-FAPI adaptor of this O-RAN DU high.
virtual fapi_adaptor::mac_fapi_adaptor& get_mac_fapi_adaptor() = 0;
};

} // namespace srs_du
Expand Down
3 changes: 0 additions & 3 deletions include/srsran/du/du_low/du_low.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,6 @@ class du_low

/// Returns the upper PHY for the given cell of this DU low.
virtual upper_phy& get_upper_phy(unsigned cell_id) = 0;

/// Returns a span of the upper PHYs managed by this DU low.
virtual span<upper_phy*> get_all_upper_phys() = 0;
};

} // namespace srs_du
Expand Down
31 changes: 6 additions & 25 deletions include/srsran/du/du_low/o_du_low.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,9 @@

namespace srsran {

namespace fapi {
class slot_data_message_notifier;
class slot_error_message_notifier;
class slot_last_message_notifier;
class slot_message_gateway;
class slot_time_message_notifier;
} // namespace fapi
namespace fapi_adaptor {
class phy_fapi_adaptor;
}

namespace srs_du {

Expand All @@ -43,26 +39,11 @@ class o_du_low
/// Default destructor.
virtual ~o_du_low() = default;

/// Returns the upper PHY of this DU low.
/// Returns the upper PHY of this O-DU low.
virtual du_low& get_du_low() = 0;

/// Returns a reference to the FAPI slot-based message gateway for the given cell of this O-RAN DU low.
virtual fapi::slot_message_gateway& get_slot_message_gateway(unsigned cell_id) = 0;

/// Returns a reference to the FAPI slot-based last message notifier for the given cell of this O-RAN DU low.
virtual fapi::slot_last_message_notifier& get_slot_last_message_notifier(unsigned cell_id) = 0;

/// Configures the FAPI slot-based, time-specific message notifier for the given cell to the given one.
virtual void set_slot_time_message_notifier(unsigned cell_id,
fapi::slot_time_message_notifier& fapi_time_notifier) = 0;

/// Configures the FAPI slot-based, error-specific message notifier for the given cell to the given one.
virtual void set_slot_error_message_notifier(unsigned cell_id,
fapi::slot_error_message_notifier& fapi_error_notifier) = 0;

/// Configures the FAPI slot-based, data-specific message notifier for the given cell to the given one.
virtual void set_slot_data_message_notifier(unsigned cell_id,
fapi::slot_data_message_notifier& fapi_data_notifier) = 0;
/// Returns the PHY&ndash;FAPI adaptor of this O-DU low.
virtual fapi_adaptor::phy_fapi_adaptor& get_phy_fapi_adaptor() = 0;
};

} // namespace srs_du
Expand Down
3 changes: 0 additions & 3 deletions include/srsran/du/o_du_factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@
namespace srsran {
namespace srs_du {

/// Instantiates an O-RAN Distributed Unit (O-DU) object with the given configuration and dependencies.
std::unique_ptr<o_du> make_o_du(const o_du_config& du_cfg, o_du_dependencies&& dependencies);

/// Instantiates an O-RAN Distributed Unit (O-DU) object with the given configuration and dependencies.
std::unique_ptr<o_du> make_o_du(std::unique_ptr<o_du_high> odu_hi, std::unique_ptr<o_du_low> odu_lo);

Expand Down
Loading

0 comments on commit 61c1065

Please sign in to comment.