Commit 8eb9d0b4 authored by hardy's avatar hardy

Merge remote-tracking branch 'origin/fixes-mac-sched-nfapi' into integration_2020_wk42

parents 4d14cc63 ff48c369
...@@ -348,7 +348,15 @@ int wake_eNB_rxtx(PHY_VARS_eNB *eNB, uint16_t sfn, uint16_t sf) { ...@@ -348,7 +348,15 @@ int wake_eNB_rxtx(PHY_VARS_eNB *eNB, uint16_t sfn, uint16_t sf) {
old_sf = sf; old_sf = sf;
old_sfn = sfn; old_sfn = sfn;
if (old_sf == 0 && old_sfn % 100==0) LOG_W( PHY,"[eNB] sfn/sf:%d%d old_sfn/sf:%d%d proc[rx:%d%d]\n", sfn, sf, old_sfn, old_sf, proc->frame_rx, proc->subframe_rx); if (old_sf == 0 && old_sfn % 100==0)
LOG_D(PHY,
"[eNB] sfn/sf:%d%d old_sfn/sf:%d%d proc[rx:%d%d]\n",
sfn,
sf,
old_sfn,
old_sf,
proc->frame_rx,
proc->subframe_rx);
} }
++L1_proc->instance_cnt; ++L1_proc->instance_cnt;
...@@ -435,6 +443,7 @@ int phy_rach_indication(struct nfapi_vnf_p7_config *config, nfapi_rach_indicatio ...@@ -435,6 +443,7 @@ int phy_rach_indication(struct nfapi_vnf_p7_config *config, nfapi_rach_indicatio
} }
if(index == -1){ if(index == -1){
LOG_E(MAC,"phy_rach_indication : num of rach reach max \n"); LOG_E(MAC,"phy_rach_indication : num of rach reach max \n");
pthread_mutex_unlock(&eNB->UL_INFO_mutex);
return 0; return 0;
} }
UL_RCC_INFO.rach_ind[index] = *ind; UL_RCC_INFO.rach_ind[index] = *ind;
...@@ -499,6 +508,7 @@ int phy_harq_indication(struct nfapi_vnf_p7_config *config, nfapi_harq_indicatio ...@@ -499,6 +508,7 @@ int phy_harq_indication(struct nfapi_vnf_p7_config *config, nfapi_harq_indicatio
} }
if(index == -1){ if(index == -1){
LOG_E(MAC,"phy_harq_indication : num of harq reach max \n"); LOG_E(MAC,"phy_harq_indication : num of harq reach max \n");
pthread_mutex_unlock(&eNB->UL_INFO_mutex);
return 0; return 0;
} }
UL_RCC_INFO.harq_ind[index] = *ind; UL_RCC_INFO.harq_ind[index] = *ind;
...@@ -538,6 +548,7 @@ int phy_crc_indication(struct nfapi_vnf_p7_config *config, nfapi_crc_indication_ ...@@ -538,6 +548,7 @@ int phy_crc_indication(struct nfapi_vnf_p7_config *config, nfapi_crc_indication_
} }
if(index == -1){ if(index == -1){
LOG_E(MAC,"phy_crc_indication : num of crc reach max \n"); LOG_E(MAC,"phy_crc_indication : num of crc reach max \n");
pthread_mutex_unlock(&eNB->UL_INFO_mutex);
return 0; return 0;
} }
UL_RCC_INFO.crc_ind[index] = *ind; UL_RCC_INFO.crc_ind[index] = *ind;
...@@ -603,6 +614,7 @@ int phy_rx_indication(struct nfapi_vnf_p7_config *config, nfapi_rx_indication_t ...@@ -603,6 +614,7 @@ int phy_rx_indication(struct nfapi_vnf_p7_config *config, nfapi_rx_indication_t
} }
if(index == -1){ if(index == -1){
LOG_E(MAC,"phy_rx_indication : num of rx reach max \n"); LOG_E(MAC,"phy_rx_indication : num of rx reach max \n");
pthread_mutex_unlock(&eNB->UL_INFO_mutex);
return 0; return 0;
} }
UL_RCC_INFO.rx_ind[index] = *ind; UL_RCC_INFO.rx_ind[index] = *ind;
...@@ -686,6 +698,7 @@ int phy_sr_indication(struct nfapi_vnf_p7_config *config, nfapi_sr_indication_t ...@@ -686,6 +698,7 @@ int phy_sr_indication(struct nfapi_vnf_p7_config *config, nfapi_sr_indication_t
} }
if(index == -1){ if(index == -1){
LOG_E(MAC,"phy_sr_indication : num of sr reach max \n"); LOG_E(MAC,"phy_sr_indication : num of sr reach max \n");
pthread_mutex_unlock(&eNB->UL_INFO_mutex);
return 0; return 0;
} }
UL_RCC_INFO.sr_ind[index] = *ind; UL_RCC_INFO.sr_ind[index] = *ind;
...@@ -737,6 +750,7 @@ int phy_cqi_indication(struct nfapi_vnf_p7_config *config, nfapi_cqi_indication_ ...@@ -737,6 +750,7 @@ int phy_cqi_indication(struct nfapi_vnf_p7_config *config, nfapi_cqi_indication_
} }
if(index == -1){ if(index == -1){
LOG_E(MAC,"phy_cqi_indication : num of cqi reach max \n"); LOG_E(MAC,"phy_cqi_indication : num of cqi reach max \n");
pthread_mutex_unlock(&eNB->UL_INFO_mutex);
return 0; return 0;
} }
UL_RCC_INFO.cqi_ind[index] = *ind; UL_RCC_INFO.cqi_ind[index] = *ind;
......
...@@ -955,7 +955,7 @@ void vnf_handle_ul_node_sync(void *pRecvMsg, int recvMsgLen, vnf_p7_t* vnf_p7) ...@@ -955,7 +955,7 @@ void vnf_handle_ul_node_sync(void *pRecvMsg, int recvMsgLen, vnf_p7_t* vnf_p7)
struct timespec ts; struct timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts); clock_gettime(CLOCK_MONOTONIC, &ts);
NFAPI_TRACE(NFAPI_TRACE_NOTE, "(%4d/%1d) %d.%d PNF to VNF phy_id:%2d (t1/2/3/4:%8u, %8u, %8u, %8u) txrx:%4u procT:%3u latency(us):%4d(avg:%4d) offset(us):%8d filtered(us):%8d wrap[t1:%u t2:%u]\n", NFAPI_TRACE(NFAPI_TRACE_INFO, "(%4d/%1d) %d.%d PNF to VNF phy_id:%2d (t1/2/3/4:%8u, %8u, %8u, %8u) txrx:%4u procT:%3u latency(us):%4d(avg:%4d) offset(us):%8d filtered(us):%8d wrap[t1:%u t2:%u]\n",
NFAPI_SFNSF2SFN(phy->sfn_sf), NFAPI_SFNSF2SF(phy->sfn_sf), ts.tv_sec, ts.tv_nsec, ind.header.phy_id, NFAPI_SFNSF2SFN(phy->sfn_sf), NFAPI_SFNSF2SF(phy->sfn_sf), ts.tv_sec, ts.tv_nsec, ind.header.phy_id,
ind.t1, ind.t2, ind.t3, t4, ind.t1, ind.t2, ind.t3, t4,
tx_2_rx, pnf_proc_time, latency, phy->average_latency, phy->sf_offset, phy->sf_offset_filtered, tx_2_rx, pnf_proc_time, latency, phy->average_latency, phy->sf_offset, phy->sf_offset_filtered,
...@@ -1016,7 +1016,7 @@ void vnf_handle_ul_node_sync(void *pRecvMsg, int recvMsgLen, vnf_p7_t* vnf_p7) ...@@ -1016,7 +1016,7 @@ void vnf_handle_ul_node_sync(void *pRecvMsg, int recvMsgLen, vnf_p7_t* vnf_p7)
{ {
phy->adjustment = NFAPI_SFNSF2DEC(new_sfn_sf) - NFAPI_SFNSF2DEC(curr_sfn_sf); phy->adjustment = NFAPI_SFNSF2DEC(new_sfn_sf) - NFAPI_SFNSF2DEC(curr_sfn_sf);
NFAPI_TRACE(NFAPI_TRACE_NOTE, "PNF to VNF phy_id:%d adjustment%d phy->previous_sf_offset_filtered:%d phy->previous_sf_offset_filtered:%d phy->sf_offset_trend:%d\n", ind.header.phy_id, phy->adjustment, phy->previous_sf_offset_filtered, phy->previous_sf_offset_filtered, phy->sf_offset_trend); NFAPI_TRACE(NFAPI_TRACE_INFO, "PNF to VNF phy_id:%d adjustment%d phy->previous_sf_offset_filtered:%d phy->previous_sf_offset_filtered:%d phy->sf_offset_trend:%d\n", ind.header.phy_id, phy->adjustment, phy->previous_sf_offset_filtered, phy->previous_sf_offset_filtered, phy->sf_offset_trend);
phy->previous_t1 = 0; phy->previous_t1 = 0;
phy->previous_t2 = 0; phy->previous_t2 = 0;
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
#include "common/ran_context.h" #include "common/ran_context.h"
extern FILL_UL_INFO_MUTEX_t fill_ul_mutex;
extern void openair_rrc_top_init_ue( int eMBMS_active, char *uecap_xer, uint8_t cba_group_active, uint8_t HO_active); extern void openair_rrc_top_init_ue( int eMBMS_active, char *uecap_xer, uint8_t cba_group_active, uint8_t HO_active);
void dl_phy_sync_success(module_id_t module_idP, frame_t frameP, unsigned char eNB_index, uint8_t first_sync) { //init as MR void dl_phy_sync_success(module_id_t module_idP, frame_t frameP, unsigned char eNB_index, uint8_t first_sync) { //init as MR
...@@ -90,16 +89,6 @@ mac_top_init_ue(int eMBMS_active, char *uecap_xer, ...@@ -90,16 +89,6 @@ mac_top_init_ue(int eMBMS_active, char *uecap_xer,
UE_mac_inst = NULL; UE_mac_inst = NULL;
} }
// mutex below are used for multiple UE's L2 FAPI simulation.
if (NFAPI_MODE == NFAPI_UE_STUB_PNF) {
pthread_mutex_init(&fill_ul_mutex.rx_mutex,NULL);
pthread_mutex_init(&fill_ul_mutex.crc_mutex,NULL);
pthread_mutex_init(&fill_ul_mutex.sr_mutex,NULL);
pthread_mutex_init(&fill_ul_mutex.harq_mutex,NULL);
pthread_mutex_init(&fill_ul_mutex.cqi_mutex,NULL);
pthread_mutex_init(&fill_ul_mutex.rach_mutex,NULL);
}
LOG_I(MAC, "[MAIN] calling RRC\n"); LOG_I(MAC, "[MAIN] calling RRC\n");
openair_rrc_top_init_ue(eMBMS_active, uecap_xer, cba_group_active, openair_rrc_top_init_ue(eMBMS_active, uecap_xer, cba_group_active,
HO_active); HO_active);
......
This diff is collapsed.
...@@ -336,6 +336,8 @@ void static_dl(module_id_t mod_id, ...@@ -336,6 +336,8 @@ void static_dl(module_id_t mod_id,
rbgalloc_slice_mask[rbg] = rbgalloc_mask[rbg]; rbgalloc_slice_mask[rbg] = rbgalloc_mask[rbg];
n_rbg_sched += rbgalloc_mask[rbg]; n_rbg_sched += rbgalloc_mask[rbg];
} }
if (n_rbg_sched == 0) /* no free RBGs, e.g., taken by RA */
continue;
s->s[i]->dl_algo.run(mod_id, s->s[i]->dl_algo.run(mod_id,
CC_id, CC_id,
...@@ -445,6 +447,8 @@ void static_ul(module_id_t mod_id, ...@@ -445,6 +447,8 @@ void static_ul(module_id_t mod_id,
} }
if (!last_rb_blocked) if (!last_rb_blocked)
rbs[n_contig - 1].length = p->posHigh - rbs[n_contig - 1].start + 1; rbs[n_contig - 1].length = p->posHigh - rbs[n_contig - 1].start + 1;
if (n_contig == 1 && rbs[0].length == 0) /* no RBs, e.g., taken by RA */
continue;
s->s[i]->ul_algo.run(mod_id, s->s[i]->ul_algo.run(mod_id,
CC_id, CC_id,
......
...@@ -203,17 +203,6 @@ typedef struct IF_Module_s{ ...@@ -203,17 +203,6 @@ typedef struct IF_Module_s{
pthread_mutex_t if_mutex; pthread_mutex_t if_mutex;
} IF_Module_t; } IF_Module_t;
// These mutex is used for multiple UEs L2 FAPI simulator.
// Each UEs set these value in UL and UL_INFO is shared in all UE's thread.
typedef struct {
pthread_mutex_t rx_mutex;
pthread_mutex_t crc_mutex;
pthread_mutex_t sr_mutex;
pthread_mutex_t harq_mutex;
pthread_mutex_t cqi_mutex;
pthread_mutex_t rach_mutex;
} FILL_UL_INFO_MUTEX_t;
/*Initial */ /*Initial */
IF_Module_t *IF_Module_init(int Mod_id); IF_Module_t *IF_Module_init(int Mod_id);
void IF_Module_kill(int Mod_id); void IF_Module_kill(int Mod_id);
......
...@@ -64,8 +64,6 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id, ...@@ -64,8 +64,6 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id,
nfapi_rx_indication_pdu_t *pdu; nfapi_rx_indication_pdu_t *pdu;
int timing_advance_update; int timing_advance_update;
pthread_mutex_lock(&fill_ul_mutex.rx_mutex);
UL_INFO->rx_ind.sfn_sf = frame << 4 | subframe; UL_INFO->rx_ind.sfn_sf = frame << 4 | subframe;
UL_INFO->rx_ind.rx_indication_body.tl.tag = NFAPI_RX_INDICATION_BODY_TAG; UL_INFO->rx_ind.rx_indication_body.tl.tag = NFAPI_RX_INDICATION_BODY_TAG;
UL_INFO->rx_ind.vendor_extension = ul_config_req->vendor_extension; UL_INFO->rx_ind.vendor_extension = ul_config_req->vendor_extension;
...@@ -101,7 +99,6 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id, ...@@ -101,7 +99,6 @@ void fill_rx_indication_UE_MAC(module_id_t Mod_id,
UL_INFO->rx_ind.rx_indication_body.number_of_pdus++; UL_INFO->rx_ind.rx_indication_body.number_of_pdus++;
UL_INFO->rx_ind.sfn_sf = frame << 4 | subframe; UL_INFO->rx_ind.sfn_sf = frame << 4 | subframe;
pthread_mutex_unlock(&fill_ul_mutex.rx_mutex);
} }
void fill_sr_indication_UE_MAC(int Mod_id, void fill_sr_indication_UE_MAC(int Mod_id,
...@@ -109,8 +106,6 @@ void fill_sr_indication_UE_MAC(int Mod_id, ...@@ -109,8 +106,6 @@ void fill_sr_indication_UE_MAC(int Mod_id,
int subframe, int subframe,
UL_IND_t *UL_INFO, UL_IND_t *UL_INFO,
uint16_t rnti) { uint16_t rnti) {
pthread_mutex_lock(&fill_ul_mutex.sr_mutex);
nfapi_sr_indication_t *sr_ind = &UL_INFO->sr_ind; nfapi_sr_indication_t *sr_ind = &UL_INFO->sr_ind;
nfapi_sr_indication_body_t *sr_ind_body = &sr_ind->sr_indication_body; nfapi_sr_indication_body_t *sr_ind_body = &sr_ind->sr_indication_body;
nfapi_sr_indication_pdu_t *pdu = &sr_ind_body->sr_pdu_list[sr_ind_body->number_of_srs]; nfapi_sr_indication_pdu_t *pdu = &sr_ind_body->sr_pdu_list[sr_ind_body->number_of_srs];
...@@ -139,7 +134,6 @@ void fill_sr_indication_UE_MAC(int Mod_id, ...@@ -139,7 +134,6 @@ void fill_sr_indication_UE_MAC(int Mod_id,
// UL_INFO->rx_ind.rx_indication_body.number_of_pdus++; // UL_INFO->rx_ind.rx_indication_body.number_of_pdus++;
sr_ind_body->number_of_srs++; sr_ind_body->number_of_srs++;
pthread_mutex_unlock(&fill_ul_mutex.sr_mutex);
} }
void fill_crc_indication_UE_MAC(int Mod_id, void fill_crc_indication_UE_MAC(int Mod_id,
...@@ -149,8 +143,6 @@ void fill_crc_indication_UE_MAC(int Mod_id, ...@@ -149,8 +143,6 @@ void fill_crc_indication_UE_MAC(int Mod_id,
uint8_t crc_flag, uint8_t crc_flag,
int index, int index,
uint16_t rnti) { uint16_t rnti) {
pthread_mutex_lock(&fill_ul_mutex.crc_mutex);
nfapi_crc_indication_pdu_t *pdu = nfapi_crc_indication_pdu_t *pdu =
&UL_INFO->crc_ind.crc_indication_body &UL_INFO->crc_ind.crc_indication_body
.crc_pdu_list[UL_INFO->crc_ind.crc_indication_body.number_of_crcs]; .crc_pdu_list[UL_INFO->crc_ind.crc_indication_body.number_of_crcs];
...@@ -174,8 +166,6 @@ void fill_crc_indication_UE_MAC(int Mod_id, ...@@ -174,8 +166,6 @@ void fill_crc_indication_UE_MAC(int Mod_id,
__FUNCTION__, __FUNCTION__,
pdu->rx_ue_information.rnti, pdu->rx_ue_information.rnti,
UL_INFO->crc_ind.crc_indication_body.number_of_crcs); UL_INFO->crc_ind.crc_indication_body.number_of_crcs);
pthread_mutex_unlock(&fill_ul_mutex.crc_mutex);
} }
void fill_rach_indication_UE_MAC(int Mod_id, void fill_rach_indication_UE_MAC(int Mod_id,
...@@ -184,10 +174,6 @@ void fill_rach_indication_UE_MAC(int Mod_id, ...@@ -184,10 +174,6 @@ void fill_rach_indication_UE_MAC(int Mod_id,
UL_IND_t *UL_INFO, UL_IND_t *UL_INFO,
uint8_t ra_PreambleIndex, uint8_t ra_PreambleIndex,
uint16_t ra_RNTI) { uint16_t ra_RNTI) {
LOG_D(MAC, "fill_rach_indication_UE_MAC 1 \n");
pthread_mutex_lock(&fill_ul_mutex.rach_mutex);
UL_INFO->rach_ind.rach_indication_body.number_of_preambles = 1; UL_INFO->rach_ind.rach_indication_body.number_of_preambles = 1;
UL_INFO->rach_ind.header.message_id = NFAPI_RACH_INDICATION; UL_INFO->rach_ind.header.message_id = NFAPI_RACH_INDICATION;
...@@ -232,8 +218,6 @@ void fill_rach_indication_UE_MAC(int Mod_id, ...@@ -232,8 +218,6 @@ void fill_rach_indication_UE_MAC(int Mod_id,
// should call it when we merge with that branch. // should call it when we merge with that branch.
oai_nfapi_rach_ind(&UL_INFO->rach_ind); oai_nfapi_rach_ind(&UL_INFO->rach_ind);
free(UL_INFO->rach_ind.rach_indication_body.preamble_list); free(UL_INFO->rach_ind.rach_indication_body.preamble_list);
pthread_mutex_unlock(&fill_ul_mutex.rach_mutex);
} }
void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, void fill_ulsch_cqi_indication_UE_MAC(int Mod_id,
...@@ -241,7 +225,6 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, ...@@ -241,7 +225,6 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id,
uint8_t subframe, uint8_t subframe,
UL_IND_t *UL_INFO, UL_IND_t *UL_INFO,
uint16_t rnti) { uint16_t rnti) {
pthread_mutex_lock(&fill_ul_mutex.cqi_mutex);
nfapi_cqi_indication_pdu_t *pdu = nfapi_cqi_indication_pdu_t *pdu =
&UL_INFO->cqi_ind.cqi_indication_body &UL_INFO->cqi_ind.cqi_indication_body
.cqi_pdu_list[UL_INFO->cqi_ind.cqi_indication_body.number_of_cqis]; .cqi_pdu_list[UL_INFO->cqi_ind.cqi_indication_body.number_of_cqis];
...@@ -275,7 +258,6 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id, ...@@ -275,7 +258,6 @@ void fill_ulsch_cqi_indication_UE_MAC(int Mod_id,
raw_pdu->pdu[0] = cqi << 4; raw_pdu->pdu[0] = cqi << 4;
UL_INFO->cqi_ind.cqi_indication_body.number_of_cqis++; UL_INFO->cqi_ind.cqi_indication_body.number_of_cqis++;
pthread_mutex_unlock(&fill_ul_mutex.cqi_mutex);
} }
void fill_ulsch_harq_indication_UE_MAC( void fill_ulsch_harq_indication_UE_MAC(
...@@ -285,8 +267,6 @@ void fill_ulsch_harq_indication_UE_MAC( ...@@ -285,8 +267,6 @@ void fill_ulsch_harq_indication_UE_MAC(
UL_IND_t *UL_INFO, UL_IND_t *UL_INFO,
nfapi_ul_config_ulsch_harq_information *harq_information, nfapi_ul_config_ulsch_harq_information *harq_information,
uint16_t rnti) { uint16_t rnti) {
pthread_mutex_lock(&fill_ul_mutex.harq_mutex);
nfapi_harq_indication_pdu_t *pdu = nfapi_harq_indication_pdu_t *pdu =
&UL_INFO->harq_ind.harq_indication_body.harq_pdu_list &UL_INFO->harq_ind.harq_indication_body.harq_pdu_list
[UL_INFO->harq_ind.harq_indication_body.number_of_harqs]; [UL_INFO->harq_ind.harq_indication_body.number_of_harqs];
...@@ -318,7 +298,6 @@ void fill_ulsch_harq_indication_UE_MAC( ...@@ -318,7 +298,6 @@ void fill_ulsch_harq_indication_UE_MAC(
} }
UL_INFO->harq_ind.harq_indication_body.number_of_harqs++; UL_INFO->harq_ind.harq_indication_body.number_of_harqs++;
pthread_mutex_unlock(&fill_ul_mutex.harq_mutex);
} }
void fill_uci_harq_indication_UE_MAC(int Mod_id, void fill_uci_harq_indication_UE_MAC(int Mod_id,
...@@ -327,8 +306,6 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id, ...@@ -327,8 +306,6 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
UL_IND_t *UL_INFO, UL_IND_t *UL_INFO,
nfapi_ul_config_harq_information *harq_information, nfapi_ul_config_harq_information *harq_information,
uint16_t rnti) { uint16_t rnti) {
pthread_mutex_lock(&fill_ul_mutex.harq_mutex);
nfapi_harq_indication_t *ind = &UL_INFO->harq_ind; nfapi_harq_indication_t *ind = &UL_INFO->harq_ind;
nfapi_harq_indication_body_t *body = &ind->harq_indication_body; nfapi_harq_indication_body_t *body = &ind->harq_indication_body;
nfapi_harq_indication_pdu_t *pdu = nfapi_harq_indication_pdu_t *pdu =
...@@ -410,7 +387,6 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id, ...@@ -410,7 +387,6 @@ void fill_uci_harq_indication_UE_MAC(int Mod_id,
LOG_D(PHY, LOG_D(PHY,
"Incremented eNB->UL_INFO.harq_ind.number_of_harqs:%d\n", "Incremented eNB->UL_INFO.harq_ind.number_of_harqs:%d\n",
UL_INFO->harq_ind.harq_indication_body.number_of_harqs); UL_INFO->harq_ind.harq_indication_body.number_of_harqs);
pthread_mutex_unlock(&fill_ul_mutex.harq_mutex);
} }
void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id, void handle_nfapi_ul_pdu_UE_MAC(module_id_t Mod_id,
......
...@@ -17,8 +17,6 @@ ...@@ -17,8 +17,6 @@
//#include "openair1/PHY/defs.h" //#include "openair1/PHY/defs.h"
//#include "openair1/PHY/LTE_TRANSPORT/defs.h" //#include "openair1/PHY/LTE_TRANSPORT/defs.h"
// this mutex is used to set multiple UE's UL value in L2 FAPI simulator.
FILL_UL_INFO_MUTEX_t fill_ul_mutex;
//below 2 difinitions move to phy_stub_UE.c to add initialization when difinition. //below 2 difinitions move to phy_stub_UE.c to add initialization when difinition.
extern UL_IND_t *UL_INFO; extern UL_IND_t *UL_INFO;
extern nfapi_tx_request_pdu_t* tx_request_pdu_list; extern nfapi_tx_request_pdu_t* tx_request_pdu_list;
......
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