Commit ae00927f authored by jperaldi's avatar jperaldi

bug #125614 proper management of schedulingInfoList which was badly done

parent ad277761
...@@ -8,17 +8,16 @@ ...@@ -8,17 +8,16 @@
"name": "(gdb) Launch", "name": "(gdb) Launch",
"type": "cppdbg", "type": "cppdbg",
"request": "launch", "request": "launch",
"program": "${workspaceFolder}/cmake_targets/ran_build/build/lte-softmodem", "program": "/home/jperaldi/TTCN/sequansrd/FirecellRD/components/RAN/cmake_targets/ran_build_4G/build/lte-softmodem",
"args": [ "args": [
"-O", "../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf", "-O", "/home/jperaldi/TTCN/sequansrd/FirecellRD/components/RAN/ci-scripts/conf_files/3GPP_System_Simulator/SS_proxy_rcc.band1_1CC.tm1.nfapi.conf"
"--noS1"
], ],
"stopAtEntry": false, "stopAtEntry": false,
"cwd": "${workspaceFolder}/cmake_targets", "cwd": "/home/jperaldi/TTCN/sequansrd/FirecellRD/components/RAN",
"environment": [], "environment": [],
"externalConsole": false, "externalConsole": false,
"MIMode": "gdb", "MIMode": "gdb",
"miDebuggerPath": "${workspaceFolder}/cmake_targets/sudo-gdb", "miDebuggerPath": "/home/jperaldi/TTCN/sequansrd/FirecellRD/components/RAN/cmake_targets/cmake_targets/sudo-gdb",
"setupCommands": [ "setupCommands": [
{ {
"description": "Enable pretty-printing for gdb", "description": "Enable pretty-printing for gdb",
......
...@@ -420,8 +420,8 @@ typedef struct RrcConfigurationReq_s { ...@@ -420,8 +420,8 @@ typedef struct RrcConfigurationReq_s {
int eMTC_configured; int eMTC_configured;
int SL_configured; int SL_configured;
uint8_t systemInfoValueTag[MAX_NUM_CCs]; uint8_t systemInfoValueTag[MAX_NUM_CCs];
int schedulingInfo_count; int schedulingInfo_count[MAX_NUM_CCs];
lte_SchedulingInfo_t *schedulingInfo; lte_SchedulingInfo_t * schedulingInfo[MAX_NUM_CCs];
RadioResourceConfig radioresourceconfig[MAX_NUM_CCs]; RadioResourceConfig radioresourceconfig[MAX_NUM_CCs];
RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs]; RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs];
......
...@@ -1040,11 +1040,11 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, ...@@ -1040,11 +1040,11 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
(*sib1)->freqBandIndicator = configuration->eutra_band[CC_id]; (*sib1)->freqBandIndicator = configuration->eutra_band[CC_id];
int count =0; int count =0;
if (RC.ss.mode == SS_SOFTMODEM) { if (RC.ss.mode == SS_SOFTMODEM) {
for(int i=0; i < configuration->schedulingInfo_count; i++) { for(int i=0; i < configuration->schedulingInfo_count[CC_id]; i++) {
schedulingInfo[i].si_Periodicity=configuration->schedulingInfo[i].si_Periodicity; schedulingInfo[i].si_Periodicity=configuration->schedulingInfo[CC_id][i].si_Periodicity;
for (int j =0; j < configuration->schedulingInfo[i].sib_MappingInfo.size; j++){ for (int j =0; j < configuration->schedulingInfo[CC_id][i].sib_MappingInfo.size; j++){
LTE_SIB_Type_t *st = sib_type + (i*5 + j)*sizeof(LTE_SIB_Type_t); LTE_SIB_Type_t *st = sib_type + (i*5 + j)*sizeof(LTE_SIB_Type_t);
*st = configuration->schedulingInfo[i].sib_MappingInfo.LTE_SIB_Type[j]; *st = configuration->schedulingInfo[CC_id][i].sib_MappingInfo.LTE_SIB_Type[j];
if(*st == LTE_SIB_Type_sibType4) { if(*st == LTE_SIB_Type_sibType4) {
RC.rrc[Mod_id]->carrier[CC_id].sib4_Scheduled = true; RC.rrc[Mod_id]->carrier[CC_id].sib4_Scheduled = true;
} }
...@@ -1461,7 +1461,7 @@ uint8_t do_SIB23(uint8_t Mod_id, ...@@ -1461,7 +1461,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
exit(-1); exit(-1);
} }
LOG_I(RRC,"[eNB %d] Configuration SIB2/3, eMBMS = %d\n", Mod_id, configuration->eMBMS_configured); LOG_I(RRC,"[eNB %d] Configuration SIB2/3 for CC_id: %d, eMBMS = %d\n", Mod_id, CC_id, configuration->eMBMS_configured);
sib2_part = CALLOC(1,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); sib2_part = CALLOC(1,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
sib3_part = CALLOC(1,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); sib3_part = CALLOC(1,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
memset(sib2_part,0,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); memset(sib2_part,0,sizeof(struct LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member));
......
...@@ -484,24 +484,23 @@ int sys_add_reconfig_cell(struct SYSTEM_CTRL_REQ *req) ...@@ -484,24 +484,23 @@ int sys_add_reconfig_cell(struct SYSTEM_CTRL_REQ *req)
} }
} }
RRC_CONFIGURATION_REQ(msg_p).schedulingInfo_count = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.d; RRC_CONFIGURATION_REQ(msg_p).schedulingInfo_count[cell_index] = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.d;
RRC_CONFIGURATION_REQ(msg_p).schedulingInfo = CALLOC(RRC_CONFIGURATION_REQ(msg_p).schedulingInfo_count, sizeof(struct lte_SchedulingInfo_s)); RRC_CONFIGURATION_REQ(msg_p).schedulingInfo[cell_index] = CALLOC(RRC_CONFIGURATION_REQ(msg_p).schedulingInfo_count[cell_index] , sizeof(struct lte_SchedulingInfo_s));
int count =0; int count =0;
for (int k = 0; k < SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.d; k++) for (int k = 0; k < SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.d; k++)
{ {
if (SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].sib_MappingInfo.d) { if (SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].sib_MappingInfo.d) {
RRC_CONFIGURATION_REQ(msg_p).schedulingInfo[count].si_Periodicity = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].si_Periodicity; RRC_CONFIGURATION_REQ(msg_p).schedulingInfo[cell_index][count].si_Periodicity = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].si_Periodicity;
for (int j = 0; j < SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].sib_MappingInfo.d; j++) for (int j = 0; j < SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].sib_MappingInfo.d; j++)
{ {
RRC_CONFIGURATION_REQ(msg_p).schedulingInfo[count].sib_MappingInfo.LTE_SIB_Type[j] = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].sib_MappingInfo.v[j]; RRC_CONFIGURATION_REQ(msg_p).schedulingInfo[cell_index][count].sib_MappingInfo.LTE_SIB_Type[j] = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].sib_MappingInfo.v[j];
} }
RRC_CONFIGURATION_REQ(msg_p).schedulingInfo[count].sib_MappingInfo.size = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].sib_MappingInfo.d; RRC_CONFIGURATION_REQ(msg_p).schedulingInfo[cell_index][count].sib_MappingInfo.size = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.v[k].sib_MappingInfo.d;
count ++; count ++;
} }
} }
RRC_CONFIGURATION_REQ(msg_p).schedulingInfo_count = count; RRC_CONFIGURATION_REQ(msg_p).schedulingInfo_count[cell_index] = count;
RRC_CONFIGURATION_REQ(msg_p).num_plmn[cell_index] = SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.d; RRC_CONFIGURATION_REQ(msg_p).num_plmn[cell_index] = SIB1_CELL_ACCESS_REL_INFO.plmn_IdentityList.d;
RRC_CONFIGURATION_REQ(msg_p).systemInfoValueTag[cell_index] = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.systemInfoValueTag; RRC_CONFIGURATION_REQ(msg_p).systemInfoValueTag[cell_index] = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.systemInfoValueTag;
......
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