mac: add backoff indicator

This commit is contained in:
Piotr Gawlowicz 2022-09-12 12:23:22 +02:00 committed by Andre Puschmann
parent 85b4d27f9f
commit 77cd6d2275
4 changed files with 7 additions and 1 deletions

View File

@ -19,7 +19,8 @@
namespace srsenb {
struct mac_args_t {
uint32_t nof_prb; ///< Needed to dimension MAC softbuffers for all cells
uint32_t nof_prb; ///< Needed to dimension MAC softbuffers for all cells
uint32_t prach_bi; ///< Backoff Indicator to prevent UE from PRACHing too fast
sched_interface::sched_args_t sched;
int lcid_padding;
uint32_t nof_prealloc_ues; ///< Number of UE resources to pre-allocate at eNB startup

View File

@ -424,3 +424,4 @@ nr_pdsch_mcs=28
#rlf_min_ul_snr_estim = -2
#s1_setup_max_retries = -1
#rx_gain_offset = 62
#mac_prach_bi = 0

View File

@ -260,6 +260,7 @@ void parse_args(all_args_t* args, int argc, char* argv[])
("expert.rlf_min_ul_snr_estim", bpo::value<int>(&args->stack.mac.rlf_min_ul_snr_estim)->default_value(-2), "SNR threshold in dB below which the eNB is notified with rlf ko.")
("expert.max_s1_setup_retries", bpo::value<int32_t>(&args->stack.s1ap.max_s1_setup_retries)->default_value(-1), "Max S1 setup retries")
("expert.rx_gain_offset", bpo::value<float>(&args->phy.rx_gain_offset)->default_value(62), "RX Gain offset to add to rx_gain to calibrate RSRP readings")
("expert.mac_prach_bi", bpo::value<uint32_t>(&args->stack.mac.prach_bi)->default_value(0), "Backoff Indicator to reduce contention in the PRACH channel")
// eMBMS section
("embms.enable", bpo::value<bool>(&args->stack.embms.enable)->default_value(false), "Enables MBMS in the eNB")

View File

@ -924,6 +924,9 @@ uint8_t* mac::assemble_rar(sched_interface::dl_sched_rar_grant_t* grants,
srsran::rar_pdu* pdu = &rar_pdu_msg[rar_idx];
rar_payload[enb_cc_idx][rar_idx].clear();
pdu->init_tx(&rar_payload[enb_cc_idx][rar_idx], pdu_len);
if (args.prach_bi > 0 and args.prach_bi <= 12) {
pdu->set_backoff(args.prach_bi);
}
for (uint32_t i = 0; i < nof_grants; i++) {
srsran_dci_rar_pack(&grants[i].grant, grant_buffer);
if (pdu->new_subh()) {