|
|
@ -570,16 +570,23 @@ int srslte_npdsch_encode_rnti(srslte_npdsch_t* q,
|
|
|
|
cf_t* sf_symbols[SRSLTE_MAX_PORTS])
|
|
|
|
cf_t* sf_symbols[SRSLTE_MAX_PORTS])
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (rnti != q->rnti) {
|
|
|
|
if (rnti != q->rnti) {
|
|
|
|
srslte_sequence_t seq;
|
|
|
|
|
|
|
|
// TODO: skip sequence init if cfg->is_encoded==true
|
|
|
|
// TODO: skip sequence init if cfg->is_encoded==true
|
|
|
|
if (srslte_sequence_npdsch(&seq,
|
|
|
|
srslte_sequence_t seq;
|
|
|
|
rnti,
|
|
|
|
if (q->cell.is_r14 && rnti == SRSLTE_SIRNTI) {
|
|
|
|
0,
|
|
|
|
if (srslte_sequence_npdsch_bcch_r14(
|
|
|
|
cfg->grant.start_sfidx,
|
|
|
|
&seq, cfg->grant.start_sfn, q->cell.n_id_ncell, cfg->grant.nof_sf * cfg->nbits.nof_bits)) {
|
|
|
|
2 * cfg->grant.start_sfidx,
|
|
|
|
return SRSLTE_ERROR;
|
|
|
|
q->cell.n_id_ncell,
|
|
|
|
}
|
|
|
|
cfg->nbits.nof_bits * cfg->grant.nof_sf)) {
|
|
|
|
} else {
|
|
|
|
return SRSLTE_ERROR;
|
|
|
|
if (srslte_sequence_npdsch(&seq,
|
|
|
|
|
|
|
|
rnti,
|
|
|
|
|
|
|
|
0,
|
|
|
|
|
|
|
|
cfg->grant.start_sfidx,
|
|
|
|
|
|
|
|
2 * cfg->grant.start_sfidx,
|
|
|
|
|
|
|
|
q->cell.n_id_ncell,
|
|
|
|
|
|
|
|
cfg->nbits.nof_bits * cfg->grant.nof_sf)) {
|
|
|
|
|
|
|
|
return SRSLTE_ERROR;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
int r = srslte_npdsch_encode_seq(q, cfg, softbuffer, data, &seq, sf_symbols);
|
|
|
|
int r = srslte_npdsch_encode_seq(q, cfg, softbuffer, data, &seq, sf_symbols);
|
|
|
|
srslte_sequence_free(&seq);
|
|
|
|
srslte_sequence_free(&seq);
|
|
|
|