Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Weiqi Wang
openairinterface5G
Commits
b6a9bb33
Commit
b6a9bb33
authored
Oct 19, 2017
by
David Price
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bit of tidy up, rename variables. change some logs
parent
17322170
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
77 additions
and
75 deletions
+77
-75
nfapi/nfapi_pnf.c
nfapi/nfapi_pnf.c
+9
-11
nfapi/nfapi_vnf.c
nfapi/nfapi_vnf.c
+21
-18
openair1/SCHED/fapi_l1.c
openair1/SCHED/fapi_l1.c
+4
-4
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+11
-10
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+3
-3
openair2/PHY_INTERFACE/IF_Module.c
openair2/PHY_INTERFACE/IF_Module.c
+15
-15
openair2/PHY_INTERFACE/IF_Module.h
openair2/PHY_INTERFACE/IF_Module.h
+1
-1
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+4
-4
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+9
-9
No files found.
nfapi/nfapi_pnf.c
View file @
b6a9bb33
...
@@ -43,7 +43,7 @@ extern void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, nfa
...
@@ -43,7 +43,7 @@ extern void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, nfa
extern
void
handle_nfapi_hi_dci0_dci_pdu
(
PHY_VARS_eNB
*
eNB
,
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
,
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
,
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
,
eNB_rxtx_proc_t
*
proc
,
nfapi_hi_dci0_request_pdu_t
*
hi_dci0_config_pdu
);
extern
uint8_t
nfapi_
pnf
;
extern
uint8_t
nfapi_
mode
;
nfapi_tx_request_pdu_t
*
tx_request_pdu
[
1023
][
10
][
10
];
// [frame][subframe][max_num_pdus]
nfapi_tx_request_pdu_t
*
tx_request_pdu
[
1023
][
10
][
10
];
// [frame][subframe][max_num_pdus]
...
@@ -923,19 +923,13 @@ void pnf_phy_deallocate_p7_vendor_ext(nfapi_p7_message_header_t* header)
...
@@ -923,19 +923,13 @@ void pnf_phy_deallocate_p7_vendor_ext(nfapi_p7_message_header_t* header)
int
pnf_phy_hi_dci0_req
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_hi_dci0_request_t
*
req
)
int
pnf_phy_hi_dci0_req
(
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_hi_dci0_request_t
*
req
)
{
{
//printf("[PNF] hi dci0 request\n");
LOG_D
(
PHY
,
"[PNF] hi dci0 request sfn_sf:%d number_of_dci:%d number_of_hi:%d
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
req
->
hi_dci0_request_body
.
number_of_dci
,
req
->
hi_dci0_request_body
.
number_of_hi
);
//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
.
proc_rxtx
[
0
];
eNB_rxtx_proc_t
*
proc
=
&
eNB
->
proc
.
proc_rxtx
[
0
];
LOG_D
(
PHY
,
"[PNF] HI_DCI0_REQ sfn_sf:%d sfnsf:%u DCIs:%d HIs:%d
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
req
->
hi_dci0_request_body
.
sfnsf
,
req
->
hi_dci0_request_body
.
number_of_dci
,
req
->
hi_dci0_request_body
.
number_of_hi
);
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
++
)
{
{
LOG_D
(
PHY
,
"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d]
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
);
LOG_D
(
PHY
,
"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d]
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
);
...
@@ -960,6 +954,10 @@ int pnf_phy_hi_dci0_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t*
...
@@ -960,6 +954,10 @@ int pnf_phy_hi_dci0_req(nfapi_pnf_p7_config_t* pnf_p7, nfapi_hi_dci0_request_t*
eNB
->
pdcch_vars
[
NFAPI_SFNSF2SF
(
req
->
sfn_sf
)
&
1
].
num_dci
++
;
eNB
->
pdcch_vars
[
NFAPI_SFNSF2SF
(
req
->
sfn_sf
)
&
1
].
num_dci
++
;
}
}
else
{
LOG_E
(
PHY
,
"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d] - unknown pdu type:%d
\n
"
,
NFAPI_SFNSF2DEC
(
req
->
sfn_sf
),
i
,
req
->
hi_dci0_request_body
.
hi_dci0_pdu_list
[
i
].
pdu_type
);
}
}
}
return
0
;
return
0
;
...
@@ -1752,7 +1750,7 @@ void* pnf_start_thread(void* ptr)
...
@@ -1752,7 +1750,7 @@ void* pnf_start_thread(void* ptr)
void
configure_nfapi_pnf
(
char
*
vnf_ip_addr
,
int
vnf_p5_port
,
char
*
pnf_ip_addr
,
int
pnf_p7_port
,
int
vnf_p7_port
)
void
configure_nfapi_pnf
(
char
*
vnf_ip_addr
,
int
vnf_p5_port
,
char
*
pnf_ip_addr
,
int
pnf_p7_port
,
int
vnf_p7_port
)
{
{
nfapi_
pnf
=
1
;
// PNF!
nfapi_
mode
=
1
;
// PNF!
nfapi_pnf_config_t
*
config
=
nfapi_pnf_config_create
();
nfapi_pnf_config_t
*
config
=
nfapi_pnf_config_create
();
...
@@ -1820,7 +1818,7 @@ void oai_subframe_ind(eNB_rxtx_proc_t *proc)
...
@@ -1820,7 +1818,7 @@ void oai_subframe_ind(eNB_rxtx_proc_t *proc)
//PHY_VARS_eNB *eNB = RC.eNB[0][0];
//PHY_VARS_eNB *eNB = RC.eNB[0][0];
//int even_frame_thread = eNB->proc.proc_rxtx[0] == proc ? 0 : 1;
//int even_frame_thread = eNB->proc.proc_rxtx[0] == proc ? 0 : 1;
int
pnf
=
nfapi_
pnf
==
1
?
1
:
0
;
int
pnf
=
nfapi_
mode
==
1
?
1
:
0
;
uint16_t
sfn
=
pnf
?
proc
->
frame_tx
:
proc
->
frame_rx
;
uint16_t
sfn
=
pnf
?
proc
->
frame_tx
:
proc
->
frame_rx
;
uint16_t
sf
=
pnf
?
proc
->
subframe_tx
:
proc
->
frame_rx
;
uint16_t
sf
=
pnf
?
proc
->
subframe_tx
:
proc
->
frame_rx
;
uint16_t
sfn_sf_tx
=
sfn
<<
4
|
sf
;
uint16_t
sfn_sf_tx
=
sfn
<<
4
|
sf
;
...
...
nfapi/nfapi_vnf.c
View file @
b6a9bb33
...
@@ -446,7 +446,7 @@ int pnf_param_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_pnf_param_re
...
@@ -446,7 +446,7 @@ int pnf_param_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_pnf_param_re
int
pnf_config_resp_cb
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_pnf_config_response_t
*
resp
)
int
pnf_config_resp_cb
(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_pnf_config_response_t
*
resp
)
{
{
printf
(
"[VNF] pnf config response idx:%d resp[header[phy_id:%u message_id:%
u
message_length:%u]]
\n
"
,
p5_idx
,
resp
->
header
.
phy_id
,
resp
->
header
.
message_id
,
resp
->
header
.
message_length
);
printf
(
"[VNF] pnf config response idx:%d resp[header[phy_id:%u message_id:%
02x
message_length:%u]]
\n
"
,
p5_idx
,
resp
->
header
.
phy_id
,
resp
->
header
.
message_id
,
resp
->
header
.
message_length
);
if
(
1
)
if
(
1
)
{
{
...
@@ -659,19 +659,22 @@ int phy_rach_indication(struct nfapi_vnf_p7_config* config, nfapi_rach_indicatio
...
@@ -659,19 +659,22 @@ int phy_rach_indication(struct nfapi_vnf_p7_config* config, nfapi_rach_indicatio
int
phy_harq_indication
(
struct
nfapi_vnf_p7_config
*
config
,
nfapi_harq_indication_t
*
ind
)
int
phy_harq_indication
(
struct
nfapi_vnf_p7_config
*
config
,
nfapi_harq_indication_t
*
ind
)
{
{
LOG_E
(
MAC
,
"%s() NFAPI SFN/SF:%d number_of_preambles:%u
\n
"
,
__FUNCTION__
,
NFAPI_SFNSF2DEC
(
ind
->
sfn_sf
),
ind
->
harq_indication_body
.
number_of_harqs
);
struct
PHY_VARS_eNB_s
*
eNB
=
RC
.
eNB
[
0
][
0
];
LOG_E
(
MAC
,
"%s() NFAPI SFN/SF:%d number_of_harqs:%u
\n
"
,
__FUNCTION__
,
NFAPI_SFNSF2DEC
(
ind
->
sfn_sf
),
ind
->
harq_indication_body
.
number_of_harqs
);
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
eNB
->
UL_INFO
.
harq_ind
=
*
ind
;
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
harq_pdu_list
=
eNB
->
harq_pdu_list
;
for
(
int
i
=
0
;
i
<
ind
->
harq_indication_body
.
number_of_harqs
;
i
++
)
for
(
int
i
=
0
;
i
<
ind
->
harq_indication_body
.
number_of_harqs
;
i
++
)
{
{
harq_indication
(
memcpy
(
&
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
harq_pdu_list
[
i
],
&
ind
->
harq_indication_body
.
harq_pdu_list
[
i
],
sizeof
(
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
harq_pdu_list
[
i
]));
0
,
// DJP - fixme
0
,
// DJP - fixme
NFAPI_SFNSF2SFN
(
ind
->
sfn_sf
),
NFAPI_SFNSF2SF
(
ind
->
sfn_sf
),
&
ind
->
harq_indication_body
.
harq_pdu_list
[
i
]
);
}
}
pthread_mutex_unlock
(
&
eNB
->
UL_INFO_mutex
);
// vnf_p7_info* p7_vnf = (vnf_p7_info*)(config->user_data);
// vnf_p7_info* p7_vnf = (vnf_p7_info*)(config->user_data);
//mac_harq_ind(p7_vnf->mac, ind);
//mac_harq_ind(p7_vnf->mac, ind);
return
1
;
return
1
;
...
@@ -832,7 +835,7 @@ int phy_vendor_ext(struct nfapi_vnf_p7_config* config, nfapi_p7_message_header_t
...
@@ -832,7 +835,7 @@ int phy_vendor_ext(struct nfapi_vnf_p7_config* config, nfapi_p7_message_header_t
}
}
else
else
{
{
printf
(
"[VNF] unknown %
d
\n
"
,
msg
->
message_id
);
printf
(
"[VNF] unknown %
02x
\n
"
,
msg
->
message_id
);
}
}
return
0
;
return
0
;
}
}
...
@@ -1270,11 +1273,11 @@ void vnf_start_thread(void* ptr)
...
@@ -1270,11 +1273,11 @@ void vnf_start_thread(void* ptr)
}
}
static
vnf_info
vnf
;
static
vnf_info
vnf
;
extern
uint8_t
nfapi_
pnf
;
extern
uint8_t
nfapi_
mode
;
/*------------------------------------------------------------------------------*/
/*------------------------------------------------------------------------------*/
void
configure_nfapi_vnf
(
char
*
vnf_addr
,
int
vnf_p5_port
)
void
configure_nfapi_vnf
(
char
*
vnf_addr
,
int
vnf_p5_port
)
{
{
nfapi_
pnf
=
2
;
nfapi_
mode
=
2
;
memset
(
&
vnf
,
0
,
sizeof
(
vnf
));
memset
(
&
vnf
,
0
,
sizeof
(
vnf
));
...
@@ -1342,9 +1345,9 @@ int oai_nfapi_dl_config_req(nfapi_dl_config_request_t *dl_config_req)
...
@@ -1342,9 +1345,9 @@ int oai_nfapi_dl_config_req(nfapi_dl_config_request_t *dl_config_req)
dl_config_req
->
header
.
phy_id
=
1
;
// DJP HACK TODO FIXME - need to pass this around!!!!
dl_config_req
->
header
.
phy_id
=
1
;
// DJP HACK TODO FIXME - need to pass this around!!!!
//dl_config_req->header.message_id = NFAPI_DL_CONFIG_BCH_PDU_TYPE;
//dl_config_req->header.message_id = NFAPI_DL_CONFIG_BCH_PDU_TYPE;
//NFAPI_TRACE(NFAPI_TRACE_INFO, "[VNF] %s() header message_id:%
d
\n", __FUNCTION__, dl_config_req->header.message_id);
//NFAPI_TRACE(NFAPI_TRACE_INFO, "[VNF] %s() header message_id:%
02x
\n", __FUNCTION__, dl_config_req->header.message_id);
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() DL_CONFIG p7_config:%p phy_id:%d message_id:%
d
sfn_sf:%d pdcch:%d dci:%d pdu:%d pdsch_rnti:%d pcfich:%d
\n
"
,
__FUNCTION__
,
p7_config
,
dl_config_req
->
header
.
phy_id
,
dl_config_req
->
header
.
message_id
,
NFAPI_SFNSF2DEC
(
dl_config_req
->
sfn_sf
),
dl_config_req
->
dl_config_request_body
.
number_pdcch_ofdm_symbols
,
dl_config_req
->
dl_config_request_body
.
number_dci
,
dl_config_req
->
dl_config_request_body
.
number_pdu
,
dl_config_req
->
dl_config_request_body
.
number_pdsch_rnti
,
dl_config_req
->
dl_config_request_body
.
transmission_power_pcfich
);
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() DL_CONFIG p7_config:%p phy_id:%d message_id:%
02x
sfn_sf:%d pdcch:%d dci:%d pdu:%d pdsch_rnti:%d pcfich:%d
\n
"
,
__FUNCTION__
,
p7_config
,
dl_config_req
->
header
.
phy_id
,
dl_config_req
->
header
.
message_id
,
NFAPI_SFNSF2DEC
(
dl_config_req
->
sfn_sf
),
dl_config_req
->
dl_config_request_body
.
number_pdcch_ofdm_symbols
,
dl_config_req
->
dl_config_request_body
.
number_dci
,
dl_config_req
->
dl_config_request_body
.
number_pdu
,
dl_config_req
->
dl_config_request_body
.
number_pdsch_rnti
,
dl_config_req
->
dl_config_request_body
.
transmission_power_pcfich
);
int
retval
=
nfapi_vnf_p7_dl_config_req
(
p7_config
,
dl_config_req
);
int
retval
=
nfapi_vnf_p7_dl_config_req
(
p7_config
,
dl_config_req
);
...
@@ -1361,7 +1364,7 @@ int oai_nfapi_tx_req(nfapi_tx_request_t *tx_req)
...
@@ -1361,7 +1364,7 @@ int oai_nfapi_tx_req(nfapi_tx_request_t *tx_req)
tx_req
->
header
.
phy_id
=
1
;
// DJP HACK TODO FIXME - need to pass this around!!!!
tx_req
->
header
.
phy_id
=
1
;
// DJP HACK TODO FIXME - need to pass this around!!!!
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() TX_REQ p7_config:%p phy_id:%d message_id:%
d
sfn_sf:%d number_of_pdus:%d
\n
"
,
__FUNCTION__
,
p7_config
,
tx_req
->
header
.
phy_id
,
tx_req
->
header
.
message_id
,
NFAPI_SFNSF2DEC
(
tx_req
->
sfn_sf
),
tx_req
->
tx_request_body
.
number_of_pdus
);
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() TX_REQ p7_config:%p phy_id:%d message_id:%
02x
sfn_sf:%d number_of_pdus:%d
\n
"
,
__FUNCTION__
,
p7_config
,
tx_req
->
header
.
phy_id
,
tx_req
->
header
.
message_id
,
NFAPI_SFNSF2DEC
(
tx_req
->
sfn_sf
),
tx_req
->
tx_request_body
.
number_of_pdus
);
int
retval
=
nfapi_vnf_p7_tx_req
(
p7_config
,
tx_req
);
int
retval
=
nfapi_vnf_p7_tx_req
(
p7_config
,
tx_req
);
...
@@ -1378,7 +1381,7 @@ int oai_nfapi_hi_dci0_req(nfapi_hi_dci0_request_t *hi_dci0_req)
...
@@ -1378,7 +1381,7 @@ int oai_nfapi_hi_dci0_req(nfapi_hi_dci0_request_t *hi_dci0_req)
hi_dci0_req
->
header
.
phy_id
=
1
;
// DJP HACK TODO FIXME - need to pass this around!!!!
hi_dci0_req
->
header
.
phy_id
=
1
;
// DJP HACK TODO FIXME - need to pass this around!!!!
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() HI_DCI0_REQ p7_config:%p phy_id:%d message_id:%
d
sfn_sf:%d number_of_dci:%d number_of_hi:%d
\n
"
,
__FUNCTION__
,
p7_config
,
hi_dci0_req
->
header
.
phy_id
,
hi_dci0_req
->
header
.
message_id
,
NFAPI_SFNSF2DEC
(
hi_dci0_req
->
sfn_sf
),
hi_dci0_req
->
hi_dci0_request_body
.
number_of_dci
,
hi_dci0_req
->
hi_dci0_request_body
.
number_of_hi
);
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() HI_DCI0_REQ p7_config:%p phy_id:%d message_id:%
02x
sfn_sf:%d number_of_dci:%d number_of_hi:%d
\n
"
,
__FUNCTION__
,
p7_config
,
hi_dci0_req
->
header
.
phy_id
,
hi_dci0_req
->
header
.
message_id
,
NFAPI_SFNSF2DEC
(
hi_dci0_req
->
sfn_sf
),
hi_dci0_req
->
hi_dci0_request_body
.
number_of_dci
,
hi_dci0_req
->
hi_dci0_request_body
.
number_of_hi
);
int
retval
=
nfapi_vnf_p7_hi_dci0_req
(
p7_config
,
hi_dci0_req
);
int
retval
=
nfapi_vnf_p7_hi_dci0_req
(
p7_config
,
hi_dci0_req
);
...
@@ -1395,9 +1398,9 @@ int oai_nfapi_ul_config_req(nfapi_ul_config_request_t *ul_config_req)
...
@@ -1395,9 +1398,9 @@ int oai_nfapi_ul_config_req(nfapi_ul_config_request_t *ul_config_req)
ul_config_req
->
header
.
phy_id
=
1
;
// DJP HACK TODO FIXME - need to pass this around!!!!
ul_config_req
->
header
.
phy_id
=
1
;
// DJP HACK TODO FIXME - need to pass this around!!!!
//NFAPI_TRACE(NFAPI_TRACE_INFO, "[VNF] %s() header message_id:%
d
\n", __FUNCTION__, ul_config_req->header.message_id);
//NFAPI_TRACE(NFAPI_TRACE_INFO, "[VNF] %s() header message_id:%
02x
\n", __FUNCTION__, ul_config_req->header.message_id);
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() UL_CONFIG p7_config:%p phy_id:%d message_id:%
d
sfn_sf:%d PDUs:%d rach_prach_frequency_resources:%d srs_present:%d
\n
"
,
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"[VNF] %s() UL_CONFIG p7_config:%p phy_id:%d message_id:%
02x
sfn_sf:%d PDUs:%d rach_prach_frequency_resources:%d srs_present:%d
\n
"
,
__FUNCTION__
,
p7_config
,
ul_config_req
->
header
.
phy_id
,
ul_config_req
->
header
.
message_id
,
NFAPI_SFNSF2DEC
(
ul_config_req
->
sfn_sf
),
__FUNCTION__
,
p7_config
,
ul_config_req
->
header
.
phy_id
,
ul_config_req
->
header
.
message_id
,
NFAPI_SFNSF2DEC
(
ul_config_req
->
sfn_sf
),
ul_config_req
->
ul_config_request_body
.
number_of_pdus
,
ul_config_req
->
ul_config_request_body
.
number_of_pdus
,
ul_config_req
->
ul_config_request_body
.
rach_prach_frequency_resources
,
ul_config_req
->
ul_config_request_body
.
rach_prach_frequency_resources
,
...
...
openair1/SCHED/fapi_l1.c
View file @
b6a9bb33
...
@@ -42,7 +42,7 @@ int oai_nfapi_tx_req(nfapi_tx_request_t *tx_req);
...
@@ -42,7 +42,7 @@ int oai_nfapi_tx_req(nfapi_tx_request_t *tx_req);
int
oai_nfapi_hi_dci0_req
(
nfapi_hi_dci0_request_t
*
hi_dci0_req
);
int
oai_nfapi_hi_dci0_req
(
nfapi_hi_dci0_request_t
*
hi_dci0_req
);
int
oai_nfapi_ul_config_req
(
nfapi_ul_config_request_t
*
ul_config_req
);
int
oai_nfapi_ul_config_req
(
nfapi_ul_config_request_t
*
ul_config_req
);
extern
uint8_t
nfapi_
pnf
;
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
,
...
@@ -715,14 +715,14 @@ void schedule_response(Sched_Rsp_t *Sched_INFO)
...
@@ -715,14 +715,14 @@ void schedule_response(Sched_Rsp_t *Sched_INFO)
}
}
}
}
if
(
nfapi_
pnf
&&
do_oai
)
if
(
nfapi_
mode
&&
do_oai
)
{
{
oai_nfapi_tx_req
(
Sched_INFO
->
TX_req
);
oai_nfapi_tx_req
(
Sched_INFO
->
TX_req
);
oai_nfapi_dl_config_req
(
Sched_INFO
->
DL_req
);
// DJP - .dl_config_request_body.dl_config_pdu_list[0]); // DJP - FIXME TODO - yuk - only copes with 1 pdu
oai_nfapi_dl_config_req
(
Sched_INFO
->
DL_req
);
// DJP - .dl_config_request_body.dl_config_pdu_list[0]); // DJP - FIXME TODO - yuk - only copes with 1 pdu
}
}
if
(
nfapi_
pnf
&&
number_hi_dci0_pdu
!=
0
)
if
(
nfapi_
mode
&&
number_hi_dci0_pdu
!=
0
)
{
{
oai_nfapi_hi_dci0_req
(
HI_DCI0_req
);
oai_nfapi_hi_dci0_req
(
HI_DCI0_req
);
}
}
...
@@ -750,7 +750,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO)
...
@@ -750,7 +750,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO)
}
}
}
}
if
(
nfapi_
pnf
)
if
(
nfapi_
mode
)
{
{
for
(
int
future_subframe
=
0
;
future_subframe
<
10
;
future_subframe
++
)
for
(
int
future_subframe
=
0
;
future_subframe
<
10
;
future_subframe
++
)
{
{
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
b6a9bb33
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
# include "intertask_interface.h"
# include "intertask_interface.h"
#endif
#endif
extern
uint8_t
nfapi_
pnf
;
extern
uint8_t
nfapi_
mode
;
int
oai_nfapi_rach_ind
(
nfapi_rach_indication_t
*
rach_ind
);
int
oai_nfapi_rach_ind
(
nfapi_rach_indication_t
*
rach_ind
);
...
@@ -703,7 +703,7 @@ void prach_procedures(PHY_VARS_eNB *eNB,
...
@@ -703,7 +703,7 @@ void prach_procedures(PHY_VARS_eNB *eNB,
eNB
->
preamble_list
[
0
].
instance_length
=
0
;
//don't know exactly what this is
eNB
->
preamble_list
[
0
].
instance_length
=
0
;
//don't know exactly what this is
// If NFAPI PNF then we need to send the message to the VNF
// If NFAPI PNF then we need to send the message to the VNF
if
(
nfapi_
pnf
==
1
)
if
(
nfapi_
mode
==
1
)
{
{
nfapi_rach_indication_t
rach_ind
;
nfapi_rach_indication_t
rach_ind
;
rach_ind
.
header
.
message_id
=
NFAPI_RACH_INDICATION
;
rach_ind
.
header
.
message_id
=
NFAPI_RACH_INDICATION
;
...
@@ -711,7 +711,8 @@ void prach_procedures(PHY_VARS_eNB *eNB,
...
@@ -711,7 +711,8 @@ void prach_procedures(PHY_VARS_eNB *eNB,
rach_ind
.
rach_indication_body
=
eNB
->
UL_INFO
.
rach_ind
;
rach_ind
.
rach_indication_body
=
eNB
->
UL_INFO
.
rach_ind
;
LOG_E
(
PHY
,
"
\n\n\n\n
DJP - this needs to be sent to VNF **********************************************
\n\n\n\n
"
);
LOG_E
(
PHY
,
"
\n\n\n\n
DJP - this needs to be sent to VNF **********************************************
\n\n\n\n
"
);
LOG_E
(
PHY
,
"Filling NFAPI indication for RACH : TA %d, Preamble %d, rnti %x, rach_resource_type %d
\n
"
,
LOG_E
(
PHY
,
"Filling NFAPI indication for RACH : SFN_SF:%d TA %d, Preamble %d, rnti %x, rach_resource_type %d
\n
"
,
NFAPI_SFNSF2DEC
(
rach_ind
.
sfn_sf
),
eNB
->
preamble_list
[
0
].
preamble_rel8
.
timing_advance
,
eNB
->
preamble_list
[
0
].
preamble_rel8
.
timing_advance
,
eNB
->
preamble_list
[
0
].
preamble_rel8
.
preamble
,
eNB
->
preamble_list
[
0
].
preamble_rel8
.
preamble
,
eNB
->
preamble_list
[
0
].
preamble_rel8
.
rnti
,
eNB
->
preamble_list
[
0
].
preamble_rel8
.
rnti
,
...
@@ -1727,7 +1728,7 @@ void fill_ulsch_harq_indication(PHY_VARS_eNB *eNB,LTE_UL_eNB_HARQ_t *ulsch_harq,
...
@@ -1727,7 +1728,7 @@ void fill_ulsch_harq_indication(PHY_VARS_eNB *eNB,LTE_UL_eNB_HARQ_t *ulsch_harq,
AssertFatal
(
UE_id
>=
0
,
"UE_id doesn't exist
\n
"
);
AssertFatal
(
UE_id
>=
0
,
"UE_id doesn't exist
\n
"
);
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
nfapi_harq_indication_pdu_t
*
pdu
=
&
eNB
->
UL_INFO
.
harq_ind
.
harq_pdu_list
[
eNB
->
UL_INFO
.
harq_ind
.
number_of_harqs
];
nfapi_harq_indication_pdu_t
*
pdu
=
&
eNB
->
UL_INFO
.
harq_ind
.
harq_
indication_body
.
harq_
pdu_list
[
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
number_of_harqs
];
int
M
;
int
M
;
int
i
;
int
i
;
...
@@ -1782,8 +1783,8 @@ void fill_ulsch_harq_indication(PHY_VARS_eNB *eNB,LTE_UL_eNB_HARQ_t *ulsch_harq,
...
@@ -1782,8 +1783,8 @@ void fill_ulsch_harq_indication(PHY_VARS_eNB *eNB,LTE_UL_eNB_HARQ_t *ulsch_harq,
}
}
}
}
LOG_E
(
PHY
,
"eNB->UL_INFO.harq_ind.number_of_harqs:%d
\n
"
,
eNB
->
UL_INFO
.
harq_ind
.
number_of_harqs
);
LOG_E
(
PHY
,
"eNB->UL_INFO.harq_ind.
harq_indication_body.
number_of_harqs:%d
\n
"
,
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
number_of_harqs
);
eNB
->
UL_INFO
.
harq_ind
.
number_of_harqs
++
;
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
number_of_harqs
++
;
pthread_mutex_unlock
(
&
eNB
->
UL_INFO_mutex
);
pthread_mutex_unlock
(
&
eNB
->
UL_INFO_mutex
);
}
}
...
@@ -1801,7 +1802,7 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB,
...
@@ -1801,7 +1802,7 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB,
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
nfapi_harq_indication_pdu_t
*
pdu
=
&
eNB
->
UL_INFO
.
harq_ind
.
harq_pdu_list
[
eNB
->
UL_INFO
.
harq_ind
.
number_of_harqs
];
nfapi_harq_indication_pdu_t
*
pdu
=
&
eNB
->
UL_INFO
.
harq_ind
.
harq_
indication_body
.
harq_
pdu_list
[
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
number_of_harqs
];
pdu
->
instance_length
=
0
;
// don't know what to do with this
pdu
->
instance_length
=
0
;
// don't know what to do with this
// pdu->rx_ue_information.handle = handle;
// pdu->rx_ue_information.handle = handle;
...
@@ -1945,8 +1946,8 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB,
...
@@ -1945,8 +1946,8 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB,
}
//TDD
}
//TDD
eNB
->
UL_INFO
.
harq_ind
.
number_of_harqs
++
;
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
number_of_harqs
++
;
LOG_E
(
PHY
,
"Incremented eNB->UL_INFO.harq_ind.number_of_harqs:%d
\n
"
,
eNB
->
UL_INFO
.
harq_ind
.
number_of_harqs
);
LOG_E
(
PHY
,
"Incremented eNB->UL_INFO.harq_ind.
harq_indication_body.
number_of_harqs:%d
\n
"
,
eNB
->
UL_INFO
.
harq_ind
.
harq_indication_body
.
number_of_harqs
);
pthread_mutex_unlock
(
&
eNB
->
UL_INFO_mutex
);
pthread_mutex_unlock
(
&
eNB
->
UL_INFO_mutex
);
}
}
...
@@ -2021,7 +2022,7 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
...
@@ -2021,7 +2022,7 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const
uci_procedures
(
eNB
,
proc
);
uci_procedures
(
eNB
,
proc
);
if
(
nfapi_
pnf
==
0
||
nfapi_
pnf
==
1
)
// If PNF or monolithic
if
(
nfapi_
mode
==
0
||
nfapi_
mode
==
1
)
// If PNF or monolithic
{
{
pusch_procedures
(
eNB
,
proc
);
pusch_procedures
(
eNB
,
proc
);
}
}
...
...
openair2/ENB_APP/enb_config.c
View file @
b6a9bb33
...
@@ -105,7 +105,7 @@ static int enb_check_band_frequencies(char* lib_config_file_name_pP,
...
@@ -105,7 +105,7 @@ static int enb_check_band_frequencies(char* lib_config_file_name_pP,
}
}
extern
void
mac_top_init_eNB
(
void
);
extern
void
mac_top_init_eNB
(
void
);
extern
uint8_t
nfapi_
pnf
;
extern
uint8_t
nfapi_
mode
;
...
@@ -288,7 +288,7 @@ void RCconfig_L1(void) {
...
@@ -288,7 +288,7 @@ void RCconfig_L1(void) {
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_portd
=
*
(
L1_ParamList
.
paramarray
[
j
][
L1_REMOTE_N_PORTD_IDX
].
iptr
);
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
remote_portd
=
*
(
L1_ParamList
.
paramarray
[
j
][
L1_REMOTE_N_PORTD_IDX
].
iptr
);
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
transp_preference
=
ETH_UDP_MODE
;
RC
.
eNB
[
j
][
0
]
->
eth_params_n
.
transp_preference
=
ETH_UDP_MODE
;
nfapi_
pnf
=
1
;
nfapi_
mode
=
1
;
RC
.
nb_macrlc_inst
=
1
;
// This is used by mac_top_init_eNB()
RC
.
nb_macrlc_inst
=
1
;
// This is used by mac_top_init_eNB()
...
@@ -386,7 +386,7 @@ void RCconfig_macrlc() {
...
@@ -386,7 +386,7 @@ void RCconfig_macrlc() {
RC
.
mac
[
j
]
->
eth_params_s
.
remote_portd
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_REMOTE_S_PORTD_IDX
].
iptr
);
RC
.
mac
[
j
]
->
eth_params_s
.
remote_portd
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_REMOTE_S_PORTD_IDX
].
iptr
);
RC
.
mac
[
j
]
->
eth_params_s
.
transp_preference
=
ETH_UDP_MODE
;
RC
.
mac
[
j
]
->
eth_params_s
.
transp_preference
=
ETH_UDP_MODE
;
nfapi_
pnf
=
2
;
nfapi_
mode
=
2
;
printf
(
"**************** vnf_port:%d
\n
"
,
RC
.
mac
[
j
]
->
eth_params_s
.
my_portc
);
printf
(
"**************** vnf_port:%d
\n
"
,
RC
.
mac
[
j
]
->
eth_params_s
.
my_portc
);
configure_nfapi_vnf
(
RC
.
mac
[
j
]
->
eth_params_s
.
my_addr
,
RC
.
mac
[
j
]
->
eth_params_s
.
my_portc
);
configure_nfapi_vnf
(
RC
.
mac
[
j
]
->
eth_params_s
.
my_addr
,
RC
.
mac
[
j
]
->
eth_params_s
.
my_portc
);
...
...
openair2/PHY_INTERFACE/IF_Module.c
View file @
b6a9bb33
...
@@ -14,7 +14,7 @@ extern int oai_nfapi_harq_indication(nfapi_harq_indication_t *harq_ind);
...
@@ -14,7 +14,7 @@ extern int oai_nfapi_harq_indication(nfapi_harq_indication_t *harq_ind);
extern
int
oai_nfapi_crc_indication
(
nfapi_crc_indication_t
*
crc_ind
);
extern
int
oai_nfapi_crc_indication
(
nfapi_crc_indication_t
*
crc_ind
);
extern
int
oai_nfapi_cqi_indication
(
nfapi_cqi_indication_t
*
cqi_ind
);
extern
int
oai_nfapi_cqi_indication
(
nfapi_cqi_indication_t
*
cqi_ind
);
extern
int
oai_nfapi_rx_ind
(
nfapi_rx_indication_t
*
ind
);
extern
int
oai_nfapi_rx_ind
(
nfapi_rx_indication_t
*
ind
);
extern
uint8_t
nfapi_
pnf
;
extern
uint8_t
nfapi_
mode
;
void
handle_rach
(
UL_IND_t
*
UL_info
)
{
void
handle_rach
(
UL_IND_t
*
UL_info
)
{
int
i
;
int
i
;
...
@@ -79,7 +79,7 @@ void handle_cqi(UL_IND_t *UL_info) {
...
@@ -79,7 +79,7 @@ void handle_cqi(UL_IND_t *UL_info) {
int
i
;
int
i
;
if
(
nfapi_
pnf
==
1
)
if
(
nfapi_
mode
==
1
)
{
{
if
(
UL_info
->
cqi_ind
.
number_of_cqis
>
0
)
if
(
UL_info
->
cqi_ind
.
number_of_cqis
>
0
)
{
{
...
@@ -113,9 +113,9 @@ void handle_harq(UL_IND_t *UL_info) {
...
@@ -113,9 +113,9 @@ void handle_harq(UL_IND_t *UL_info) {
//if (UL_info->harq_ind.number_of_harqs>0)
//if (UL_info->harq_ind.number_of_harqs>0)
if
(
nfapi_
pnf
==
1
&&
UL_info
->
harq_ind
.
number_of_harqs
>
0
)
// PNF
if
(
nfapi_
mode
==
1
&&
UL_info
->
harq_ind
.
harq_indication_body
.
number_of_harqs
>
0
)
// PNF
{
{
LOG_E
(
PHY
,
"UL_info->harq_ind.number_of_harqs:%d Send to VNF
\n
"
,
UL_info
->
harq_ind
.
number_of_harqs
);
LOG_E
(
PHY
,
"UL_info->harq_ind.
harq_indication_body.
number_of_harqs:%d Send to VNF
\n
"
,
UL_info
->
harq_ind
.
harq_indication_body
.
number_of_harqs
);
nfapi_harq_indication_t
ind
;
nfapi_harq_indication_t
ind
;
...
@@ -130,21 +130,21 @@ void handle_harq(UL_IND_t *UL_info) {
...
@@ -130,21 +130,21 @@ void handle_harq(UL_IND_t *UL_info) {
}
}
}
}
for
(
i
=
0
;
i
<
UL_info
->
harq_ind
.
number_of_harqs
;
i
++
)
for
(
i
=
0
;
i
<
UL_info
->
harq_ind
.
harq_indication_body
.
number_of_harqs
;
i
++
)
harq_indication
(
UL_info
->
module_id
,
harq_indication
(
UL_info
->
module_id
,
UL_info
->
CC_id
,
UL_info
->
CC_id
,
UL_info
->
frame
,
UL_info
->
frame
,
UL_info
->
subframe
,
UL_info
->
subframe
,
&
UL_info
->
harq_ind
.
harq_pdu_list
[
i
]);
&
UL_info
->
harq_ind
.
harq_
indication_body
.
harq_
pdu_list
[
i
]);
UL_info
->
harq_ind
.
number_of_harqs
=
0
;
UL_info
->
harq_ind
.
harq_indication_body
.
number_of_harqs
=
0
;
}
}
void
handle_ulsch
(
UL_IND_t
*
UL_info
)
{
void
handle_ulsch
(
UL_IND_t
*
UL_info
)
{
int
i
,
j
;
int
i
,
j
;
if
(
nfapi_
pnf
==
1
)
if
(
nfapi_
mode
==
1
)
{
{
if
(
UL_info
->
crc_ind
.
crc_indication_body
.
number_of_crcs
>
0
)
if
(
UL_info
->
crc_ind
.
crc_indication_body
.
number_of_crcs
>
0
)
{
{
...
@@ -155,7 +155,7 @@ void handle_ulsch(UL_IND_t *UL_info) {
...
@@ -155,7 +155,7 @@ void handle_ulsch(UL_IND_t *UL_info) {
}
}
if
(
nfapi_
pnf
==
1
&&
UL_info
->
rx_ind
.
rx_indication_body
.
number_of_pdus
>
0
)
if
(
nfapi_
mode
==
1
&&
UL_info
->
rx_ind
.
rx_indication_body
.
number_of_pdus
>
0
)
{
{
LOG_D
(
PHY
,
"UL_info->rx_ind.number_of_pdus:%d
\n
"
,
UL_info
->
rx_ind
.
rx_indication_body
.
number_of_pdus
);
LOG_D
(
PHY
,
"UL_info->rx_ind.number_of_pdus:%d
\n
"
,
UL_info
->
rx_ind
.
rx_indication_body
.
number_of_pdus
);
oai_nfapi_rx_ind
(
&
UL_info
->
rx_ind
);
oai_nfapi_rx_ind
(
&
UL_info
->
rx_ind
);
...
@@ -251,9 +251,9 @@ static void dump_ul(UL_IND_t *u)
...
@@ -251,9 +251,9 @@ static void dump_ul(UL_IND_t *u)
A
(
"XXXX UL mod %d CC %d f.sf %d.%d
\n
"
,
A
(
"XXXX UL mod %d CC %d f.sf %d.%d
\n
"
,
u
->
module_id
,
u
->
CC_id
,
u
->
frame
,
u
->
subframe
);
u
->
module_id
,
u
->
CC_id
,
u
->
frame
,
u
->
subframe
);
A
(
"XXXX harq_ind %d
\n
"
,
u
->
harq_ind
.
number_of_harqs
);
A
(
"XXXX harq_ind %d
\n
"
,
u
->
harq_ind
.
harq_indication_body
.
number_of_harqs
);
for
(
i
=
0
;
i
<
u
->
harq_ind
.
number_of_harqs
;
i
++
)
{
for
(
i
=
0
;
i
<
u
->
harq_ind
.
harq_indication_body
.
number_of_harqs
;
i
++
)
{
nfapi_harq_indication_pdu_t
*
v
=
&
u
->
harq_ind
.
harq_pdu_list
[
i
];
nfapi_harq_indication_pdu_t
*
v
=
&
u
->
harq_ind
.
harq_
indication_body
.
harq_
pdu_list
[
i
];
A
(
"XXXX harq ind %d
\n
"
,
i
);
A
(
"XXXX harq ind %d
\n
"
,
i
);
A
(
"XXXX rnti %d
\n
"
,
v
->
rx_ue_information
.
rnti
);
A
(
"XXXX rnti %d
\n
"
,
v
->
rx_ue_information
.
rnti
);
A
(
"XXXX tb1 %d tb2 %d
\n
"
,
v
->
harq_indication_fdd_rel8
.
harq_tb1
,
A
(
"XXXX tb1 %d tb2 %d
\n
"
,
v
->
harq_indication_fdd_rel8
.
harq_tb1
,
...
@@ -513,7 +513,7 @@ void UL_indication(UL_IND_t *UL_info)
...
@@ -513,7 +513,7 @@ void UL_indication(UL_IND_t *UL_info)
UL_info
->
frame
,
UL_info
->
subframe
,
UL_info
->
frame
,
UL_info
->
subframe
,
module_id
,
CC_id
);
module_id
,
CC_id
);
if
(
nfapi_
pnf
!=
1
)
if
(
nfapi_
mode
!=
1
)
{
{
if
(
ifi
->
CC_mask
==
0
)
{
if
(
ifi
->
CC_mask
==
0
)
{
ifi
->
current_frame
=
UL_info
->
frame
;
ifi
->
current_frame
=
UL_info
->
frame
;
...
@@ -531,7 +531,7 @@ void UL_indication(UL_IND_t *UL_info)
...
@@ -531,7 +531,7 @@ void UL_indication(UL_IND_t *UL_info)
clear_nfapi_information
(
RC
.
mac
[
module_id
],
CC_id
,
clear_nfapi_information
(
RC
.
mac
[
module_id
],
CC_id
,
UL_info
->
frame
,
UL_info
->
subframe
);
UL_info
->
frame
,
UL_info
->
subframe
);
LOG_D
(
PHY
,
"UL_info[rx_ind:%d number_of_harqs:%d number_of_crcs:%d number_of_cqis:%d number_of_preambles:%d]
\n
"
,
UL_info
->
rx_ind
.
rx_indication_body
.
number_of_pdus
,
UL_info
->
harq_ind
.
number_of_harqs
,
UL_info
->
crc_ind
.
crc_indication_body
.
number_of_crcs
,
UL_info
->
cqi_ind
.
number_of_cqis
,
UL_info
->
rach_ind
.
number_of_preambles
);
LOG_D
(
PHY
,
"UL_info[rx_ind:%d number_of_harqs:%d number_of_crcs:%d number_of_cqis:%d number_of_preambles:%d]
\n
"
,
UL_info
->
rx_ind
.
rx_indication_body
.
number_of_pdus
,
UL_info
->
harq_ind
.
harq_indication_body
.
number_of_harqs
,
UL_info
->
crc_ind
.
crc_indication_body
.
number_of_crcs
,
UL_info
->
cqi_ind
.
number_of_cqis
,
UL_info
->
rach_ind
.
number_of_preambles
);
handle_rach
(
UL_info
);
handle_rach
(
UL_info
);
...
@@ -546,7 +546,7 @@ void UL_indication(UL_IND_t *UL_info)
...
@@ -546,7 +546,7 @@ void UL_indication(UL_IND_t *UL_info)
handle_ulsch
(
UL_info
);
handle_ulsch
(
UL_info
);
if
(
nfapi_
pnf
!=
1
)
if
(
nfapi_
mode
!=
1
)
{
{
if
(
ifi
->
CC_mask
==
((
1
<<
MAX_NUM_CCs
)
-
1
))
{
if
(
ifi
->
CC_mask
==
((
1
<<
MAX_NUM_CCs
)
-
1
))
{
...
...
openair2/PHY_INTERFACE/IF_Module.h
View file @
b6a9bb33
...
@@ -61,7 +61,7 @@ typedef struct{
...
@@ -61,7 +61,7 @@ typedef struct{
sub_frame_t
subframe
;
sub_frame_t
subframe
;
/// harq indication list
/// harq indication list
nfapi_harq_indication_
body_
t
harq_ind
;
nfapi_harq_indication_t
harq_ind
;
/// crc indication