* merge/add handover procedure for the access stratum (enabled with the -H), status: experimental.
* fix a bug in BSR computation * add a python script to launch meld if the diff3 in subvsersion/config file is set to the targets/SCRIPTS/svn-merge-meld.py * pre-ci passed (100%) git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4309 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -401,6 +401,9 @@ s32 remove_ue(u16 rnti, PHY_VARS_eNB *phy_vars_eNB,u8 abstraction_flag);
|
||||
void process_timing_advance(u8 Mod_id,s16 timing_advance);
|
||||
void process_timing_advance_rar(PHY_VARS_UE *phy_vars_ue,u16 timing_advance);
|
||||
|
||||
unsigned int get_tx_amp(int gain_dBm, int gain_max_dBm);
|
||||
|
||||
void phy_reset_ue(u8 Mod_id,u8 eNB_index);
|
||||
|
||||
/** \brief This function retrives the resource (n1_pucch) corresponding to a PDSCH transmission in
|
||||
subframe n-4 which is acknowledged in subframe n (for FDD) according to n1_pucch = Ncce + N1_pucch. For
|
||||
|
||||
@@ -2829,9 +2829,11 @@ void phy_procedures_eNB_RX(unsigned char last_slot,PHY_VARS_eNB *phy_vars_eNB,u8
|
||||
|
||||
LOG_I(PHY,"[eNB] Frame %d, Subframe %d : ULSCH SDU (RX harq_pid %d) %d bytes:\n",phy_vars_eNB->frame,last_slot>>1,
|
||||
harq_pid,phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3);
|
||||
for (j=0;j<phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3;j++)
|
||||
LOG_T(PHY,"%x.",phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->c[0][j]);
|
||||
LOG_T(PHY,"\n");
|
||||
if (phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->c[0]!=NULL){
|
||||
for (j=0;j<phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->TBS>>3;j++)
|
||||
LOG_T(PHY,"%x.",phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->c[0][j]);
|
||||
LOG_T(PHY,"\n");
|
||||
}
|
||||
|
||||
//dump_ulsch(phy_vars_eNB, last_slot>>1, i);
|
||||
|
||||
|
||||
@@ -248,6 +248,39 @@ void dump_dlsch_ra(PHY_VARS_UE *phy_vars_ue,u8 eNB_id,u8 subframe) {
|
||||
}
|
||||
#endif
|
||||
|
||||
void phy_reset_ue(u8 Mod_id,u8 eNB_index) {
|
||||
|
||||
// This flushes ALL DLSCH and ULSCH harq buffers of ALL connected eNBs...add the eNB_index later
|
||||
// for more flexibility
|
||||
|
||||
u8 i,j,k;
|
||||
PHY_VARS_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id];
|
||||
//[NUMBER_OF_CONNECTED_eNB_MAX][2];
|
||||
for(i=0;i<NUMBER_OF_CONNECTED_eNB_MAX;i++) {
|
||||
for(j=0;j<2;j++) {
|
||||
//DL HARQ
|
||||
if(phy_vars_ue->dlsch_ue[i][j]) {
|
||||
for(k=0;k<NUMBER_OF_HARQ_PID_MAX && phy_vars_ue->dlsch_ue[i][j]->harq_processes[k];k++) {
|
||||
phy_vars_ue->dlsch_ue[i][j]->harq_processes[k]->status = SCH_IDLE;
|
||||
}
|
||||
}
|
||||
}
|
||||
//UL HARQ
|
||||
if(phy_vars_ue->ulsch_ue[i]) {
|
||||
for(k=0;k<NUMBER_OF_HARQ_PID_MAX && phy_vars_ue->ulsch_ue[i]->harq_processes[k];k++) {
|
||||
phy_vars_ue->ulsch_ue[i]->harq_processes[k]->status = SCH_IDLE;
|
||||
//Set NDIs for all UL HARQs to 0
|
||||
phy_vars_ue->ulsch_ue[i]->harq_processes[k]->Ndi = 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// flush Msg3 buffer
|
||||
phy_vars_ue->ulsch_ue_Msg3_active[i] = 0;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void ra_failed(u8 Mod_id,u8 eNB_index) {
|
||||
|
||||
// if contention resolution fails, go back to PRACH
|
||||
@@ -3194,6 +3227,10 @@ int phy_procedures_RN_UE_RX(u8 last_slot, u8 next_slot, relaying_type_t r_type)
|
||||
phy_vars_ue->UE_mode[eNB_id] = RESYNCH;
|
||||
mac_xface->macphy_exit("Connection lost");
|
||||
//exit(-1);
|
||||
} else if (ret == PHY_HO_PRACH) {
|
||||
LOG_I(PHY,"[UE %d] Frame %d, subframe %d, return to PRACH and perform a contention-free access\n",
|
||||
phy_vars_ue->Mod_id,phy_vars_ue->frame,next_slot>>1);
|
||||
phy_vars_ue->UE_mode[eNB_id] = PRACH;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user