File tree Expand file tree Collapse file tree 3 files changed +18
-0
lines changed Expand file tree Collapse file tree 3 files changed +18
-0
lines changed Original file line number Diff line number Diff line change 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.
Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff 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;
You can’t perform that action at this time.
0 commit comments