mac,rrc: add interface to set SR config explicitly without touching any other MAC function

when releasing PUCCH/SRS (see 5.3.13 in 36.331) we need to reset the SR config as well.
In our case, SR is handled by MAC so we need to (re-)configure MAC, not all of
MAC though, just SR.
master
Andre Puschmann 4 years ago
parent e7239163e9
commit fab86382c1

@ -462,7 +462,12 @@ public:
/* Instructs the MAC to start receiving an MCH */
virtual void mch_start_rx(uint32_t lcid) = 0;
virtual void set_config(srslte::mac_cfg_t& mac_cfg) = 0;
/* Set entire MAC config */
virtual void set_config(srslte::mac_cfg_t& mac_cfg) = 0;
/* Update SR config only for PUCCH release */
virtual void set_config(srslte::sr_cfg_t& sr_cfg) = 0;
virtual void set_rach_ded_cfg(uint32_t preamble_index, uint32_t prach_mask) = 0;
virtual void get_rntis(ue_rnti_t* rntis) = 0;

@ -84,6 +84,7 @@ public:
/******** set/get MAC configuration ****************/
void set_config(mac_cfg_t& mac_cfg);
void set_config(sr_cfg_t& sr_cfg);
void set_contention_id(uint64_t uecri);
/******* interface from demux object ****************/

@ -602,6 +602,13 @@ void mac::set_mbsfn_config(uint32_t nof_mbsfn_services)
phy_mbsfn_cfg.nof_mbsfn_services = nof_mbsfn_services;
}
// Only reset SR config
void mac::set_config(sr_cfg_t& sr_cfg)
{
Info("Setting SR configuration\n");
sr_procedure.set_config(sr_cfg);
}
void mac::set_config(mac_cfg_t& mac_cfg)
{
Info("Setting configuration\n");

@ -2449,7 +2449,7 @@ void rrc::set_phy_default_pucch_srs()
// SR configuration affects to MAC SR too
current_mac_cfg.sr_cfg.reset();
mac->set_config(current_mac_cfg);
mac->set_config(current_mac_cfg.sr_cfg);
}
void rrc::set_mac_default()

@ -159,6 +159,7 @@ public:
void mch_start_rx(uint32_t lcid) override {}
void set_config(srslte::mac_cfg_t& mac_cfg) override {}
void set_config(srslte::sr_cfg_t& sr_cfg) override {}
void set_rach_ded_cfg(uint32_t preamble_index, uint32_t prach_mask) override {}
void get_rntis(ue_rnti_t* rntis) override {}

Loading…
Cancel
Save