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.
This commit is contained in:
Andre Puschmann 2020-10-06 18:14:06 +02:00
parent e7239163e9
commit fab86382c1
5 changed files with 16 additions and 2 deletions

View File

@ -462,7 +462,12 @@ public:
/* Instructs the MAC to start receiving an MCH */ /* Instructs the MAC to start receiving an MCH */
virtual void mch_start_rx(uint32_t lcid) = 0; 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 set_rach_ded_cfg(uint32_t preamble_index, uint32_t prach_mask) = 0;
virtual void get_rntis(ue_rnti_t* rntis) = 0; virtual void get_rntis(ue_rnti_t* rntis) = 0;

View File

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

View File

@ -602,6 +602,13 @@ void mac::set_mbsfn_config(uint32_t nof_mbsfn_services)
phy_mbsfn_cfg.nof_mbsfn_services = 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) void mac::set_config(mac_cfg_t& mac_cfg)
{ {
Info("Setting configuration\n"); Info("Setting configuration\n");

View File

@ -2449,7 +2449,7 @@ void rrc::set_phy_default_pucch_srs()
// SR configuration affects to MAC SR too // SR configuration affects to MAC SR too
current_mac_cfg.sr_cfg.reset(); 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() void rrc::set_mac_default()

View File

@ -159,6 +159,7 @@ public:
void mch_start_rx(uint32_t lcid) override {} void mch_start_rx(uint32_t lcid) override {}
void set_config(srslte::mac_cfg_t& mac_cfg) 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 set_rach_ded_cfg(uint32_t preamble_index, uint32_t prach_mask) override {}
void get_rntis(ue_rnti_t* rntis) override {} void get_rntis(ue_rnti_t* rntis) override {}