Skip to content

Commit 82d6c81

Browse files
herlesupreethcodebot
authored andcommitted
f1ap,du_mgr: populate slices information in F1 setup request
1 parent d0d20a7 commit 82d6c81

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

include/srsran/f1ap/du/f1ap_du_connection_manager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "srsran/ran/gnb_du_id.h"
1717
#include "srsran/ran/nr_cgi.h"
1818
#include "srsran/ran/pci.h"
19+
#include "srsran/ran/s_nssai.h"
1920
#include "srsran/ran/subcarrier_spacing.h"
2021
#include "srsran/support/async/async_task.h"
2122
#include <optional>
@@ -35,6 +36,7 @@ struct f1_cell_setup_params {
3536
byte_buffer packed_meas_time_cfg;
3637
byte_buffer packed_mib;
3738
byte_buffer packed_sib1;
39+
std::vector<s_nssai_t> slices;
3840
};
3941

4042
/// \brief Message that initiates a F1 Setup procedure.

lib/du_manager/converters/f1ap_configuration_helpers.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,9 @@ void srsran::srs_du::fill_f1_setup_request(f1_setup_request_message&
642642
serv_cell.duplx_mode = cell_cfg.tdd_ul_dl_cfg_common.has_value() ? duplex_mode::TDD : duplex_mode::FDD;
643643
serv_cell.scs_common = cell_cfg.scs_common;
644644
serv_cell.dl_carrier = cell_cfg.dl_carrier;
645+
for (const auto& slice : cell_cfg.rrm_policy_members) {
646+
serv_cell.slices.push_back(slice.rrc_member.s_nssai);
647+
}
645648
if (serv_cell.duplx_mode == duplex_mode::FDD) {
646649
serv_cell.ul_carrier = cell_cfg.ul_carrier;
647650
}

lib/f1ap/du/procedures/f1ap_du_setup_procedure.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,19 @@ void f1ap_du_setup_procedure::send_f1_setup_request()
101101
auto plmn_bytes = cell_cfg.nr_cgi.plmn_id.to_bytes();
102102
f1ap_cell.served_cell_info.served_plmns[0].plmn_id = plmn_bytes;
103103

104+
// Fill slicing information.
105+
f1ap_cell.served_cell_info.served_plmns[0].ie_exts_present = not cell_cfg.slices.empty();
106+
f1ap_cell.served_cell_info.served_plmns[0].ie_exts.tai_slice_support_list_present = not cell_cfg.slices.empty();
107+
for (const s_nssai_t& s_nssai : cell_cfg.slices) {
108+
slice_support_item_s slice{};
109+
slice.snssai.sst.from_number(s_nssai.sst);
110+
slice.snssai.sd_present = s_nssai.sd.has_value();
111+
if (slice.snssai.sd_present) {
112+
slice.snssai.sd.from_number(*s_nssai.sd);
113+
}
114+
f1ap_cell.served_cell_info.served_plmns[0].ie_exts.tai_slice_support_list.push_back(slice);
115+
}
116+
104117
// Fill Served Cell Information.
105118
f1ap_cell.served_cell_info.nr_pci = cell_cfg.pci;
106119
f1ap_cell.served_cell_info.nr_cgi.plmn_id = plmn_bytes;

0 commit comments

Comments
 (0)