Commit f1e12825 authored by Cedric Roux's avatar Cedric Roux

start support for 2 CCs

this commit is a first step to have the softmodem work with 2 CCs
with the FAPI scheduler.

there is still work to do for it to work properly.
parent 3bac9ae4
...@@ -1223,21 +1223,19 @@ dlind.buildRarList[0].grant &= ~1; ...@@ -1223,21 +1223,19 @@ dlind.buildRarList[0].grant &= ~1;
dlind.buildRarList[0].rnti, dlind.buildRarList[0].grant, &dlind.buildRarList[0].dci); dlind.buildRarList[0].rnti, dlind.buildRarList[0].grant, &dlind.buildRarList[0].dci);
} }
if (dlind.nr_buildBroadcastList) { for (i = 0; i < dlind.nr_buildBroadcastList; i++) {
if (dlind.nr_buildBroadcastList != 1) { printf("%s:%d: more than 1 broadcast SI, todo\n", __FUNCTION__, __LINE__); exit(0); } if (dlind.buildBroadcastList[i].type == ff_PCCH) { printf("%s:%d: PCCH: todo\n", __FUNCTION__, __LINE__); exit(0); }
if (dlind.buildBroadcastList[0].type == ff_PCCH) { printf("%s:%d: PCCH: todo\n", __FUNCTION__, __LINE__); exit(0); }
if (dlind.buildBroadcastList[0].carrierIndex != 0) { printf("%s:%d: 2nd CC: todo properly\n", __FUNCTION__, __LINE__); exit(0); }
#if MEGALOG #if MEGALOG
printf("FAPI to MAC downlink schedule SI %d f/sf %d/%d\n", dlind.buildBroadcastList[0].index, frameP, subframeP); printf("FAPI to MAC downlink schedule SI %d CC %d f/sf %d/%d\n", dlind.buildBroadcastList[i].index, dlind.buildBroadcastList[i].carrierIndex, frameP, subframeP);
#endif #endif
fapi_schedule_SI(module_idP, dlind.buildBroadcastList[0].carrierIndex, frameP, subframeP, fapi_schedule_SI(module_idP, dlind.buildBroadcastList[i].carrierIndex, frameP, subframeP,
dlind.buildBroadcastList[0].index, dlind.buildBroadcastList[i].index,
&dlind.buildBroadcastList[0].dci); &dlind.buildBroadcastList[i].dci);
} }
/* TODO: do it correctly */ /* TODO: do it correctly */
if (dlind.nr_ofdmSymbolsCount != 0) { if (dlind.nr_ofdmSymbolsCount != 0) {
if (dlind.nr_ofdmSymbolsCount != 1) { printf("%s:%d:%s: what to do?\n", __FILE__, __LINE__, __FUNCTION__); abort(); } if (dlind.nr_ofdmSymbolsCount != MAX_NUM_CCs) { printf("%s:%d:%s: what to do?\n", __FILE__, __LINE__, __FUNCTION__); abort(); }
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
if (dlind.nrOfPdcchOfdmSymbols[CC_id] != NULL) { if (dlind.nrOfPdcchOfdmSymbols[CC_id] != NULL) {
int cc = dlind.nrOfPdcchOfdmSymbols[CC_id]->carrierIndex; int cc = dlind.nrOfPdcchOfdmSymbols[CC_id]->carrierIndex;
......
...@@ -277,7 +277,7 @@ void SchedDlConfigInd_callback(void *callback_data, const struct SchedDlConfigIn ...@@ -277,7 +277,7 @@ void SchedDlConfigInd_callback(void *callback_data, const struct SchedDlConfigIn
} }
/* TODO: be sure of this */ /* TODO: be sure of this */
if (params->nr_ofdmSymbolsCount != 1) { printf("%s:%d: what to do?\n", __FILE__, __LINE__); abort(); } if (params->nr_ofdmSymbolsCount != MAX_NUM_CCs) { printf("%s:%d: what to do?\n", __FILE__, __LINE__); abort(); }
fi->SchedDlConfigIndParameters.nr_ofdmSymbolsCount = params->nr_ofdmSymbolsCount; fi->SchedDlConfigIndParameters.nr_ofdmSymbolsCount = params->nr_ofdmSymbolsCount;
for (i = 0; i < MAX_NUM_CCs; i++) { for (i = 0; i < MAX_NUM_CCs; i++) {
*fi->SchedDlConfigIndParameters.nrOfPdcchOfdmSymbols[i] = *params->nrOfPdcchOfdmSymbols[i]; *fi->SchedDlConfigIndParameters.nrOfPdcchOfdmSymbols[i] = *params->nrOfPdcchOfdmSymbols[i];
......
This diff is collapsed.
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