Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
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
wangjie
OpenXG-RAN
Commits
190fe543
Commit
190fe543
authored
Nov 30, 2020
by
Mahesh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Warnings in gNB build resolved
parent
bec8fad1
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
186 additions
and
408 deletions
+186
-408
executables/nr-gnb.c
executables/nr-gnb.c
+1
-0
nfapi/oai_integration/nfapi_pnf.c
nfapi/oai_integration/nfapi_pnf.c
+54
-45
nfapi/oai_integration/nfapi_vnf.c
nfapi/oai_integration/nfapi_vnf.c
+0
-3
nfapi/oai_integration/nfapi_vnf.h
nfapi/oai_integration/nfapi_vnf.h
+1
-1
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
+1
-225
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
+80
-76
nfapi/open-nFAPI/pnf/src/pnf.c
nfapi/open-nFAPI/pnf/src/pnf.c
+2
-45
nfapi/open-nFAPI/vnf/inc/vnf_p7.h
nfapi/open-nFAPI/vnf/inc/vnf_p7.h
+1
-0
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
+2
-2
nfapi/open-nFAPI/vnf/src/vnf.c
nfapi/open-nFAPI/vnf/src/vnf.c
+4
-3
openair1/SCHED/nfapi_lte_dummy.c
openair1/SCHED/nfapi_lte_dummy.c
+16
-0
openair1/SCHED/nfapi_nr_dummy.c
openair1/SCHED/nfapi_nr_dummy.c
+16
-0
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SCHED_NR/fapi_nr_l1.c
+8
-8
No files found.
executables/nr-gnb.c
View file @
190fe543
...
...
@@ -48,6 +48,7 @@
#include "SCHED_NR/sched_nr.h"
#include "SCHED_NR/fapi_nr_l1.h"
#include "PHY/NR_TRANSPORT/nr_transport_proto.h"
#include "PHY/MODULATION/nr_modulation.h"
#undef MALLOC //there are two conflicting definitions, so we better make sure we don't use it at all
//#undef FRAME_LENGTH_COMPLEX_SAMPLES //there are two conflicting definitions, so we better make sure we don't use it at all
...
...
nfapi/oai_integration/nfapi_pnf.c
View file @
190fe543
...
...
@@ -94,6 +94,24 @@ extern void handle_nr_nfapi_pdsch_pdu(PHY_VARS_gNB *gNB,int frame,int slot,
uint8_t
*
sdu
);
extern
void
handle_nr_nfapi_ssb_pdu
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdu
);
extern
void
nr_fill_ulsch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pusch_pdu_t
*
ulsch_pdu
);
extern
void
nr_fill_pucch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pucch_pdu_t
*
pucch_pdu
);
extern
void
nr_fill_prach
(
PHY_VARS_gNB
*
gNB
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
);
extern
void
nr_fill_prach_ru
(
RU_t
*
ru
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
);
nfapi_tx_request_pdu_t
*
tx_request_pdu
[
1023
][
10
][
10
];
// [frame][subframe][max_num_pdus]
...
...
@@ -1242,7 +1260,7 @@ void pnf_phy_deallocate_p7_vendor_ext(nfapi_p7_message_header_t *header) {
int
pnf_phy_ul_dci_req
(
gNB_L1_rxtx_proc_t
*
proc
,
nfapi_pnf_p7_config_t
*
pnf_p7
,
nfapi_nr_ul_dci_request_t
*
req
)
{
// if (req-> hi_dci0_request_body.number_of_dci == 0 && req->hi_dci0_request_body.number_of_hi == 0)
// LOG_D(PHY,"[PNF] HI_DCI0_REQUEST SFN/SF:%05d dci:%d 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);
...
...
@@ -1254,20 +1272,9 @@ int pnf_phy_ul_dci_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
//LOG_D(PHY,"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d]\n", NFAPI_SFNSF2DEC(req->sfn_sf), i);
if
(
req
->
ul_dci_pdu_list
[
i
].
PDUType
==
0
)
{
//LOG_D(PHY,"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_DCI_PDU_TYPE\n", NFAPI_SFNSF2DEC(req->sfn_sf), i);
//nfapi_hi_dci0_request_pdu_t *hi_dci0_req_pdu = &req->hi_dci0_request_body.hi_dci0_pdu_list[i];
nfapi_nr_ul_dci_request_pdus_t
*
ul_dci_req_pdu
=
&
req
->
ul_dci_pdu_list
[
i
];
//handle_nfapi_hi_dci0_dci_pdu(eNB,NFAPI_SFNSF2SFN(req->sfn_sf),NFAPI_SFNSF2SF(req->sfn_sf),proc,hi_dci0_req_pdu);
handle_nfapi_nr_ul_dci_pdu
(
gNB
,
req
->
SFN
,
req
->
Slot
,
&
ul_dci_req_pdu
);
// eNB->pdcch_vars[NFAPI_SFNSF2SF(req->sfn_sf)&1].num_dci++;
// TODO: find pdcch_vars for gNB
nfapi_nr_ul_dci_request_pdus_t
*
ul_dci_req_pdu
=
&
req
->
ul_dci_pdu_list
[
i
];
handle_nfapi_nr_ul_dci_pdu
(
gNB
,
req
->
SFN
,
req
->
Slot
,
ul_dci_req_pdu
);
}
// else if (req->hi_dci0_request_body.hi_dci0_pdu_list[i].pdu_type == NFAPI_HI_DCI0_HI_PDU_TYPE) {
// LOG_D(PHY,"[PNF] HI_DCI0_REQ sfn_sf:%d PDU[%d] - NFAPI_HI_DCI0_HI_PDU_TYPE\n", NFAPI_SFNSF2DEC(req->sfn_sf), i);
// nfapi_hi_dci0_request_pdu_t *hi_dci0_req_pdu = &req->hi_dci0_request_body.hi_dci0_pdu_list[i];
// handle_nfapi_hi_dci0_hi_pdu(eNB, NFAPI_SFNSF2SFN(req->sfn_sf),NFAPI_SFNSF2SF(req->sfn_sf), proc, hi_dci0_req_pdu);
// }
else
{
LOG_E
(
PHY
,
"[PNF] UL_DCI_REQ sfn_slot:%d PDU[%d] - unknown pdu type:%d
\n
"
,
NFAPI_SFNSLOT2DEC
(
req
->
SFN
,
req
->
Slot
),
i
,
req
->
ul_dci_pdu_list
[
i
].
PDUType
);
}
...
...
@@ -1324,9 +1331,6 @@ int pnf_phy_dl_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
return
-
4
;
}
// int sfn = NFAPI_SFNSF2SFN(req->sfn_sf);
// int sf = NFAPI_SFNSF2SF(req->sfn_sf);
int
sfn
=
req
->
SFN
;
int
slot
=
req
->
Slot
;
...
...
@@ -1335,13 +1339,6 @@ int pnf_phy_dl_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
proc
=
&
gNB
->
proc
.
L1_proc
;
nfapi_nr_dl_tti_request_pdu_t
*
dl_tti_pdu_list
=
req
->
dl_tti_request_body
.
dl_tti_pdu_list
;
// TODO: NR_gNB_PDCCH not defined yet (check later)
#if 0
LTE_eNB_PDCCH *pdcch_vars = &eNB->pdcch_vars[sf&1];
pdcch_vars->num_pdcch_symbols = req->dl_config_request_body.number_pdcch_ofdm_symbols;
pdcch_vars->num_dci = 0;
#endif
if
(
req
->
dl_tti_request_body
.
nPDUs
)
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"%s() TX:%d/%d RX:%d/%d; sfn:%d, slot:%d, nGroup:%u, nPDUs: %u, nUE: %u, PduIdx: %u,
\n
"
,
__FUNCTION__
,
proc
->
frame_tx
,
proc
->
slot_tx
,
proc
->
frame_rx
,
proc
->
slot_rx
,
// TODO: change subframes to slot
...
...
@@ -1364,15 +1361,9 @@ int pnf_phy_dl_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
//dl_tti_pdu_list[i].pdcch_pdu.pdcch_pdu_rel15.numDlDci++; // ?
// NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() pdcch_vars->num_dci:%d\n", __FUNCTION__, pdcch_vars->num_dci);
}
else
if
(
dl_tti_pdu_list
[
i
].
PDUType
==
NFAPI_NR_DL_TTI_SSB_PDU_TYPE
)
{
// nfapi_dl_config_bch_pdu *bch_pdu = &dl_config_pdu_list[i].bch_pdu;
nfapi_nr_dl_tti_ssb_pdu
*
ssb_pdu
=
&
dl_tti_pdu_list
[
i
].
ssb_pdu
;
// uint16_t pdu_index = bch_pdu->bch_pdu_rel8.pdu_index;
uint16_t
pdu_index
=
ssb_pdu
->
ssb_pdu_rel15
.
SsbBlockIndex
;
// if (tx_data_request[sfn][slot][pdu_index] != NULL) {
//NFAPI_TRACE(NFAPI_TRACE_INFO, "%s() PDU:%d BCH: pdu_index:%u pdu_length:%d sdu_length:%d BCH_SDU:%x,%x,%x\n", __FUNCTION__, i, pdu_index, bch_pdu->bch_pdu_rel8.length, tx_request_pdu[sfn][sf][pdu_index]->segments[0].segment_length, sdu[0], sdu[1], sdu[2]);
handle_nr_nfapi_ssb_pdu
(
gNB
,
sfn
,
slot
,
&
dl_tti_pdu_list
[
i
]);
gNB
->
pbch_configured
=
1
;
\
gNB
->
pbch_configured
=
1
;
//} else {
// NFAPI_TRACE(NFAPI_TRACE_ERROR, "%s() BCH NULL TX PDU SFN/SF:%d PDU_INDEX:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(req->sfn_sf), pdu_index);
//}
...
...
@@ -1584,7 +1575,6 @@ int pnf_phy_ul_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"%s() Main system not up - is this a dummy slot?
\n
"
,
__FUNCTION__
);
return
-
4
;
}
uint16_t
curr_sfn
=
req
->
SFN
;
uint16_t
curr_slot
=
req
->
Slot
;
struct
PHY_VARS_gNB_s
*
gNB
=
RC
.
gNB
[
0
];
...
...
@@ -1595,21 +1585,40 @@ int pnf_phy_ul_tti_req(gNB_L1_rxtx_proc_t *proc, nfapi_pnf_p7_config_t *pnf_p7,
nfapi_nr_ul_tti_request_number_of_pdus_t
*
ul_tti_pdu_list
=
req
->
pdus_list
;
for
(
int
i
=
0
;
i
<
req
->
n_pdus
;
i
++
)
{
//LOG_D(PHY, "%s() sfn/sf:%d PDU[%d] size:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(req->sfn_sf), i, ul_config_pdu_list[i].pdu_size);
if
(
ul_tti_pdu_list
[
i
].
pdu_type
==
NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE
||
ul_tti_pdu_list
[
i
].
pdu_type
==
NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE
||
ul_tti_pdu_list
[
i
].
pdu_type
==
NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE
||
ul_tti_pdu_list
[
i
].
pdu_type
==
NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE
)
{
//LOG_D(PHY, "%s() handle_nfapi_ul_pdu() for PDU:%d\n", __FUNCTION__, i);
// handle_nfapi_ul_pdu(eNB,proc,&ul_config_pdu_list[i],curr_sfn,curr_sf,req->ul_config_request_body.srs_present);
// TODO: dont have an NR function for this, also srs_present flag not there
}
else
{
switch
(
ul_tti_pdu_list
[
i
].
pdu_type
)
{
case
NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE
:
//LOG_D(PHY,"frame %d, slot %d, Got NFAPI_NR_UL_TTI_PUSCH_PDU_TYPE for %d.%d\n", frame, slot, UL_tti_req->SFN, UL_tti_req->Slot);
nr_fill_ulsch
(
gNB
,
curr_sfn
,
curr_slot
,
&
ul_tti_pdu_list
[
i
].
pusch_pdu
);
break
;
case
NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE
:
//LOG_D(PHY,"frame %d, slot %d, Got NFAPI_NR_UL_TTI_PUCCH_PDU_TYPE for %d.%d\n", frame, slot, UL_tti_req->SFN, UL_tti_req->Slot);
nr_fill_pucch
(
gNB
,
curr_sfn
,
curr_slot
,
&
ul_tti_pdu_list
[
i
].
pucch_pdu
);
break
;
case
NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE
:
//LOG_D(PHY,"frame %d, slot %d, Got NFAPI_NR_UL_TTI_PRACH_PDU_TYPE for %d.%d\n", frame, slot, UL_tti_req->SFN, UL_tti_req->Slot);
nr_fill_prach
(
gNB
,
curr_sfn
,
curr_slot
,
&
ul_tti_pdu_list
[
i
].
prach_pdu
);
if
(
gNB
->
RU_list
[
0
]
->
if_south
==
LOCAL_RF
)
nr_fill_prach_ru
(
gNB
->
RU_list
[
0
],
curr_sfn
,
curr_slot
,
&
ul_tti_pdu_list
[
i
].
prach_pdu
);
break
;
default:
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"%s() PDU:%i UNKNOWN type :%d
\n
"
,
__FUNCTION__
,
i
,
ul_tti_pdu_list
[
i
].
pdu_type
);
break
;
}
// //LOG_D(PHY, "%s() sfn/sf:%d PDU[%d] size:%d\n", __FUNCTION__, NFAPI_SFNSF2DEC(req->sfn_sf), i, ul_config_pdu_list[i].pdu_size);
// if (
// ul_tti_pdu_list[i].pdu_type == NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE ||
// ul_tti_pdu_list[i].pdu_type == NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE ||
// ul_tti_pdu_list[i].pdu_type == NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE ||
// ul_tti_pdu_list[i].pdu_type == NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE
// ) {
// //LOG_D(PHY, "%s() handle_nfapi_ul_pdu() for PDU:%d\n", __FUNCTION__, i);
// // handle_nfapi_ul_pdu(eNB,proc,&ul_config_pdu_list[i],curr_sfn,curr_sf,req->ul_config_request_body.srs_present);
// // TODO: dont have an NR function for this, also srs_present flag not there
// } else {
// NFAPI_TRACE(NFAPI_TRACE_ERROR, "%s() PDU:%i UNKNOWN type :%d\n", __FUNCTION__, i, ul_tti_pdu_list[i].pdu_type);
// }
}
return
0
;
...
...
nfapi/oai_integration/nfapi_vnf.c
View file @
190fe543
...
...
@@ -242,9 +242,6 @@ void oai_create_gnb(void) {
PHY_VARS_gNB
*
gNB
=
RC
.
gNB
[
0
];
RC
.
nb_nr_CC
=
(
int
*
)
malloc
(
sizeof
(
int
));
// TODO: find a better function to place this in
printf
(
"[VNF] RC.gNB[0][0]. Mod_id:%d CC_id:%d nb_CC[0]:%d abstraction_flag:%d single_thread_flag:%d if_inst:%p
\n
"
,
gNB
->
Mod_id
,
gNB
->
CC_id
,
RC
.
nb_nr_CC
,
gNB
->
abstraction_flag
,
gNB
->
single_thread_flag
,
gNB
->
if_inst
);
gNB
->
Mod_id
=
bodge_counter
;
gNB
->
CC_id
=
bodge_counter
;
gNB
->
abstraction_flag
=
0
;
...
...
nfapi/oai_integration/nfapi_vnf.h
View file @
190fe543
...
...
@@ -23,5 +23,5 @@
#define NFAPI_VNF_H__
void
configure_nfapi_vnf
(
char
*
vnf_addr
,
int
vnf_p5_port
);
void
configure_nr_nfapi_vnf
(
char
*
vnf_addr
,
int
vnf_p5_port
);
#endif
nfapi/open-nFAPI/nfapi/src/nfapi_p5.c
View file @
190fe543
This diff is collapsed.
Click to expand it.
nfapi/open-nFAPI/nfapi/src/nfapi_p7.c
View file @
190fe543
This diff is collapsed.
Click to expand it.
nfapi/open-nFAPI/pnf/src/pnf.c
View file @
190fe543
...
...
@@ -430,49 +430,6 @@ void pnf_handle_pnf_stop_request(pnf_t* pnf, void *pRecvMsg, int recvMsgLen)
}
}
void
pnf_nr_handle_pnf_stop_request
(
pnf_t
*
pnf
,
void
*
pRecvMsg
,
int
recvMsgLen
)
{
// ensure it's valid
if
(
pRecvMsg
==
NULL
||
pnf
==
NULL
)
{
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"%s: NULL parameters
\n
"
,
__FUNCTION__
);
}
else
{
nfapi_nr_pnf_stop_request_t
req
;
NFAPI_TRACE
(
NFAPI_TRACE_INFO
,
"PNF_STOP.request Received
\n
"
);
// unpack the message
if
(
nfapi_nr_p5_message_unpack
(
pRecvMsg
,
recvMsgLen
,
&
req
,
sizeof
(
req
),
&
pnf
->
_public
.
codec_config
)
>=
0
)
{
if
(
pnf
->
_public
.
state
==
NFAPI_PNF_RUNNING
)
{
if
(
pnf
->
_public
.
pnf_stop_req
)
{
(
pnf
->
_public
.
pnf_stop_req
)(
&
(
pnf
->
_public
),
&
req
);
}
}
else
{
nfapi_pnf_stop_response_t
resp
;
memset
(
&
resp
,
0
,
sizeof
(
resp
));
resp
.
header
.
message_id
=
NFAPI_PNF_STOP_RESPONSE
;
resp
.
error_code
=
NFAPI_MSG_INVALID_STATE
;
nfapi_pnf_pnf_stop_resp
(
&
(
pnf
->
_public
),
&
resp
);
}
}
else
{
NFAPI_TRACE
(
NFAPI_TRACE_ERROR
,
"%s: Unpack message failed, ignoring
\n
"
,
__FUNCTION__
);
}
if
(
req
.
vendor_extension
)
pnf
->
_public
.
codec_config
.
deallocate
(
req
.
vendor_extension
);
}
}
void
pnf_handle_param_request
(
pnf_t
*
pnf
,
void
*
pRecvMsg
,
int
recvMsgLen
)
{
// ensure it's valid
...
...
@@ -1611,8 +1568,8 @@ void pnf_nr_handle_p5_message(pnf_t* pnf, void *pRecvMsg, int recvMsgLen)
pnf_nr_handle_pnf_start_request
(
pnf
,
pRecvMsg
,
recvMsgLen
);
break
;
case
NFAPI_
NR_PHY_MSG_TYPE_
PNF_STOP_REQUEST
:
pnf_
nr_
handle_pnf_stop_request
(
pnf
,
pRecvMsg
,
recvMsgLen
);
case
NFAPI_PNF_STOP_REQUEST
:
pnf_handle_pnf_stop_request
(
pnf
,
pRecvMsg
,
recvMsgLen
);
break
;
case
NFAPI_NR_PHY_MSG_TYPE_PARAM_REQUEST
:
...
...
nfapi/open-nFAPI/vnf/inc/vnf_p7.h
View file @
190fe543
...
...
@@ -138,6 +138,7 @@ nfapi_vnf_p7_connection_info_t* vnf_p7_connection_info_list_find(vnf_p7_t* vnf_p
nfapi_vnf_p7_connection_info_t
*
vnf_p7_connection_info_list_delete
(
vnf_p7_t
*
vnf_p7
,
uint16_t
phy_id
);
int
vnf_p7_pack_and_send_p7_msg
(
vnf_p7_t
*
vnf_p7
,
nfapi_p7_message_header_t
*
header
);
int
vnf_nr_p7_pack_and_send_p7_msg
(
vnf_p7_t
*
vnf_p7
,
nfapi_p7_message_header_t
*
header
);
void
vnf_p7_release_msg
(
vnf_p7_t
*
vnf_p7
,
nfapi_p7_message_header_t
*
header
);
void
vnf_p7_release_pdu
(
vnf_p7_t
*
vnf_p7
,
void
*
pdu
);
...
...
nfapi/open-nFAPI/vnf/public_inc/nfapi_vnf_interface.h
View file @
190fe543
...
...
@@ -253,7 +253,7 @@ typedef struct nfapi_vnf_config
* then the substructure pointers should be set to 0 and then the client should
* use the codec_config.deallocate function to release it at a future point
*/
int
(
*
param_resp
)(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
nr_param_response_scf
_t
*
resp
);
int
(
*
param_resp
)(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_
param_response
_t
*
resp
);
int
(
*
nr_param_resp
)(
nfapi_vnf_config_t
*
config
,
int
p5_idx
,
nfapi_nr_param_response_scf_t
*
resp
);
/*! A callback for the CONFIG.response
...
...
@@ -477,7 +477,7 @@ void nfapi_vnf_config_destory(nfapi_vnf_config_t* config);
*
* This function will not return untill nfapi_vnf_stop is called
*/
//
int nfapi_nr_vnf_start(nfapi_vnf_config_t* config);
int
nfapi_nr_vnf_start
(
nfapi_vnf_config_t
*
config
);
int
nfapi_vnf_start
(
nfapi_vnf_config_t
*
config
);
...
...
nfapi/open-nFAPI/vnf/src/vnf.c
View file @
190fe543
...
...
@@ -21,6 +21,7 @@
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include "vnf.h"
...
...
@@ -417,7 +418,7 @@ void vnf_nr_handle_param_response(void *pRecvMsg, int recvMsgLen, nfapi_vnf_conf
if
(
nfapi_nr_p5_message_unpack
(
pRecvMsg
,
recvMsgLen
,
&
msg
,
sizeof
(
msg
),
&
config
->
codec_config
)
>=
0
)
{
if
(
msg
.
error_code
==
NFAPI_MSG_OK
)
if
(
msg
.
error_code
==
NFAPI_
NR_PARAM_
MSG_OK
)
{
nfapi_vnf_phy_info_t
*
phy_info
=
nfapi_vnf_phy_info_list_find
(
config
,
msg
.
header
.
phy_id
);
...
...
@@ -485,7 +486,7 @@ void vnf_nr_handle_config_response(void *pRecvMsg, int recvMsgLen, nfapi_vnf_con
{
// check the error code:
if
(
msg
.
error_code
==
NFAPI_MSG_OK
){
if
(
msg
.
error_code
==
NFAPI_
NR_CONFIG_
MSG_OK
){
if
(
config
->
nr_config_resp
)
{
(
config
->
nr_config_resp
)(
config
,
p5_idx
,
&
msg
);
...
...
@@ -588,7 +589,7 @@ void vnf_nr_handle_start_response(void *pRecvMsg, int recvMsgLen, nfapi_vnf_conf
// unpack the message
if
(
nfapi_nr_p5_message_unpack
(
pRecvMsg
,
recvMsgLen
,
&
msg
,
sizeof
(
msg
),
&
config
->
codec_config
)
>=
0
)
{
// check the error code
if
(
msg
.
error_code
==
NFAPI_MSG_OK
){
if
(
msg
.
error_code
==
NFAPI_
NR_START_
MSG_OK
){
if
(
config
->
nr_start_resp
)
{
(
config
->
nr_start_resp
)(
config
,
p5_idx
,
&
msg
);
...
...
openair1/SCHED/nfapi_lte_dummy.c
View file @
190fe543
...
...
@@ -26,6 +26,22 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) {}
void
handle_nfapi_nr_ul_dci_pdu
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_ul_dci_request_pdus_t
*
ul_dci_request_pdu
){}
void
nr_fill_ulsch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pusch_pdu_t
*
ulsch_pdu
){}
void
nr_fill_pucch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pucch_pdu_t
*
pucch_pdu
){}
void
nr_fill_prach
(
PHY_VARS_gNB
*
gNB
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
){}
void
nr_fill_prach_ru
(
RU_t
*
ru
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
){}
void
nr_phy_config_request
(
NR_PHY_Config_t
*
gNB
){}
...
...
openair1/SCHED/nfapi_nr_dummy.c
View file @
190fe543
...
...
@@ -26,6 +26,22 @@ NR_IF_Module_t *NR_IF_Module_init(int Mod_id) {}
void
handle_nfapi_nr_ul_dci_pdu
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_ul_dci_request_pdus_t
*
ul_dci_request_pdu
){}
void
nr_fill_ulsch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pusch_pdu_t
*
ulsch_pdu
){}
void
nr_fill_pucch
(
PHY_VARS_gNB
*
gNB
,
int
frame
,
int
slot
,
nfapi_nr_pucch_pdu_t
*
pucch_pdu
){}
void
nr_fill_prach
(
PHY_VARS_gNB
*
gNB
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
){}
void
nr_fill_prach_ru
(
RU_t
*
ru
,
int
SFN
,
int
Slot
,
nfapi_nr_prach_pdu_t
*
prach_pdu
){}
void
nr_phy_config_request
(
NR_PHY_Config_t
*
gNB
){}
...
...
openair1/SCHED_NR/fapi_nr_l1.c
View file @
190fe543
...
...
@@ -234,11 +234,15 @@ if(nfapi_mode != 2)
}
}
//
if(nfapi_mode != 0 && number_ul_tti_pdu>0)
//
{
//
oai_nfapi_ul_tti_req(UL_tti_req);
// } Test only DL
if
(
nfapi_mode
!=
0
&&
number_ul_tti_pdu
>
0
)
{
oai_nfapi_ul_tti_req
(
UL_tti_req
);
}
if
(
nfapi_mode
!=
0
&&
Sched_INFO
->
UL_dci_req
->
numPdus
!=
0
)
{
oai_nfapi_ul_dci_req
(
Sched_INFO
->
UL_dci_req
);
}
//Only DL
if
(
nfapi_mode
!=
0
)
{
if
(
Sched_INFO
->
DL_req
->
dl_tti_request_body
.
nPDUs
>
0
)
...
...
@@ -254,8 +258,4 @@ if(nfapi_mode != 2)
}
// if (nfapi_mode != 0 && Sched_INFO->UL_dci_req->numPdus!=0)
// {
// oai_nfapi_ul_dci_req(Sched_INFO->UL_dci_req);
// }//Only DL
}
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