Commit bb04e1d4 authored by Vijay Chadachan's avatar Vijay Chadachan Committed by Vijay C

Additional changes for crash fix

parent b828a72c
...@@ -319,7 +319,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB, ...@@ -319,7 +319,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB,
int tem_proc_ccid = proc->CC_id; int tem_proc_ccid = proc->CC_id;
/* MultiCell: Function modify for Multiple CC */ /* MultiCell: Function modify for Multiple CC */
for (int CC_id=0; CC_id<RC.nb_CC[eNB->Mod_id]; CC_id++) { for (int CC_id=0; CC_id<RC.nb_mac_CC[eNB->Mod_id]; CC_id++) {
eNB->UL_INFO.CC_id = CC_id; eNB->UL_INFO.CC_id = CC_id;
proc->CC_id = CC_id;//Temp solution need to be fixed later proc->CC_id = CC_id;//Temp solution need to be fixed later
eNB->if_inst->UL_indication(&eNB->UL_INFO, (void*)proc); eNB->if_inst->UL_indication(&eNB->UL_INFO, (void*)proc);
...@@ -964,7 +964,7 @@ void init_eNB_proc(int inst) { ...@@ -964,7 +964,7 @@ void init_eNB_proc(int inst) {
pthread_attr_t *attr_prach_br=NULL; pthread_attr_t *attr_prach_br=NULL;
LOG_I(PHY,"%s(inst:%d) RC.nb_CC[inst]:%d \n",__FUNCTION__,inst,RC.nb_CC[inst]); LOG_I(PHY,"%s(inst:%d) RC.nb_CC[inst]:%d \n",__FUNCTION__,inst,RC.nb_CC[inst]);
for (CC_id=0; CC_id<RC.nb_CC[inst]; CC_id++) { for (CC_id=0; CC_id<RC.nb_mac_CC[inst]; CC_id++) {
eNB = RC.eNB[inst][CC_id]; eNB = RC.eNB[inst][CC_id];
LOG_I(PHY,"Initializing eNB processes instance:%d CC_id %d \n",inst,CC_id); LOG_I(PHY,"Initializing eNB processes instance:%d CC_id %d \n",inst,CC_id);
proc = &eNB->proc; proc = &eNB->proc;
...@@ -1253,10 +1253,10 @@ void init_eNB_afterRU(void) { ...@@ -1253,10 +1253,10 @@ void init_eNB_afterRU(void) {
LOG_I(PHY,"%s() RC.nb_inst:%d\n", __FUNCTION__, RC.nb_inst); LOG_I(PHY,"%s() RC.nb_inst:%d\n", __FUNCTION__, RC.nb_inst);
for (inst=0; inst<RC.nb_inst; inst++) { for (inst=0; inst<RC.nb_inst; inst++) {
LOG_I(PHY,"RC.nb_CC[inst]:%d\n", RC.nb_CC[inst]); LOG_I(PHY,"RC.nb_mac_CC[inst]:%d\n", RC.nb_mac_CC[inst]);
for (CC_id=0; CC_id<RC.nb_CC[inst]; CC_id++) { for (CC_id=0; CC_id<RC.nb_mac_CC[inst]; CC_id++) {
LOG_I(PHY,"RC.nb_CC[inst:%d][CC_id:%d]:%p\n", inst, CC_id, RC.eNB[inst][CC_id]); LOG_I(PHY,"RC.nb_mac_CC[inst:%d][CC_id:%d]:%p\n", inst, CC_id, RC.eNB[inst][CC_id]);
eNB = RC.eNB[inst][CC_id]; eNB = RC.eNB[inst][CC_id];
// map antennas and PRACH signals to eNB RX // map antennas and PRACH signals to eNB RX
LOG_I(PHY,"Mapping RX ports from %d RUs to eNB %d\n",eNB->num_RU,eNB->Mod_id); LOG_I(PHY,"Mapping RX ports from %d RUs to eNB %d\n",eNB->num_RU,eNB->Mod_id);
......
...@@ -207,7 +207,7 @@ void oai_create_enb(void) { ...@@ -207,7 +207,7 @@ void oai_create_enb(void) {
int bodge_counter=0; int bodge_counter=0;
int FAPI_configured_for_a_CC = 0; int FAPI_configured_for_a_CC = 0;
/* MultiCell: Function modify for Multiple CC */ /* MultiCell: Function modify for Multiple CC */
for (int CC_id=0; CC_id<RC.nb_CC[0]; CC_id++) { for (int CC_id=0; CC_id<RC.nb_mac_CC[0]; CC_id++) {
PHY_VARS_eNB *eNB = RC.eNB[0][CC_id]; PHY_VARS_eNB *eNB = RC.eNB[0][CC_id];
if (eNB == NULL) if (eNB == NULL)
{ {
......
...@@ -6751,7 +6751,10 @@ char openair_rrc_eNB_configuration( ...@@ -6751,7 +6751,10 @@ char openair_rrc_eNB_configuration(
} }
for (CC_id = 0; CC_id < RC.nb_CC[0]; CC_id++) { for (CC_id = 0; CC_id < RC.nb_CC[0]; CC_id++) {
if (RC.ss.CC_update_flag[CC_id]) {
init_SI(&ctxt, CC_id, configuration); init_SI(&ctxt, CC_id, configuration);
RC.ss.CC_update_flag[CC_id] = 0;
}
} }
if(need_init) { if(need_init) {
......
...@@ -82,7 +82,8 @@ int get_cell_index_pci(uint16_t physCellId, SS_Cell_Context_t SSCell_list[]){ ...@@ -82,7 +82,8 @@ int get_cell_index_pci(uint16_t physCellId, SS_Cell_Context_t SSCell_list[]){
void init_ss_context(SS_Cell_Context_t SSCell_list[]){ void init_ss_context(SS_Cell_Context_t SSCell_list[]){
memset(SSCell_list, 0, (sizeof(SS_Cell_Context_t) * 8)); memset(SSCell_list, 0, (sizeof(SS_Cell_Context_t) * 8));
memset(RC.ss.l1macind,0,sizeof(RC.ss.l1macind)); memset(RC.ss.l1macind,0,sizeof(RC.ss.l1macind));
memset(RC.ss.CC_update_flag,0, (sizeof(RC.ss.CC_update_flag)));
memset(RC.ss.CC_conf_flag,0, (sizeof(RC.ss.CC_conf_flag)));
for(int Cell_idx = 0; Cell_idx < 8; Cell_idx++){ for(int Cell_idx = 0; Cell_idx < 8; Cell_idx++){
SSCell_list[Cell_idx].eutra_cellId = -1; SSCell_list[Cell_idx].eutra_cellId = -1;
} }
......
...@@ -1058,6 +1058,7 @@ int sys_handle_cell_config_req(struct SYSTEM_CTRL_REQ *req) ...@@ -1058,6 +1058,7 @@ int sys_handle_cell_config_req(struct SYSTEM_CTRL_REQ *req)
{ {
//The flag is used to initilize the cell in the RRC layer during init_SI funciton //The flag is used to initilize the cell in the RRC layer during init_SI funciton
RC.ss.CC_conf_flag[cell_index] = 1; RC.ss.CC_conf_flag[cell_index] = 1;
RC.ss.CC_update_flag[cell_index] = 1;
returnState = SS_STATE_CELL_CONFIGURED; returnState = SS_STATE_CELL_CONFIGURED;
//Increment nb_cc only from 2nd cell as the initilization is done for 1 CC //Increment nb_cc only from 2nd cell as the initilization is done for 1 CC
if (cell_index) if (cell_index)
...@@ -1071,11 +1072,17 @@ int sys_handle_cell_config_req(struct SYSTEM_CTRL_REQ *req) ...@@ -1071,11 +1072,17 @@ int sys_handle_cell_config_req(struct SYSTEM_CTRL_REQ *req)
//Set the number of MAC_CC to current configured CC value //Set the number of MAC_CC to current configured CC value
//*RC.nb_mac_CC= RC.nb_CC[0]; //*RC.nb_mac_CC= RC.nb_CC[0];
LOG_I (ENB_SS_SYS_TASK,"[SYS] CC-MGMT nb_cc is incremented current Configured CC are %d current CC_index %d nb_mac_CC %d\n", LOG_I (ENB_SS_SYS_TASK,"[SYS] CC-MGMT nb_cc is incremented current Configured RC.nb_CC %d current CC_index %d RC.nb_mac_CC %d\n",
RC.nb_CC[0],cell_index,*RC.nb_mac_CC); RC.nb_CC[0],cell_index,*RC.nb_mac_CC);
} }
} }
} }
else
{
RC.ss.CC_update_flag[cell_index] = 1;
LOG_I (ENB_SS_SYS_TASK,"[SYS] CC-MGMT configured RC.nb_CC %d current updated CC_index %d RC.nb_mac_CC %d\n",
RC.nb_CC[0],cell_index,*RC.nb_mac_CC);
}
break; break;
......
...@@ -92,6 +92,7 @@ typedef struct ss_config_s { ...@@ -92,6 +92,7 @@ typedef struct ss_config_s {
ss_rrc_pdcp_api_t *ss_pdcp_api; ss_rrc_pdcp_api_t *ss_pdcp_api;
ss_crnti_config_t ss_crnti[MAX_NUM_CCs]; ss_crnti_config_t ss_crnti[MAX_NUM_CCs];
RrcHOAsSecurityConfig_t HOASSecurityCOnfig; RrcHOAsSecurityConfig_t HOASSecurityCOnfig;
uint8_t CC_update_flag[MAX_NUM_CCs];
} ss_config_t; } ss_config_t;
/** /**
typedef enum { typedef enum {
......
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