Commit 36a92f46 authored by magounak's avatar magounak

renaming eNB_proc_t -> L1_proc_t and eNB_rxtx_proc_t -> L1_rxtx_proc_t

parent 0da8e5cc
...@@ -69,12 +69,12 @@ char uecap_xer_in; ...@@ -69,12 +69,12 @@ char uecap_xer_in;
extern void init_eNB_afterRU(void); extern void init_eNB_afterRU(void);
extern void init_UE_stub(int nb_inst,int,int); extern void init_UE_stub(int nb_inst,int,int);
extern void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB, int frame, int subframe, eNB_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu); extern void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB, int frame, int subframe, L1_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu);
extern void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, nfapi_ul_config_request_pdu_t *ul_config_pdu, uint16_t frame,uint8_t subframe,uint8_t srs_present); extern void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, nfapi_ul_config_request_pdu_t *ul_config_pdu, uint16_t frame,uint8_t subframe,uint8_t srs_present);
extern void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame, int subframe, eNB_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu, uint8_t codeword_index, uint8_t *sdu); extern void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame, int subframe, L1_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu, uint8_t codeword_index, uint8_t *sdu);
extern void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame, int subframe, eNB_rxtx_proc_t *proc, nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu); extern void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame, int subframe, L1_rxtx_proc_t *proc, nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu);
extern void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame, int subframe, eNB_rxtx_proc_t *proc, nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu); extern void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame, int subframe, L1_rxtx_proc_t *proc, nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu);
extern void handle_nfapi_bch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu, uint8_t *sdu); extern void handle_nfapi_bch_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, nfapi_dl_config_request_pdu_t *dl_config_pdu, uint8_t *sdu);
extern uint8_t nfapi_mode; extern uint8_t nfapi_mode;
...@@ -741,7 +741,7 @@ int pnf_phy_hi_dci0_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t* ...@@ -741,7 +741,7 @@ int pnf_phy_hi_dci0_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t*
//phy_info* phy = (phy_info*)(pnf_p7->user_data); //phy_info* phy = (phy_info*)(pnf_p7->user_data);
struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0];
eNB_rxtx_proc_t *proc = &eNB->proc.L1_proc; L1_rxtx_proc_t *proc = &eNB->proc.L1_proc;
for (int i=0; i<req->hi_dci0_request_body.number_of_dci + req->hi_dci0_request_body.number_of_hi; i++) { for (int i=0; i<req->hi_dci0_request_body.number_of_dci + req->hi_dci0_request_body.number_of_hi; i++) {
...@@ -798,7 +798,7 @@ int pnf_phy_dl_config_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request ...@@ -798,7 +798,7 @@ int pnf_phy_dl_config_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_dl_config_request
int sf = NFAPI_SFNSF2SF(req->sfn_sf); int sf = NFAPI_SFNSF2SF(req->sfn_sf);
struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0];
eNB_rxtx_proc_t *proc = &eNB->proc.L1_proc; L1_rxtx_proc_t *proc = &eNB->proc.L1_proc;
nfapi_dl_config_request_pdu_t* dl_config_pdu_list = req->dl_config_request_body.dl_config_pdu_list; nfapi_dl_config_request_pdu_t* dl_config_pdu_list = req->dl_config_request_body.dl_config_pdu_list;
LTE_eNB_PDCCH *pdcch_vars = &eNB->pdcch_vars[sf&1]; LTE_eNB_PDCCH *pdcch_vars = &eNB->pdcch_vars[sf&1];
...@@ -945,7 +945,7 @@ int pnf_phy_ul_config_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request ...@@ -945,7 +945,7 @@ int pnf_phy_ul_config_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_ul_config_request
uint16_t curr_sf = NFAPI_SFNSF2SF(req->sfn_sf); uint16_t curr_sf = NFAPI_SFNSF2SF(req->sfn_sf);
struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0]; struct PHY_VARS_eNB_s *eNB = RC.eNB[0][0];
eNB_rxtx_proc_t *proc = &eNB->proc.L1_proc; L1_rxtx_proc_t *proc = &eNB->proc.L1_proc;
nfapi_ul_config_request_pdu_t* ul_config_pdu_list = req->ul_config_request_body.ul_config_pdu_list; nfapi_ul_config_request_pdu_t* ul_config_pdu_list = req->ul_config_request_body.ul_config_pdu_list;
for (int i=0;i<req->ul_config_request_body.number_of_pdus;i++) { for (int i=0;i<req->ul_config_request_body.number_of_pdus;i++) {
......
...@@ -343,9 +343,9 @@ int pnf_config_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_pnf_config_ ...@@ -343,9 +343,9 @@ int pnf_config_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_pnf_config_
int wake_eNB_rxtx(PHY_VARS_eNB *eNB, uint16_t sfn, uint16_t sf) { int wake_eNB_rxtx(PHY_VARS_eNB *eNB, uint16_t sfn, uint16_t sf) {
eNB_proc_t *proc=&eNB->proc; L1_proc_t *proc=&eNB->proc;
eNB_rxtx_proc_t *L1_proc= (sf&1)? &proc->L1_proc : &proc->L1_proc_tx; L1_rxtx_proc_t *L1_proc= (sf&1)? &proc->L1_proc : &proc->L1_proc_tx;
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
......
...@@ -212,7 +212,7 @@ void phy_adjust_gain (PHY_VARS_UE *phy_vars_ue, ...@@ -212,7 +212,7 @@ void phy_adjust_gain (PHY_VARS_UE *phy_vars_ue,
unsigned char eNB_id); unsigned char eNB_id);
int lte_ul_channel_estimation(PHY_VARS_eNB *phy_vars_eNB, int lte_ul_channel_estimation(PHY_VARS_eNB *phy_vars_eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
module_id_t UE_id, module_id_t UE_id,
uint8_t l, uint8_t l,
uint8_t Ns); uint8_t Ns);
......
...@@ -35,7 +35,7 @@ static int16_t ru_90c[2*128] = {32767, 0,32766, -402,32758, -804,32746, -1206,32 ...@@ -35,7 +35,7 @@ static int16_t ru_90c[2*128] = {32767, 0,32766, -402,32758, -804,32746, -1206,32
#define SCALE 0x3FFF #define SCALE 0x3FFF
int32_t lte_ul_channel_estimation(PHY_VARS_eNB *eNB, int32_t lte_ul_channel_estimation(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
module_id_t UE_id, module_id_t UE_id,
unsigned char l, unsigned char l,
unsigned char Ns) { unsigned char Ns) {
......
...@@ -90,7 +90,7 @@ int16_t find_ulsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type) ...@@ -90,7 +90,7 @@ int16_t find_ulsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type)
void fill_pdcch_order(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,nfapi_dl_config_dci_dl_pdu *pdu) void fill_pdcch_order(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,nfapi_dl_config_dci_dl_pdu *pdu)
{ {
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
uint8_t *dci_pdu = &dci_alloc->dci_pdu[0]; uint8_t *dci_pdu = &dci_alloc->dci_pdu[0];
...@@ -224,7 +224,7 @@ void fill_pdcch_order(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_a ...@@ -224,7 +224,7 @@ void fill_pdcch_order(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_a
proc->frame_tx, proc->subframe_tx, rel8->rnti); proc->frame_tx, proc->subframe_tx, rel8->rnti);
} }
void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,nfapi_dl_config_dci_dl_pdu *pdu) void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,nfapi_dl_config_dci_dl_pdu *pdu)
{ {
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
uint8_t *dci_pdu = &dci_alloc->dci_pdu[0]; uint8_t *dci_pdu = &dci_alloc->dci_pdu[0];
...@@ -1497,7 +1497,7 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t ...@@ -1497,7 +1497,7 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t
} }
void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *dci_alloc,nfapi_dl_config_mpdcch_pdu *pdu) { void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,mDCI_ALLOC_t *dci_alloc,nfapi_dl_config_mpdcch_pdu *pdu) {
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
...@@ -1770,7 +1770,7 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d ...@@ -1770,7 +1770,7 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d
} }
void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,
DCI_ALLOC_t *dci_alloc,nfapi_hi_dci0_dci_pdu *pdu) DCI_ALLOC_t *dci_alloc,nfapi_hi_dci0_dci_pdu *pdu)
{ {
LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms;
......
...@@ -393,7 +393,7 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB, ...@@ -393,7 +393,7 @@ int dlsch_encoding_2threads(PHY_VARS_eNB *eNB,
//start_meas(&eNB->dlsch_turbo_encoding_preperation_stats); //start_meas(&eNB->dlsch_turbo_encoding_preperation_stats);
LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms;
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
unsigned int G; unsigned int G;
unsigned int crc=1; unsigned int crc=1;
......
...@@ -705,7 +705,7 @@ void generate_phich(LTE_DL_FRAME_PARMS *frame_parms, ...@@ -705,7 +705,7 @@ void generate_phich(LTE_DL_FRAME_PARMS *frame_parms,
void generate_phich_top(PHY_VARS_eNB *eNB, void generate_phich_top(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
int16_t amp) int16_t amp)
{ {
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
#include "PHY/LTE_REFSIG/lte_refsig.h" #include "PHY/LTE_REFSIG/lte_refsig.h"
int generate_mbsfn_pilot(PHY_VARS_eNB *eNB, int generate_mbsfn_pilot(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
int32_t **txdataF, int32_t **txdataF,
int16_t amp) int16_t amp)
......
...@@ -83,7 +83,7 @@ void fill_eNB_dlsch_MCH(PHY_VARS_eNB *eNB,int mcs,int ndi,int rvidx) ...@@ -83,7 +83,7 @@ void fill_eNB_dlsch_MCH(PHY_VARS_eNB *eNB,int mcs,int ndi,int rvidx)
} }
void generate_mch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,uint8_t *a) void generate_mch(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,uint8_t *a)
{ {
int G; int G;
......
...@@ -273,7 +273,7 @@ int mch_modulation(int32_t **txdataF, ...@@ -273,7 +273,7 @@ int mch_modulation(int32_t **txdataF,
@param abstraction_flag @param abstraction_flag
*/ */
void generate_mch(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc,uint8_t *a); void generate_mch(PHY_VARS_eNB *phy_vars_eNB,L1_rxtx_proc_t *proc,uint8_t *a);
/** \brief This function generates the frequency-domain pilots (cell-specific downlink reference signals) /** \brief This function generates the frequency-domain pilots (cell-specific downlink reference signals)
@param phy_vars_eNB Pointer to eNB variables @param phy_vars_eNB Pointer to eNB variables
...@@ -317,7 +317,7 @@ int32_t generate_pilots_slot(PHY_VARS_eNB *phy_vars_eNB, ...@@ -317,7 +317,7 @@ int32_t generate_pilots_slot(PHY_VARS_eNB *phy_vars_eNB,
int first_pilot_only); int first_pilot_only);
int32_t generate_mbsfn_pilot(PHY_VARS_eNB *phy_vars_eNB, int32_t generate_mbsfn_pilot(PHY_VARS_eNB *phy_vars_eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
int32_t **txdataF, int32_t **txdataF,
int16_t amp); int16_t amp);
...@@ -410,13 +410,13 @@ void ulsch_extract_rbs_single(int32_t **rxdataF, ...@@ -410,13 +410,13 @@ void ulsch_extract_rbs_single(int32_t **rxdataF,
void fill_dci_and_dlsch(PHY_VARS_eNB *eNB, void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,
int frame, int frame,
int subframe, int subframe,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
DCI_ALLOC_t *dci_alloc, DCI_ALLOC_t *dci_alloc,
nfapi_dl_config_dci_dl_pdu *pdu); nfapi_dl_config_dci_dl_pdu *pdu);
void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *dci_alloc,nfapi_dl_config_mpdcch_pdu *pdu); void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,mDCI_ALLOC_t *dci_alloc,nfapi_dl_config_mpdcch_pdu *pdu);
void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,
nfapi_hi_dci0_dci_pdu *pdu); nfapi_hi_dci0_dci_pdu *pdu);
void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe); void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe);
...@@ -427,7 +427,7 @@ int generate_eNB_ulsch_params_from_rar(PHY_VARS_eNB *eNB, ...@@ -427,7 +427,7 @@ int generate_eNB_ulsch_params_from_rar(PHY_VARS_eNB *eNB,
unsigned char subframe); unsigned char subframe);
int generate_eNB_ulsch_params_from_dci(PHY_VARS_eNB *PHY_vars_eNB, int generate_eNB_ulsch_params_from_dci(PHY_VARS_eNB *PHY_vars_eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
void *dci_pdu, void *dci_pdu,
rnti_t rnti, rnti_t rnti,
DCI_format_t dci_format, DCI_format_t dci_format,
...@@ -466,7 +466,7 @@ void init_transport_channels(uint8_t); ...@@ -466,7 +466,7 @@ void init_transport_channels(uint8_t);
void rx_ulsch(PHY_VARS_eNB *eNB, void rx_ulsch(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
uint8_t UE_id); uint8_t UE_id);
...@@ -487,7 +487,7 @@ int ulsch_decoding_data_all(PHY_VARS_eNB *eNB, ...@@ -487,7 +487,7 @@ int ulsch_decoding_data_all(PHY_VARS_eNB *eNB,
@returns 0 on success @returns 0 on success
*/ */
unsigned int ulsch_decoding(PHY_VARS_eNB *phy_vars_eNB, unsigned int ulsch_decoding(PHY_VARS_eNB *phy_vars_eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
uint8_t UE_id, uint8_t UE_id,
uint8_t control_only_flag, uint8_t control_only_flag,
uint8_t Nbundled, uint8_t Nbundled,
...@@ -520,7 +520,7 @@ int ulsch_decoding_data(PHY_VARS_eNB *eNB, ...@@ -520,7 +520,7 @@ int ulsch_decoding_data(PHY_VARS_eNB *eNB,
int llr8_flag); int llr8_flag);
void generate_phich_top(PHY_VARS_eNB *phy_vars_eNB, void generate_phich_top(PHY_VARS_eNB *phy_vars_eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
int16_t amp); int16_t amp);
......
...@@ -382,7 +382,7 @@ int ulsch_decoding_data_2thread0(td_params* tdp) { ...@@ -382,7 +382,7 @@ int ulsch_decoding_data_2thread0(td_params* tdp) {
extern int oai_exit; extern int oai_exit;
void *td_thread(void *param) { void *td_thread(void *param) {
PHY_VARS_eNB *eNB = ((td_params*)param)->eNB; PHY_VARS_eNB *eNB = ((td_params*)param)->eNB;
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
cpu_set_t cpuset; cpu_set_t cpuset;
CPU_ZERO(&cpuset); CPU_ZERO(&cpuset);
...@@ -412,7 +412,7 @@ void *td_thread(void *param) { ...@@ -412,7 +412,7 @@ void *td_thread(void *param) {
int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) { int ulsch_decoding_data_2thread(PHY_VARS_eNB *eNB,int UE_id,int harq_pid,int llr8_flag) {
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
unsigned int r,r_offset=0,Kr,Kr_bytes; unsigned int r,r_offset=0,Kr,Kr_bytes;
uint8_t crc_type; uint8_t crc_type;
int offset = 0; int offset = 0;
...@@ -762,7 +762,7 @@ static inline unsigned int lte_gold_unscram(unsigned int *x1, unsigned int *x2, ...@@ -762,7 +762,7 @@ static inline unsigned int lte_gold_unscram(unsigned int *x1, unsigned int *x2,
} }
unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,
uint8_t UE_id, uint8_t UE_id,
uint8_t control_only_flag, uint8_t control_only_flag,
uint8_t Nbundled, uint8_t Nbundled,
......
...@@ -1104,7 +1104,7 @@ void init_ulsch_power_LUT(void) { ...@@ -1104,7 +1104,7 @@ void init_ulsch_power_LUT(void) {
} }
void rx_ulsch(PHY_VARS_eNB *eNB, void rx_ulsch(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
uint8_t UE_id) { uint8_t UE_id) {
...@@ -1305,7 +1305,7 @@ void rx_ulsch(PHY_VARS_eNB *eNB, ...@@ -1305,7 +1305,7 @@ void rx_ulsch(PHY_VARS_eNB *eNB,
} }
void rx_ulsch_emul(PHY_VARS_eNB *eNB, void rx_ulsch_emul(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
uint8_t UE_index) uint8_t UE_index)
{ {
LOG_I(PHY,"[PHY] EMUL eNB %d rx_ulsch_emul : subframe %d, UE_index %d\n",eNB->Mod_id,proc->subframe_rx,UE_index); LOG_I(PHY,"[PHY] EMUL eNB %d rx_ulsch_emul : subframe %d, UE_index %d\n",eNB->Mod_id,proc->subframe_rx,UE_index);
......
...@@ -748,7 +748,7 @@ typedef struct { ...@@ -748,7 +748,7 @@ typedef struct {
pthread_cond_t cond_RUs; pthread_cond_t cond_RUs;
/// mutex for RXn-TXnp4 processing thread /// mutex for RXn-TXnp4 processing thread
pthread_mutex_t mutex_RUs; pthread_mutex_t mutex_RUs;
} eNB_rxtx_proc_t; } L1_rxtx_proc_t;
typedef struct { typedef struct {
struct PHY_VARS_eNB_s *eNB; struct PHY_VARS_eNB_s *eNB;
...@@ -780,7 +780,7 @@ typedef struct { ...@@ -780,7 +780,7 @@ typedef struct {
} te_params; } te_params;
/// Context data structure for eNB subframe processing /// Context data structure for eNB subframe processing
typedef struct eNB_proc_t_s { typedef struct L1_proc_t_s {
/// Component Carrier index /// Component Carrier index
uint8_t CC_id; uint8_t CC_id;
/// thread index /// thread index
...@@ -919,12 +919,12 @@ typedef struct eNB_proc_t_s { ...@@ -919,12 +919,12 @@ typedef struct eNB_proc_t_s {
/// parameters for turbo-encoding worker thread /// parameters for turbo-encoding worker thread
te_params tep[3]; te_params tep[3];
/// set of scheduling variables RXn-TXnp4 threads /// set of scheduling variables RXn-TXnp4 threads
eNB_rxtx_proc_t L1_proc,L1_proc_tx; L1_rxtx_proc_t L1_proc,L1_proc_tx;
/// stats thread pthread descriptor /// stats thread pthread descriptor
pthread_t process_stats_thread; pthread_t process_stats_thread;
/// for waking up tx procedure /// for waking up tx procedure
RU_proc_t *ru_proc; RU_proc_t *ru_proc;
} eNB_proc_t; } L1_proc_t;
...@@ -993,7 +993,7 @@ typedef struct PHY_VARS_eNB_s { ...@@ -993,7 +993,7 @@ typedef struct PHY_VARS_eNB_s {
module_id_t Mod_id; module_id_t Mod_id;
uint8_t CC_id; uint8_t CC_id;
uint8_t configured; uint8_t configured;
eNB_proc_t proc; L1_proc_t proc;
int single_thread_flag; int single_thread_flag;
int abstraction_flag; int abstraction_flag;
int num_RU; int num_RU;
......
...@@ -48,7 +48,7 @@ extern uint8_t nfapi_mode; ...@@ -48,7 +48,7 @@ extern uint8_t nfapi_mode;
void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB, void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB,
int frame, int subframe, int frame, int subframe,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
nfapi_dl_config_request_pdu_t *dl_config_pdu) nfapi_dl_config_request_pdu_t *dl_config_pdu)
{ {
int idx = subframe&1; int idx = subframe&1;
...@@ -66,7 +66,7 @@ void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB, ...@@ -66,7 +66,7 @@ void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB,
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB, void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
nfapi_dl_config_request_pdu_t *dl_config_pdu) nfapi_dl_config_request_pdu_t *dl_config_pdu)
{ {
int idx = proc->subframe_tx&1; int idx = proc->subframe_tx&1;
...@@ -81,7 +81,7 @@ void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB, ...@@ -81,7 +81,7 @@ void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB,
#endif #endif
void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,
nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu) nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu)
{ {
int idx = subframe&1; int idx = subframe&1;
...@@ -93,7 +93,7 @@ void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_r ...@@ -93,7 +93,7 @@ void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_r
fill_dci0(eNB,frame,subframe,proc,&pdcch_vars->dci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->dci_pdu); fill_dci0(eNB,frame,subframe,proc,&pdcch_vars->dci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->dci_pdu);
} }
void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,
nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu) nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu)
{ {
LTE_eNB_PHICH *phich = &eNB->phich_vars[subframe&1]; LTE_eNB_PHICH *phich = &eNB->phich_vars[subframe&1];
...@@ -112,7 +112,7 @@ void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rx ...@@ -112,7 +112,7 @@ void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rx
} }
void handle_nfapi_bch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, void handle_nfapi_bch_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,
nfapi_dl_config_request_pdu_t *dl_config_pdu, nfapi_dl_config_request_pdu_t *dl_config_pdu,
uint8_t *sdu) uint8_t *sdu)
{ {
...@@ -139,7 +139,7 @@ extern uint32_t localRIV2alloc_LUT100_2[6000]; ...@@ -139,7 +139,7 @@ extern uint32_t localRIV2alloc_LUT100_2[6000];
extern uint32_t localRIV2alloc_LUT100_3[6000]; extern uint32_t localRIV2alloc_LUT100_3[6000];
#endif #endif
void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,
nfapi_dl_config_request_pdu_t *dl_config_pdu, nfapi_dl_config_request_pdu_t *dl_config_pdu,
uint8_t codeword_index, uint8_t codeword_index,
uint8_t *sdu) uint8_t *sdu)
...@@ -569,7 +569,7 @@ void handle_srs_pdu(PHY_VARS_eNB *eNB,nfapi_ul_config_request_pdu_t *ul_config_p ...@@ -569,7 +569,7 @@ void handle_srs_pdu(PHY_VARS_eNB *eNB,nfapi_ul_config_request_pdu_t *ul_config_p
AssertFatal(i<NUMBER_OF_UE_MAX,"No room for SRS processing\n"); AssertFatal(i<NUMBER_OF_UE_MAX,"No room for SRS processing\n");
} }
void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,
nfapi_ul_config_request_pdu_t *ul_config_pdu, nfapi_ul_config_request_pdu_t *ul_config_pdu,
uint16_t frame,uint8_t subframe,uint8_t srs_present) uint16_t frame,uint8_t subframe,uint8_t srs_present)
{ {
...@@ -647,7 +647,7 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, ...@@ -647,7 +647,7 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
void schedule_response(Sched_Rsp_t *Sched_INFO) void schedule_response(Sched_Rsp_t *Sched_INFO)
{ {
PHY_VARS_eNB *eNB; PHY_VARS_eNB *eNB;
eNB_rxtx_proc_t *proc; L1_rxtx_proc_t *proc;
// copy data from L2 interface into L1 structures // copy data from L2 interface into L1 structures
module_id_t Mod_id = Sched_INFO->module_id; module_id_t Mod_id = Sched_INFO->module_id;
uint8_t CC_id = Sched_INFO->CC_id; uint8_t CC_id = Sched_INFO->CC_id;
......
...@@ -43,17 +43,17 @@ void fill_ulsch_cqi_indication(PHY_VARS_eNB *eNB,uint16_t frame,uint8_t subframe ...@@ -43,17 +43,17 @@ void fill_ulsch_cqi_indication(PHY_VARS_eNB *eNB,uint16_t frame,uint8_t subframe
void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,uint32_t stat); void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,uint32_t stat);
void fill_rx_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe); void fill_rx_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe);
void fill_crc_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe,uint8_t crc_flag); void fill_crc_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe,uint8_t crc_flag);
void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc,nfapi_dl_config_request_pdu_t *dl_config_pdu); void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,nfapi_dl_config_request_pdu_t *dl_config_pdu);
void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,nfapi_dl_config_request_pdu_t *dl_config_pdu); void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,nfapi_dl_config_request_pdu_t *dl_config_pdu);
void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,
nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu); nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu);
void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,
nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu); nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu);
void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_proc_t *proc,
nfapi_dl_config_request_pdu_t *dl_config_pdu, nfapi_dl_config_request_pdu_t *dl_config_pdu,
uint8_t codeword_index, uint8_t codeword_index,
uint8_t *sdu); uint8_t *sdu);
void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc,
nfapi_ul_config_request_pdu_t *ul_config_pdu, nfapi_ul_config_request_pdu_t *ul_config_pdu,
uint16_t frame,uint8_t subframe,uint8_t srs_present); uint16_t frame,uint8_t subframe,uint8_t srs_present);
......
...@@ -133,7 +133,7 @@ lte_subframe_t get_subframe_direction(uint8_t Mod_id,uint8_t CC_id,uint8_t subfr ...@@ -133,7 +133,7 @@ lte_subframe_t get_subframe_direction(uint8_t Mod_id,uint8_t CC_id,uint8_t subfr
} }
void pmch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) { void pmch_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc) {
#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0))
...@@ -312,7 +312,7 @@ void common_signal_procedures (PHY_VARS_eNB *eNB,int frame, int subframe) { ...@@ -312,7 +312,7 @@ void common_signal_procedures (PHY_VARS_eNB *eNB,int frame, int subframe) {
void pdsch_procedures(PHY_VARS_eNB *eNB, void pdsch_procedures(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
int harq_pid, int harq_pid,
LTE_eNB_DLSCH_t *dlsch, LTE_eNB_DLSCH_t *dlsch,
LTE_eNB_DLSCH_t *dlsch1, LTE_eNB_DLSCH_t *dlsch1,
...@@ -463,7 +463,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, ...@@ -463,7 +463,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB,
void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
int do_meas) int do_meas)
{ {
int frame=proc->frame_tx; int frame=proc->frame_tx;
...@@ -650,7 +650,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, ...@@ -650,7 +650,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB,
} }
void srs_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) { void srs_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc) {
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
const int subframe = proc->subframe_rx; const int subframe = proc->subframe_rx;
...@@ -713,7 +713,7 @@ void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,u ...@@ -713,7 +713,7 @@ void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,u
pthread_mutex_unlock(&eNB->UL_INFO_mutex); pthread_mutex_unlock(&eNB->UL_INFO_mutex);
} }
void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) void uci_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc)
{ {
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
uint8_t SR_payload = 0,pucch_b0b1[4][2]= {{0,0},{0,0},{0,0},{0,0}},harq_ack[4]={0,0,0,0}; uint8_t SR_payload = 0,pucch_b0b1[4][2]= {{0,0},{0,0},{0,0},{0,0}},harq_ack[4]={0,0,0,0};
...@@ -1246,7 +1246,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) ...@@ -1246,7 +1246,7 @@ void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc)
} }
} }
void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) void pusch_procedures(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc)
{ {
uint32_t ret=0,i; uint32_t ret=0,i;
uint32_t harq_pid; uint32_t harq_pid;
...@@ -1468,7 +1468,7 @@ extern void *td_thread(void*); ...@@ -1468,7 +1468,7 @@ extern void *td_thread(void*);
void init_td_thread(PHY_VARS_eNB *eNB) { void init_td_thread(PHY_VARS_eNB *eNB) {
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
proc->tdp.eNB = eNB; proc->tdp.eNB = eNB;
proc->instance_cnt_td = -1; proc->instance_cnt_td = -1;
...@@ -1482,7 +1482,7 @@ void init_td_thread(PHY_VARS_eNB *eNB) { ...@@ -1482,7 +1482,7 @@ void init_td_thread(PHY_VARS_eNB *eNB) {
} }
void kill_td_thread(PHY_VARS_eNB *eNB) { void kill_td_thread(PHY_VARS_eNB *eNB) {
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
proc->instance_cnt_td = 0; proc->instance_cnt_td = 0;
pthread_cond_signal(&proc->cond_td); pthread_cond_signal(&proc->cond_td);
...@@ -1495,7 +1495,7 @@ extern void *te_thread(void*); ...@@ -1495,7 +1495,7 @@ extern void *te_thread(void*);
void init_te_thread(PHY_VARS_eNB *eNB) { void init_te_thread(PHY_VARS_eNB *eNB) {
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
for(int i=0; i<3 ;i++){ for(int i=0; i<3 ;i++){
proc->tep[i].eNB = eNB; proc->tep[i].eNB = eNB;
...@@ -1511,7 +1511,7 @@ void init_te_thread(PHY_VARS_eNB *eNB) { ...@@ -1511,7 +1511,7 @@ void init_te_thread(PHY_VARS_eNB *eNB) {
} }
void kill_te_thread(PHY_VARS_eNB *eNB) { void kill_te_thread(PHY_VARS_eNB *eNB) {
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
for(int i=0; i<3 ;i++){ for(int i=0; i<3 ;i++){
proc->tep[i].instance_cnt_te = 0; proc->tep[i].instance_cnt_te = 0;
...@@ -2027,7 +2027,7 @@ void fill_crc_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe,uint ...@@ -2027,7 +2027,7 @@ void fill_crc_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe,uint
pthread_mutex_unlock(&eNB->UL_INFO_mutex); pthread_mutex_unlock(&eNB->UL_INFO_mutex);
} }
void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc)
{ {
//RX processing for ue-specific resources (i //RX processing for ue-specific resources (i
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
......
...@@ -180,7 +180,7 @@ uint8_t is_SR_TXOp(PHY_VARS_UE *phy_vars_ue,UE_rxtx_proc_t *proc,uint8_t eNB_id) ...@@ -180,7 +180,7 @@ uint8_t is_SR_TXOp(PHY_VARS_UE *phy_vars_ue,UE_rxtx_proc_t *proc,uint8_t eNB_id)
@param UE_id ID of UE which may be issuing the SR @param UE_id ID of UE which may be issuing the SR
@returns 1 if TXOp is active. @returns 1 if TXOp is active.
*/ */
uint8_t is_SR_subframe(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc,uint8_t UE_id); uint8_t is_SR_subframe(PHY_VARS_eNB *phy_vars_eNB,L1_rxtx_proc_t *proc,uint8_t UE_id);
/*! \brief Gives the UL subframe corresponding to a PDDCH order in subframe n /*! \brief Gives the UL subframe corresponding to a PDDCH order in subframe n
@param frame_parms Pointer to DL frame parameters @param frame_parms Pointer to DL frame parameters
...@@ -247,7 +247,7 @@ TDD, this routine computes the procedure described in Section 10.1 of 36.213 (th ...@@ -247,7 +247,7 @@ TDD, this routine computes the procedure described in Section 10.1 of 36.213 (th
@param n1_pucch3 Pointer to n1_pucch3 @param n1_pucch3 Pointer to n1_pucch3
*/ */
void get_n1_pucch_eNB(PHY_VARS_eNB *phy_vars_eNB, void get_n1_pucch_eNB(PHY_VARS_eNB *phy_vars_eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
uint8_t UE_id, uint8_t UE_id,
int16_t *n1_pucch0, int16_t *n1_pucch0,
int16_t *n1_pucch1, int16_t *n1_pucch1,
...@@ -266,7 +266,7 @@ void get_n1_pucch_eNB(PHY_VARS_eNB *phy_vars_eNB, ...@@ -266,7 +266,7 @@ void get_n1_pucch_eNB(PHY_VARS_eNB *phy_vars_eNB,
*/ */
void process_HARQ_feedback(uint8_t UE_id, void process_HARQ_feedback(uint8_t UE_id,
PHY_VARS_eNB *phy_vars_eNB, PHY_VARS_eNB *phy_vars_eNB,
eNB_rxtx_proc_t *proc, L1_rxtx_proc_t *proc,
uint8_t pusch_flag, uint8_t pusch_flag,
uint8_t *pucch_payload, uint8_t *pucch_payload,
uint8_t pucch_sel, uint8_t pucch_sel,
......
...@@ -92,13 +92,13 @@ enum openair_HARQ_TYPE { ...@@ -92,13 +92,13 @@ enum openair_HARQ_TYPE {
@param abstraction_flag Indicator of PHY abstraction @param abstraction_flag Indicator of PHY abstraction
@param do_meas Do inline timing measurement @param do_meas Do inline timing measurement
*/ */
void phy_procedures_eNB_TX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc,int do_meas); void phy_procedures_eNB_TX(PHY_VARS_eNB *phy_vars_eNB,L1_rxtx_proc_t *proc,int do_meas);
/*! \brief Scheduling for eNB RX UE-specific procedures in normal subframes. /*! \brief Scheduling for eNB RX UE-specific procedures in normal subframes.
@param phy_vars_eNB Pointer to eNB variables on which to act @param phy_vars_eNB Pointer to eNB variables on which to act
@param proc Pointer to RXn-TXnp4 proc information @param proc Pointer to RXn-TXnp4 proc information
*/ */
void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc); void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *phy_vars_eNB,L1_rxtx_proc_t *proc);
/*! \brief Scheduling for eNB TX procedures in TDD S-subframes. /*! \brief Scheduling for eNB TX procedures in TDD S-subframes.
@param phy_vars_eNB Pointer to eNB variables on which to act @param phy_vars_eNB Pointer to eNB variables on which to act
...@@ -110,7 +110,7 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *pr ...@@ -110,7 +110,7 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *pr
@param phy_vars_eNB Pointer to eNB variables on which to act @param phy_vars_eNB Pointer to eNB variables on which to act
@param abstraction_flag Indicator of PHY abstraction @param abstraction_flag Indicator of PHY abstraction
*/ */
void phy_procedures_eNB_common_RX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc); void phy_procedures_eNB_common_RX(PHY_VARS_eNB *phy_vars_eNB,L1_rxtx_proc_t *proc);
/*! \brief Scheduling for eNB TX procedures in TDD S-subframes. /*! \brief Scheduling for eNB TX procedures in TDD S-subframes.
@param phy_vars_eNB Pointer to eNB variables on which to act @param phy_vars_eNB Pointer to eNB variables on which to act
...@@ -121,7 +121,7 @@ void phy_procedures_eNB_S_TX(PHY_VARS_eNB *phy_vars_eNB); ...@@ -121,7 +121,7 @@ void phy_procedures_eNB_S_TX(PHY_VARS_eNB *phy_vars_eNB);
/*! \brief Scheduling for eNB RX procedures in TDD S-subframes. /*! \brief Scheduling for eNB RX procedures in TDD S-subframes.
@param phy_vars_eNB Pointer to eNB variables on which to act @param phy_vars_eNB Pointer to eNB variables on which to act
*/ */
void phy_procedures_eNB_S_RX(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc); void phy_procedures_eNB_S_RX(PHY_VARS_eNB *phy_vars_eNB,L1_rxtx_proc_t *proc);
/*! \brief Scheduling for eNB PRACH RX procedures /*! \brief Scheduling for eNB PRACH RX procedures
@param phy_vars_eNB Pointer to eNB variables on which to act @param phy_vars_eNB Pointer to eNB variables on which to act
...@@ -186,7 +186,7 @@ void ra_failed(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index); ...@@ -186,7 +186,7 @@ void ra_failed(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index);
@param UE_id ID of UE which may be issuing the SR @param UE_id ID of UE which may be issuing the SR
@returns 1 if TXOp is active. @returns 1 if TXOp is active.
*/ */
uint8_t is_SR_subframe(PHY_VARS_eNB *phy_vars_eNB,eNB_rxtx_proc_t *proc,uint8_t UE_id); uint8_t is_SR_subframe(PHY_VARS_eNB *phy_vars_eNB,L1_rxtx_proc_t *proc,uint8_t UE_id);
int8_t find_ue_dlsch(uint16_t rnti, PHY_VARS_eNB *phy_vars_eNB); int8_t find_ue_dlsch(uint16_t rnti, PHY_VARS_eNB *phy_vars_eNB);
int8_t find_ue_ulsch(uint16_t rnti, PHY_VARS_eNB *phy_vars_eNB); int8_t find_ue_ulsch(uint16_t rnti, PHY_VARS_eNB *phy_vars_eNB);
......
...@@ -1443,7 +1443,7 @@ int main(int argc, char **argv) ...@@ -1443,7 +1443,7 @@ int main(int argc, char **argv)
eNB->UE_stats[1].DL_pmi_single = 0; eNB->UE_stats[1].DL_pmi_single = 0;
} }
eNB_rxtx_proc_t *proc_eNB = &eNB->proc.proc_rxtx[0];//UE->current_thread_id[subframe]]; L1_rxtx_proc_t *proc_eNB = &eNB->proc.proc_rxtx[0];//UE->current_thread_id[subframe]];
if (input_fd==NULL) { if (input_fd==NULL) {
......
...@@ -156,7 +156,7 @@ void init_eNB(int,int); ...@@ -156,7 +156,7 @@ void init_eNB(int,int);
void stop_eNB(int nb_inst); void stop_eNB(int nb_inst);
int wakeup_tx(PHY_VARS_eNB *eNB); int wakeup_tx(PHY_VARS_eNB *eNB);
int wakeup_txfh(eNB_rxtx_proc_t *proc,PHY_VARS_eNB *eNB); int wakeup_txfh(L1_rxtx_proc_t *proc,PHY_VARS_eNB *eNB);
void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe); void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe);
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe); void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe);
...@@ -172,7 +172,7 @@ extern void add_subframe(uint16_t *frameP, uint16_t *subframeP, int offset); ...@@ -172,7 +172,7 @@ extern void add_subframe(uint16_t *frameP, uint16_t *subframeP, int offset);
#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)
static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_name) { static inline int rxtx(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, char *thread_name) {
start_meas(&softmodem_stats_rxtx_sf); start_meas(&softmodem_stats_rxtx_sf);
LOG_I(PHY,"ENTERED rxtx\n"); LOG_I(PHY,"ENTERED rxtx\n");
if (nfapi_mode == 1) { if (nfapi_mode == 1) {
...@@ -332,8 +332,8 @@ LOG_I(PHY,"ENTERED rxtx\n"); ...@@ -332,8 +332,8 @@ LOG_I(PHY,"ENTERED rxtx\n");
static void* L1_thread_tx(void* param) { static void* L1_thread_tx(void* param) {
eNB_proc_t *eNB_proc = (eNB_proc_t*)param; L1_proc_t *eNB_proc = (L1_proc_t*)param;
eNB_rxtx_proc_t *proc = &eNB_proc->L1_proc_tx; L1_rxtx_proc_t *proc = &eNB_proc->L1_proc_tx;
PHY_VARS_eNB *eNB = RC.eNB[0][proc->CC_id]; PHY_VARS_eNB *eNB = RC.eNB[0][proc->CC_id];
LOG_I(PHY,"ENTERED L1_thread_tx\n"); LOG_I(PHY,"ENTERED L1_thread_tx\n");
char thread_name[100]; char thread_name[100];
...@@ -374,22 +374,22 @@ static void* L1_thread_tx(void* param) { ...@@ -374,22 +374,22 @@ static void* L1_thread_tx(void* param) {
/*! /*!
* \brief The RX UE-specific and TX thread of eNB. * \brief The RX UE-specific and TX thread of eNB.
* \param param is a \ref eNB_proc_t structure which contains the info what to process. * \param param is a \ref L1_proc_t structure which contains the info what to process.
* \returns a pointer to an int. The storage is not on the heap and must not be freed. * \returns a pointer to an int. The storage is not on the heap and must not be freed.
*/ */
static void* L1_thread( void* param ) { static void* L1_thread( void* param ) {
static int eNB_thread_rxtx_status; static int eNB_thread_rxtx_status;
//eNB_proc_t *eNB_proc = (eNB_proc_t*)param; //L1_proc_t *eNB_proc = (L1_proc_t*)param;
eNB_rxtx_proc_t *proc; L1_rxtx_proc_t *proc;
LOG_I(PHY,"ENTERED L1_thread\n"); LOG_I(PHY,"ENTERED L1_thread\n");
// Working // Working
if(nfapi_mode ==2){ if(nfapi_mode ==2){
proc = (eNB_rxtx_proc_t*)param; proc = (L1_rxtx_proc_t*)param;
} }
else{ else{
eNB_proc_t *eNB_proc = (eNB_proc_t*)param; L1_proc_t *eNB_proc = (L1_proc_t*)param;
proc = &eNB_proc->L1_proc; proc = &eNB_proc->L1_proc;
} }
...@@ -460,8 +460,8 @@ LOG_I(PHY,"ENTERED L1_thread\n"); ...@@ -460,8 +460,8 @@ LOG_I(PHY,"ENTERED L1_thread\n");
void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t *ru) void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t *ru)
{ {
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
eNB_rxtx_proc_t *L1_proc = &proc->L1_proc; L1_rxtx_proc_t *L1_proc = &proc->L1_proc;
LTE_DL_FRAME_PARMS *fp = &ru->frame_parms; LTE_DL_FRAME_PARMS *fp = &ru->frame_parms;
RU_proc_t *ru_proc=&ru->proc; RU_proc_t *ru_proc=&ru->proc;
...@@ -484,7 +484,7 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t ...@@ -484,7 +484,7 @@ void eNB_top(PHY_VARS_eNB *eNB, int frame_rx, int subframe_rx, char *string,RU_t
} }
} }
int wakeup_txfh(eNB_rxtx_proc_t *proc,PHY_VARS_eNB *eNB) { int wakeup_txfh(L1_rxtx_proc_t *proc,PHY_VARS_eNB *eNB) {
RU_proc_t *ru_proc; RU_proc_t *ru_proc;
struct timespec wait; struct timespec wait;
...@@ -539,14 +539,14 @@ int wakeup_txfh(eNB_rxtx_proc_t *proc,PHY_VARS_eNB *eNB) { ...@@ -539,14 +539,14 @@ int wakeup_txfh(eNB_rxtx_proc_t *proc,PHY_VARS_eNB *eNB) {
} }
int wakeup_tx(PHY_VARS_eNB *eNB) { int wakeup_tx(PHY_VARS_eNB *eNB) {
eNB_proc_t *proc=&eNB->proc; L1_proc_t *proc=&eNB->proc;
/* LTE_DL_FRAME_PARMS *fp; /* LTE_DL_FRAME_PARMS *fp;
fp = &eNB->frame_parms; fp = &eNB->frame_parms;
if ((fp->frame_type == TDD) && (subframe_select(fp,proc_rxtx0->subframe_tx)==SF_UL)) return; if ((fp->frame_type == TDD) && (subframe_select(fp,proc_rxtx0->subframe_tx)==SF_UL)) return;
*/ */
eNB_rxtx_proc_t *L1_proc_tx = &proc->L1_proc_tx; L1_rxtx_proc_t *L1_proc_tx = &proc->L1_proc_tx;
eNB_rxtx_proc_t *L1_proc = &proc->L1_proc; L1_rxtx_proc_t *L1_proc = &proc->L1_proc;
struct timespec wait; struct timespec wait;
...@@ -586,9 +586,9 @@ if ((fp->frame_type == TDD) && (subframe_select(fp,proc_rxtx0->subframe_tx)==SF_ ...@@ -586,9 +586,9 @@ if ((fp->frame_type == TDD) && (subframe_select(fp,proc_rxtx0->subframe_tx)==SF_
int wakeup_rxtx(PHY_VARS_eNB *eNB,RU_t *ru) { int wakeup_rxtx(PHY_VARS_eNB *eNB,RU_t *ru) {
eNB_proc_t *proc=&eNB->proc; L1_proc_t *proc=&eNB->proc;
RU_proc_t *ru_proc=&ru->proc; RU_proc_t *ru_proc=&ru->proc;
eNB_rxtx_proc_t *L1_proc=&proc->L1_proc; L1_rxtx_proc_t *L1_proc=&proc->L1_proc;
LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms;
LOG_I(PHY,"ENTERED wakeup_rxtx\n"); LOG_I(PHY,"ENTERED wakeup_rxtx\n");
...@@ -640,7 +640,7 @@ int wakeup_rxtx(PHY_VARS_eNB *eNB,RU_t *ru) { ...@@ -640,7 +640,7 @@ int wakeup_rxtx(PHY_VARS_eNB *eNB,RU_t *ru) {
void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) {
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
int i; int i;
...@@ -702,7 +702,7 @@ void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { ...@@ -702,7 +702,7 @@ void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) {
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) {
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms;
int i; int i;
...@@ -766,7 +766,7 @@ void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { ...@@ -766,7 +766,7 @@ void wakeup_prach_eNB_br(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) {
/*! /*!
* \brief The prach receive thread of eNB. * \brief The prach receive thread of eNB.
* \param param is a \ref eNB_proc_t structure which contains the info what to process. * \param param is a \ref L1_proc_t structure which contains the info what to process.
* \returns a pointer to an int. The storage is not on the heap and must not be freed. * \returns a pointer to an int. The storage is not on the heap and must not be freed.
*/ */
static void* eNB_thread_prach( void* param ) { static void* eNB_thread_prach( void* param ) {
...@@ -774,7 +774,7 @@ static void* eNB_thread_prach( void* param ) { ...@@ -774,7 +774,7 @@ static void* eNB_thread_prach( void* param ) {
PHY_VARS_eNB *eNB= (PHY_VARS_eNB *)param; PHY_VARS_eNB *eNB= (PHY_VARS_eNB *)param;
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
// set default return value // set default return value
eNB_thread_prach_status = 0; eNB_thread_prach_status = 0;
...@@ -809,7 +809,7 @@ static void* eNB_thread_prach( void* param ) { ...@@ -809,7 +809,7 @@ static void* eNB_thread_prach( void* param ) {
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
/*! /*!
* \brief The prach receive thread of eNB for BL/CE UEs. * \brief The prach receive thread of eNB for BL/CE UEs.
* \param param is a \ref eNB_proc_t structure which contains the info what to process. * \param param is a \ref L1_proc_t structure which contains the info what to process.
* \returns a pointer to an int. The storage is not on the heap and must not be freed. * \returns a pointer to an int. The storage is not on the heap and must not be freed.
*/ */
static void* eNB_thread_prach_br( void* param ) { static void* eNB_thread_prach_br( void* param ) {
...@@ -817,7 +817,7 @@ static void* eNB_thread_prach_br( void* param ) { ...@@ -817,7 +817,7 @@ static void* eNB_thread_prach_br( void* param ) {
PHY_VARS_eNB *eNB= (PHY_VARS_eNB *)param; PHY_VARS_eNB *eNB= (PHY_VARS_eNB *)param;
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
// set default return value // set default return value
eNB_thread_prach_status = 0; eNB_thread_prach_status = 0;
...@@ -888,8 +888,8 @@ void init_eNB_proc(int inst) { ...@@ -888,8 +888,8 @@ void init_eNB_proc(int inst) {
/*int i=0;*/ /*int i=0;*/
int CC_id; int CC_id;
PHY_VARS_eNB *eNB; PHY_VARS_eNB *eNB;
eNB_proc_t *proc; L1_proc_t *proc;
eNB_rxtx_proc_t *L1_proc, *L1_proc_tx; L1_rxtx_proc_t *L1_proc, *L1_proc_tx;
pthread_attr_t *attr0=NULL,*attr1=NULL,*attr_prach=NULL; pthread_attr_t *attr0=NULL,*attr1=NULL,*attr_prach=NULL;
#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0))
pthread_attr_t *attr_prach_br=NULL; pthread_attr_t *attr_prach_br=NULL;
...@@ -996,7 +996,7 @@ void init_eNB_proc(int inst) { ...@@ -996,7 +996,7 @@ void init_eNB_proc(int inst) {
if (eNB->node_timing == synch_to_ext_device) { //master if (eNB->node_timing == synch_to_ext_device) { //master
eNB->proc.num_slaves = MAX_NUM_CCs-1; eNB->proc.num_slaves = MAX_NUM_CCs-1;
eNB->proc.slave_proc = (eNB_proc_t**)malloc(eNB->proc.num_slaves*sizeof(eNB_proc_t*)); eNB->proc.slave_proc = (L1_proc_t**)malloc(eNB->proc.num_slaves*sizeof(L1_proc_t*));
for (i=0; i< eNB->proc.num_slaves; i++) { for (i=0; i< eNB->proc.num_slaves; i++) {
if (i < CC_id) eNB->proc.slave_proc[i] = &(PHY_vars_eNB_g[inst][i]->proc); if (i < CC_id) eNB->proc.slave_proc[i] = &(PHY_vars_eNB_g[inst][i]->proc);
...@@ -1023,8 +1023,8 @@ void kill_eNB_proc(int inst) { ...@@ -1023,8 +1023,8 @@ void kill_eNB_proc(int inst) {
int *status; int *status;
PHY_VARS_eNB *eNB; PHY_VARS_eNB *eNB;
eNB_proc_t *proc; L1_proc_t *proc;
eNB_rxtx_proc_t *L1_proc, *L1_proc_tx; L1_rxtx_proc_t *L1_proc, *L1_proc_tx;
for (int CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) { for (int CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
eNB=RC.eNB[inst][CC_id]; eNB=RC.eNB[inst][CC_id];
......
...@@ -820,7 +820,7 @@ void tx_rf(RU_t *ru) { ...@@ -820,7 +820,7 @@ void tx_rf(RU_t *ru) {
/*! /*!
* \brief The Asynchronous RX/TX FH thread of RAU/RCC/eNB/RRU. * \brief The Asynchronous RX/TX FH thread of RAU/RCC/eNB/RRU.
* This handles the RX FH for an asynchronous RRU/UE * This handles the RX FH for an asynchronous RRU/UE
* \param param is a \ref eNB_proc_t structure which contains the info what to process. * \param param is a \ref L1_proc_t structure which contains the info what to process.
* \returns a pointer to an int. The storage is not on the heap and must not be freed. * \returns a pointer to an int. The storage is not on the heap and must not be freed.
*/ */
static void* ru_thread_asynch_rxtx( void* param ) { static void* ru_thread_asynch_rxtx( void* param ) {
...@@ -1140,7 +1140,7 @@ void wakeup_L1s(RU_t *ru) { ...@@ -1140,7 +1140,7 @@ void wakeup_L1s(RU_t *ru) {
int i; int i;
PHY_VARS_eNB **eNB_list = ru->eNB_list; PHY_VARS_eNB **eNB_list = ru->eNB_list;
PHY_VARS_eNB *eNB=eNB_list[0]; PHY_VARS_eNB *eNB=eNB_list[0];
eNB_proc_t *proc = &eNB->proc; L1_proc_t *proc = &eNB->proc;
RU_proc_t *ruproc = &ru->proc; RU_proc_t *ruproc = &ru->proc;
struct timespec t; struct timespec t;
LOG_D(PHY,"wakeup_eNBs (num %d) for RU %d (state %s)ru->eNB_top:%p\n",ru->num_eNB,ru->idx, ru_states[ru->state],ru->eNB_top); LOG_D(PHY,"wakeup_eNBs (num %d) for RU %d (state %s)ru->eNB_top:%p\n",ru->num_eNB,ru->idx, ru_states[ru->state],ru->eNB_top);
...@@ -1487,8 +1487,8 @@ static void* ru_thread_tx( void* param ) { ...@@ -1487,8 +1487,8 @@ static void* ru_thread_tx( void* param ) {
RU_t *ru = (RU_t*)param; RU_t *ru = (RU_t*)param;
RU_proc_t *proc = &ru->proc; RU_proc_t *proc = &ru->proc;
PHY_VARS_eNB *eNB; PHY_VARS_eNB *eNB;
eNB_proc_t *eNB_proc; L1_proc_t *eNB_proc;
eNB_rxtx_proc_t *L1_proc; L1_rxtx_proc_t *L1_proc;
cpu_set_t cpuset; cpu_set_t cpuset;
CPU_ZERO(&cpuset); CPU_ZERO(&cpuset);
...@@ -1993,7 +1993,7 @@ void* pre_scd_thread( void* param ){ ...@@ -1993,7 +1993,7 @@ void* pre_scd_thread( void* param ){
#ifdef PHY_TX_THREAD #ifdef PHY_TX_THREAD
/*! /*!
* \brief The phy tx thread of eNB. * \brief The phy tx thread of eNB.
* \param param is a \ref eNB_proc_t structure which contains the info what to process. * \param param is a \ref L1_proc_t structure which contains the info what to process.
* \returns a pointer to an int. The storage is not on the heap and must not be freed. * \returns a pointer to an int. The storage is not on the heap and must not be freed.
*/ */
static void* eNB_thread_phy_tx( void* param ) { static void* eNB_thread_phy_tx( void* param ) {
...@@ -2004,7 +2004,7 @@ static void* eNB_thread_phy_tx( void* param ) { ...@@ -2004,7 +2004,7 @@ static void* eNB_thread_phy_tx( void* param ) {
RU_proc_t *proc = &ru->proc; RU_proc_t *proc = &ru->proc;
PHY_VARS_eNB **eNB_list = ru->eNB_list; PHY_VARS_eNB **eNB_list = ru->eNB_list;
eNB_rxtx_proc_t L1_proc; L1_rxtx_proc_t L1_proc;
// set default return value // set default return value
eNB_thread_phy_tx_status = 0; eNB_thread_phy_tx_status = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment