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
lizhongxiao
OpenXG-RAN
Commits
2cd84890
Commit
2cd84890
authored
Jun 13, 2016
by
Sandeep Kumar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
starting to add run options for node_function
parent
2cc779b9
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
92 additions
and
32 deletions
+92
-32
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+16
-16
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+76
-16
No files found.
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
2cd84890
...
...
@@ -2498,7 +2498,7 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
eNB_proc_t
*
proc
=
&
eNB
->
proc
;
int
subframe
=
proc
->
subframe_rx
;
int
frame
=
proc
->
frame_rx
;
int
symbol_number
,
symbol_mask
,
symbol_mask_full
,
prach_rx
;
int
symbol_number
,
symbol_mask
,
symbol_mask_full
,
prach_rx
,
packet_type
;
if
(
subframe
==
9
)
{
subframe
=
0
;
...
...
@@ -2580,23 +2580,23 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
// get frame/subframe information from IF4 interface
// timed loop (200 us)
symbol_mask
=
0
;
symbol_mask_full
=
(
1
<<
fp
->
symbols_per_tti
)
-
1
;
if
(
is_prach_subframe
(
fp
,
frame
,
subframe
)
>
0
)
prach_rx
=
0
;
else
prach_rx
=
1
;
//
symbol_mask = 0;
//
symbol_mask_full = (1<<fp->symbols_per_tti)-1;
//
if (is_prach_subframe(fp,frame,subframe)>0)
//
prach_rx = 0;
//
else
//
prach_rx = 1;
do
{
recv_IF4
(
eNB
,
proc
,
&
packet_type
,
&
symbol_number
);
if
(
is_prach_subframe
(
fp
,
frame
,
subframe
)
>
0
&&
packet_type
==
PRACH
)
{
// wake up prach_rx
prach_rx
=
1
;
}
if
(
packet_type
==
PULFFT
)
symbol_mask
=
symbol_mask
|
(
1
<<
symbol_number
);
//
do {
//
recv_IF4(eNB, proc, &packet_type, &symbol_number);
//
if (is_prach_subframe(fp,frame,subframe)>0 && packet_type == PRACH) {
//
//
wake up prach_rx
//
prach_rx = 1;
//
}
//if (packet_type == IF4_
PULFFT)
//
symbol_mask = symbol_mask | (1<<symbol_number);
}
while
(
(
symbol_mask
!=
symbol_mask_full
)
||
(
prach_rx
==
0
));
//
} while( (symbol_mask != symbol_mask_full) || (prach_rx == 0));
//recv_IF4(eNB,subframe<<1);
...
...
targets/RT/USER/lte-softmodem.c
View file @
2cd84890
...
...
@@ -227,7 +227,7 @@ int otg_enabled;
static
LTE_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
];
eNB_func_t
node_function
=
eNodeB_3GPP
;
uint32_t
target_dl_mcs
=
28
;
//maximum allowed mcs
uint32_t
target_ul_mcs
=
20
;
...
...
@@ -381,6 +381,9 @@ void help (void) {
printf
(
" --ue-txgain set UE TX gain
\n
"
);
printf
(
" --ue-scan_carrier set UE to scan around carrier
\n
"
);
printf
(
" --loop-memory get softmodem (UE) to loop through memory instead of acquiring from HW
\n
"
);
printf
(
" --RCC run using NGFI RCC node function
\n
"
);
printf
(
" --RRU run using NGFI RRU node function
\n
"
);
printf
(
" --eNB run using 3GPP eNB node function
\n
"
);
printf
(
" -C Set the downlink frequency for all component carriers
\n
"
);
printf
(
" -d Enable soft scope and L1 and L2 stats (Xforms)
\n
"
);
printf
(
" -F Calibrate the EXMIMO borad, available files: exmimo2_2arxg.lime exmimo2_2brxg.lime
\n
"
);
...
...
@@ -667,7 +670,10 @@ static void get_options (int argc, char **argv)
LONG_OPTION_MAXPOWER
,
LONG_OPTION_DUMP_FRAME
,
LONG_OPTION_LOOPMEMORY
,
LONG_OPTION_PHYTEST
LONG_OPTION_PHYTEST
,
LONG_OPTION_RCC
,
LONG_OPTION_RRU
,
LONG_OPTION_ENB
};
static
const
struct
option
long_options
[]
=
{
...
...
@@ -686,6 +692,9 @@ static void get_options (int argc, char **argv)
{
"ue-dump-frame"
,
no_argument
,
NULL
,
LONG_OPTION_DUMP_FRAME
},
{
"loop-memory"
,
required_argument
,
NULL
,
LONG_OPTION_LOOPMEMORY
},
{
"phy-test"
,
no_argument
,
NULL
,
LONG_OPTION_PHYTEST
},
{
"RCC"
,
no_argument
,
NULL
,
LONG_OPTION_RCC
},
{
"RRU"
,
no_argument
,
NULL
,
LONG_OPTION_RRU
},
{
"eNB"
,
no_argument
,
NULL
,
LONG_OPTION_ENB
},
{
NULL
,
0
,
NULL
,
0
}
};
...
...
@@ -772,6 +781,18 @@ static void get_options (int argc, char **argv)
case
LONG_OPTION_PHYTEST
:
phy_test
=
1
;
break
;
case
LONG_OPTION_RCC
:
node_function
=
NGFI_RCC_IF4
;
break
;
case
LONG_OPTION_RRU
:
node_function
=
NGFI_RRU_IF4
;
break
;
case
LONG_OPTION_ENB
:
node_function
=
eNodeB_3GPP
;
break
;
case
'A'
:
timing_advance
=
atoi
(
optarg
);
...
...
@@ -993,7 +1014,7 @@ static void get_options (int argc, char **argv)
if
(
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
active
==
1
)
{
local_remote_radio
=
BBU_REMOTE_RADIO_HEAD
;
eth_params
=
(
eth_params_t
*
)
malloc
(
sizeof
(
eth_params_t
));
eth_params
=
(
eth_params_t
*
)
malloc
(
sizeof
(
eth_params_t
));
memset
(
eth_params
,
0
,
sizeof
(
eth_params_t
));
eth_params
->
local_if_name
=
enb_properties
->
properties
[
i
]
->
rrh_gw_if_name
;
...
...
@@ -1120,7 +1141,6 @@ int main( int argc, char **argv )
uint16_t
Nid_cell
=
0
;
uint8_t
cooperation_flag
=
0
,
abstraction_flag
=
0
;
uint8_t
beta_ACK
=
0
,
beta_RI
=
0
,
beta_CQI
=
2
;
eNB_func_t
node_function
=
eNodeB_3GPP
;
#if defined (XFORMS)
int
ret
;
...
...
@@ -1458,13 +1478,20 @@ int main( int argc, char **argv )
else
//FDD
openair0_cfg
[
card
].
duplex_mode
=
duplex_mode_FDD
;
if
(
local_remote_radio
==
BBU_REMOTE_RADIO_HEAD
)
{
openair0_cfg
[
card
].
remote_addr
=
eth_params
->
remote_addr
;
openair0_cfg
[
card
].
remote_port
=
eth_params
->
remote_port
;
openair0_cfg
[
card
].
my_addr
=
eth_params
->
my_addr
;
openair0_cfg
[
card
].
my_port
=
eth_params
->
my_port
;
}
}
//if (node_function == NGFI_RCC_IF4 || node_function == NGFI_RRU_IF4) {
//openair0_cfg[card].remote_addr = eth_params->remote_addr;
//openair0_cfg[card].remote_port = eth_params->remote_port;
//openair0_cfg[card].my_addr = eth_params->my_addr;
//openair0_cfg[card].my_port = eth_params->my_port;
//}
printf
(
"HW: Configuring card %d, nb_antennas_tx/rx %d/%d
\n
"
,
card
,
((
UE_flag
==
0
)
?
PHY_vars_eNB_g
[
0
][
0
]
->
frame_parms
.
nb_antennas_tx
:
PHY_vars_UE_g
[
0
][
0
]
->
frame_parms
.
nb_antennas_tx
),
...
...
@@ -1562,35 +1589,68 @@ int main( int argc, char **argv )
/* transport type is initialized NONE_TP (no transport protocol) when the transport protocol will be initiated transport protocol type will be set */
openair0
.
transp_type
=
NONE_TP
;
openair0_cfg
[
0
].
log_level
=
glog_level
;
// Legacy BBU - RRH init
//int returns=-1;
///* BBU can have either a local or a remote radio head */
//if (local_remote_radio == BBU_LOCAL_RADIO_HEAD) { //local radio head active - load library of radio head and initiate it
//if (mode!=loop_through_memory) {
//returns=openair0_device_load(&openair0, &openair0_cfg[0]);
//printf("openair0_device_init returns %d\n",returns);
//if (returns<0) {
//printf("Exiting, cannot initialize device\n");
//exit(-1);
//}
//}
//else if (mode==loop_through_memory) {
//}
//} else { //remote radio head active - load library of transport protocol and initiate it
//if (mode!=loop_through_memory) {
//returns=openair0_transport_load(&openair0, &openair0_cfg[0], eth_params);
//printf("openair0_transport_init returns %d\n",returns);
//if (returns<0) {
//printf("Exiting, cannot initialize transport protocol\n");
//exit(-1);
//}
//}
//else if (mode==loop_through_memory) {
//}
//}
//printf("Done\n");
int
returns
=-
1
;
/* BBU can have either a local or a remote radio head */
if
(
local_remote_radio
==
BBU_LOCAL_RADIO_HEAD
)
{
//local radio head active - load library of radio head and initiate it
// Load RF device and initialize
if
(
node_function
==
eNodeB_3GPP
||
node_function
==
NGFI_RRU_IF4
)
{
if
(
mode
!=
loop_through_memory
)
{
returns
=
openair0_device_load
(
&
openair0
,
&
openair0_cfg
[
0
]);
printf
(
"openair0_device_init returns %d
\n
"
,
returns
);
if
(
returns
<
0
)
{
printf
(
"Exiting, cannot initialize device
\n
"
);
exit
(
-
1
);
printf
(
"Exiting, cannot initialize device
\n
"
);
exit
(
-
1
);
}
}
else
if
(
mode
==
loop_through_memory
)
{
}
}
else
{
//remote radio head active - load library of transport protocol and initiate it
}
// Load transport protocol and initialize
if
(
node_function
==
NGFI_RCC_IF4
||
node_function
==
NGFI_RRU_IF4
){
if
(
mode
!=
loop_through_memory
)
{
returns
=
openair0_transport_load
(
&
openair0
,
&
openair0_cfg
[
0
],
eth_params
);
printf
(
"openair0_transport_init returns %d
\n
"
,
returns
);
if
(
returns
<
0
)
{
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
}
}
else
if
(
mode
==
loop_through_memory
)
{
}
}
printf
(
"Done
\n
"
);
printf
(
"Done
\n
"
);
mac_xface
=
malloc
(
sizeof
(
MAC_xface
));
int
eMBMS_active
=
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