Merge remote-tracking branch 'remotes/origin/sp3_tdd_config1' into sp3_master
This commit is contained in:
@@ -2064,6 +2064,10 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
|
|||||||
if ((dlsch0 != NULL) && (dlsch1 != NULL)){
|
if ((dlsch0 != NULL) && (dlsch1 != NULL)){
|
||||||
|
|
||||||
harq_pid = dlsch0->harq_ids[frame%2][subframe_offset];
|
harq_pid = dlsch0->harq_ids[frame%2][subframe_offset];
|
||||||
|
if(harq_pid >= dlsch0->Mdlharq) {
|
||||||
|
LOG_E(PHY,"illegal harq_pid %d\n", harq_pid);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
dlsch0_harq = dlsch0->harq_processes[harq_pid];
|
dlsch0_harq = dlsch0->harq_processes[harq_pid];
|
||||||
mimo_mode = dlsch0_harq->mimo_mode;
|
mimo_mode = dlsch0_harq->mimo_mode;
|
||||||
mod_order0 = dlsch0_harq->Qm;
|
mod_order0 = dlsch0_harq->Qm;
|
||||||
@@ -2081,6 +2085,10 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
|
|||||||
}else if ((dlsch0 != NULL) && (dlsch1 == NULL)){
|
}else if ((dlsch0 != NULL) && (dlsch1 == NULL)){
|
||||||
|
|
||||||
harq_pid = dlsch0->harq_ids[frame%2][subframe_offset];
|
harq_pid = dlsch0->harq_ids[frame%2][subframe_offset];
|
||||||
|
if(harq_pid >= dlsch0->Mdlharq) {
|
||||||
|
LOG_E(PHY,"illegal harq_pid %d\n", harq_pid);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
dlsch0_harq = dlsch0->harq_processes[harq_pid];
|
dlsch0_harq = dlsch0->harq_processes[harq_pid];
|
||||||
mimo_mode = dlsch0_harq->mimo_mode;
|
mimo_mode = dlsch0_harq->mimo_mode;
|
||||||
mod_order0 = dlsch0_harq->Qm;
|
mod_order0 = dlsch0_harq->Qm;
|
||||||
@@ -2098,6 +2106,10 @@ int dlsch_modulation(PHY_VARS_eNB* phy_vars_eNB,
|
|||||||
}else if ((dlsch0 == NULL) && (dlsch1 != NULL)){
|
}else if ((dlsch0 == NULL) && (dlsch1 != NULL)){
|
||||||
|
|
||||||
harq_pid = dlsch1->harq_ids[frame%2][subframe_offset];
|
harq_pid = dlsch1->harq_ids[frame%2][subframe_offset];
|
||||||
|
if(harq_pid >= dlsch1->Mdlharq) {
|
||||||
|
LOG_E(PHY,"illegal harq_pid %d\n", harq_pid);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
dlsch1_harq = dlsch1->harq_processes[harq_pid];
|
dlsch1_harq = dlsch1->harq_processes[harq_pid];
|
||||||
mimo_mode = dlsch1_harq->mimo_mode;
|
mimo_mode = dlsch1_harq->mimo_mode;
|
||||||
mod_order0 = dlsch1_harq->Qm;
|
mod_order0 = dlsch1_harq->Qm;
|
||||||
|
|||||||
@@ -1689,7 +1689,7 @@ void release_harq(PHY_VARS_eNB *eNB,int UE_id,int tb,uint16_t frame,uint8_t subf
|
|||||||
frame_tx = ul_ACK_subframe2_dl_frame(&eNB->frame_parms,frame,subframe,subframe_tx);
|
frame_tx = ul_ACK_subframe2_dl_frame(&eNB->frame_parms,frame,subframe,subframe_tx);
|
||||||
if (((1<<m)&mask) > 0) {
|
if (((1<<m)&mask) > 0) {
|
||||||
harq_pid = dlsch0->harq_ids[frame_tx%2][subframe_tx];
|
harq_pid = dlsch0->harq_ids[frame_tx%2][subframe_tx];
|
||||||
if ((harq_pid>=0) && (harq_pid<10)) {
|
if ((harq_pid>=0) && (harq_pid<dlsch0->Mdlharq)) {
|
||||||
dlsch0_harq = dlsch0->harq_processes[harq_pid];
|
dlsch0_harq = dlsch0->harq_processes[harq_pid];
|
||||||
dlsch1_harq = dlsch1->harq_processes[harq_pid];
|
dlsch1_harq = dlsch1->harq_processes[harq_pid];
|
||||||
AssertFatal(dlsch0_harq!=NULL,"dlsch0_harq is null\n");
|
AssertFatal(dlsch0_harq!=NULL,"dlsch0_harq is null\n");
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
#define PCCH_PAYLOAD_SIZE_MAX 128
|
#define PCCH_PAYLOAD_SIZE_MAX 128
|
||||||
#define RAR_PAYLOAD_SIZE_MAX 128
|
#define RAR_PAYLOAD_SIZE_MAX 128
|
||||||
|
|
||||||
#define SCH_PAYLOAD_SIZE_MAX 4096
|
#define SCH_PAYLOAD_SIZE_MAX 8192
|
||||||
/// Logical channel ids from 36-311 (Note BCCH is not specified in 36-311, uses the same as first DRB)
|
/// Logical channel ids from 36-311 (Note BCCH is not specified in 36-311, uses the same as first DRB)
|
||||||
|
|
||||||
#if defined(Rel10) || defined(Rel14)
|
#if defined(Rel10) || defined(Rel14)
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ extern uint8_t nfapi_mode;
|
|||||||
// This table holds the allowable PRB sizes for ULSCH transmissions
|
// This table holds the allowable PRB sizes for ULSCH transmissions
|
||||||
uint8_t rb_table[34] =
|
uint8_t rb_table[34] =
|
||||||
{ 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32,
|
{ 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32,
|
||||||
36, 40, 45, 48, 50, 54, 60, 64, 72, 75, 80, 81, 90, 96, 100
|
36, 40, 45, 48, 50, 54, 60, 72, 75, 80, 81, 90, 96, 100, 100
|
||||||
};
|
};
|
||||||
extern mui_t rrc_eNB_mui;
|
extern mui_t rrc_eNB_mui;
|
||||||
|
|
||||||
@@ -1964,7 +1964,8 @@ void schedule_ulsch_rnti(module_id_t module_idP,
|
|||||||
ul_req_index = 0;
|
ul_req_index = 0;
|
||||||
dlsch_flag = 0;
|
dlsch_flag = 0;
|
||||||
for(ul_req_index = 0;ul_req_index < ul_req_tmp->number_of_pdus;ul_req_index++){
|
for(ul_req_index = 0;ul_req_index < ul_req_tmp->number_of_pdus;ul_req_index++){
|
||||||
if(ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE){
|
if((ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) &&
|
||||||
|
(ul_req_tmp->ul_config_pdu_list[ul_req_index].uci_harq_pdu.ue_information.ue_information_rel8.rnti == rnti)){
|
||||||
dlsch_flag = 1;
|
dlsch_flag = 1;
|
||||||
LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(first)\n",frameP,subframeP,rnti,ul_req_index);
|
LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(first)\n",frameP,subframeP,rnti,ul_req_index);
|
||||||
break;
|
break;
|
||||||
@@ -2030,12 +2031,10 @@ void schedule_ulsch_rnti(module_id_t module_idP,
|
|||||||
// increment first rb for next UE allocation
|
// increment first rb for next UE allocation
|
||||||
first_rb[CC_id]+=rb_table[rb_table_index];
|
first_rb[CC_id]+=rb_table[rb_table_index];
|
||||||
if(ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_FIRST) {
|
if(ulsch_ue_select[CC_id].list[ulsch_ue_num].ue_priority == SCH_UL_FIRST) {
|
||||||
LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n", module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,UE_template->TBS_UL[harq_pid]);
|
LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n", module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,get_TBS_UL(UE_template->mcs_UL[harq_pid],rb_table[rb_table_index]));
|
||||||
if(ulsch_ue_select[CC_id].list[ulsch_ue_num].ul_total_buffer > 0){
|
if(ulsch_ue_select[CC_id].list[ulsch_ue_num].ul_total_buffer > 0){
|
||||||
LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n",
|
if (UE_template->ul_total_buffer > get_TBS_UL(UE_template->mcs_UL[harq_pid],rb_table[rb_table_index]))
|
||||||
module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,UE_template->TBS_UL[harq_pid]);
|
UE_template->ul_total_buffer -= get_TBS_UL(UE_template->mcs_UL[harq_pid],rb_table[rb_table_index]);
|
||||||
if (UE_template->ul_total_buffer > UE_template->TBS_UL[harq_pid])
|
|
||||||
UE_template->ul_total_buffer -= UE_template->TBS_UL[harq_pid];
|
|
||||||
else
|
else
|
||||||
UE_template->ul_total_buffer = 0;
|
UE_template->ul_total_buffer = 0;
|
||||||
LOG_D(MAC,"ul_total_buffer, new %d\n", UE_template->ul_total_buffer);
|
LOG_D(MAC,"ul_total_buffer, new %d\n", UE_template->ul_total_buffer);
|
||||||
@@ -2131,7 +2130,8 @@ void schedule_ulsch_rnti(module_id_t module_idP,
|
|||||||
ul_req_index = 0;
|
ul_req_index = 0;
|
||||||
dlsch_flag = 0;
|
dlsch_flag = 0;
|
||||||
for(ul_req_index = 0;ul_req_index < ul_req_tmp->number_of_pdus;ul_req_index++){
|
for(ul_req_index = 0;ul_req_index < ul_req_tmp->number_of_pdus;ul_req_index++){
|
||||||
if(ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE){
|
if((ul_req_tmp->ul_config_pdu_list[ul_req_index].pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) &&
|
||||||
|
(ul_req_tmp->ul_config_pdu_list[ul_req_index].uci_harq_pdu.ue_information.ue_information_rel8.rnti == rnti)){
|
||||||
dlsch_flag = 1;
|
dlsch_flag = 1;
|
||||||
LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(phich)\n",frameP,subframeP,rnti,ul_req_index);
|
LOG_D(MAC,"Frame %d, Subframe %d:rnti %x ul_req_index %d Switched UCI HARQ to ULSCH HARQ(phich)\n",frameP,subframeP,rnti,ul_req_index);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -1814,7 +1814,7 @@ static void* eNB_thread_phy_tx( void* param ) {
|
|||||||
AssertFatal(pthread_cond_signal(&ru->proc.cond_rf_tx) == 0, "ERROR pthread_cond_signal for rf_tx thread\n");
|
AssertFatal(pthread_cond_signal(&ru->proc.cond_rf_tx) == 0, "ERROR pthread_cond_signal for rf_tx thread\n");
|
||||||
}else{
|
}else{
|
||||||
LOG_E(PHY,"rf tx thread busy, skipping\n");
|
LOG_E(PHY,"rf tx thread busy, skipping\n");
|
||||||
ru->proc.instance_cnt_rf_tx++;
|
late_control=STATE_BURST_TERMINATE;
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock( &ru->proc.mutex_rf_tx );
|
pthread_mutex_unlock( &ru->proc.mutex_rf_tx );
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user