Пример #1
0
int srslte_ue_dl_find_dl_dci(srslte_ue_dl_t*     q,
                             srslte_dl_sf_cfg_t* sf,
                             srslte_ue_dl_cfg_t* cfg,
                             uint16_t            rnti,
                             srslte_dci_dl_t     dci_dl[SRSLTE_MAX_DCI_MSG])
{

  set_mi_value(q, sf, cfg);

  srslte_dci_msg_t dci_msg[SRSLTE_MAX_DCI_MSG];

  int nof_msg = 0;
  if (rnti == SRSLTE_SIRNTI || rnti == SRSLTE_PRNTI || SRSLTE_RNTI_ISRAR(rnti)) {
    nof_msg = find_dl_dci_type_siprarnti(q, sf, cfg, rnti, dci_msg);
  } else {
    nof_msg = find_dl_dci_type_crnti(q, sf, cfg, rnti, dci_msg);
  }

  // Unpack DCI messages
  for (uint32_t i = 0; i < nof_msg; i++) {
    if (srslte_dci_msg_unpack_pdsch(&q->cell, sf, &cfg->dci_cfg, &dci_msg[i], &dci_dl[i])) {
      ERROR("Unpacking DL DCI\n");
      return SRSLTE_ERROR;
    }
  }
  return nof_msg;
}
Пример #2
0
int srslte_ue_dl_find_dl_dci_type(srslte_ue_dl_t *q, uint32_t tm, uint32_t cfi, uint32_t sf_idx,
                                  uint16_t rnti, srslte_rnti_type_t rnti_type, srslte_dci_msg_t *dci_msg)
{  
  if (rnti_type == SRSLTE_RNTI_SI || rnti_type == SRSLTE_RNTI_PCH || rnti_type == SRSLTE_RNTI_RAR) {
    return find_dl_dci_type_siprarnti(q, cfi, rnti, dci_msg);
  } else {
    return find_dl_dci_type_crnti(q, tm, cfi, sf_idx, rnti, dci_msg);
  }
}