integration of remaining nFAPI messages
This commit is contained in:
@@ -54,6 +54,52 @@ void handle_rach(UL_IND_t *UL_info) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void handle_sr(UL_IND_t *UL_info) {
|
||||
|
||||
int i;
|
||||
|
||||
for (i=0;i<UL_info->sr_ind.number_of_srs;i++)
|
||||
SR_indication(UL_info->module_id,
|
||||
UL_info->CC_id,
|
||||
UL_info->frame,
|
||||
UL_info->subframe,
|
||||
UL_info->sr_ind.sr_pdu_list[i].rx_ue_information.rnti,
|
||||
UL_info->sr_ind.sr_pdu_list[i].ul_cqi_information.ul_cqi);
|
||||
|
||||
UL_info->sr_ind.number_of_srs=0;
|
||||
}
|
||||
|
||||
void handle_cqi(UL_IND_t *UL_info) {
|
||||
|
||||
int i;
|
||||
|
||||
for (i=0;i<UL_info->cqi_ind.number_of_cqis;i++)
|
||||
cqi_indication(UL_info->module_id,
|
||||
UL_info->CC_id,
|
||||
UL_info->frame,
|
||||
UL_info->subframe,
|
||||
UL_info->cqi_ind.cqi_pdu_list[i].rx_ue_information.rnti,
|
||||
&UL_info->cqi_ind.cqi_pdu_list[i].cqi_indication_rel9,
|
||||
UL_info->cqi_ind.cqi_raw_pdu_list[i].pdu,
|
||||
&UL_info->cqi_ind.cqi_pdu_list[i].ul_cqi_information);
|
||||
|
||||
UL_info->cqi_ind.number_of_cqis=0;
|
||||
}
|
||||
|
||||
void handle_harq(UL_IND_t *UL_info) {
|
||||
|
||||
int i;
|
||||
|
||||
for (i=0;i<UL_info->harq_ind.number_of_harqs;i++)
|
||||
harq_indication(UL_info->module_id,
|
||||
UL_info->CC_id,
|
||||
UL_info->frame,
|
||||
UL_info->subframe,
|
||||
&UL_info->harq_ind.harq_pdu_list[i]);
|
||||
|
||||
UL_info->harq_ind.number_of_harqs=0;
|
||||
}
|
||||
|
||||
void handle_ulsch(UL_IND_t *UL_info) {
|
||||
|
||||
int i;
|
||||
@@ -70,12 +116,12 @@ void handle_ulsch(UL_IND_t *UL_info) {
|
||||
UL_info->rx_ind.rx_pdu_list[i].rx_indication_rel8.length,
|
||||
UL_info->rx_ind.rx_pdu_list[i].rx_indication_rel8.timing_advance,
|
||||
UL_info->rx_ind.rx_pdu_list[i].rx_indication_rel8.ul_cqi);
|
||||
|
||||
}
|
||||
|
||||
UL_info->rx_ind.number_of_pdus=0;
|
||||
|
||||
|
||||
for (i=0;i<UL_info->crc_ind.number_of_crcs;i++) {
|
||||
|
||||
|
||||
if (UL_info->crc_ind.crc_pdu_list[i].crc_indication_rel8.crc_flag == 1) { // CRC error indication
|
||||
LOG_D(MAC,"Frame %d, Subframe %d Calling rx_sdu (CRC error) \n",UL_info->frame,UL_info->subframe);
|
||||
rx_sdu(UL_info->module_id,
|
||||
@@ -88,8 +134,8 @@ void handle_ulsch(UL_IND_t *UL_info) {
|
||||
0,
|
||||
0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
UL_info->crc_ind.number_of_crcs=0;
|
||||
}
|
||||
@@ -121,9 +167,19 @@ void UL_indication(UL_IND_t *UL_info)
|
||||
ifi->CC_mask |= (1<<CC_id);
|
||||
|
||||
|
||||
// clear DL/UL info for new scheduling round
|
||||
clear_nfapi_information(RC.mac[module_id],CC_id,
|
||||
UL_info->frame,UL_info->subframe);
|
||||
|
||||
|
||||
handle_rach(UL_info);
|
||||
|
||||
handle_sr(UL_info);
|
||||
|
||||
handle_cqi(UL_info);
|
||||
|
||||
handle_harq(UL_info);
|
||||
|
||||
// clear HI prior to hanling ULSCH
|
||||
mac->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi = 0;
|
||||
|
||||
@@ -143,13 +199,19 @@ void UL_indication(UL_IND_t *UL_info)
|
||||
sched_info->subframe = (UL_info->subframe+4)%10;
|
||||
sched_info->DL_req = &mac->DL_req[CC_id];
|
||||
sched_info->HI_DCI0_req = &mac->HI_DCI0_req[CC_id];
|
||||
sched_info->UL_req = &mac->UL_req[CC_id];
|
||||
if ((mac->common_channels[CC_id].tdd_Config==NULL) ||
|
||||
(is_UL_sf(&mac->common_channels[CC_id],(sched_info->subframe+4)%10)>0))
|
||||
sched_info->UL_req = &mac->UL_req[CC_id];
|
||||
else
|
||||
sched_info->UL_req = NULL;
|
||||
|
||||
sched_info->TX_req = &mac->TX_req[CC_id];
|
||||
AssertFatal(ifi->schedule_response!=NULL,
|
||||
"UL_indication is null (mod %d, cc %d)\n",
|
||||
module_id,
|
||||
CC_id);
|
||||
ifi->schedule_response(sched_info);
|
||||
|
||||
LOG_D(PHY,"Schedule_response: frame %d, subframe %d (dl_pdus %d / %p)\n",sched_info->frame,sched_info->subframe,sched_info->DL_req->dl_config_request_body.number_pdu,
|
||||
&sched_info->DL_req->dl_config_request_body.number_pdu);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user