fixes for TDA in case of double symbol pdcch
This commit is contained in:
@@ -2660,6 +2660,7 @@ uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDownlinkBWP,
|
|||||||
LOG_D(NR_MAC,"DAI1 nbits %d\n",dci_pdu->dai[0].nbits);
|
LOG_D(NR_MAC,"DAI1 nbits %d\n",dci_pdu->dai[0].nbits);
|
||||||
// 2nd DAI
|
// 2nd DAI
|
||||||
if (cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig &&
|
if (cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig &&
|
||||||
|
cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup &&
|
||||||
cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup->codeBlockGroupTransmission != NULL) { //TODO not sure about that
|
cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup->codeBlockGroupTransmission != NULL) { //TODO not sure about that
|
||||||
dci_pdu->dai[1].nbits = 2;
|
dci_pdu->dai[1].nbits = 2;
|
||||||
size += dci_pdu->dai[1].nbits;
|
size += dci_pdu->dai[1].nbits;
|
||||||
@@ -2930,7 +2931,8 @@ uint16_t nr_dci_size(const NR_BWP_DownlinkCommon_t *initialDownlinkBWP,
|
|||||||
dci_pdu->srs_request.nbits = 3;
|
dci_pdu->srs_request.nbits = 3;
|
||||||
size += dci_pdu->srs_request.nbits;
|
size += dci_pdu->srs_request.nbits;
|
||||||
// CBGTI
|
// CBGTI
|
||||||
if (cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig&&
|
if (cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig &&
|
||||||
|
cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup &&
|
||||||
cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup->codeBlockGroupTransmission != NULL) {
|
cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup->codeBlockGroupTransmission != NULL) {
|
||||||
uint8_t maxCBGperTB = (cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup->codeBlockGroupTransmission->choice.setup->maxCodeBlockGroupsPerTransportBlock + 1) * 2;
|
uint8_t maxCBGperTB = (cg->spCellConfig->spCellConfigDedicated->pdsch_ServingCellConfig->choice.setup->codeBlockGroupTransmission->choice.setup->maxCodeBlockGroupsPerTransportBlock + 1) * 2;
|
||||||
long *maxCWperDCI_rrc = pdsch_Config->maxNrofCodeWordsScheduledByDCI;
|
long *maxCWperDCI_rrc = pdsch_Config->maxNrofCodeWordsScheduledByDCI;
|
||||||
|
|||||||
@@ -34,14 +34,17 @@
|
|||||||
void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc){
|
void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc){
|
||||||
|
|
||||||
lte_frame_type_t frame_type = get_frame_type(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
|
lte_frame_type_t frame_type = get_frame_type(*scc->downlinkConfigCommon->frequencyInfoDL->frequencyBandList.list.array[0], *scc->ssbSubcarrierSpacing);
|
||||||
|
int curr_bwp = scc->downlinkConfigCommon->frequencyInfoDL->scs_SpecificCarrierList.list.array[0]->carrierBandwidth;
|
||||||
|
int len_coreset = 1;
|
||||||
|
if (curr_bwp < 48)
|
||||||
|
len_coreset = 2;
|
||||||
|
|
||||||
// setting default TDA for DL with
|
// setting default TDA for DL with
|
||||||
struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
|
struct NR_PDSCH_TimeDomainResourceAllocation *timedomainresourceallocation = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
|
||||||
timedomainresourceallocation->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
|
timedomainresourceallocation->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
|
||||||
timedomainresourceallocation->startSymbolAndLength = get_SLIV(1,13); // basic slot configuration starting in symbol 1 til the end of the slot
|
timedomainresourceallocation->startSymbolAndLength = get_SLIV(len_coreset,14-len_coreset); // basic slot configuration starting in symbol 1 til the end of the slot
|
||||||
ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
|
ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
|
||||||
timedomainresourceallocation);
|
timedomainresourceallocation);
|
||||||
|
|
||||||
if(frame_type==TDD) {
|
if(frame_type==TDD) {
|
||||||
// TDD
|
// TDD
|
||||||
if(scc->tdd_UL_DL_ConfigurationCommon) {
|
if(scc->tdd_UL_DL_ConfigurationCommon) {
|
||||||
@@ -49,7 +52,7 @@ void nr_rrc_config_dl_tda(NR_ServingCellConfigCommon_t *scc){
|
|||||||
if(dl_symb > 1) {
|
if(dl_symb > 1) {
|
||||||
timedomainresourceallocation = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
|
timedomainresourceallocation = CALLOC(1,sizeof(NR_PDSCH_TimeDomainResourceAllocation_t));
|
||||||
timedomainresourceallocation->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
|
timedomainresourceallocation->mappingType = NR_PDSCH_TimeDomainResourceAllocation__mappingType_typeA;
|
||||||
timedomainresourceallocation->startSymbolAndLength = get_SLIV(1,dl_symb-1); // mixed slot configuration starting in symbol 1 til the end of the dl allocation
|
timedomainresourceallocation->startSymbolAndLength = get_SLIV(len_coreset,dl_symb-len_coreset); // mixed slot configuration starting in symbol 1 til the end of the dl allocation
|
||||||
ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
|
ASN_SEQUENCE_ADD(&scc->downlinkConfigCommon->initialDownlinkBWP->pdsch_ConfigCommon->choice.setup->pdsch_TimeDomainAllocationList->list,
|
||||||
timedomainresourceallocation);
|
timedomainresourceallocation);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ gNBs =
|
|||||||
pdsch_AntennaPorts = 1;
|
pdsch_AntennaPorts = 1;
|
||||||
pusch_AntennaPorts = 1;
|
pusch_AntennaPorts = 1;
|
||||||
sib1_tda = 15;
|
sib1_tda = 15;
|
||||||
|
min_rxtxtime = 6;
|
||||||
|
|
||||||
pdcch_ConfigSIB1 = (
|
pdcch_ConfigSIB1 = (
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user