mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-19 07:30:31 +00:00
Merge branch 'episys/ea/fixed_pscch_slot_conflict_psbch' into 'episys/sl-eurecom2'
Fixed issue with reception of PSBCH See merge request aburger/openairinterface5g!265
This commit is contained in:
@@ -85,16 +85,17 @@ void nr_fill_sl_rx_indication(sl_nr_rx_indication_t *rx_ind,
|
||||
sl_nr_ue_phy_params_t *sl_phy_params = &ue->SL_UE_PHY_PARAMS;
|
||||
|
||||
switch (pdu_type){
|
||||
case SL_NR_RX_PDU_TYPE_SLSCH:
|
||||
sl_nr_slsch_pdu_t *rx_slsch_pdu = &rx_ind->rx_indication_body[n_pdus - 1].rx_slsch_pdu;
|
||||
slsch_status_t *slsch_status = (slsch_status_t *)typeSpecific;
|
||||
rx_slsch_pdu->pdu = slsch_status->rdata->ulsch_harq->b;
|
||||
rx_slsch_pdu->pdu_length = slsch_status->rdata->ulsch_harq->TBS;
|
||||
rx_slsch_pdu->harq_pid = slsch_status->rdata->harq_pid;
|
||||
rx_slsch_pdu->ack_nack = (slsch_status->rxok==true) ? 1 : 0;
|
||||
|
||||
if (slsch_status->rxok==true) ue->SL_UE_PHY_PARAMS.pssch.rx_ok++;
|
||||
else ue->SL_UE_PHY_PARAMS.pssch.rx_errors[0]++;
|
||||
case SL_NR_RX_PDU_TYPE_SLSCH: {
|
||||
sl_nr_slsch_pdu_t *rx_slsch_pdu = &rx_ind->rx_indication_body[n_pdus - 1].rx_slsch_pdu;
|
||||
slsch_status_t *slsch_status = (slsch_status_t *)typeSpecific;
|
||||
rx_slsch_pdu->pdu = slsch_status->rdata->ulsch_harq->b;
|
||||
rx_slsch_pdu->pdu_length = slsch_status->rdata->ulsch_harq->TBS;
|
||||
rx_slsch_pdu->harq_pid = slsch_status->rdata->harq_pid;
|
||||
rx_slsch_pdu->ack_nack = (slsch_status->rxok==true) ? 1 : 0;
|
||||
|
||||
if (slsch_status->rxok==true) ue->SL_UE_PHY_PARAMS.pssch.rx_ok++;
|
||||
else ue->SL_UE_PHY_PARAMS.pssch.rx_errors[0]++;
|
||||
}
|
||||
break;
|
||||
case FAPI_NR_RX_PDU_TYPE_SSB: {
|
||||
sl_nr_ssb_pdu_t *ssb_pdu = &rx_ind->rx_indication_body[n_pdus - 1].ssb_pdu;
|
||||
|
||||
@@ -3571,10 +3571,10 @@ void nr_ue_sidelink_scheduler(nr_sidelink_indication_t *sl_ind) {
|
||||
}
|
||||
if (sl_ind->slot_type==SIDELINK_SLOT_TYPE_TX || sl_ind->phy_data==NULL) rx_allowed=false;
|
||||
if (((get_nrUE_params()->sync_ref && sl_ind->slot_rx > 9) ||
|
||||
(!get_nrUE_params()->sync_ref && sl_ind->slot_rx < 10)) && rx_allowed) {
|
||||
(!get_nrUE_params()->sync_ref && sl_ind->slot_rx < 10)) && rx_allowed && !is_psbch_slot) {
|
||||
LOG_D(NR_MAC,"Scheduling PSCCH RX processing slot %d, sync_ref %d\n",slot,get_nrUE_params()->sync_ref);
|
||||
nr_ue_sl_pscch_rx_scheduler(sl_ind, mac->sl_bwp, mac->sl_rx_res_pool,&rx_config, &tti_action);
|
||||
}
|
||||
}
|
||||
if (!is_psbch_slot && tx_allowed) {
|
||||
//Check if reserved slot or a sidelink resource configured in Rx/Tx resource pool timeresource bitmap
|
||||
nr_ue_sl_pssch_scheduler(mac,sl_ind, mac->sl_bwp, mac->sl_tx_res_pool,&tx_config, &tti_action);
|
||||
|
||||
Reference in New Issue
Block a user