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
zzha zzha
OpenXG-RAN
Commits
9151e06f
Commit
9151e06f
authored
Dec 16, 2021
by
Sofia Pison
Committed by
rajeshwari.p
Dec 15, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Progress in DL integration, not yet overwritting the TX shared buffer
parent
20be2dd3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
82 additions
and
38 deletions
+82
-38
targets/ARCH/ETHERNET/oran/5g/oran.cpp
targets/ARCH/ETHERNET/oran/5g/oran.cpp
+4
-2
targets/ARCH/ETHERNET/oran/5g/oran_isolate.c
targets/ARCH/ETHERNET/oran/5g/oran_isolate.c
+66
-25
targets/ARCH/ORAN_FHI/lib/xran_lib_wrap.hpp
targets/ARCH/ORAN_FHI/lib/xran_lib_wrap.hpp
+12
-11
No files found.
targets/ARCH/ETHERNET/oran/5g/oran.cpp
View file @
9151e06f
...
@@ -474,16 +474,18 @@ extern "C"
...
@@ -474,16 +474,18 @@ extern "C"
int
xran_fh_tx_send_slot
(
void
*
xranlib_
,
ru_info_t
*
ru
,
int
frame
,
int
slot
,
uint64_t
timestamp
){
int
xran_fh_tx_send_slot
(
void
*
xranlib_
,
ru_info_t
*
ru
,
int
frame
,
int
slot
,
uint64_t
timestamp
){
xranLibWraper
*
xranlib
=
((
xranLibWraper
*
)
xranlib_
);
xranLibWraper
*
xranlib
=
((
xranLibWraper
*
)
xranlib_
);
int
tti
=
/*frame*SUBFRAMES_PER_SYSTEMFRAME*SLOTNUM_PER_SUBFRAME
*/
+
slot
;
//commented out temporarily to check that compilation of oran 5g is working.
int
tti
=
/*frame*SUBFRAMES_PER_SYSTEMFRAME*SLOTNUM_PER_SUBFRAME
+*/
slot
;
//commented out temporarily to check that compilation of oran 5g is working.
int32_t
flowId
;
int32_t
flowId
;
void
*
ptr
=
NULL
;
void
*
ptr
=
NULL
;
int32_t
*
pos
=
NULL
;
int32_t
*
pos
=
NULL
;
p_xran_dev_ctx_2
=
xran_dev_get_ctx
();
p_xran_dev_ctx_2
=
xran_dev_get_ctx
();
#if 0
if (p_xran_dev_ctx_2 != NULL){
if (p_xran_dev_ctx_2 != NULL){
printf("p_xran_dev_ctx_2=%d\n",p_xran_dev_ctx_2);
printf("p_xran_dev_ctx_2=%d\n",p_xran_dev_ctx_2);
}
}
#endif
int
num_eaxc
=
xranlib
->
get_num_eaxc
();
int
num_eaxc
=
xranlib
->
get_num_eaxc
();
int
num_eaxc_ul
=
xranlib
->
get_num_eaxc_ul
();
int
num_eaxc_ul
=
xranlib
->
get_num_eaxc_ul
();
...
@@ -501,7 +503,7 @@ int xran_fh_tx_send_slot(void *xranlib_, ru_info_t *ru, int frame, int slot, uin
...
@@ -501,7 +503,7 @@ int xran_fh_tx_send_slot(void *xranlib_, ru_info_t *ru, int frame, int slot, uin
nSectorNum
=
xranlib
->
get_num_cc
();
nSectorNum
=
xranlib
->
get_num_cc
();
int
maxflowid
=
num_eaxc
*
(
nSectorNum
-
1
)
+
(
xran_max_antenna_nr
-
1
);
int
maxflowid
=
num_eaxc
*
(
nSectorNum
-
1
)
+
(
xran_max_antenna_nr
-
1
);
printf
(
"the maximum flowID will be=%d
\n
"
,
maxflowid
);
//
printf("the maximum flowID will be=%d\n",maxflowid);
for
(
uint16_t
cc_id
=
0
;
cc_id
<
1
/*nSectorNum*/
;
cc_id
++
){
// OAI does not support multiple CC yet.
for
(
uint16_t
cc_id
=
0
;
cc_id
<
1
/*nSectorNum*/
;
cc_id
++
){
// OAI does not support multiple CC yet.
for
(
uint8_t
ant_id
=
0
;
ant_id
<
xran_max_antenna_nr
&&
ant_id
<
ru
->
nb_tx
;
ant_id
++
){
for
(
uint8_t
ant_id
=
0
;
ant_id
<
xran_max_antenna_nr
&&
ant_id
<
ru
->
nb_tx
;
ant_id
++
){
...
...
targets/ARCH/ETHERNET/oran/5g/oran_isolate.c
View file @
9151e06f
...
@@ -42,8 +42,25 @@ typedef struct {
...
@@ -42,8 +42,25 @@ typedef struct {
int
trx_oran_start
(
openair0_device
*
device
)
int
trx_oran_start
(
openair0_device
*
device
)
{
{
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
#if 1
oran_eth_state_t
*
s
=
device
->
priv
;
// Start ORAN
if
(
start_oran
(
s
->
oran_priv
)
!=
0
){
printf
(
"%s:%d:%s: Start ORAN failed ... Exit
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
exit
(
1
);
}
else
{
printf
(
"Start ORAN. Done
\n
"
);
}
#endif
return
0
;
return
0
;
}
}
...
@@ -51,14 +68,16 @@ void trx_oran_end(openair0_device *device)
...
@@ -51,14 +68,16 @@ void trx_oran_end(openair0_device *device)
{
{
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
oran_eth_state_t
*
s
=
device
->
priv
;
oran_eth_state_t
*
s
=
device
->
priv
;
stop_oran
(
s
);
stop_oran
(
s
->
oran_priv
);
close_oran
(
s
);
close_oran
(
s
->
oran_priv
);
}
}
int
trx_oran_stop
(
openair0_device
*
device
)
int
trx_oran_stop
(
openair0_device
*
device
)
{
{
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
oran_eth_state_t
*
s
=
device
->
priv
;
stop_oran
(
s
->
oran_priv
);
return
(
0
);
return
(
0
);
}
}
...
@@ -158,18 +177,25 @@ int trx_oran_ctlrecv(openair0_device *device, void *msg, ssize_t msg_len)
...
@@ -158,18 +177,25 @@ int trx_oran_ctlrecv(openair0_device *device, void *msg, ssize_t msg_len)
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
if
(
s
->
last_msg
==
RAU_tick
&&
s
->
capabilities_sent
==
0
)
{
if
(
s
->
last_msg
==
RAU_tick
&&
s
->
capabilities_sent
==
0
)
{
printf
(
"CCCCC ORAN ctrlrcv RRU_tick received and send capabilities hard coded
\n
"
);
RRU_capabilities_t
*
cap
;
RRU_capabilities_t
*
cap
;
rru_config_msg
->
type
=
RRU_capabilities
;
rru_config_msg
->
type
=
RRU_capabilities
;
rru_config_msg
->
len
=
sizeof
(
RRU_CONFIG_msg_t
)
-
MAX_RRU_CONFIG_SIZE
+
sizeof
(
RRU_capabilities_t
);
rru_config_msg
->
len
=
sizeof
(
RRU_CONFIG_msg_t
)
-
MAX_RRU_CONFIG_SIZE
+
sizeof
(
RRU_capabilities_t
);
// Fill RRU capabilities (see openair1/PHY/defs_RU.h)
// For now they are hard coded - try to retreive the params from openari device
cap
=
(
RRU_capabilities_t
*
)
&
rru_config_msg
->
msg
[
0
];
cap
=
(
RRU_capabilities_t
*
)
&
rru_config_msg
->
msg
[
0
];
cap
->
FH_fmt
=
OAI_IF4p5_only
;
cap
->
FH_fmt
=
OAI_IF4p5_only
;
cap
->
num_bands
=
1
;
cap
->
num_bands
=
1
;
cap
->
band_list
[
0
]
=
78
;
cap
->
band_list
[
0
]
=
78
;
/
* TODO: hardcoded to 1 for the moment, get the real value somehow... */
/
/ cap->num_concurrent_bands = 1; component carriers
cap
->
nb_rx
[
0
]
=
1
;
//device->openair0_cfg->rx_num_channels;
cap
->
nb_rx
[
0
]
=
1
;
//device->openair0_cfg->rx_num_channels;
cap
->
nb_tx
[
0
]
=
1
;
//device->openair0_cfg->tx_num_channels;
cap
->
nb_tx
[
0
]
=
1
;
//device->openair0_cfg->tx_num_channels;
cap
->
max_pdschReferenceSignalPower
[
0
]
=
-
27
;
cap
->
max_pdschReferenceSignalPower
[
0
]
=
-
27
;
cap
->
max_rxgain
[
0
]
=
90
;
cap
->
max_rxgain
[
0
]
=
90
;
cap
->
N_RB_DL
[
0
]
=
106
;
cap
->
N_RB_UL
[
0
]
=
106
;
s
->
capabilities_sent
=
1
;
s
->
capabilities_sent
=
1
;
...
@@ -180,6 +206,7 @@ int trx_oran_ctlrecv(openair0_device *device, void *msg, ssize_t msg_len)
...
@@ -180,6 +206,7 @@ int trx_oran_ctlrecv(openair0_device *device, void *msg, ssize_t msg_len)
rru_config_msg
->
type
=
RRU_config_ok
;
rru_config_msg
->
type
=
RRU_config_ok
;
return
0
;
return
0
;
}
}
#if 0
if (s->last_msg == RRU_start) {
if (s->last_msg == RRU_start) {
// Folllow the same steps as in the wrapper
// Folllow the same steps as in the wrapper
printf("Oran RRU_start\n");
printf("Oran RRU_start\n");
...
@@ -228,14 +255,17 @@ int trx_oran_ctlrecv(openair0_device *device, void *msg, ssize_t msg_len)
...
@@ -228,14 +255,17 @@ int trx_oran_ctlrecv(openair0_device *device, void *msg, ssize_t msg_len)
}else{
}else{
printf("Start ORAN. Done\n");
printf("Start ORAN. Done\n");
}
}
#if 0
// Once xran library and thread started compute the statistics
// Once xran library and thread started compute the statistics
while(1){
while(1){
sleep(1);
sleep(1);
compute_xran_statistics(s->oran_priv);
compute_xran_statistics(s->oran_priv);
}
}
#endif
}
}
#endif
return
0
;
return
0
;
}
}
...
@@ -243,19 +273,21 @@ void oran_fh_if4p5_south_in(RU_t *ru,
...
@@ -243,19 +273,21 @@ void oran_fh_if4p5_south_in(RU_t *ru,
int
*
frame
,
int
*
frame
,
int
*
slot
)
int
*
slot
)
{
{
if
(
*
frame
==
0
&&
*
slot
==
0
){
printf
(
"XXX oran_fh_if4p5_south_in %d %d
\n
"
,
*
frame
,
*
slot
);
printf
(
"XXX oran_fh_if4p5_south_in %d %d
\n
"
,
*
frame
,
*
slot
);
sleep
(
1
);
}
#if 0
oran_eth_state_t *s = ru->ifdevice.priv;
oran_eth_state_t *s = ru->ifdevice.priv;
NR_DL_FRAME_PARMS *fp;
NR_DL_FRAME_PARMS *fp;
int symbol;
int symbol;
int32_t *rxdata;
int32_t *rxdata;
int antenna;
int antenna;
lock_ul_buffer
(
&
s
->
buffers
,
*
slot
);
//
lock_ul_buffer(&s->buffers, *slot);
#if 1
#if 1
next:
next:
while
(
!
((
s
->
buffers
.
ul_busy
[
0
][
*
slot
]
==
0x3fff
&&
while (!((s->buffers.ul_busy[0][*slot] == 0x3fff &&
s->buffers.ul_busy[1][*slot] == 0x3fff) ||
s->buffers.ul_busy[1][*slot] == 0x3fff) ||
s->buffers.prach_busy[*slot] == 1))
s->buffers.prach_busy[*slot] == 1))
wait_ul_buffer(&s->buffers, *slot);
wait_ul_buffer(&s->buffers, *slot);
...
@@ -288,6 +320,7 @@ next:
...
@@ -288,6 +320,7 @@ next:
if (*slot == 0 && symbol == 0)
if (*slot == 0 && symbol == 0)
printf("rxdata in oran_fh_if4p5_south_in %p\n", &ru->common.rxdataF[antenna][0]);
printf("rxdata in oran_fh_if4p5_south_in %p\n", &ru->common.rxdataF[antenna][0]);
#endif
#endif
#if 1
#if 1
memcpy(rxdata + 2048 - 1272/2,
memcpy(rxdata + 2048 - 1272/2,
&s->buffers.ul[antenna][*slot][symbol*1272*4],
&s->buffers.ul[antenna][*slot][symbol*1272*4],
...
@@ -299,10 +332,12 @@ printf("rxdata in oran_fh_if4p5_south_in %p\n", &ru->common.rxdataF[antenna][0])
...
@@ -299,10 +332,12 @@ printf("rxdata in oran_fh_if4p5_south_in %p\n", &ru->common.rxdataF[antenna][0])
}
}
}
}
#if 1
s->buffers.ul_busy[0][*slot] = 0;
s->buffers.ul_busy[0][*slot] = 0;
s->buffers.ul_busy[1][*slot] = 0;
s->buffers.ul_busy[1][*slot] = 0;
signal_ul_buffer(&s->buffers, *slot);
signal_ul_buffer(&s->buffers, *slot);
unlock_ul_buffer(&s->buffers, *slot);
unlock_ul_buffer(&s->buffers, *slot);
#endif
//printf("BENETEL: %s (f.sf %d.%d)\n", __FUNCTION__, *frame, *slot);
//printf("BENETEL: %s (f.sf %d.%d)\n", __FUNCTION__, *frame, *slot);
...
@@ -325,7 +360,7 @@ printf("rxdata in oran_fh_if4p5_south_in %p\n", &ru->common.rxdataF[antenna][0])
...
@@ -325,7 +360,7 @@ printf("rxdata in oran_fh_if4p5_south_in %p\n", &ru->common.rxdataF[antenna][0])
proc->tti_tx = (sl+sl_ahead)%20;
proc->tti_tx = (sl+sl_ahead)%20;
proc->frame_tx = (sl>(19-sl_ahead)) ? (f+1)&1023 : f;
proc->frame_tx = (sl>(19-sl_ahead)) ? (f+1)&1023 : f;
}
}
#endif
}
}
void
oran_fh_if4p5_south_out
(
RU_t
*
ru
,
void
oran_fh_if4p5_south_out
(
RU_t
*
ru
,
...
@@ -333,9 +368,17 @@ void oran_fh_if4p5_south_out(RU_t *ru,
...
@@ -333,9 +368,17 @@ void oran_fh_if4p5_south_out(RU_t *ru,
int
slot
,
int
slot
,
uint64_t
timestamp
)
uint64_t
timestamp
)
{
{
openair0_device
*
device
=
&
ru
->
ifdevice
;
oran_eth_state_t
*
s
=
device
->
priv
;
ru_info_t
ru_info
;
printf
(
"XXX oran_fh_if4p5_south_out %d %d %ld
\n
"
,
frame
,
slot
,
timestamp
);
ru_info
.
nb_tx
=
ru
->
nb_tx
;
ru_info
.
txdataF_BF
=
ru
->
common
.
txdataF_BF
;
int
ret
=
xran_fh_tx_send_slot
(
s
->
oran_priv
,
&
ru_info
,
frame
,
slot
,
timestamp
);
//printf("XXX oran_fh_if4p5_south_out %d %d %ld\n", frame, slot, timestamp);
#if 0
//printf("Sofia-Romain exit south out\n");
//exit(-1);
oran_eth_state_t *s = ru->ifdevice.priv;
oran_eth_state_t *s = ru->ifdevice.priv;
NR_DL_FRAME_PARMS *fp;
NR_DL_FRAME_PARMS *fp;
int symbol;
int symbol;
...
@@ -382,6 +425,7 @@ printf("XXX oran_fh_if4p5_south_out %d %d %ld\n", frame, slot, timestamp);
...
@@ -382,6 +425,7 @@ printf("XXX oran_fh_if4p5_south_out %d %d %ld\n", frame, slot, timestamp);
s->buffers.dl_busy[0][slot] = 0x3fff;
s->buffers.dl_busy[0][slot] = 0x3fff;
s->buffers.dl_busy[1][slot] = 0x3fff;
s->buffers.dl_busy[1][slot] = 0x3fff;
unlock_dl_buffer(&s->buffers, slot);
unlock_dl_buffer(&s->buffers, slot);
#endif
}
}
void
*
get_internal_parameter
(
char
*
name
)
void
*
get_internal_parameter
(
char
*
name
)
...
@@ -438,8 +482,11 @@ int transport_init(openair0_device *device,
...
@@ -438,8 +482,11 @@ int transport_init(openair0_device *device,
eth
->
last_msg
=
(
rru_config_msg_type_t
)
-
1
;
eth
->
last_msg
=
(
rru_config_msg_type_t
)
-
1
;
#if 0
init_buffers(ð->buffers);
init_buffers(ð->buffers);
#endif
#if 1
oran_eth_state_t
*
s
=
eth
;
oran_eth_state_t
*
s
=
eth
;
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
printf
(
"ORAN: %s
\n
"
,
__FUNCTION__
);
...
@@ -457,8 +504,8 @@ int transport_init(openair0_device *device,
...
@@ -457,8 +504,8 @@ int transport_init(openair0_device *device,
}
}
// Load the IQ samples from file
// Load the IQ samples from file
load_iq_from_file
(
s
->
oran_priv
);
//
load_iq_from_file(s->oran_priv);
printf
(
"Load IQ from file. Done
\n
"
);
//
printf("Load IQ from file. Done\n");
// Register physide callbacks
// Register physide callbacks
register_physide_callbacks
(
s
->
oran_priv
);
register_physide_callbacks
(
s
->
oran_priv
);
...
@@ -473,21 +520,15 @@ int transport_init(openair0_device *device,
...
@@ -473,21 +520,15 @@ int transport_init(openair0_device *device,
printf
(
"Init Oran. Done
\n
"
);
printf
(
"Init Oran. Done
\n
"
);
// Copy the loaded IQ to the xran buffer fro the tx
// Copy the loaded IQ to the xran buffer fro the tx
xran_fh_tx_send_buffer
(
s
->
oran_priv
);
//
xran_fh_tx_send_buffer(s->oran_priv);
printf
(
"ORAN FH send tx buffer filled in with loaded IQs. Done
\n
"
);
//
printf("ORAN FH send tx buffer filled in with loaded IQs. Done\n");
// Open ORAN
// Open ORAN
open_oran
(
s
->
oran_priv
);
open_oran
(
s
->
oran_priv
);
printf
(
"xran_open. Done
\n
"
);
printf
(
"xran_open. Done
\n
"
);
// Start ORAN
#endif
if
(
start_oran
(
s
->
oran_priv
)
!=
0
){
printf
(
"%s:%d:%s: Start ORAN failed ... Exit
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
exit
(
1
);
}
else
{
printf
(
"Start ORAN. Done
\n
"
);
}
return
0
;
return
0
;
}
}
targets/ARCH/ORAN_FHI/lib/xran_lib_wrap.hpp
View file @
9151e06f
...
@@ -233,7 +233,7 @@ private:
...
@@ -233,7 +233,7 @@ private:
std
::
cout
<<
"Sucess xran_mm_init"
<<
std
::
endl
;
std
::
cout
<<
"Sucess xran_mm_init"
<<
std
::
endl
;
/* Init Memory */
/* Init Memory */
printf
(
"
Sofia
wrapper.hpp: Init memory *** XRANFTHTX_OUT ***
\n
"
);
printf
(
"wrapper.hpp: Init memory *** XRANFTHTX_OUT ***
\n
"
);
for
(
i
=
0
;
i
<
nSectorNum
;
i
++
)
{
for
(
i
=
0
;
i
<
nSectorNum
;
i
++
)
{
eInterfaceType
=
XRANFTHTX_OUT
;
eInterfaceType
=
XRANFTHTX_OUT
;
printf
(
"Call xran_bm_init %d
\n
"
,
i
);
printf
(
"Call xran_bm_init %d
\n
"
,
i
);
...
@@ -276,7 +276,7 @@ private:
...
@@ -276,7 +276,7 @@ private:
}
}
/* C-plane DL */
/* C-plane DL */
printf
(
"
Sofia
wrapper.hpp: Init memory *** XRANFTHTX_SEC_DESC_OUT ***
\n
"
);
printf
(
"wrapper.hpp: Init memory *** XRANFTHTX_SEC_DESC_OUT ***
\n
"
);
eInterfaceType
=
XRANFTHTX_SEC_DESC_OUT
;
eInterfaceType
=
XRANFTHTX_SEC_DESC_OUT
;
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
...
@@ -285,7 +285,7 @@ private:
...
@@ -285,7 +285,7 @@ private:
std
::
cout
<<
__LINE__
<<
" Failed at xran_bm_init, status "
<<
status
<<
std
::
endl
;
std
::
cout
<<
__LINE__
<<
" Failed at xran_bm_init, status "
<<
status
<<
std
::
endl
;
return
(
-
1
);
return
(
-
1
);
}
}
printf
(
"
Sofia
wrapper.hpp: Init memory *** XRANFTHTX_PRB_MAP_OUT ***
\n
"
);
printf
(
"wrapper.hpp: Init memory *** XRANFTHTX_PRB_MAP_OUT ***
\n
"
);
eInterfaceType
=
XRANFTHTX_PRB_MAP_OUT
;
eInterfaceType
=
XRANFTHTX_PRB_MAP_OUT
;
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
...
@@ -335,7 +335,7 @@ private:
...
@@ -335,7 +335,7 @@ private:
}
}
for
(
i
=
0
;
i
<
nSectorNum
;
i
++
)
{
for
(
i
=
0
;
i
<
nSectorNum
;
i
++
)
{
printf
(
"
Sofia
wrapper.hpp: Init memory *** XRANFTHRX_IN ***
\n
"
);
printf
(
"wrapper.hpp: Init memory *** XRANFTHRX_IN ***
\n
"
);
eInterfaceType
=
XRANFTHRX_IN
;
eInterfaceType
=
XRANFTHRX_IN
;
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
...
@@ -373,7 +373,7 @@ private:
...
@@ -373,7 +373,7 @@ private:
}
}
}
}
}
}
printf
(
"
Sofia
wrapper.hpp: Init memory *** XRANFTHTX_SEC_DESC_IN ***
\n
"
);
printf
(
"wrapper.hpp: Init memory *** XRANFTHTX_SEC_DESC_IN ***
\n
"
);
eInterfaceType
=
XRANFTHTX_SEC_DESC_IN
;
eInterfaceType
=
XRANFTHTX_SEC_DESC_IN
;
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
...
@@ -382,7 +382,7 @@ private:
...
@@ -382,7 +382,7 @@ private:
std
::
cout
<<
__LINE__
<<
" Failed at xran_bm_init, status "
<<
status
<<
std
::
endl
;
std
::
cout
<<
__LINE__
<<
" Failed at xran_bm_init, status "
<<
status
<<
std
::
endl
;
return
(
-
1
);
return
(
-
1
);
}
}
printf
(
"
Sofia
wrapper.hpp: Init memory *** XRANFTHRX_PRB_MAP_IN ***
\n
"
);
printf
(
"wrapper.hpp: Init memory *** XRANFTHRX_PRB_MAP_IN ***
\n
"
);
eInterfaceType
=
XRANFTHRX_PRB_MAP_IN
;
eInterfaceType
=
XRANFTHRX_PRB_MAP_IN
;
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
...
@@ -433,7 +433,7 @@ private:
...
@@ -433,7 +433,7 @@ private:
}
}
for
(
i
=
0
;
i
<
nSectorNum
;
i
++
)
{
for
(
i
=
0
;
i
<
nSectorNum
;
i
++
)
{
printf
(
"
Sofia
wrapper.hpp: Init memory *** XRANFTHRACH_IN ***
\n
"
);
printf
(
"wrapper.hpp: Init memory *** XRANFTHRACH_IN ***
\n
"
);
eInterfaceType
=
XRANFTHRACH_IN
;
eInterfaceType
=
XRANFTHRACH_IN
;
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
...
@@ -479,7 +479,7 @@ private:
...
@@ -479,7 +479,7 @@ private:
/* add SRS rx buffer */
/* add SRS rx buffer */
for
(
i
=
0
;
i
<
nSectorNum
&&
xran_max_ant_array_elm_nr
;
i
++
)
for
(
i
=
0
;
i
<
nSectorNum
&&
xran_max_ant_array_elm_nr
;
i
++
)
{
{
printf
(
"
Sofia
wrapper.hpp: Init memory *** XRANSRS_IN ***
\n
"
);
printf
(
"wrapper.hpp: Init memory *** XRANSRS_IN ***
\n
"
);
eInterfaceType
=
XRANSRS_IN
;
eInterfaceType
=
XRANSRS_IN
;
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
status
=
xran_bm_init
(
m_nInstanceHandle
[
0
][
i
],
&
m_nBufPoolIndex
[
m_nSectorIndex
[
i
]][
eInterfaceType
],
XRAN_N_FE_BUF_LEN
*
xran_max_ant_array_elm_nr
*
XRAN_MAX_NUM_OF_SRS_SYMBOL_PER_SLOT
,
m_nSW_ToFpga_FTH_TxBufferLen
);
XRAN_N_FE_BUF_LEN
*
xran_max_ant_array_elm_nr
*
XRAN_MAX_NUM_OF_SRS_SYMBOL_PER_SLOT
,
m_nSW_ToFpga_FTH_TxBufferLen
);
...
@@ -545,7 +545,7 @@ public:
...
@@ -545,7 +545,7 @@ public:
m_xranInit
.
io_cfg
.
dpdk_dev
[
XRAN_UP_VF
]
=
"0000:b3:02.0"
;
m_xranInit
.
io_cfg
.
dpdk_dev
[
XRAN_UP_VF
]
=
"0000:b3:02.0"
;
m_xranInit
.
io_cfg
.
dpdk_dev
[
XRAN_CP_VF
]
=
"0000:b3:02.1"
;
m_xranInit
.
io_cfg
.
dpdk_dev
[
XRAN_CP_VF
]
=
"0000:b3:02.1"
;
printf
(
"
Sofia
: m_xranInit.io_cfg.dpdk_dev[%d] =%s, m_xranInit.io_cfg.dpdk_dev[%d]=%s
\n
"
,
XRAN_UP_VF
,
m_xranInit
.
io_cfg
.
dpdk_dev
[
XRAN_UP_VF
],
XRAN_CP_VF
,
m_xranInit
.
io_cfg
.
dpdk_dev
[
XRAN_CP_VF
]);
printf
(
"
wrapper.hpp
: m_xranInit.io_cfg.dpdk_dev[%d] =%s, m_xranInit.io_cfg.dpdk_dev[%d]=%s
\n
"
,
XRAN_UP_VF
,
m_xranInit
.
io_cfg
.
dpdk_dev
[
XRAN_UP_VF
],
XRAN_CP_VF
,
m_xranInit
.
io_cfg
.
dpdk_dev
[
XRAN_CP_VF
]);
m_xranInit
.
io_cfg
.
core
=
get_globalcfg
<
int
>
(
XRAN_UT_KEY_GLOBALCFG_IO
,
"core"
);
m_xranInit
.
io_cfg
.
core
=
get_globalcfg
<
int
>
(
XRAN_UT_KEY_GLOBALCFG_IO
,
"core"
);
m_xranInit
.
io_cfg
.
system_core
=
get_globalcfg
<
int
>
(
XRAN_UT_KEY_GLOBALCFG_IO
,
"system_core"
);
m_xranInit
.
io_cfg
.
system_core
=
get_globalcfg
<
int
>
(
XRAN_UT_KEY_GLOBALCFG_IO
,
"system_core"
);
...
@@ -794,7 +794,7 @@ public:
...
@@ -794,7 +794,7 @@ public:
sizeof
(
struct
xran_ecpri_hdr
)
+
sizeof
(
struct
xran_ecpri_hdr
)
+
sizeof
(
struct
radio_app_common_hdr
)
+
sizeof
(
struct
radio_app_common_hdr
)
+
sizeof
(
struct
data_section_hdr
));
sizeof
(
struct
data_section_hdr
));
printf
(
"
Sofia
wrapper.hpp: nFpgaToSW_FTH_RxBufferLen=%d , nSW_ToFpga_FTH_TxBufferLen=%d
\n
"
,
m_nFpgaToSW_FTH_RxBufferLen
,
m_nSW_ToFpga_FTH_TxBufferLen
);
printf
(
"wrapper.hpp: nFpgaToSW_FTH_RxBufferLen=%d , nSW_ToFpga_FTH_TxBufferLen=%d
\n
"
,
m_nFpgaToSW_FTH_RxBufferLen
,
m_nSW_ToFpga_FTH_TxBufferLen
);
if
(
init_memory
()
<
0
)
{
if
(
init_memory
()
<
0
)
{
std
::
cout
<<
"Fatal Error on Initialization !!!"
<<
std
::
endl
;
std
::
cout
<<
"Fatal Error on Initialization !!!"
<<
std
::
endl
;
...
@@ -899,7 +899,8 @@ printf("Sofia wrapper.hpp: nFpgaToSW_FTH_RxBufferLen=%d , nSW_ToFpga_FTH_TxBuffe
...
@@ -899,7 +899,8 @@ printf("Sofia wrapper.hpp: nFpgaToSW_FTH_RxBufferLen=%d , nSW_ToFpga_FTH_TxBuffe
pRbMap
->
prbMap
[
0
].
nStartSymb
=
0
;
pRbMap
->
prbMap
[
0
].
nStartSymb
=
0
;
pRbMap
->
prbMap
[
0
].
numSymb
=
14
;
pRbMap
->
prbMap
[
0
].
numSymb
=
14
;
pRbMap
->
prbMap
[
0
].
nBeamIndex
=
0
;
pRbMap
->
prbMap
[
0
].
nBeamIndex
=
0
;
pRbMap
->
prbMap
[
0
].
compMethod
=
XRAN_COMPMETHOD_NONE
;
pRbMap
->
prbMap
[
0
].
compMethod
=
XRAN_COMPMETHOD_NONE
;
//BLKFLOAT; // Modify according to the target compression.
pRbMap
->
prbMap
[
0
].
iqWidth
=
14
;
// Modify according to the target compression.
if
(
get_rucategory
()
==
XRAN_CATEGORY_A
)
{
if
(
get_rucategory
()
==
XRAN_CATEGORY_A
)
{
pRbMap
->
prbMap
[
0
].
BeamFormingType
=
XRAN_BEAM_ID_BASED
;
pRbMap
->
prbMap
[
0
].
BeamFormingType
=
XRAN_BEAM_ID_BASED
;
...
...
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