mirror of https://github.com/PentHertz/srsLTE.git
Fixed not computing DCI size for 100 prb
This commit is contained in:
parent
7306d88f83
commit
0b048dd601
|
@ -303,7 +303,7 @@ uint32_t srslte_dci_format_sizeof(srslte_dci_format_t format, uint32_t nof_prb)
|
|||
}
|
||||
|
||||
uint32_t srslte_dci_format_sizeof_lut(srslte_dci_format_t format, uint32_t nof_prb) {
|
||||
if (nof_prb < 100 && format < 4) {
|
||||
if (nof_prb <= 100 && format < 4) {
|
||||
return dci_sz_table[nof_prb][format];
|
||||
} else {
|
||||
return 0;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
|
||||
|
||||
static uint32_t dci_sz_table[100][4] = {
|
||||
static uint32_t dci_sz_table[101][4] = {
|
||||
{15, 13, 15, 5},
|
||||
{15, 17, 15, 5},
|
||||
{17, 15, 17, 5},
|
||||
|
@ -127,6 +127,7 @@ static uint32_t dci_sz_table[100][4] = {
|
|||
{28, 38, 28, 15},
|
||||
{28, 39, 28, 15},
|
||||
{28, 39, 28, 15},
|
||||
{28, 39, 28, 15},
|
||||
{28, 39, 28, 15}
|
||||
};
|
||||
|
||||
|
|
|
@ -352,6 +352,8 @@ int srslte_pdcch_decode_msg(srslte_pdcch_t *q,
|
|||
return ret;
|
||||
}
|
||||
|
||||
int cnt=0;
|
||||
|
||||
/** Extracts the LLRs from srslte_dci_location_t location of the subframe and stores them in the srslte_pdcch_t structure.
|
||||
* DCI messages can be extracted from this location calling the function srslte_pdcch_decode_msg().
|
||||
* Every time this function is called (with a different location), the last demodulated symbols are overwritten and
|
||||
|
@ -422,7 +424,7 @@ int srslte_pdcch_extract_llr(srslte_pdcch_t *q, cf_t *sf_symbols, cf_t *ce[SRSLT
|
|||
|
||||
/* descramble */
|
||||
srslte_scrambling_f_offset(&q->seq[nsubframe], q->llr, 0, e_bits);
|
||||
|
||||
|
||||
ret = SRSLTE_SUCCESS;
|
||||
}
|
||||
return ret;
|
||||
|
|
|
@ -109,8 +109,8 @@ int test_dci_payload_size() {
|
|||
printf("Ok\n");
|
||||
|
||||
if (print_dci_table) {
|
||||
printf("dci_sz_table[100][4] = {\n");
|
||||
for (i=0;i<100;i++) {
|
||||
printf("dci_sz_table[101][4] = {\n");
|
||||
for (i=0;i<=100;i++) {
|
||||
printf(" {");
|
||||
for (int j=0;j<4;j++) {
|
||||
printf("%d",srslte_dci_format_sizeof(formats[j], i));
|
||||
|
@ -118,7 +118,7 @@ int test_dci_payload_size() {
|
|||
printf(", ");
|
||||
}
|
||||
}
|
||||
if (i<99) {
|
||||
if (i<100) {
|
||||
printf("},\n");
|
||||
} else {
|
||||
printf("}\n");
|
||||
|
|
|
@ -40,6 +40,13 @@
|
|||
|
||||
#define PDSCH_DO_ZF
|
||||
|
||||
srslte_dci_format_t ue_formats[] = {SRSLTE_DCI_FORMAT1A, SRSLTE_DCI_FORMAT1}; // SRSLTE_DCI_FORMAT1B should go here also
|
||||
const uint32_t nof_ue_formats = 2;
|
||||
|
||||
srslte_dci_format_t common_formats[] = {SRSLTE_DCI_FORMAT1A,SRSLTE_DCI_FORMAT1C};
|
||||
const uint32_t nof_common_formats = 2;
|
||||
|
||||
|
||||
int srslte_ue_dl_init(srslte_ue_dl_t *q,
|
||||
srslte_cell_t cell)
|
||||
{
|
||||
|
@ -152,12 +159,6 @@ void srslte_ue_dl_reset(srslte_ue_dl_t *q) {
|
|||
bzero(&q->pdsch_cfg, sizeof(srslte_pdsch_cfg_t));
|
||||
}
|
||||
|
||||
srslte_dci_format_t ue_formats[] = {SRSLTE_DCI_FORMAT1A, SRSLTE_DCI_FORMAT1}; // SRSLTE_DCI_FORMAT1B should go here also
|
||||
const uint32_t nof_ue_formats = 2;
|
||||
|
||||
srslte_dci_format_t common_formats[] = {SRSLTE_DCI_FORMAT1A,SRSLTE_DCI_FORMAT1C};
|
||||
const uint32_t nof_common_formats = 2;
|
||||
|
||||
/** Applies the following operations to a subframe of synchronized samples:
|
||||
* - OFDM demodulation
|
||||
* - Channel estimation
|
||||
|
@ -313,8 +314,9 @@ int srslte_ue_dl_find_dl_dci_type(srslte_ue_dl_t *q, srslte_dci_msg_t *dci_msg,
|
|||
|
||||
uint16_t crc_rem = 0;
|
||||
for (int f=0;f<nof_formats && crc_rem != rnti;f++) {
|
||||
INFO("Trying format %s\n", srslte_dci_format_string(formats[f]));
|
||||
for (int i=0;i<nof_locations && crc_rem != rnti;i++) {
|
||||
INFO("Trying format %s (nbits=%d), location L=%d, ncce=%d\n", srslte_dci_format_string(formats[f]),
|
||||
srslte_dci_format_sizeof_lut(formats[f], q->cell.nof_prb), locations[i].L, locations[i].ncce);
|
||||
q->last_n_cce = locations[i].ncce;
|
||||
if (srslte_pdcch_decode_msg(&q->pdcch, dci_msg, &locations[i], formats[f], &crc_rem)) {
|
||||
fprintf(stderr, "Error decoding DCI msg\n");
|
||||
|
|
Loading…
Reference in New Issue