Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Michael Black
OpenXG UE
Commits
1928e2a6
Commit
1928e2a6
authored
Oct 29, 2018
by
magounak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
renaming eNB_proc_t -> L1_proc_t and eNB_rxtx_proc_t -> L1_rxtx_proc_t
parent
89979431
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
108 additions
and
108 deletions
+108
-108
nfapi/oai_integration/nfapi_pnf.c
nfapi/oai_integration/nfapi_pnf.c
+9
-9
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+2
-2
openair1/PHY/LTE_ESTIMATION/lte_estimation.h
openair1/PHY/LTE_ESTIMATION/lte_estimation.h
+1
-1
openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
+1
-1
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+4
-4
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
+1
-1
openair1/PHY/LTE_TRANSPORT/phich.c
openair1/PHY/LTE_TRANSPORT/phich.c
+1
-1
openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c
openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c
+1
-1
openair1/PHY/LTE_TRANSPORT/pmch.c
openair1/PHY/LTE_TRANSPORT/pmch.c
+1
-1
openair1/PHY/LTE_TRANSPORT/transport_proto.h
openair1/PHY/LTE_TRANSPORT/transport_proto.h
+9
-9
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
+3
-3
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
+2
-2
openair1/PHY/defs_eNB.h
openair1/PHY/defs_eNB.h
+5
-5
openair1/SCHED/fapi_l1.c
openair1/SCHED/fapi_l1.c
+8
-8
openair1/SCHED/fapi_l1.h
openair1/SCHED/fapi_l1.h
+6
-6
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+11
-11
openair1/SCHED/sched_common.h
openair1/SCHED/sched_common.h
+3
-3
openair1/SCHED/sched_eNB.h
openair1/SCHED/sched_eNB.h
+5
-5
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+1
-1
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+28
-28
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+6
-6
No files found.
nfapi/oai_integration/nfapi_pnf.c
View file @
1928e2a6
...
@@ -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
++
)
{
...
...
nfapi/oai_integration/nfapi_vnf.c
View file @
1928e2a6
...
@@ -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
;
...
...
openair1/PHY/LTE_ESTIMATION/lte_estimation.h
View file @
1928e2a6
...
@@ -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
);
...
...
openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
View file @
1928e2a6
...
@@ -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
)
{
...
...
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
1928e2a6
...
@@ -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
;
...
...
openair1/PHY/LTE_TRANSPORT/dlsch_coding.c
View file @
1928e2a6
...
@@ -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
;
...
...
openair1/PHY/LTE_TRANSPORT/phich.c
View file @
1928e2a6
...
@@ -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
)
{
{
...
...
openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c
View file @
1928e2a6
...
@@ -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
)
...
...
openair1/PHY/LTE_TRANSPORT/pmch.c
View file @
1928e2a6
...
@@ -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
;
...
...
openair1/PHY/LTE_TRANSPORT/transport_proto.h
View file @
1928e2a6
...
@@ -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
);
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c
View file @
1928e2a6
...
@@ -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
,
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
View file @
1928e2a6
...
@@ -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
);
...
...
openair1/PHY/defs_eNB.h
View file @
1928e2a6
...
@@ -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
;
...
...
openair1/SCHED/fapi_l1.c
View file @
1928e2a6
...
@@ -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
;
...
...
openair1/SCHED/fapi_l1.h
View file @
1928e2a6
...
@@ -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
);
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
1928e2a6
...
@@ -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
;
...
...
openair1/SCHED/sched_common.h
View file @
1928e2a6
...
@@ -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
,
...
...
openair1/SCHED/sched_eNB.h
View file @
1928e2a6
...
@@ -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
);
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
1928e2a6
...
@@ -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
)
{
...
...
targets/RT/USER/lte-enb.c
View file @
1928e2a6
...
@@ -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
];
...
...
targets/RT/USER/lte-ru.c
View file @
1928e2a6
...
@@ -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
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment