Skip to content

Commit

Permalink
Update main
Browse files Browse the repository at this point in the history
# Conflicts:
#	lib/cu_up/cu_up_executor_mapper.cpp
#	lib/scheduler/ue_scheduling/ue_srb0_scheduler.cpp
#	lib/scheduler/ue_scheduling/ue_srb0_scheduler.h
#	tests/unittests/phy/upper/channel_processors/pdcch_modulator_test_data.tar.gz
#	tests/unittests/phy/upper/channel_processors/pdcch_processor_test_data.tar.gz
#	tests/unittests/phy/upper/signal_processors/dmrs_pusch_estimator_test_data.tar.gz
#	tests/unittests/phy/upper/signal_processors/port_channel_estimator_test_data.tar.gz
#	tests/unittests/scheduler/ue_scheduling/srb0_scheduler_test.cpp
  • Loading branch information
codebot committed Mar 18, 2024
2 parents 6c99b7d + 1bfa904 commit 4d9f223
Show file tree
Hide file tree
Showing 323 changed files with 9,408 additions and 4,428 deletions.
1 change: 1 addition & 0 deletions .clang-tidy
Expand Up @@ -22,6 +22,7 @@ Checks: '-*,
-misc-unused-parameters,
-misc-use-anonymous-namespace,
-misc-non-private-member-variables-in-classes,
-misc-include-cleaner,
modernize-*,
-modernize-avoid-c-arrays,
-modernize-use-trailing-return-type,
Expand Down
4 changes: 1 addition & 3 deletions .gitlab/ci/build.yml
Expand Up @@ -544,7 +544,7 @@ intermediate commits:
SAVE_ARTIFACTS: "True"
script:
- git config advice.detachedHead false
- git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
- git fetch origin --depth=20 $CI_MERGE_REQUEST_TARGET_BRANCH_NAME $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
- |
TEST_MODE=none
for rev in $(git rev-list --reverse origin/$CI_MERGE_REQUEST_TARGET_BRANCH_NAME..origin/$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME)
Expand Down Expand Up @@ -1777,8 +1777,6 @@ basic avx512 dpdk:
extends: .build_and_unit
rules:
- if: $CI_DESCRIPTION =~ /Nightly E2E Tests/
when: manual
allow_failure: true
retry: 2
interruptible: false
variables:
Expand Down
2 changes: 0 additions & 2 deletions .gitlab/ci/e2e.yml
Expand Up @@ -517,8 +517,6 @@ android n300:
viavi:
stage: rf
extends: .e2e-run
when: manual
allow_failure: true
variables:
GROUP: "viavi"
TESTBED: "viavi"
Expand Down
2 changes: 1 addition & 1 deletion .gitlab/ci/e2e/.env
@@ -1,6 +1,6 @@
SRSGNB_REGISTRY_URI=registry.gitlab.com/softwareradiosystems/srsgnb
RETINA_REGISTRY_PREFIX=registry.gitlab.com/softwareradiosystems/ci/retina
RETINA_VERSION=0.44.2
RETINA_VERSION=0.45.0
UBUNTU_VERSION=24.04
AMARISOFT_VERSION=2023-09-08
SRSUE_VERSION=23.11
Expand Down
10 changes: 5 additions & 5 deletions .gitlab/ci/e2e/retina_request_android_n300.yml
Expand Up @@ -30,15 +30,15 @@
requirements:
arch: amd64
cpu:
requests: 12
limits: 12
requests: 10
limits: 10
memory:
requests: "24G"
limits: "24G"
requests: "14G"
limits: "14G"
ephemeral-storage:
requests: "6G"
limits: "6G"
taints: ["retina"]
taints: ["manual-testing"]
resources:
- type: sdr
model: n3xx
Expand Down
10 changes: 5 additions & 5 deletions .gitlab/ci/e2e/retina_request_android_x300.yml
Expand Up @@ -30,15 +30,15 @@
requirements:
arch: amd64
cpu:
requests: 12
limits: 12
requests: 10
limits: 10
memory:
requests: "24G"
limits: "24G"
requests: "14G"
limits: "14G"
ephemeral-storage:
requests: "6G"
limits: "6G"
taints: ["retina"]
taints: ["manual-testing"]
resources:
- type: sdr
model: x300
Expand Down
3 changes: 2 additions & 1 deletion .gitlab/ci/e2e/retina_request_test_mode.yml
Expand Up @@ -23,7 +23,8 @@
limits: "6G"
resources:
- type: zmq
nof_ant: 4
nof_antennas_dl: 4
nof_antennas_ul: 4
environment:
- PATH: ${PATH}:/builds/softwareradiosystems/srsgnb/build/apps/gnb
shared_files:
Expand Down
6 changes: 3 additions & 3 deletions .gitlab/ci/e2e/retina_request_viavi.yml
Expand Up @@ -12,13 +12,13 @@
requirements:
arch: amd64
cpu:
requests: 18
requests: 20
memory:
requests: "64G"
limits: "64G"
hugepages-1Gi:
requests: 2Gi
limits: 2Gi
requests: 4Gi
limits: 4Gi
ephemeral-storage:
requests: "20G"
limits: "20G"
Expand Down
5 changes: 2 additions & 3 deletions .gitlab/ci/e2e/retina_request_zmq.yml
Expand Up @@ -41,10 +41,9 @@
requests: 1
memory:
requests: "8G"
limits: "8G"
ephemeral-storage:
requests: "6G"
limits: "6G"
requests: "15G"
limits: "15G"
resources:
- type: zmq
environment:
Expand Down
7 changes: 4 additions & 3 deletions .gitlab/ci/e2e/retina_request_zmq_4x4_mimo.yml
Expand Up @@ -22,7 +22,8 @@
limits: "6G"
resources:
- type: zmq
nof_ant: 4
nof_antennas_dl: 4
nof_antennas_ul: 4
- type: license
model: amarisoft-5g
shared_files:
Expand All @@ -41,13 +42,13 @@
requests: 1
memory:
requests: "8G"
limits: "8G"
ephemeral-storage:
requests: "6G"
limits: "6G"
resources:
- type: zmq
nof_ant: 4
nof_antennas_dl: 4
nof_antennas_ul: 4
environment:
- PATH: ${PATH}:/builds/softwareradiosystems/srsgnb/build/apps/gnb
shared_files:
Expand Down
2 changes: 1 addition & 1 deletion .gitlab/run_viavi_pipeline.py
Expand Up @@ -26,7 +26,7 @@ def main():
loglevel = args.loglevel

INFRASTRUCTURE_TAG = "on-prem-amd64-avx2-avx512"
OS_NAME = "ubuntu-22.04"
OS_NAME = "ubuntu-24.04"
COMPILER = "gcc"
TESTMODE = "none"

Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Expand Up @@ -164,6 +164,7 @@ endif (ENABLE_ASAN)

if (ENABLE_TSAN)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
add_definitions(-DENABLE_TSAN)
endif (ENABLE_TSAN)

if (ENABLE_GCOV)
Expand Down
2 changes: 1 addition & 1 deletion apps/examples/du/du_example.cpp
Expand Up @@ -241,7 +241,7 @@ class dummy_cu_cp_handler : public f1c_connection_client
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x14, 0x10, 0x0c, 0xa8, 0x18, 0x06, 0x20, 0x00};

// Unpack the pre-canned Msg4, that contains the DL-CCCH RRC setup message.
byte_buffer msg4_pdu(span<const uint8_t>{msg4, sizeof(msg4)});
byte_buffer msg4_pdu = byte_buffer::create(span<const uint8_t>{msg4, sizeof(msg4)}).value();
asn1::cbit_ref r_bref{msg4_pdu};
asn1::rrc_nr::dl_ccch_msg_s msg4_rrc;
msg4_rrc.unpack(r_bref);
Expand Down
10 changes: 10 additions & 0 deletions apps/gnb/adapters/ngap_adapter.cpp
Expand Up @@ -51,6 +51,16 @@ class ngap_gateway_local_stub final : public ngap_gateway_connector
{
srsran_assert(msg_handler != nullptr, "Adapter is disconnected");

if (pcap_writer.is_write_enabled()) {
byte_buffer packed_pdu;
asn1::bit_ref bref{packed_pdu};
if (msg.pdu.pack(bref) == asn1::SRSASN_SUCCESS) {
pcap_writer.push_pdu(std::move(packed_pdu));
} else {
logger.warning("Failed to encode NGAP Tx PDU.");
}
}

if (msg.pdu.type().value == asn1::ngap::ngap_pdu_c::types_opts::init_msg and
msg.pdu.init_msg().value.type().value ==
asn1::ngap::ngap_elem_procs_o::init_msg_c::types_opts::ng_setup_request) {
Expand Down
14 changes: 7 additions & 7 deletions apps/gnb/gnb.cpp
Expand Up @@ -483,13 +483,13 @@ int main(int argc, char** argv)
cu_up_cfg.ctrl_executor = workers.cu_up_ctrl_exec;
cu_up_cfg.cu_up_e2_exec = workers.cu_up_e2_exec;
cu_up_cfg.ue_exec_pool = workers.cu_up_exec_mapper.get();
cu_up_cfg.io_ul_executor = workers.cu_up_ul_exec; // Optionally select separate exec for UL IO
cu_up_cfg.e1ap.e1ap_conn_client = &e1ap_gw;
cu_up_cfg.f1u_gateway = f1u_conn->get_f1u_cu_up_gateway();
cu_up_cfg.epoll_broker = epoll_broker.get();
cu_up_cfg.gtpu_pcap = gtpu_p.get();
cu_up_cfg.timers = cu_timers;
cu_up_cfg.qos = generate_cu_up_qos_config(gnb_cfg);
cu_up_cfg.io_ul_executor = workers.cu_up_io_ul_exec; // Optionally select separate exec for UL IO
cu_up_cfg.e1ap.e1ap_conn_client = &e1ap_gw;
cu_up_cfg.f1u_gateway = f1u_conn->get_f1u_cu_up_gateway();
cu_up_cfg.epoll_broker = epoll_broker.get();
cu_up_cfg.gtpu_pcap = gtpu_p.get();
cu_up_cfg.timers = cu_timers;
cu_up_cfg.qos = generate_cu_up_qos_config(gnb_cfg);

// create and start CU-UP
std::unique_ptr<srsran::srs_cu_up::cu_up_interface> cu_up_obj = create_cu_up(cu_up_cfg);
Expand Down
5 changes: 3 additions & 2 deletions apps/gnb/gnb_appconfig.h
Expand Up @@ -819,11 +819,11 @@ struct pcap_appconfig {

/// Metrics report configuration.
struct metrics_appconfig {
struct {
struct rlc_metrics {
unsigned report_period = 0; // RLC report period in ms
bool json_enabled = false;
} rlc;
struct {
struct pdcp_metrics {
unsigned report_period = 0; // PDCP report period in ms
} pdcp;
unsigned cu_cp_statistics_report_period = 1; // Statistics report period in seconds
Expand All @@ -833,6 +833,7 @@ struct metrics_appconfig {
std::string addr = "127.0.0.1";
uint16_t port = 55555;
bool autostart_stdout_metrics = false;
unsigned stdout_metrics_period = 1000; // Statistics report period in milliseconds
};

/// Lower physical layer thread profiles.
Expand Down
19 changes: 15 additions & 4 deletions apps/gnb/gnb_appconfig_cli11_schema.cpp
Expand Up @@ -223,6 +223,11 @@ static void configure_cli11_metrics_args(CLI::App& app, metrics_appconfig& metri
app.add_option(
"--autostart_stdout_metrics", metrics_params.autostart_stdout_metrics, "Autostart stdout metrics reporting")
->capture_default_str();

app.add_option("--stdout_metrics_period",
metrics_params.stdout_metrics_period,
"DU statistics report period in milliseconds. This metrics sets the console output period.")
->capture_default_str();
}

static void configure_cli11_slicing_args(CLI::App& app, s_nssai_t& slice_params)
Expand Down Expand Up @@ -1968,11 +1973,17 @@ static void configure_cli11_hal_args(CLI::App& app, optional<hal_appconfig>& con

static error_type<std::string> is_valid_cpu_index(unsigned cpu_idx)
{
os_sched_affinity_bitmask one_cpu_mask(cpu_idx);
std::string error_message = fmt::format("Invalid CPU core selected '{}'. Valid CPU ids: {}",
cpu_idx,
os_sched_affinity_bitmask::available_cpus().get_cpu_ids());

os_sched_affinity_bitmask one_cpu_mask;
if (cpu_idx >= one_cpu_mask.size()) {
return error_message;
}
one_cpu_mask.set(cpu_idx);
if (not one_cpu_mask.subtract(os_sched_affinity_bitmask::available_cpus()).empty()) {
return fmt::format("Invalid CPU core selected '{}'. Valid CPU ids: {}",
cpu_idx,
os_sched_affinity_bitmask::available_cpus().get_cpu_ids());
return error_message;
}
return default_success_t();
}
Expand Down
1 change: 1 addition & 0 deletions apps/gnb/gnb_appconfig_translators.cpp
Expand Up @@ -1806,6 +1806,7 @@ scheduler_expert_config srsran::generate_scheduler_expert_config(const gnb_appco

// Logging and tracing.
out_cfg.log_broadcast_messages = config.log_cfg.broadcast_enabled;
out_cfg.metrics_report_period = std::chrono::milliseconds{config.metrics_cfg.stdout_metrics_period};

const error_type<std::string> error = is_scheduler_expert_config_valid(out_cfg);
if (!error) {
Expand Down

0 comments on commit 4d9f223

Please sign in to comment.