using pdsch_pdu for sib1 indication
This commit is contained in:
@@ -117,18 +117,11 @@ typedef struct {
|
|||||||
short rsrp_dBm;
|
short rsrp_dBm;
|
||||||
} fapi_nr_ssb_pdu_t;
|
} fapi_nr_ssb_pdu_t;
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
uint32_t pdu_length;
|
|
||||||
uint8_t* pdu;
|
|
||||||
uint32_t sibs_mask;
|
|
||||||
} fapi_nr_sib_pdu_t;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t pdu_type;
|
uint8_t pdu_type;
|
||||||
union {
|
union {
|
||||||
fapi_nr_pdsch_pdu_t pdsch_pdu;
|
fapi_nr_pdsch_pdu_t pdsch_pdu;
|
||||||
fapi_nr_ssb_pdu_t ssb_pdu;
|
fapi_nr_ssb_pdu_t ssb_pdu;
|
||||||
fapi_nr_sib_pdu_t sib_pdu;
|
|
||||||
};
|
};
|
||||||
} fapi_nr_rx_indication_body_t;
|
} fapi_nr_rx_indication_body_t;
|
||||||
|
|
||||||
|
|||||||
@@ -1165,7 +1165,7 @@ void nr_ue_dlsch_procedures(PHY_VARS_NR_UE *ue,
|
|||||||
// send to mac
|
// send to mac
|
||||||
if (ue->if_inst && ue->if_inst->dl_indication) {
|
if (ue->if_inst && ue->if_inst->dl_indication) {
|
||||||
ue->if_inst->dl_indication(&dl_indication, ul_time_alignment);
|
ue->if_inst->dl_indication(&dl_indication, ul_time_alignment);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ue->mac_enabled == 1) {
|
if (ue->mac_enabled == 1) {
|
||||||
|
|
||||||
|
|||||||
@@ -68,11 +68,11 @@ int8_t nr_ue_decode_mib(
|
|||||||
\param pduP pointer to pdu
|
\param pduP pointer to pdu
|
||||||
\param pdu_length length of pdu */
|
\param pdu_length length of pdu */
|
||||||
int8_t nr_ue_decode_BCCH_DL_SCH(module_id_t module_id,
|
int8_t nr_ue_decode_BCCH_DL_SCH(module_id_t module_id,
|
||||||
int cc_id,
|
int cc_id,
|
||||||
unsigned int gNB_index,
|
unsigned int gNB_index,
|
||||||
uint32_t sibs_mask,
|
uint8_t ack_nack,
|
||||||
uint8_t *pduP,
|
uint8_t *pduP,
|
||||||
uint32_t pdu_len);
|
uint32_t pdu_len);
|
||||||
|
|
||||||
/**\brief primitive from RRC layer to MAC layer for configuration L1/L2, now supported 4 rrc messages: MIB, cell_group_config for MAC/PHY, spcell_config(serving cell config)
|
/**\brief primitive from RRC layer to MAC layer for configuration L1/L2, now supported 4 rrc messages: MIB, cell_group_config for MAC/PHY, spcell_config(serving cell config)
|
||||||
\param module_id module id
|
\param module_id module id
|
||||||
|
|||||||
@@ -254,11 +254,15 @@ int8_t nr_ue_decode_mib(module_id_t module_id,
|
|||||||
int8_t nr_ue_decode_BCCH_DL_SCH(module_id_t module_id,
|
int8_t nr_ue_decode_BCCH_DL_SCH(module_id_t module_id,
|
||||||
int cc_id,
|
int cc_id,
|
||||||
unsigned int gNB_index,
|
unsigned int gNB_index,
|
||||||
uint32_t sibs_mask,
|
uint8_t ack_nack,
|
||||||
uint8_t *pduP,
|
uint8_t *pduP,
|
||||||
uint32_t pdu_len) {
|
uint32_t pdu_len) {
|
||||||
LOG_D(NR_MAC, "Decoding NR-BCCH-DL-SCH-Message (SIB1 or SI)\n");
|
if(ack_nack) {
|
||||||
nr_mac_rrc_data_ind_ue(module_id, cc_id, gNB_index, 0, 0, 0, NR_BCCH_DL_SCH, (uint8_t *) pduP, pdu_len);
|
LOG_D(NR_MAC, "Decoding NR-BCCH-DL-SCH-Message (SIB1 or SI)\n");
|
||||||
|
nr_mac_rrc_data_ind_ue(module_id, cc_id, gNB_index, 0, 0, 0, NR_BCCH_DL_SCH, (uint8_t *) pduP, pdu_len);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
LOG_E(NR_MAC, "Got NACK on NR-BCCH-DL-SCH-Message (SIB1 or SI)\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ int handle_bcch_bch(module_id_t module_id, int cc_id,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// L2 Abstraction Layer
|
// L2 Abstraction Layer
|
||||||
int handle_bcch_dlsch(module_id_t module_id, int cc_id, unsigned int gNB_index, uint32_t sibs_mask, uint8_t *pduP, uint32_t pdu_len){
|
int handle_bcch_dlsch(module_id_t module_id, int cc_id, unsigned int gNB_index, uint8_t ack_nack, uint8_t *pduP, uint32_t pdu_len){
|
||||||
return nr_ue_decode_BCCH_DL_SCH(module_id, cc_id, gNB_index, sibs_mask, pduP, pdu_len);
|
return nr_ue_decode_BCCH_DL_SCH(module_id, cc_id, gNB_index, ack_nack, pduP, pdu_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
// L2 Abstraction Layer
|
// L2 Abstraction Layer
|
||||||
@@ -170,43 +170,32 @@ int nr_ue_dl_indication(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_
|
|||||||
dl_info->rx_ind->number_pdus);
|
dl_info->rx_ind->number_pdus);
|
||||||
|
|
||||||
switch(dl_info->rx_ind->rx_indication_body[i].pdu_type){
|
switch(dl_info->rx_ind->rx_indication_body[i].pdu_type){
|
||||||
|
case FAPI_NR_RX_PDU_TYPE_SSB:
|
||||||
|
mac->ssb_rsrp_dBm = (dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.rsrp_dBm;
|
||||||
|
ret_mask |= (handle_bcch_bch(dl_info->module_id, dl_info->cc_id, dl_info->gNB_index,
|
||||||
|
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.pdu,
|
||||||
|
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.additional_bits,
|
||||||
|
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.ssb_index,
|
||||||
|
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.ssb_length,
|
||||||
|
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.ssb_start_subcarrier,
|
||||||
|
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.cell_id)) << FAPI_NR_RX_PDU_TYPE_SSB;
|
||||||
|
|
||||||
case FAPI_NR_RX_PDU_TYPE_SSB:
|
break;
|
||||||
mac->ssb_rsrp_dBm = (dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.rsrp_dBm;
|
case FAPI_NR_RX_PDU_TYPE_SIB:
|
||||||
ret_mask |= (handle_bcch_bch(dl_info->module_id, dl_info->cc_id, dl_info->gNB_index,
|
ret_mask |= (handle_bcch_dlsch(dl_info->module_id,
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.pdu,
|
dl_info->cc_id, dl_info->gNB_index,
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.additional_bits,
|
(dl_info->rx_ind->rx_indication_body+i)->pdsch_pdu.ack_nack,
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.ssb_index,
|
(dl_info->rx_ind->rx_indication_body+i)->pdsch_pdu.pdu,
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.ssb_length,
|
(dl_info->rx_ind->rx_indication_body+i)->pdsch_pdu.pdu_length)) << FAPI_NR_RX_PDU_TYPE_SIB;
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.ssb_start_subcarrier,
|
break;
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->ssb_pdu.cell_id)) << FAPI_NR_RX_PDU_TYPE_SSB;
|
case FAPI_NR_RX_PDU_TYPE_DLSCH:
|
||||||
|
ret_mask |= (handle_dlsch(dl_info, ul_time_alignment, i)) << FAPI_NR_RX_PDU_TYPE_DLSCH;
|
||||||
break;
|
break;
|
||||||
|
case FAPI_NR_RX_PDU_TYPE_RAR:
|
||||||
case FAPI_NR_RX_PDU_TYPE_SIB:
|
ret_mask |= (handle_dlsch(dl_info, ul_time_alignment, i)) << FAPI_NR_RX_PDU_TYPE_RAR;
|
||||||
|
break;
|
||||||
ret_mask |= (handle_bcch_dlsch(dl_info->module_id,
|
default:
|
||||||
dl_info->cc_id, dl_info->gNB_index,
|
break;
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->sib_pdu.sibs_mask,
|
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->sib_pdu.pdu,
|
|
||||||
(dl_info->rx_ind->rx_indication_body+i)->sib_pdu.pdu_length)) << FAPI_NR_RX_PDU_TYPE_SIB;
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FAPI_NR_RX_PDU_TYPE_DLSCH:
|
|
||||||
|
|
||||||
ret_mask |= (handle_dlsch(dl_info, ul_time_alignment, i)) << FAPI_NR_RX_PDU_TYPE_DLSCH;
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case FAPI_NR_RX_PDU_TYPE_RAR:
|
|
||||||
|
|
||||||
ret_mask |= (handle_dlsch(dl_info, ul_time_alignment, i)) << FAPI_NR_RX_PDU_TYPE_RAR;
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ int handle_bcch_bch(module_id_t module_id,
|
|||||||
/**\brief handle BCCH-DL-SCH message from dl_indication
|
/**\brief handle BCCH-DL-SCH message from dl_indication
|
||||||
\param pdu_len length(bytes) of pdu
|
\param pdu_len length(bytes) of pdu
|
||||||
\param pduP pointer to pdu*/
|
\param pduP pointer to pdu*/
|
||||||
int handle_bcch_dlsch(module_id_t module_id, int cc_id, unsigned int gNB_index, uint32_t sibs_mask, uint8_t *pduP, uint32_t pdu_len);
|
int handle_bcch_dlsch(module_id_t module_id, int cc_id, unsigned int gNB_index, uint8_t ack_nack, uint8_t *pduP, uint32_t pdu_len);
|
||||||
|
|
||||||
int handle_dci(module_id_t module_id, int cc_id, unsigned int gNB_index, frame_t frame, int slot, fapi_nr_dci_indication_pdu_t *dci);
|
int handle_dci(module_id_t module_id, int cc_id, unsigned int gNB_index, frame_t frame, int slot, fapi_nr_dci_indication_pdu_t *dci);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user