Use function pointer to call pre-processor
This commit is contained in:
@@ -626,10 +626,11 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
|||||||
frame_t frame,
|
frame_t frame,
|
||||||
sub_frame_t slot,
|
sub_frame_t slot,
|
||||||
int num_slots_per_tdd) {
|
int num_slots_per_tdd) {
|
||||||
/* PREPROCESSOR */
|
|
||||||
nr_simple_dlsch_preprocessor(module_id, frame, slot, num_slots_per_tdd);
|
|
||||||
|
|
||||||
gNB_MAC_INST *gNB_mac = RC.nrmac[module_id];
|
gNB_MAC_INST *gNB_mac = RC.nrmac[module_id];
|
||||||
|
|
||||||
|
/* PREPROCESSOR */
|
||||||
|
gNB_mac->pre_processor_dl(module_id, frame, slot, num_slots_per_tdd);
|
||||||
|
|
||||||
NR_UE_info_t *UE_info = &gNB_mac->UE_info;
|
NR_UE_info_t *UE_info = &gNB_mac->UE_info;
|
||||||
|
|
||||||
const int CC_id = 0;
|
const int CC_id = 0;
|
||||||
|
|||||||
@@ -80,6 +80,12 @@ void nr_schedule_ue_spec(module_id_t module_id,
|
|||||||
sub_frame_t slot,
|
sub_frame_t slot,
|
||||||
int num_slots_per_tdd);
|
int num_slots_per_tdd);
|
||||||
|
|
||||||
|
/* \brief default preprocessor */
|
||||||
|
void nr_simple_dlsch_preprocessor(module_id_t module_id,
|
||||||
|
frame_t frame,
|
||||||
|
sub_frame_t slot,
|
||||||
|
int num_slots_per_tdd);
|
||||||
|
|
||||||
void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP);
|
void schedule_nr_mib(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP);
|
||||||
|
|
||||||
/////// Random Access MAC-PHY interface functions and primitives ///////
|
/////// Random Access MAC-PHY interface functions and primitives ///////
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ void mac_top_init_gNB(void)
|
|||||||
|
|
||||||
RC.nrmac[i]->ul_handle = 0;
|
RC.nrmac[i]->ul_handle = 0;
|
||||||
|
|
||||||
|
RC.nrmac[i]->pre_processor_dl = nr_simple_dlsch_preprocessor;
|
||||||
|
|
||||||
}//END for (i = 0; i < RC.nb_nr_macrlc_inst; i++)
|
}//END for (i = 0; i < RC.nb_nr_macrlc_inst; i++)
|
||||||
|
|
||||||
AssertFatal(rlc_module_init(1) == 0,"Could not initialize RLC layer\n");
|
AssertFatal(rlc_module_init(1) == 0,"Could not initialize RLC layer\n");
|
||||||
|
|||||||
@@ -427,6 +427,11 @@ typedef struct {
|
|||||||
uint8_t UE_beam_index[MAX_MOBILES_PER_GNB];
|
uint8_t UE_beam_index[MAX_MOBILES_PER_GNB];
|
||||||
} NR_UE_info_t;
|
} NR_UE_info_t;
|
||||||
|
|
||||||
|
typedef void (*nr_pp_impl_dl)(module_id_t mod_id,
|
||||||
|
frame_t frame,
|
||||||
|
sub_frame_t slot,
|
||||||
|
int num_slots_per_tdd);
|
||||||
|
|
||||||
/*! \brief top level eNB MAC structure */
|
/*! \brief top level eNB MAC structure */
|
||||||
typedef struct gNB_MAC_INST_s {
|
typedef struct gNB_MAC_INST_s {
|
||||||
/// Ethernet parameters for northbound midhaul interface
|
/// Ethernet parameters for northbound midhaul interface
|
||||||
@@ -489,6 +494,9 @@ typedef struct gNB_MAC_INST_s {
|
|||||||
int cce_list[MAX_NUM_BWP][MAX_NUM_CORESET][MAX_NUM_CCE];
|
int cce_list[MAX_NUM_BWP][MAX_NUM_CORESET][MAX_NUM_CCE];
|
||||||
/// current slot
|
/// current slot
|
||||||
int current_slot;
|
int current_slot;
|
||||||
|
|
||||||
|
/// DL preprocessor for differentiated scheduling
|
||||||
|
nr_pp_impl_dl pre_processor_dl;
|
||||||
} gNB_MAC_INST;
|
} gNB_MAC_INST;
|
||||||
|
|
||||||
#endif /*__LAYER2_NR_MAC_GNB_H__ */
|
#endif /*__LAYER2_NR_MAC_GNB_H__ */
|
||||||
|
|||||||
Reference in New Issue
Block a user