BWP fixes
This commit is contained in:
@@ -372,8 +372,9 @@ void prepare_scd(NR_ServingCellConfig_t *scd) {
|
|||||||
scd->firstActiveDownlinkBWP_Id = CALLOC(1, sizeof(*scd->firstActiveDownlinkBWP_Id));
|
scd->firstActiveDownlinkBWP_Id = CALLOC(1, sizeof(*scd->firstActiveDownlinkBWP_Id));
|
||||||
*scd->firstActiveDownlinkBWP_Id = 1;
|
*scd->firstActiveDownlinkBWP_Id = 1;
|
||||||
*scd->uplinkConfig->firstActiveUplinkBWP_Id = 1;
|
*scd->uplinkConfig->firstActiveUplinkBWP_Id = 1;
|
||||||
|
scd->defaultDownlinkBWP_Id = CALLOC(1, sizeof(*scd->defaultDownlinkBWP_Id));
|
||||||
|
*scd->defaultDownlinkBWP_Id = 0;
|
||||||
|
|
||||||
for (int j = 0 ;j < 4 ; j++)
|
for (int j = 0 ;j < 4 ; j++)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -467,10 +467,10 @@ void config_bwp_ue(NR_UE_MAC_INST_t *mac, uint16_t *bwp_ind, uint8_t *dci_format
|
|||||||
if (bwp_ind && dci_format){
|
if (bwp_ind && dci_format){
|
||||||
switch(*dci_format){
|
switch(*dci_format){
|
||||||
case NR_UL_DCI_FORMAT_0_1:
|
case NR_UL_DCI_FORMAT_0_1:
|
||||||
mac->UL_BWP_Id = n_ubwp < 4 ? *bwp_ind : *bwp_ind + 1;;
|
mac->UL_BWP_Id = n_ubwp < 4 ? *bwp_ind : *bwp_ind + 1;
|
||||||
break;
|
break;
|
||||||
case NR_DL_DCI_FORMAT_1_1:
|
case NR_DL_DCI_FORMAT_1_1:
|
||||||
mac->DL_BWP_Id = n_ubwp < 4 ? *bwp_ind : *bwp_ind + 1;;
|
mac->DL_BWP_Id = n_ubwp < 4 ? *bwp_ind : *bwp_ind + 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LOG_E(MAC, "In %s: failed to configure BWP Id from DCI with format %d \n", __FUNCTION__, *dci_format);
|
LOG_E(MAC, "In %s: failed to configure BWP Id from DCI with format %d \n", __FUNCTION__, *dci_format);
|
||||||
@@ -587,7 +587,7 @@ void configure_ss_coreset(NR_UE_MAC_INST_t *mac,
|
|||||||
AssertFatal(ss->searchSpaceType != NULL, "ss->searchSpaceType is null\n");
|
AssertFatal(ss->searchSpaceType != NULL, "ss->searchSpaceType is null\n");
|
||||||
AssertFatal(ss->monitoringSymbolsWithinSlot != NULL, "NR_SearchSpace->monitoringSymbolsWithinSlot is null\n");
|
AssertFatal(ss->monitoringSymbolsWithinSlot != NULL, "NR_SearchSpace->monitoringSymbolsWithinSlot is null\n");
|
||||||
AssertFatal(ss->monitoringSymbolsWithinSlot->buf != NULL, "NR_SearchSpace->monitoringSymbolsWithinSlot->buf is null\n");
|
AssertFatal(ss->monitoringSymbolsWithinSlot->buf != NULL, "NR_SearchSpace->monitoringSymbolsWithinSlot->buf is null\n");
|
||||||
mac->SSpace[dl_bwp_id][ss->searchSpaceId - 1] = ss;
|
mac->SSpace[dl_bwp_id-1][ss->searchSpaceId - 1] = ss;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList = pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
|
struct NR_PDCCH_ConfigCommon__commonSearchSpaceList *commonSearchSpaceList = pdcch_ConfigCommon->choice.setup->commonSearchSpaceList;
|
||||||
@@ -602,7 +602,7 @@ void configure_ss_coreset(NR_UE_MAC_INST_t *mac,
|
|||||||
AssertFatal(css->searchSpaceType != NULL, "css->searchSpaceType is null\n");
|
AssertFatal(css->searchSpaceType != NULL, "css->searchSpaceType is null\n");
|
||||||
AssertFatal(css->monitoringSymbolsWithinSlot != NULL, "css->monitoringSymbolsWithinSlot is null\n");
|
AssertFatal(css->monitoringSymbolsWithinSlot != NULL, "css->monitoringSymbolsWithinSlot is null\n");
|
||||||
AssertFatal(css->monitoringSymbolsWithinSlot->buf != NULL, "css->monitoringSymbolsWithinSlot->buf is null\n");
|
AssertFatal(css->monitoringSymbolsWithinSlot->buf != NULL, "css->monitoringSymbolsWithinSlot->buf is null\n");
|
||||||
mac->SSpace[dl_bwp_id][css->searchSpaceId - 1] = css;
|
mac->SSpace[dl_bwp_id-1][css->searchSpaceId - 1] = css;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ void config_dci_pdu(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_dci_dl_pdu_rel15_t
|
|||||||
ss_id,mac->ra.ss->searchSpaceId);
|
ss_id,mac->ra.ss->searchSpaceId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ss = mac->SSpace[dl_bwp_id][ss_id-1];
|
ss = mac->SSpace[dl_bwp_id-1][ss_id-1];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ss = mac->search_space_zero;
|
ss = mac->search_space_zero;
|
||||||
@@ -275,9 +275,9 @@ void ue_dci_configuration(NR_UE_MAC_INST_t *mac, fapi_nr_dl_config_request_t *dl
|
|||||||
|
|
||||||
// loop over all available SS for bwp_id
|
// loop over all available SS for bwp_id
|
||||||
if (bwpd) {
|
if (bwpd) {
|
||||||
for (ss_id = 1; ss_id <= FAPI_NR_MAX_SS && mac->SSpace[bwp_id][ss_id-1] != NULL; ss_id++){
|
for (ss_id = 1; ss_id <= FAPI_NR_MAX_SS && mac->SSpace[bwp_id-1][ss_id-1] != NULL; ss_id++){
|
||||||
LOG_D(NR_MAC, "[DCI_CONFIG] ss_id %d\n",ss_id);
|
LOG_D(NR_MAC, "[DCI_CONFIG] ss_id %d\n",ss_id);
|
||||||
NR_SearchSpace_t *ss = mac->SSpace[bwp_id][ss_id-1];
|
NR_SearchSpace_t *ss = mac->SSpace[bwp_id-1][ss_id-1];
|
||||||
AssertFatal(ss_id == ss->searchSpaceId,"SS IDs don't correspond\n");
|
AssertFatal(ss_id == ss->searchSpaceId,"SS IDs don't correspond\n");
|
||||||
fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15 = &dl_config->dl_config_list[dl_config->number_pdus].dci_config_pdu.dci_config_rel15;
|
fapi_nr_dl_config_dci_dl_pdu_rel15_t *rel15 = &dl_config->dl_config_list[dl_config->number_pdus].dci_config_pdu.dci_config_rel15;
|
||||||
NR_SetupRelease_PDCCH_ConfigCommon_t *pdcch_ConfigCommon = bwp_Common->pdcch_ConfigCommon;
|
NR_SetupRelease_PDCCH_ConfigCommon_t *pdcch_ConfigCommon = bwp_Common->pdcch_ConfigCommon;
|
||||||
|
|||||||
@@ -1022,8 +1022,8 @@ int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, fr
|
|||||||
* 47 DMRS_SEQ_INI:
|
* 47 DMRS_SEQ_INI:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (dci->bwp_indicator.val > 1) {
|
if (dci->bwp_indicator.val > 4) {
|
||||||
LOG_W(NR_MAC,"[%d.%d] bwp_indicator %d > 1 Possibly due to false DCI. Ignoring DCI!\n", frame, slot,dci->bwp_indicator.val);
|
LOG_W(NR_MAC,"[%d.%d] bwp_indicator %d > 4 Possibly due to false DCI. Ignoring DCI!\n", frame, slot,dci->bwp_indicator.val);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
config_bwp_ue(mac, &dci->bwp_indicator.val, &dci_format);
|
config_bwp_ue(mac, &dci->bwp_indicator.val, &dci_format);
|
||||||
|
|||||||
@@ -678,15 +678,18 @@ void fill_default_secondaryCellGroup(NR_ServingCellConfigCommon_t *servingcellco
|
|||||||
if (!servingcellconfigdedicated) {
|
if (!servingcellconfigdedicated) {
|
||||||
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
|
ASN_SEQUENCE_ADD(&secondaryCellGroup->spCellConfig->spCellConfigDedicated->downlinkBWP_ToAddModList->list,bwp);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!servingcellconfigdedicated) {
|
if (!servingcellconfigdedicated) {
|
||||||
secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id));
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id));
|
||||||
*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id=1;
|
*secondaryCellGroup->spCellConfig->spCellConfigDedicated->firstActiveDownlinkBWP_Id=1;
|
||||||
}
|
}
|
||||||
secondaryCellGroup->spCellConfig->spCellConfigDedicated->bwp_InactivityTimer = NULL;
|
|
||||||
secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = NULL;
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->bwp_InactivityTimer = NULL;
|
||||||
secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = calloc(1, sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id));
|
|
||||||
*secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = 1;
|
if (!servingcellconfigdedicated) {
|
||||||
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = calloc(1, sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id));
|
||||||
|
*secondaryCellGroup->spCellConfig->spCellConfigDedicated->defaultDownlinkBWP_Id = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (!servingcellconfigdedicated) {
|
if (!servingcellconfigdedicated) {
|
||||||
secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig));
|
secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig=calloc(1,sizeof(*secondaryCellGroup->spCellConfig->spCellConfigDedicated->uplinkConfig));
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ servingCellConfigDedicated = ({
|
|||||||
|
|
||||||
# BWP 4 Configuration
|
# BWP 4 Configuration
|
||||||
dl_bwp-Id_4 = 4;
|
dl_bwp-Id_4 = 4;
|
||||||
dl_bwp4_locationAndBandwidth = 28899; // RBstart=24, L=106
|
dl_bwp4_locationAndBandwidth = 22299; // RBstart=24, L=82
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
dl_bwp4_subcarrierSpacing = 1;
|
dl_bwp4_subcarrierSpacing = 1;
|
||||||
@@ -241,7 +241,7 @@ servingCellConfigDedicated = ({
|
|||||||
|
|
||||||
# BWP 4 Configuration
|
# BWP 4 Configuration
|
||||||
ul_bwp-Id_4 = 4;
|
ul_bwp-Id_4 = 4;
|
||||||
ul_bwp4_locationAndBandwidth = 28899; // RBstart=24, L=106
|
ul_bwp4_locationAndBandwidth = 22299; // RBstart=24, L=82
|
||||||
# subcarrierSpacing
|
# subcarrierSpacing
|
||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
ul_bwp4_subcarrierSpacing = 1;
|
ul_bwp4_subcarrierSpacing = 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user