Minor changes in scheduler logs and style

master
Ismael Gomez 6 years ago
parent 2c1608f6f1
commit a8f6081837

@ -422,8 +422,10 @@ int srslte_enb_dl_put_pdcch_dl(srslte_enb_dl_t *q, srslte_ra_dl_dci_t *grant,
if (rnti == SRSLTE_SIRNTI || rnti == SRSLTE_PRNTI || (rnti >= SRSLTE_RARNTI_START && rnti <= SRSLTE_RARNTI_END)) {
rnti_is_user = false;
}
srslte_dci_msg_pack_pdsch(grant, format, &dci_msg, q->cell.nof_prb, q->cell.nof_ports, rnti_is_user);
if (srslte_dci_msg_pack_pdsch(grant, format, &dci_msg, q->cell.nof_prb, q->cell.nof_ports, rnti_is_user)) {
fprintf(stderr, "Error packing DCI grant\n");
}
if (srslte_pdcch_encode(&q->pdcch, &dci_msg, location, rnti, q->sf_symbols, sf_idx, q->cfi)) {
fprintf(stderr, "Error encoding DCI message\n");
return SRSLTE_ERROR;

@ -528,6 +528,7 @@ static int dl_dci_to_grant_mcs(srslte_ra_dl_dci_t *dci, srslte_ra_dl_grant_t *gr
}
grant->mcs[0].mod = SRSLTE_MOD_QPSK;
grant->mcs[0].tbs = (uint32_t) tbs;
grant->mcs[0].idx = dci->mcs_idx;
} else {
n_prb = grant->nof_prb;
if (dci->tb_en[0]) {

@ -208,7 +208,7 @@ private:
uint32_t P;
uint32_t start_rbg;
uint32_t si_n_rbg;
uint32_t rar_n_rb;
uint32_t rar_n_rbg;
uint32_t nof_rbg;
uint32_t sf_idx;
uint32_t sfn;

@ -43,7 +43,7 @@ namespace srsenb {
* Initialization and sched configuration functions
*
*******************************************************/
sched::sched() : bc_aggr_level(0), rar_aggr_level(0), avail_rbg(0), P(0), start_rbg(0), si_n_rbg(0), rar_n_rb(0),
sched::sched() : bc_aggr_level(0), rar_aggr_level(0), avail_rbg(0), P(0), start_rbg(0), si_n_rbg(0), rar_n_rbg(0),
nof_rbg(0), sf_idx(0), sfn(0), current_cfi(0) {
current_tti = 0;
log_h = NULL;
@ -129,8 +129,8 @@ int sched::cell_cfg(sched_interface::cell_cfg_t* cell_cfg)
}
P = srslte_ra_type0_P(cfg.cell.nof_prb);
si_n_rbg = 4/P;
rar_n_rb = 3;
si_n_rbg = ceilf((float) 4/P);
rar_n_rbg = ceilf((float) 3/P);
nof_rbg = (uint32_t) ceil((float) cfg.cell.nof_prb/P);
// Compute Common locations for DCI for each CFI
@ -550,14 +550,15 @@ int sched::dl_sched_bc(dl_sched_bc_t bc[MAX_BC_LIST])
uint32_t rv = get_rvidx(pending_sibs[i].n_tx);
// Try to allocate DCI first
if (generate_dci(&bc[nof_bc_elems].dci_location, &common_locations[current_cfi-1], bc_aggr_level)) {
if (generate_format1a(start_rbg*P, si_n_rbg*P, cfg.sibs[i].len, rv, &bc[nof_bc_elems].dci) >= 0) {
if (generate_dci(&bc[nof_bc_elems].dci_location, &common_locations[current_cfi-1], bc_aggr_level)) {
int tbs = generate_format1a(start_rbg*P, si_n_rbg*P, cfg.sibs[i].len, rv, &bc[nof_bc_elems].dci);
if (tbs >= (int) cfg.sibs[i].len) {
bc[nof_bc_elems].index = i;
bc[nof_bc_elems].type = sched_interface::dl_sched_bc_t::BCCH;
bc[nof_bc_elems].tbs = cfg.sibs[i].len;
bc[nof_bc_elems].tbs = tbs;
Debug("SCHED: SIB%d, start_rb=%d, n_rb=%d, rv=%d, len=%d, period=%d\n",
i+1, start_rbg*P, si_n_rbg*P, rv, cfg.sibs[i].len, cfg.sibs[i].period_rf);
Debug("SCHED: SIB%d, start_rb=%d, n_rb=%d, rv=%d, len=%d, period=%d, mcs=%d\n",
i+1, start_rbg*P, si_n_rbg*P, rv, cfg.sibs[i].len, cfg.sibs[i].period_rf, bc[nof_bc_elems].dci.mcs_idx);
pending_sibs[i].n_tx++;
@ -588,7 +589,7 @@ int sched::dl_sched_bc(dl_sched_bc_t bc[MAX_BC_LIST])
bc[nof_bc_elems].tbs = tbs;
nof_bc_elems++;
Info("SCHED: PCH start_rb=%d, tbs=%d\n", start_rbg, tbs);
Info("SCHED: PCH start_rb=%d, tbs=%d, mcs=%d\n", start_rbg, tbs, bc[nof_bc_elems].dci.mcs_idx);
avail_rbg -= si_n_rbg;
start_rbg += si_n_rbg;
@ -610,7 +611,7 @@ int sched::dl_sched_rar(dl_sched_rar_t rar[MAX_RAR_LIST])
int nof_rar_elems = 0;
for (uint32_t i=0;i<SCHED_MAX_PENDING_RAR;i++)
{
if (pending_rar[i].buf_rar > 0 && avail_rbg >= (uint32_t)ceil((float)rar_n_rb/P))
if (pending_rar[i].buf_rar > 0 && avail_rbg >= rar_n_rbg)
{
/* Check if we are still within the RAR window, otherwise discard it */
if (current_tti <= (pending_rar[i].rar_tti + cfg.prach_rar_window + 3)%10240 && current_tti >= pending_rar[i].rar_tti + 3)
@ -647,8 +648,8 @@ int sched::dl_sched_rar(dl_sched_rar_t rar[MAX_RAR_LIST])
pending_msg3[pending_tti].n_prb = n_prb;
pending_msg3[pending_tti].mcs = rar[nof_rar_elems].grants[nof_grants].grant.trunc_mcs;
log_h->info("SCHED: RAR, ra_id=%d, rnti=0x%x, rarnti_idx=%d, start_rb=%d, n_rb=%d, rar_grant_rba=%d, rar_grant_mcs=%d\n",
pending_rar[j].ra_id, pending_rar[j].rnti, rar_sfidx, start_rbg*P, rar_n_rb,
log_h->info("SCHED: RAR, ra_id=%d, rnti=0x%x, rarnti_idx=%d, start_rb=%d, n_rb=%d, rar_grant_rba=%d, rar_grant_mcs=%d\n",
pending_rar[j].ra_id, pending_rar[j].rnti, rar_sfidx, start_rbg*P, rar_n_rbg*P,
rar[nof_rar_elems].grants[nof_grants].grant.rba,
rar[nof_rar_elems].grants[nof_grants].grant.trunc_mcs);
} else {
@ -661,11 +662,11 @@ int sched::dl_sched_rar(dl_sched_rar_t rar[MAX_RAR_LIST])
rar[nof_rar_elems].nof_grants = nof_grants;
rar[nof_rar_elems].rarnti = rar_sfidx;
if (generate_format1a(start_rbg*P, rar_n_rb, buf_rar, 0, &rar[nof_rar_elems].dci) >= 0) {
if (generate_format1a(start_rbg*P, rar_n_rbg*P, buf_rar, 0, &rar[nof_rar_elems].dci) >= 0) {
rar[nof_rar_elems].tbs = buf_rar;
nof_rar_elems++;
avail_rbg -= (uint32_t)ceil((float)rar_n_rb/P);
start_rbg += (uint32_t)ceil((float)rar_n_rb/P);
avail_rbg -= rar_n_rbg;
start_rbg += rar_n_rbg;
} else {
Error("SCHED: Allocating Format1A grant\n");
}
@ -1102,6 +1103,9 @@ int sched::generate_format1a(uint32_t rb_start, uint32_t l_crb, uint32_t tbs_byt
Error("Can't allocate Format 1A for TBS=%d\n", tbs);
return -1;
}
Debug("ra_tbs=%d/%d, tbs_bytes=%d, tbs=%d, mcs=%d\n",
srslte_ra_tbs_from_idx(mcs, 2),srslte_ra_tbs_from_idx(mcs, 3),tbs_bytes,tbs,mcs);
dci->alloc_type = SRSLTE_RA_ALLOC_TYPE2;
dci->type2_alloc.mode = srslte_ra_type2_t::SRSLTE_RA_TYPE2_LOC;

Loading…
Cancel
Save