remove a unused global storage of slot number
This has no meaning at a global level, we run several slots: one tx, several rx at same time. Some minor cleaning of C style
This commit is contained in:
committed by
Robert Schmidt
parent
c02908453a
commit
00d78f048a
@@ -106,11 +106,10 @@ time_stats_t softmodem_stats_rx_sf; // total rx time
|
|||||||
//#define TICK_TO_US(ts) (ts.diff)
|
//#define TICK_TO_US(ts) (ts.diff)
|
||||||
#define TICK_TO_US(ts) (ts.trials==0?0:ts.diff/ts.trials)
|
#define TICK_TO_US(ts) (ts.trials==0?0:ts.diff/ts.trials)
|
||||||
#define L1STATSSTRLEN 16384
|
#define L1STATSSTRLEN 16384
|
||||||
|
static void rx_func(processingData_L1_t *param);
|
||||||
|
|
||||||
static void tx_func(void *param)
|
static void tx_func(processingData_L1tx_t *info)
|
||||||
{
|
{
|
||||||
processingData_L1tx_t *info = (processingData_L1tx_t *) param;
|
|
||||||
|
|
||||||
int frame_tx = info->frame;
|
int frame_tx = info->frame;
|
||||||
int slot_tx = info->slot;
|
int slot_tx = info->slot;
|
||||||
int frame_rx = info->frame_rx;
|
int frame_rx = info->frame_rx;
|
||||||
@@ -176,7 +175,6 @@ static void tx_func(void *param)
|
|||||||
deref_sched_response(info->sched_response_id);
|
deref_sched_response(info->sched_response_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void *L1_rx_thread(void *arg)
|
void *L1_rx_thread(void *arg)
|
||||||
{
|
{
|
||||||
PHY_VARS_gNB *gNB = (PHY_VARS_gNB*)arg;
|
PHY_VARS_gNB *gNB = (PHY_VARS_gNB*)arg;
|
||||||
@@ -206,9 +204,8 @@ void *L1_tx_thread(void *arg) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rx_func(void *param)
|
static void rx_func(processingData_L1_t *info)
|
||||||
{
|
{
|
||||||
processingData_L1_t *info = (processingData_L1_t *) param;
|
|
||||||
PHY_VARS_gNB *gNB = info->gNB;
|
PHY_VARS_gNB *gNB = info->gNB;
|
||||||
int frame_rx = info->frame_rx;
|
int frame_rx = info->frame_rx;
|
||||||
int slot_rx = info->slot_rx;
|
int slot_rx = info->slot_rx;
|
||||||
@@ -387,7 +384,7 @@ void init_gNB_Tpool(int inst) {
|
|||||||
// create the TX thread responsible for TX processing start event (L1_tx_out msg queue), then launch tx_func()
|
// create the TX thread responsible for TX processing start event (L1_tx_out msg queue), then launch tx_func()
|
||||||
threadCreate(&gNB->L1_tx_thread, L1_tx_thread, (void *)gNB, "L1_tx_thread", gNB->L1_tx_thread_core, OAI_PRIORITY_RT_MAX);
|
threadCreate(&gNB->L1_tx_thread, L1_tx_thread, (void *)gNB, "L1_tx_thread", gNB->L1_tx_thread_core, OAI_PRIORITY_RT_MAX);
|
||||||
|
|
||||||
notifiedFIFO_elt_t *msgL1Tx = newNotifiedFIFO_elt(sizeof(processingData_L1tx_t), 0, &gNB->L1_tx_out, tx_func);
|
notifiedFIFO_elt_t *msgL1Tx = newNotifiedFIFO_elt(sizeof(processingData_L1tx_t), 0, &gNB->L1_tx_out, NULL);
|
||||||
processingData_L1tx_t *msgDataTx = (processingData_L1tx_t *)NotifiedFifoData(msgL1Tx);
|
processingData_L1tx_t *msgDataTx = (processingData_L1tx_t *)NotifiedFifoData(msgL1Tx);
|
||||||
memset(msgDataTx, 0, sizeof(processingData_L1tx_t));
|
memset(msgDataTx, 0, sizeof(processingData_L1tx_t));
|
||||||
init_DLSCH_struct(gNB, msgDataTx);
|
init_DLSCH_struct(gNB, msgDataTx);
|
||||||
|
|||||||
+4
-2
@@ -1089,9 +1089,11 @@ void ru_tx_func(void *param) {
|
|||||||
|
|
||||||
if(!emulate_rf) {
|
if(!emulate_rf) {
|
||||||
// do outgoing fronthaul (south) if needed
|
// do outgoing fronthaul (south) if needed
|
||||||
if ((ru->fh_north_asynch_in == NULL) && (ru->fh_south_out)) ru->fh_south_out(ru,frame_tx,slot_tx,info->timestamp_tx);
|
if ((ru->fh_north_asynch_in == NULL) && (ru->fh_south_out))
|
||||||
|
ru->fh_south_out(ru, frame_tx, slot_tx, info->timestamp_tx);
|
||||||
|
|
||||||
if (ru->fh_north_out) ru->fh_north_out(ru);
|
if (ru->fh_north_out)
|
||||||
|
ru->fh_north_out(ru);
|
||||||
} else {
|
} else {
|
||||||
if(frame_tx == print_frame) {
|
if(frame_tx == print_frame) {
|
||||||
for (int i=0; i<ru->nb_tx; i++) {
|
for (int i=0; i<ru->nb_tx; i++) {
|
||||||
|
|||||||
@@ -372,7 +372,6 @@ extern uint16_t sl_ahead;
|
|||||||
extern uint16_t sf_ahead;
|
extern uint16_t sf_ahead;
|
||||||
extern int oai_exit;
|
extern int oai_exit;
|
||||||
|
|
||||||
void rx_func(void *param);
|
|
||||||
void ru_tx_func(void *param);
|
void ru_tx_func(void *param);
|
||||||
void configure_ru(void *, void *arg);
|
void configure_ru(void *, void *arg);
|
||||||
void configure_rru(void *, void *arg);
|
void configure_rru(void *, void *arg);
|
||||||
|
|||||||
@@ -159,8 +159,7 @@ void nr_schedule_response(NR_Sched_Rsp_t *Sched_INFO)
|
|||||||
|
|
||||||
if (NFAPI_MODE == NFAPI_MONOLITHIC){
|
if (NFAPI_MODE == NFAPI_MONOLITHIC){
|
||||||
if (slot_type == NR_DOWNLINK_SLOT || slot_type == NR_MIXED_SLOT) {
|
if (slot_type == NR_DOWNLINK_SLOT || slot_type == NR_MIXED_SLOT) {
|
||||||
processingData_L1tx_t *msgTx=NULL;
|
processingData_L1tx_t *msgTx = gNB->msgDataTx;
|
||||||
msgTx = gNB->msgDataTx;
|
|
||||||
msgTx->num_pdsch_slot = 0;
|
msgTx->num_pdsch_slot = 0;
|
||||||
msgTx->num_dl_pdcch = 0;
|
msgTx->num_dl_pdcch = 0;
|
||||||
msgTx->num_ul_pdcch = number_ul_dci_pdu;
|
msgTx->num_ul_pdcch = number_ul_dci_pdu;
|
||||||
|
|||||||
@@ -54,7 +54,8 @@ bool read_mac_sm(void* data)
|
|||||||
mac_ue_stats_impl_t* rd = &mac->msg.ue_stats[i];
|
mac_ue_stats_impl_t* rd = &mac->msg.ue_stats[i];
|
||||||
|
|
||||||
rd->frame = RC.nrmac[mod_id]->frame;
|
rd->frame = RC.nrmac[mod_id]->frame;
|
||||||
rd->slot = RC.nrmac[mod_id]->slot;
|
rd->slot = 0; // previously had slot info, but the gNB runs multiple slots
|
||||||
|
// in parallel, so this has no real meaning
|
||||||
|
|
||||||
rd->dl_aggr_tbs = UE->mac_stats.dl.total_bytes;
|
rd->dl_aggr_tbs = UE->mac_stats.dl.total_bytes;
|
||||||
rd->ul_aggr_tbs = UE->mac_stats.ul.total_bytes;
|
rd->ul_aggr_tbs = UE->mac_stats.ul.total_bytes;
|
||||||
|
|||||||
@@ -210,8 +210,6 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frame, sub_frame_
|
|||||||
}
|
}
|
||||||
|
|
||||||
gNB->frame = frame;
|
gNB->frame = frame;
|
||||||
gNB->slot = slot;
|
|
||||||
|
|
||||||
start_meas(&gNB->eNB_scheduler);
|
start_meas(&gNB->eNB_scheduler);
|
||||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_IN);
|
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_gNB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_IN);
|
||||||
|
|
||||||
|
|||||||
@@ -2997,7 +2997,7 @@ int nr_mac_enable_ue_rrc_processing_timer(gNB_MAC_INST *mac, NR_UE_info_t *UE, b
|
|||||||
// frames, after RRC processing timer.
|
// frames, after RRC processing timer.
|
||||||
UE->UE_sched_ctrl.ta_frame = (mac->frame - 1 + 1024) % 1024;
|
UE->UE_sched_ctrl.ta_frame = (mac->frame - 1 + 1024) % 1024;
|
||||||
|
|
||||||
LOG_D(NR_MAC, "%4d.%2d UE %04x: Activate RRC processing timer (%d ms)\n", mac->frame, mac->slot, UE->rnti, delay);
|
LOG_D(NR_MAC, "UE %04x: Activate RRC processing timer (%d ms)\n", UE->rnti, delay);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -836,9 +836,7 @@ typedef struct gNB_MAC_INST_s {
|
|||||||
|
|
||||||
nr_mac_rrc_ul_if_t mac_rrc;
|
nr_mac_rrc_ul_if_t mac_rrc;
|
||||||
f1_config_t f1_config;
|
f1_config_t f1_config;
|
||||||
|
|
||||||
int16_t frame;
|
int16_t frame;
|
||||||
int16_t slot;
|
|
||||||
|
|
||||||
pthread_mutex_t sched_lock;
|
pthread_mutex_t sched_lock;
|
||||||
|
|
||||||
|
|||||||
@@ -388,11 +388,9 @@ static void match_crc_rx_pdu(nfapi_nr_rx_data_indication_t *rx_ind, nfapi_nr_crc
|
|||||||
static void run_scheduler(module_id_t module_id, int CC_id, int frame, int slot)
|
static void run_scheduler(module_id_t module_id, int CC_id, int frame, int slot)
|
||||||
{
|
{
|
||||||
NR_IF_Module_t *ifi = nr_if_inst[module_id];
|
NR_IF_Module_t *ifi = nr_if_inst[module_id];
|
||||||
// gNB_MAC_INST *mac = RC.nrmac[module_id];
|
|
||||||
|
|
||||||
NR_Sched_Rsp_t *sched_info;
|
|
||||||
LOG_D(NR_MAC, "Calling scheduler for %d.%d\n", frame, slot);
|
LOG_D(NR_MAC, "Calling scheduler for %d.%d\n", frame, slot);
|
||||||
sched_info = allocate_sched_response();
|
NR_Sched_Rsp_t *sched_info = allocate_sched_response();
|
||||||
|
|
||||||
// clear UL DCI prior to handling ULSCH
|
// clear UL DCI prior to handling ULSCH
|
||||||
sched_info->UL_dci_req.numPdus = 0;
|
sched_info->UL_dci_req.numPdus = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user