remove mac-struct usage from phy
This commit is contained in:
@@ -746,6 +746,14 @@ void phy_config_dedicated_scell_eNB(uint8_t Mod_id,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void phy_config_harq_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
|
||||||
|
uint16_t max_harq_tx )
|
||||||
|
{
|
||||||
|
|
||||||
|
PHY_VARS_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id][CC_id];
|
||||||
|
phy_vars_ue->ulsch[eNB_id]->Mlimit = max_harq_tx;
|
||||||
|
}
|
||||||
|
|
||||||
void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
|
void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,
|
||||||
struct PhysicalConfigDedicated *physicalConfigDedicated )
|
struct PhysicalConfigDedicated *physicalConfigDedicated )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -6451,7 +6451,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
|
|||||||
// ue->Mod_id,harq_pid,
|
// ue->Mod_id,harq_pid,
|
||||||
// proc->frame_rx,
|
// proc->frame_rx,
|
||||||
// subframe,
|
// subframe,
|
||||||
// UE_mac_inst[eNB_id].scheduling_info.maxHARQ_Tx);
|
// ulsch->Mlimit);
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
if (ulsch->harq_processes[harq_pid]->round > 0) // NACK detected on phich
|
if (ulsch->harq_processes[harq_pid]->round > 0) // NACK detected on phich
|
||||||
@@ -6460,7 +6460,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu,
|
|||||||
ulsch->harq_processes[harq_pid] = ulsch->harq_processes[8];
|
ulsch->harq_processes[harq_pid] = ulsch->harq_processes[8];
|
||||||
// LOG_I(PHY," Adaptative retransmission - copy temporary harq Process to current harq process. [harqId %d round %d] \n",harq_pid, ulsch->harq_processes[8]->round);
|
// LOG_I(PHY," Adaptative retransmission - copy temporary harq Process to current harq process. [harqId %d round %d] \n",harq_pid, ulsch->harq_processes[8]->round);
|
||||||
|
|
||||||
if (ulsch->harq_processes[harq_pid]->round >= UE_mac_inst[eNB_id].scheduling_info.maxHARQ_Tx)
|
if (ulsch->harq_processes[harq_pid]->round >= ulsch->Mlimit) //UE_mac_inst[eNB_id].scheduling_info.maxHARQ_Tx)
|
||||||
{
|
{
|
||||||
ulsch->harq_processes[harq_pid]->subframe_scheduling_flag = 0;
|
ulsch->harq_processes[harq_pid]->subframe_scheduling_flag = 0;
|
||||||
ulsch->harq_processes[harq_pid]->round = 0;
|
ulsch->harq_processes[harq_pid]->round = 0;
|
||||||
|
|||||||
@@ -346,6 +346,8 @@ typedef struct {
|
|||||||
uint8_t num_cba_dci[10];
|
uint8_t num_cba_dci[10];
|
||||||
/// allocated CBA RNTI
|
/// allocated CBA RNTI
|
||||||
uint16_t cba_rnti[4];//NUM_MAX_CBA_GROUP];
|
uint16_t cba_rnti[4];//NUM_MAX_CBA_GROUP];
|
||||||
|
/// UL max-harq-retransmission
|
||||||
|
uint8_t Mlimit;
|
||||||
} LTE_UE_ULSCH_t;
|
} LTE_UE_ULSCH_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -1381,13 +1381,13 @@ void rx_phich(PHY_VARS_UE *ue,
|
|||||||
HI16,
|
HI16,
|
||||||
nseq_PHICH,
|
nseq_PHICH,
|
||||||
ngroup_PHICH,
|
ngroup_PHICH,
|
||||||
UE_mac_inst[eNB_id].scheduling_info.maxHARQ_Tx);
|
ulsch->Mlimit);
|
||||||
//#endif
|
//#endif
|
||||||
|
|
||||||
// ulsch->harq_processes[harq_pid]->Ndi = 0;
|
// ulsch->harq_processes[harq_pid]->Ndi = 0;
|
||||||
ulsch->harq_processes[harq_pid]->round++;
|
ulsch->harq_processes[harq_pid]->round++;
|
||||||
|
|
||||||
if ( ulsch->harq_processes[harq_pid]->round >= (UE_mac_inst[eNB_id].scheduling_info.maxHARQ_Tx - 1) )
|
if ( ulsch->harq_processes[harq_pid]->round >= (ulsch->Mlimit - 1) )
|
||||||
{
|
{
|
||||||
// this is last push re transmission
|
// this is last push re transmission
|
||||||
ulsch->harq_processes[harq_pid]->rvidx = rv_table[ulsch->harq_processes[harq_pid]->round&3];
|
ulsch->harq_processes[harq_pid]->rvidx = rv_table[ulsch->harq_processes[harq_pid]->round&3];
|
||||||
@@ -1402,7 +1402,7 @@ void rx_phich(PHY_VARS_UE *ue,
|
|||||||
//ulsch->harq_processes[harq_pid]->round = 0;
|
//ulsch->harq_processes[harq_pid]->round = 0;
|
||||||
|
|
||||||
//LOG_I(PHY,"PUSCH MAX Retransmission acheived ==> flush harq buff (%d) \n",harq_pid);
|
//LOG_I(PHY,"PUSCH MAX Retransmission acheived ==> flush harq buff (%d) \n",harq_pid);
|
||||||
//LOG_I(PHY,"[HARQ-UL harqId: %d] PHICH NACK MAX RETRANS(%d) ==> subframe_scheduling_flag = %d round: %d\n", harq_pid, UE_mac_inst[eNB_id].scheduling_info.maxHARQ_Tx, ulsch->harq_processes[harq_pid]->subframe_scheduling_flag, ulsch->harq_processes[harq_pid]->round);
|
//LOG_I(PHY,"[HARQ-UL harqId: %d] PHICH NACK MAX RETRANS(%d) ==> subframe_scheduling_flag = %d round: %d\n", harq_pid, ulsch->Mlimit, ulsch->harq_processes[harq_pid]->subframe_scheduling_flag, ulsch->harq_processes[harq_pid]->round);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1235,8 +1235,8 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
|
|||||||
|
|
||||||
// deactivate service request
|
// deactivate service request
|
||||||
// ue->ulsch[eNB_id]->harq_processes[harq_pid]->subframe_scheduling_flag = 0;
|
// ue->ulsch[eNB_id]->harq_processes[harq_pid]->subframe_scheduling_flag = 0;
|
||||||
LOG_D(PHY,"Generating PUSCH (Abssubframe: %d.%d): harq-Id: %d, round: %d, MaxReTrans: %d \n",frame_tx,subframe_tx,harq_pid,ue->ulsch[eNB_id]->harq_processes[harq_pid]->round,UE_mac_inst[eNB_id].scheduling_info.maxHARQ_Tx);
|
LOG_D(PHY,"Generating PUSCH (Abssubframe: %d.%d): harq-Id: %d, round: %d, MaxReTrans: %d \n",frame_tx,subframe_tx,harq_pid,ue->ulsch[eNB_id]->harq_processes[harq_pid]->round,ue->ulsch[eNB_id]->Mlimit);
|
||||||
if (ue->ulsch[eNB_id]->harq_processes[harq_pid]->round >= (UE_mac_inst[eNB_id].scheduling_info.maxHARQ_Tx - 1))
|
if (ue->ulsch[eNB_id]->harq_processes[harq_pid]->round >= (ue->ulsch[eNB_id]->Mlimit - 1))
|
||||||
{
|
{
|
||||||
LOG_D(PHY,"PUSCH MAX Retransmission acheived ==> send last pusch (%d) \n");
|
LOG_D(PHY,"PUSCH MAX Retransmission acheived ==> send last pusch (%d) \n");
|
||||||
ue->ulsch[eNB_id]->harq_processes[harq_pid]->subframe_scheduling_flag = 0;
|
ue->ulsch[eNB_id]->harq_processes[harq_pid]->subframe_scheduling_flag = 0;
|
||||||
|
|||||||
@@ -221,6 +221,7 @@ rrc_mac_config_req(
|
|||||||
} else {
|
} else {
|
||||||
UE_mac_inst[Mod_idP].scheduling_info.maxHARQ_Tx = (uint16_t) MAC_MainConfig__ul_SCH_Config__maxHARQ_Tx_n5;
|
UE_mac_inst[Mod_idP].scheduling_info.maxHARQ_Tx = (uint16_t) MAC_MainConfig__ul_SCH_Config__maxHARQ_Tx_n5;
|
||||||
}
|
}
|
||||||
|
mac_xface->phy_config_harq_ue(Mod_idP,0,eNB_index,UE_mac_inst[Mod_idP].scheduling_info.maxHARQ_Tx);
|
||||||
|
|
||||||
if (mac_MainConfig->ul_SCH_Config->retxBSR_Timer) {
|
if (mac_MainConfig->ul_SCH_Config->retxBSR_Timer) {
|
||||||
UE_mac_inst[Mod_idP].scheduling_info.retxBSR_Timer = (uint16_t) mac_MainConfig->ul_SCH_Config->retxBSR_Timer;
|
UE_mac_inst[Mod_idP].scheduling_info.retxBSR_Timer = (uint16_t) mac_MainConfig->ul_SCH_Config->retxBSR_Timer;
|
||||||
|
|||||||
@@ -185,6 +185,9 @@ typedef struct {
|
|||||||
void (*phy_config_dedicated_ue)(module_id_t Mod_id,int CC_id,uint8_t CH_index,
|
void (*phy_config_dedicated_ue)(module_id_t Mod_id,int CC_id,uint8_t CH_index,
|
||||||
struct PhysicalConfigDedicated *physicalConfigDedicated);
|
struct PhysicalConfigDedicated *physicalConfigDedicated);
|
||||||
|
|
||||||
|
/// PHY-Config-harq UE
|
||||||
|
void (*phy_config_harq_ue)(module_id_t Mod_id,int CC_id,uint8_t CH_index,
|
||||||
|
uint16_t max_harq_tx);
|
||||||
/// Configure Common PHY parameters from SIB1
|
/// Configure Common PHY parameters from SIB1
|
||||||
void (*phy_config_sib1_ue)(module_id_t Mod_id,int CC_id,uint8_t CH_index,
|
void (*phy_config_sib1_ue)(module_id_t Mod_id,int CC_id,uint8_t CH_index,
|
||||||
TDD_Config_t *tdd_config,
|
TDD_Config_t *tdd_config,
|
||||||
|
|||||||
Reference in New Issue
Block a user