Commit bb65f635 authored by Raymond Knopp's avatar Raymond Knopp

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5753 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 69bfbd13
...@@ -308,6 +308,11 @@ extern int asn_debug; ...@@ -308,6 +308,11 @@ extern int asn_debug;
extern int asn1_xer_print; extern int asn1_xer_print;
#endif #endif
#ifdef LIBCONFIG_LONG
#define libconfig_int long
#else
#define libconfig_int int
#endif
const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) { const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) {
config_t cfg; config_t cfg;
config_setting_t *setting = NULL; config_setting_t *setting = NULL;
...@@ -325,83 +330,83 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) { ...@@ -325,83 +330,83 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) {
int i; int i;
int j; int j;
int parse_errors = 0; int parse_errors = 0;
int enb_id = 0; libconfig_int enb_id = 0;
const char* cell_type = NULL; const char* cell_type = NULL;
const char* tac = 0; const char* tac = 0;
const char* enb_name = NULL; const char* enb_name = NULL;
const char* mcc = 0; const char* mcc = 0;
const char* mnc = 0; const char* mnc = 0;
const char* frame_type; const char* frame_type;
int tdd_config; libconfig_int tdd_config;
int tdd_config_s; libconfig_int tdd_config_s;
const char* prefix_type; const char* prefix_type;
int eutra_band; libconfig_int eutra_band;
int64_t downlink_frequency; int64_t downlink_frequency;
int uplink_frequency_offset; libconfig_int uplink_frequency_offset;
int Nid_cell; libconfig_int Nid_cell;
int Nid_cell_mbsfn; libconfig_int Nid_cell_mbsfn;
int N_RB_DL; libconfig_int N_RB_DL;
int nb_antennas_tx; libconfig_int nb_antennas_tx;
int nb_antennas_rx; libconfig_int nb_antennas_rx;
int prach_root; libconfig_int prach_root;
int prach_config_index; libconfig_int prach_config_index;
const char* prach_high_speed; const char* prach_high_speed;
int prach_zero_correlation; libconfig_int prach_zero_correlation;
int prach_freq_offset; libconfig_int prach_freq_offset;
int pucch_delta_shift; libconfig_int pucch_delta_shift;
int pucch_nRB_CQI; libconfig_int pucch_nRB_CQI;
int pucch_nCS_AN; libconfig_int pucch_nCS_AN;
#ifndef Rel10 #ifndef Rel10
int pucch_n1_AN; libconfig_int pucch_n1_AN;
#endif #endif
int pdsch_referenceSignalPower; libconfig_int pdsch_referenceSignalPower;
int pdsch_p_b; libconfig_int pdsch_p_b;
int pusch_n_SB; libconfig_int pusch_n_SB;
const char * pusch_hoppingMode; const char * pusch_hoppingMode;
int pusch_hoppingOffset; libconfig_int pusch_hoppingOffset;
const char* pusch_enable64QAM; const char* pusch_enable64QAM;
const char* pusch_groupHoppingEnabled; const char* pusch_groupHoppingEnabled;
int pusch_groupAssignment; libconfig_int pusch_groupAssignment;
const char* pusch_sequenceHoppingEnabled; const char* pusch_sequenceHoppingEnabled;
int pusch_nDMRS1; libconfig_int pusch_nDMRS1;
const char* phich_duration; const char* phich_duration;
const char* phich_resource; const char* phich_resource;
const char* srs_enable; const char* srs_enable;
int srs_BandwidthConfig; libconfig_int srs_BandwidthConfig;
int srs_SubframeConfig; libconfig_int srs_SubframeConfig;
const char* srs_ackNackST; const char* srs_ackNackST;
const char* srs_MaxUpPts; const char* srs_MaxUpPts;
int pusch_p0_Nominal; libconfig_int pusch_p0_Nominal;
const char* pusch_alpha; const char* pusch_alpha;
int pucch_p0_Nominal; libconfig_int pucch_p0_Nominal;
int msg3_delta_Preamble; libconfig_int msg3_delta_Preamble;
int ul_CyclicPrefixLength; libconfig_int ul_CyclicPrefixLength;
const char* pucch_deltaF_Format1; const char* pucch_deltaF_Format1;
const char* pucch_deltaF_Format1a; const char* pucch_deltaF_Format1a;
const char* pucch_deltaF_Format1b; const char* pucch_deltaF_Format1b;
const char* pucch_deltaF_Format2; const char* pucch_deltaF_Format2;
const char* pucch_deltaF_Format2a; const char* pucch_deltaF_Format2a;
const char* pucch_deltaF_Format2b; const char* pucch_deltaF_Format2b;
int rach_numberOfRA_Preambles; libconfig_int rach_numberOfRA_Preambles;
const char* rach_preamblesGroupAConfig; const char* rach_preamblesGroupAConfig;
int rach_sizeOfRA_PreamblesGroupA; libconfig_int rach_sizeOfRA_PreamblesGroupA;
int rach_messageSizeGroupA; libconfig_int rach_messageSizeGroupA;
const char* rach_messagePowerOffsetGroupB; const char* rach_messagePowerOffsetGroupB;
int rach_powerRampingStep; libconfig_int rach_powerRampingStep;
int rach_preambleInitialReceivedTargetPower; libconfig_int rach_preambleInitialReceivedTargetPower;
int rach_preambleTransMax; libconfig_int rach_preambleTransMax;
int rach_raResponseWindowSize; libconfig_int rach_raResponseWindowSize;
int rach_macContentionResolutionTimer; libconfig_int rach_macContentionResolutionTimer;
int rach_maxHARQ_Msg3Tx; libconfig_int rach_maxHARQ_Msg3Tx;
int pcch_defaultPagingCycle; libconfig_int pcch_defaultPagingCycle;
const char* pcch_nB; const char* pcch_nB;
int bcch_modificationPeriodCoeff; libconfig_int bcch_modificationPeriodCoeff;
int ue_TimersAndConstants_t300; libconfig_int ue_TimersAndConstants_t300;
int ue_TimersAndConstants_t301; libconfig_int ue_TimersAndConstants_t301;
int ue_TimersAndConstants_t310; libconfig_int ue_TimersAndConstants_t310;
int ue_TimersAndConstants_t311; libconfig_int ue_TimersAndConstants_t311;
int ue_TimersAndConstants_n310; libconfig_int ue_TimersAndConstants_n310;
int ue_TimersAndConstants_n311; libconfig_int ue_TimersAndConstants_n311;
......
...@@ -99,7 +99,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -99,7 +99,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
int CC_id,i,next_i; int CC_id,i,next_i;
UE_list_t *UE_list=&eNB_mac_inst[module_idP].UE_list; UE_list_t *UE_list=&eNB_mac_inst[module_idP].UE_list;
LOG_D(MAC,"[eNB %d] Frame %d, Subframe %d, entering MAC scheduler\n",module_idP, frameP, subframeP); // LOG_I(MAC,"[eNB %d] Frame %d, Subframe %d, entering MAC scheduler (UE_list->head %d)\n",module_idP, frameP, subframeP,UE_list->head);
start_meas(&eNB_mac_inst[module_idP].eNB_scheduler); start_meas(&eNB_mac_inst[module_idP].eNB_scheduler);
vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_IN); vcd_signal_dumper_dump_function_by_name(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_IN);
...@@ -111,6 +111,12 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag, ...@@ -111,6 +111,12 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
RBalloc[CC_id]=0; RBalloc[CC_id]=0;
mbsfn_status[CC_id]=0; mbsfn_status[CC_id]=0;
} }
// refresh UE list based on UEs dropped by PHY in previous subframe
for (i=UE_list->head;i>0;i=UE_list->next[i]) {
LOG_I(MAC,"UE %d: rnti %x (%p)\n",i,UE_RNTI(module_idP,i),mac_xface->get_eNB_UE_stats(module_idP,0,UE_RNTI(module_idP,i)));
if (mac_xface->get_eNB_UE_stats(module_idP,0,UE_RNTI(module_idP,i))==NULL)
mac_remove_ue(module_idP,i);
}
#if defined(ENABLE_ITTI) #if defined(ENABLE_ITTI)
do { do {
// Checks if a message has been sent to MAC sub-task // Checks if a message has been sent to MAC sub-task
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment