Commit ae00927f authored by jperaldi's avatar jperaldi

bug #125614 proper management of schedulingInfoList which was badly done

parent ad277761
......@@ -8,17 +8,16 @@
"name": "(gdb) Launch",
"type": "cppdbg",
"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": [
"-O", "../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf",
"--noS1"
"-O", "/home/jperaldi/TTCN/sequansrd/FirecellRD/components/RAN/ci-scripts/conf_files/3GPP_System_Simulator/SS_proxy_rcc.band1_1CC.tm1.nfapi.conf"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/cmake_targets",
"cwd": "/home/jperaldi/TTCN/sequansrd/FirecellRD/components/RAN",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "${workspaceFolder}/cmake_targets/sudo-gdb",
"miDebuggerPath": "/home/jperaldi/TTCN/sequansrd/FirecellRD/components/RAN/cmake_targets/cmake_targets/sudo-gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
......
......@@ -420,8 +420,8 @@ typedef struct RrcConfigurationReq_s {
int eMTC_configured;
int SL_configured;
uint8_t systemInfoValueTag[MAX_NUM_CCs];
int schedulingInfo_count;
lte_SchedulingInfo_t *schedulingInfo;
int schedulingInfo_count[MAX_NUM_CCs];
lte_SchedulingInfo_t * schedulingInfo[MAX_NUM_CCs];
RadioResourceConfig radioresourceconfig[MAX_NUM_CCs];
RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs];
......
......@@ -1040,11 +1040,11 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
(*sib1)->freqBandIndicator = configuration->eutra_band[CC_id];
int count =0;
if (RC.ss.mode == SS_SOFTMODEM) {
for(int i=0; i < configuration->schedulingInfo_count; i++) {
schedulingInfo[i].si_Periodicity=configuration->schedulingInfo[i].si_Periodicity;
for (int j =0; j < configuration->schedulingInfo[i].sib_MappingInfo.size; j++){
for(int i=0; i < configuration->schedulingInfo_count[CC_id]; i++) {
schedulingInfo[i].si_Periodicity=configuration->schedulingInfo[CC_id][i].si_Periodicity;
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);
*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) {
RC.rrc[Mod_id]->carrier[CC_id].sib4_Scheduled = true;
}
......@@ -1461,7 +1461,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
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));
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));
......
......@@ -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 = CALLOC(RRC_CONFIGURATION_REQ(msg_p).schedulingInfo_count, sizeof(struct lte_SchedulingInfo_s));
RRC_CONFIGURATION_REQ(msg_p).schedulingInfo_count[cell_index] = SIDL_SIB1_VAL.c1.v.systemInformationBlockType1.schedulingInfoList.d;
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;
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) {
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++)
{
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 ++;
}
}
}
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).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