using minRXTXTIMEpdsch in acknack scheduling (for common case)
This commit is contained in:
@@ -787,9 +787,9 @@ int main(int argc, char **argv)
|
|||||||
AssertFatal((gNB->if_inst = NR_IF_Module_init(0))!=NULL,"Cannot register interface");
|
AssertFatal((gNB->if_inst = NR_IF_Module_init(0))!=NULL,"Cannot register interface");
|
||||||
gNB->if_inst->NR_PHY_config_req = nr_phy_config_request;
|
gNB->if_inst->NR_PHY_config_req = nr_phy_config_request;
|
||||||
// common configuration
|
// common configuration
|
||||||
rrc_mac_config_req_gNB(0,0, n_tx, n_tx, 0, scc, NULL, 0, 0, NULL);
|
rrc_mac_config_req_gNB(0,0, n_tx, n_tx, 0, 6, scc, NULL, 0, 0, NULL);
|
||||||
// UE dedicated configuration
|
// UE dedicated configuration
|
||||||
rrc_mac_config_req_gNB(0,0, n_tx, n_tx, 0, scc, NULL, 1, secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity,secondaryCellGroup);
|
rrc_mac_config_req_gNB(0,0, n_tx, n_tx, 0, 6, scc, NULL, 1, secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity,secondaryCellGroup);
|
||||||
// reset preprocessor to the one of DLSIM after it has been set during
|
// reset preprocessor to the one of DLSIM after it has been set during
|
||||||
// rrc_mac_config_req_gNB
|
// rrc_mac_config_req_gNB
|
||||||
gNB_mac->pre_processor_dl = nr_dlsim_preprocessor;
|
gNB_mac->pre_processor_dl = nr_dlsim_preprocessor;
|
||||||
|
|||||||
@@ -724,9 +724,9 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
gNB->if_inst->NR_PHY_config_req = nr_phy_config_request;
|
gNB->if_inst->NR_PHY_config_req = nr_phy_config_request;
|
||||||
// common configuration
|
// common configuration
|
||||||
rrc_mac_config_req_gNB(0,0, n_tx, n_rx, 0, scc, &rrc.carrier.mib,0, 0, NULL);
|
rrc_mac_config_req_gNB(0,0, n_tx, n_rx, 0, 6, scc, &rrc.carrier.mib,0, 0, NULL);
|
||||||
// UE dedicated configuration
|
// UE dedicated configuration
|
||||||
rrc_mac_config_req_gNB(0,0, n_tx, n_rx, 0, scc, &rrc.carrier.mib,1, secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity,secondaryCellGroup);
|
rrc_mac_config_req_gNB(0,0, n_tx, n_rx, 0, 6, scc, &rrc.carrier.mib,1, secondaryCellGroup->spCellConfig->reconfigurationWithSync->newUE_Identity,secondaryCellGroup);
|
||||||
frame_parms->nb_antennas_tx = n_tx;
|
frame_parms->nb_antennas_tx = n_tx;
|
||||||
frame_parms->nb_antennas_rx = n_rx;
|
frame_parms->nb_antennas_rx = n_rx;
|
||||||
nfapi_nr_config_request_scf_t *cfg = &gNB->gNB_config;
|
nfapi_nr_config_request_scf_t *cfg = &gNB->gNB_config;
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
#include "common/utils/LOG/log.h"
|
#include "common/utils/LOG/log.h"
|
||||||
|
#include "common/utils/nr/nr_common.h"
|
||||||
#include "common/utils/LOG/log_extern.h"
|
#include "common/utils/LOG/log_extern.h"
|
||||||
#include "assertions.h"
|
#include "assertions.h"
|
||||||
#include "gnb_config.h"
|
#include "gnb_config.h"
|
||||||
@@ -47,7 +48,6 @@
|
|||||||
// #include "SystemInformationBlockType2.h"
|
// #include "SystemInformationBlockType2.h"
|
||||||
// #include "LAYER2/MAC/extern.h"
|
// #include "LAYER2/MAC/extern.h"
|
||||||
// #include "LAYER2/MAC/proto.h"
|
// #include "LAYER2/MAC/proto.h"
|
||||||
#include "PHY/phy_extern.h"
|
|
||||||
#include "PHY/INIT/phy_init.h"
|
#include "PHY/INIT/phy_init.h"
|
||||||
#include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h"
|
#include "targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h"
|
||||||
#include "nfapi_vnf.h"
|
#include "nfapi_vnf.h"
|
||||||
@@ -947,8 +947,6 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
|||||||
|
|
||||||
if (num_gnbs>0) {
|
if (num_gnbs>0) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Output a list of all gNBs. ////////// Identification parameters
|
// Output a list of all gNBs. ////////// Identification parameters
|
||||||
config_getlist( &GNBParamList,GNBParams,sizeof(GNBParams)/sizeof(paramdef_t),NULL);
|
config_getlist( &GNBParamList,GNBParams,sizeof(GNBParams)/sizeof(paramdef_t),NULL);
|
||||||
|
|
||||||
@@ -1112,14 +1110,12 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
|||||||
NRRRC_CONFIGURATION_REQ (msg_p).pusch_AntennaPorts = *GNBParamList.paramarray[i][GNB_PUSCH_ANTENNAPORTS_IDX].iptr;
|
NRRRC_CONFIGURATION_REQ (msg_p).pusch_AntennaPorts = *GNBParamList.paramarray[i][GNB_PUSCH_ANTENNAPORTS_IDX].iptr;
|
||||||
printf("minTXRXTIMEpdsch %d\n",*GNBParamList.paramarray[i][GNB_MINRXTXTIMEPDSCH_IDX].iptr);
|
printf("minTXRXTIMEpdsch %d\n",*GNBParamList.paramarray[i][GNB_MINRXTXTIMEPDSCH_IDX].iptr);
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).minRXTXTIMEpdsch = *GNBParamList.paramarray[i][GNB_MINRXTXTIMEPDSCH_IDX].iptr;
|
NRRRC_CONFIGURATION_REQ (msg_p).minRXTXTIMEpdsch = *GNBParamList.paramarray[i][GNB_MINRXTXTIMEPDSCH_IDX].iptr;
|
||||||
|
printf("SIB1 TDA %d\n",*GNBParamList.paramarray[i][GNB_SIB1_TDA_IDX].iptr);
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).sib1_tda = *GNBParamList.paramarray[i][GNB_SIB1_TDA_IDX].iptr;
|
NRRRC_CONFIGURATION_REQ (msg_p).sib1_tda = *GNBParamList.paramarray[i][GNB_SIB1_TDA_IDX].iptr;
|
||||||
printf("minTXRXTIMEpdsch %d\n",*GNBParamList.paramarray[i][GNB_MINRXTXTIMEPDSCH_IDX].iptr);
|
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).minRXTXTIMEpdsch = *GNBParamList.paramarray[i][GNB_MINRXTXTIMEPDSCH_IDX].iptr;
|
|
||||||
printf("Do CSI-RS %d\n",*GNBParamList.paramarray[i][GNB_DO_CSIRS_IDX].iptr);
|
printf("Do CSI-RS %d\n",*GNBParamList.paramarray[i][GNB_DO_CSIRS_IDX].iptr);
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).do_CSIRS = *GNBParamList.paramarray[i][GNB_DO_CSIRS_IDX].iptr;
|
NRRRC_CONFIGURATION_REQ (msg_p).do_CSIRS = *GNBParamList.paramarray[i][GNB_DO_CSIRS_IDX].iptr;
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).scc = scc;
|
NRRRC_CONFIGURATION_REQ (msg_p).scc = scc;
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).scd = scd;
|
NRRRC_CONFIGURATION_REQ (msg_p).scd = scd;
|
||||||
|
|
||||||
|
|
||||||
}//
|
}//
|
||||||
}//End for (k=0; k <num_gnbs ; k++)
|
}//End for (k=0; k <num_gnbs ; k++)
|
||||||
@@ -1995,6 +1991,7 @@ void configure_gnb_du_mac(int inst) {
|
|||||||
rrc->configuration.pdsch_AntennaPorts,
|
rrc->configuration.pdsch_AntennaPorts,
|
||||||
rrc->configuration.pusch_AntennaPorts,
|
rrc->configuration.pusch_AntennaPorts,
|
||||||
rrc->configuration.sib1_tda,
|
rrc->configuration.sib1_tda,
|
||||||
|
rrc->configuration.minRXTXTIMEpdsch,
|
||||||
rrc->configuration.scc,
|
rrc->configuration.scc,
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
|
|||||||
@@ -429,6 +429,7 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
|
|||||||
int pdsch_AntennaPorts,
|
int pdsch_AntennaPorts,
|
||||||
int pusch_AntennaPorts,
|
int pusch_AntennaPorts,
|
||||||
int sib1_tda,
|
int sib1_tda,
|
||||||
|
int minRXTXTIMEpdsch,
|
||||||
NR_ServingCellConfigCommon_t *scc,
|
NR_ServingCellConfigCommon_t *scc,
|
||||||
NR_BCCH_BCH_Message_t *mib,
|
NR_BCCH_BCH_Message_t *mib,
|
||||||
int add_ue,
|
int add_ue,
|
||||||
@@ -479,6 +480,7 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
RC.nrmac[Mod_idP]->ssb_SubcarrierOffset = ssb_SubcarrierOffset;
|
RC.nrmac[Mod_idP]->ssb_SubcarrierOffset = ssb_SubcarrierOffset;
|
||||||
|
RC.nrmac[Mod_idP]->minRXTXTIMEpdsch = minRXTXTIMEpdsch;
|
||||||
|
|
||||||
NR_PHY_Config_t phycfg;
|
NR_PHY_Config_t phycfg;
|
||||||
phycfg.Mod_id = Mod_idP;
|
phycfg.Mod_id = Mod_idP;
|
||||||
|
|||||||
@@ -968,8 +968,6 @@ void fill_msg3_pusch_pdu(nfapi_nr_pusch_pdu_t *pusch_pdu,
|
|||||||
|
|
||||||
|
|
||||||
int start_symbol_index,nr_of_symbols;
|
int start_symbol_index,nr_of_symbols;
|
||||||
uint8_t nb_dmrs_re_per_rb = 0;
|
|
||||||
uint16_t number_dmrs_symbols = 0;
|
|
||||||
|
|
||||||
SLIV2SL(startSymbolAndLength, &start_symbol_index, &nr_of_symbols);
|
SLIV2SL(startSymbolAndLength, &start_symbol_index, &nr_of_symbols);
|
||||||
|
|
||||||
|
|||||||
@@ -1180,6 +1180,8 @@ int nr_acknack_scheduling(int mod_id,
|
|||||||
const int first_ul_slot_tdd = tdd? tdd->nrofDownlinkSlots + nr_slots_period * (slot / nr_slots_period) : 0;
|
const int first_ul_slot_tdd = tdd? tdd->nrofDownlinkSlots + nr_slots_period * (slot / nr_slots_period) : 0;
|
||||||
const int first_ul_slot_period = tdd? tdd->nrofDownlinkSlots : 0;
|
const int first_ul_slot_period = tdd? tdd->nrofDownlinkSlots : 0;
|
||||||
const int CC_id = 0;
|
const int CC_id = 0;
|
||||||
|
const int minfbtime = RC.nrmac[mod_id]->minRXTXTIMEpdsch;
|
||||||
|
|
||||||
NR_sched_pucch_t *csi_pucch;
|
NR_sched_pucch_t *csi_pucch;
|
||||||
|
|
||||||
if (tdd) {
|
if (tdd) {
|
||||||
@@ -1270,7 +1272,8 @@ int nr_acknack_scheduling(int mod_id,
|
|||||||
int diff = pucch->ul_slot - slot;
|
int diff = pucch->ul_slot - slot;
|
||||||
if (diff<0)
|
if (diff<0)
|
||||||
diff += n_slots_frame;
|
diff += n_slots_frame;
|
||||||
if (pdsch_to_harq_feedback[i] == diff)
|
if (pdsch_to_harq_feedback[i] == diff &&
|
||||||
|
pdsch_to_harq_feedback[i] >= minfbtime)
|
||||||
break;
|
break;
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
@@ -1322,7 +1325,8 @@ int nr_acknack_scheduling(int mod_id,
|
|||||||
int diff = pucch->ul_slot - slot;
|
int diff = pucch->ul_slot - slot;
|
||||||
if (diff<0)
|
if (diff<0)
|
||||||
diff += n_slots_frame;
|
diff += n_slots_frame;
|
||||||
if (pdsch_to_harq_feedback[i] == diff) {
|
if (pdsch_to_harq_feedback[i] == diff &&
|
||||||
|
pdsch_to_harq_feedback[i] >= minfbtime) {
|
||||||
ind_found = i;
|
ind_found = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,10 +50,11 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
|
|||||||
int pdsch_AntennaPorts,
|
int pdsch_AntennaPorts,
|
||||||
int pusch_AntennaPorts,
|
int pusch_AntennaPorts,
|
||||||
int sib1_tda,
|
int sib1_tda,
|
||||||
|
int minRXTXTIMEpdsch,
|
||||||
NR_ServingCellConfigCommon_t *scc,
|
NR_ServingCellConfigCommon_t *scc,
|
||||||
NR_BCCH_BCH_Message_t *mib,
|
NR_BCCH_BCH_Message_t *mib,
|
||||||
int add_ue,
|
int add_ue,
|
||||||
uint32_t rnti,
|
uint32_t rnti,
|
||||||
NR_CellGroupConfig_t *CellGroup);
|
NR_CellGroupConfig_t *CellGroup);
|
||||||
|
|
||||||
void clear_nr_nfapi_information(gNB_MAC_INST * gNB,
|
void clear_nr_nfapi_information(gNB_MAC_INST * gNB,
|
||||||
|
|||||||
@@ -678,6 +678,7 @@ typedef struct gNB_MAC_INST_s {
|
|||||||
int ssb_SubcarrierOffset;
|
int ssb_SubcarrierOffset;
|
||||||
/// SIB1 Time domain allocation
|
/// SIB1 Time domain allocation
|
||||||
int sib1_tda;
|
int sib1_tda;
|
||||||
|
int minRXTXTIMEpdsch;
|
||||||
/// Common cell resources
|
/// Common cell resources
|
||||||
NR_COMMON_channels_t common_channels[NFAPI_CC_MAX];
|
NR_COMMON_channels_t common_channels[NFAPI_CC_MAX];
|
||||||
/// current PDU index (BCH,DLSCH)
|
/// current PDU index (BCH,DLSCH)
|
||||||
|
|||||||
@@ -239,6 +239,7 @@ static void init_NR_SI(gNB_RRC_INST *rrc, gNB_RrcConfigurationReq *configuration
|
|||||||
rrc->carrier.pdsch_AntennaPorts,
|
rrc->carrier.pdsch_AntennaPorts,
|
||||||
rrc->carrier.pusch_AntennaPorts,
|
rrc->carrier.pusch_AntennaPorts,
|
||||||
rrc->carrier.sib1_tda,
|
rrc->carrier.sib1_tda,
|
||||||
|
rrc->carrier.minRXTXTIMEpdsch,
|
||||||
(NR_ServingCellConfigCommon_t *)rrc->carrier.servingcellconfigcommon,
|
(NR_ServingCellConfigCommon_t *)rrc->carrier.servingcellconfigcommon,
|
||||||
&rrc->carrier.mib,
|
&rrc->carrier.mib,
|
||||||
0,
|
0,
|
||||||
@@ -392,6 +393,7 @@ void apply_macrlc_config(gNB_RRC_INST *rrc,
|
|||||||
rrc->carrier.pdsch_AntennaPorts,
|
rrc->carrier.pdsch_AntennaPorts,
|
||||||
rrc->carrier.pusch_AntennaPorts,
|
rrc->carrier.pusch_AntennaPorts,
|
||||||
rrc->carrier.sib1_tda,
|
rrc->carrier.sib1_tda,
|
||||||
|
rrc->carrier.minRXTXTIMEpdsch,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
@@ -585,6 +587,7 @@ rrc_gNB_generate_RRCSetup_for_RRCReestablishmentRequest(
|
|||||||
rrc_instance_p->carrier.pdsch_AntennaPorts,
|
rrc_instance_p->carrier.pdsch_AntennaPorts,
|
||||||
rrc_instance_p->carrier.pusch_AntennaPorts,
|
rrc_instance_p->carrier.pusch_AntennaPorts,
|
||||||
rrc_instance_p->carrier.sib1_tda,
|
rrc_instance_p->carrier.sib1_tda,
|
||||||
|
rrc_instance_p->carrier.minRXTXTIMEpdsch,
|
||||||
(NR_ServingCellConfigCommon_t *)rrc_instance_p->carrier.servingcellconfigcommon,
|
(NR_ServingCellConfigCommon_t *)rrc_instance_p->carrier.servingcellconfigcommon,
|
||||||
&rrc_instance_p->carrier.mib,
|
&rrc_instance_p->carrier.mib,
|
||||||
0,
|
0,
|
||||||
@@ -1379,6 +1382,7 @@ rrc_gNB_process_RRCReconfigurationComplete(
|
|||||||
rrc->carrier.pdsch_AntennaPorts,
|
rrc->carrier.pdsch_AntennaPorts,
|
||||||
rrc->carrier.pusch_AntennaPorts,
|
rrc->carrier.pusch_AntennaPorts,
|
||||||
rrc->carrier.sib1_tda,
|
rrc->carrier.sib1_tda,
|
||||||
|
rrc->carrier.minRXTXTIMEpdsch,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
0,
|
0,
|
||||||
|
|||||||
@@ -367,6 +367,7 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
|
|||||||
rrc->carrier.pdsch_AntennaPorts,
|
rrc->carrier.pdsch_AntennaPorts,
|
||||||
rrc->carrier.pusch_AntennaPorts,
|
rrc->carrier.pusch_AntennaPorts,
|
||||||
rrc->carrier.sib1_tda,
|
rrc->carrier.sib1_tda,
|
||||||
|
rrc->carrier.minRXTXTIMEpdsch,
|
||||||
rrc->carrier.servingcellconfigcommon,
|
rrc->carrier.servingcellconfigcommon,
|
||||||
&rrc->carrier.mib,
|
&rrc->carrier.mib,
|
||||||
1, // add_ue flag
|
1, // add_ue flag
|
||||||
@@ -378,6 +379,7 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
|
|||||||
rrc->carrier.pdsch_AntennaPorts,
|
rrc->carrier.pdsch_AntennaPorts,
|
||||||
rrc->carrier.pusch_AntennaPorts,
|
rrc->carrier.pusch_AntennaPorts,
|
||||||
rrc->carrier.sib1_tda,
|
rrc->carrier.sib1_tda,
|
||||||
|
rrc->carrier.minRXTXTIMEpdsch,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
1, // add_ue flag
|
1, // add_ue flag
|
||||||
|
|||||||
Reference in New Issue
Block a user