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
常顺宇
OpenXG-RAN
Commits
631b4cac
Commit
631b4cac
authored
8 years ago
by
Sandeep Kumar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
read node fn, timing from config data
parent
6a120cf2
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
108 deletions
+35
-108
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+7
-5
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+28
-103
No files found.
targets/RT/USER/lte-enb.c
View file @
631b4cac
...
@@ -157,7 +157,7 @@ static struct {
...
@@ -157,7 +157,7 @@ static struct {
void
exit_fun
(
const
char
*
s
);
void
exit_fun
(
const
char
*
s
);
void
init_eNB
(
eNB_func_t
node_function
);
void
init_eNB
(
eNB_func_t
node_function
[],
eNB_timing_t
node_timing
[]
);
void
stop_eNB
(
void
);
void
stop_eNB
(
void
);
...
@@ -1577,12 +1577,14 @@ void print_opp_meas(void) {
...
@@ -1577,12 +1577,14 @@ void print_opp_meas(void) {
}
}
void
init_eNB
(
eNB_func_t
node_function
)
{
void
init_eNB
(
eNB_func_t
node_function
[],
eNB_timing_t
node_timing
[]
)
{
int
CC_id
;
int
CC_id
;
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
PHY_vars_eNB_g
[
0
][
CC_id
]
->
node_function
=
node_function
;
PHY_vars_eNB_g
[
0
][
CC_id
]
->
node_function
=
node_function
[
CC_id
];
PHY_vars_eNB_g
[
0
][
CC_id
]
->
node_timing
=
node_timing
[
CC_id
];
}
init_eNB_proc
();
init_eNB_proc
();
sleep
(
1
);
sleep
(
1
);
...
...
This diff is collapsed.
Click to expand it.
targets/RT/USER/lte-softmodem.c
View file @
631b4cac
...
@@ -119,7 +119,7 @@ unsigned short config_frames[4] = {2,9,11,13};
...
@@ -119,7 +119,7 @@ unsigned short config_frames[4] = {2,9,11,13};
// In lte-enb.c
// In lte-enb.c
extern
int
setup_eNB_buffers
(
PHY_VARS_eNB
**
phy_vars_eNB
,
openair0_config_t
*
openair0_cfg
,
openair0_rf_map
rf_map
[
MAX_NUM_CCs
]);
extern
int
setup_eNB_buffers
(
PHY_VARS_eNB
**
phy_vars_eNB
,
openair0_config_t
*
openair0_cfg
,
openair0_rf_map
rf_map
[
MAX_NUM_CCs
]);
extern
void
init_eNB
(
eNB_func_t
);
extern
void
init_eNB
(
eNB_func_t
*
,
eNB_timing_t
*
);
extern
void
stop_eNB
(
void
);
extern
void
stop_eNB
(
void
);
extern
void
kill_eNB_proc
(
void
);
extern
void
kill_eNB_proc
(
void
);
...
@@ -229,7 +229,9 @@ int otg_enabled;
...
@@ -229,7 +229,9 @@ int otg_enabled;
static
LTE_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
];
static
LTE_DL_FRAME_PARMS
*
frame_parms
[
MAX_NUM_CCs
];
eNB_func_t
node_function
=
eNodeB_3GPP
;
eNB_func_t
node_function
[
MAX_NUM_CCs
];
eNB_timing_t
node_timing
[
MAX_NUM_CCs
];
int16_t
node_synch_ref
[
MAX_NUM_CCs
];
uint32_t
target_dl_mcs
=
28
;
//maximum allowed mcs
uint32_t
target_dl_mcs
=
28
;
//maximum allowed mcs
uint32_t
target_ul_mcs
=
20
;
uint32_t
target_ul_mcs
=
20
;
...
@@ -237,8 +239,6 @@ uint32_t timing_advance = 0;
...
@@ -237,8 +239,6 @@ uint32_t timing_advance = 0;
uint8_t
exit_missed_slots
=
1
;
uint8_t
exit_missed_slots
=
1
;
uint64_t
num_missed_slots
=
0
;
// counter for the number of missed slots
uint64_t
num_missed_slots
=
0
;
// counter for the number of missed slots
extern
void
reset_opp_meas
(
void
);
extern
void
reset_opp_meas
(
void
);
extern
void
print_opp_meas
(
void
);
extern
void
print_opp_meas
(
void
);
int
transmission_mode
=
1
;
int
transmission_mode
=
1
;
...
@@ -387,11 +387,6 @@ void help (void) {
...
@@ -387,11 +387,6 @@ void help (void) {
printf
(
" --ue-scan_carrier set UE to scan around carrier
\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
(
" --loop-memory get softmodem (UE) to loop through memory instead of acquiring from HW
\n
"
);
printf
(
" --mmapped-dma sets flag for improved EXMIMO UE performance
\n
"
);
printf
(
" --mmapped-dma sets flag for improved EXMIMO UE performance
\n
"
);
printf
(
" --RCC run using NGFI RCC node function IF4 split
\n
"
);
printf
(
" --RRU run using NGFI RRU node function IF4 split
\n
"
);
printf
(
" --eNB run using 3GPP eNB node function
\n
"
);
printf
(
" --BBU run using 3GPP eNB node function with IF5 split
\n
"
);
printf
(
" --RRH run using RRH node function with IF5 split
\n
"
);
printf
(
" -C Set the downlink frequency for all component carriers
\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
(
" -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
"
);
printf
(
" -F Calibrate the EXMIMO borad, available files: exmimo2_2arxg.lime exmimo2_2brxg.lime
\n
"
);
...
@@ -688,12 +683,7 @@ static void get_options (int argc, char **argv)
...
@@ -688,12 +683,7 @@ static void get_options (int argc, char **argv)
LONG_OPTION_DUMP_FRAME
,
LONG_OPTION_DUMP_FRAME
,
LONG_OPTION_LOOPMEMORY
,
LONG_OPTION_LOOPMEMORY
,
LONG_OPTION_PHYTEST
,
LONG_OPTION_PHYTEST
,
LONG_OPTION_MMAPPED_DMA
,
LONG_OPTION_MMAPPED_DMA
LONG_OPTION_RCC
,
LONG_OPTION_RRU
,
LONG_OPTION_ENB
,
LONG_OPTION_ENB_BBU
,
LONG_OPTION_RRH
#if T_TRACER
#if T_TRACER
,
,
LONG_OPTION_T_PORT
,
LONG_OPTION_T_PORT
,
...
@@ -718,11 +708,6 @@ static void get_options (int argc, char **argv)
...
@@ -718,11 +708,6 @@ static void get_options (int argc, char **argv)
{
"loop-memory"
,
required_argument
,
NULL
,
LONG_OPTION_LOOPMEMORY
},
{
"loop-memory"
,
required_argument
,
NULL
,
LONG_OPTION_LOOPMEMORY
},
{
"phy-test"
,
no_argument
,
NULL
,
LONG_OPTION_PHYTEST
},
{
"phy-test"
,
no_argument
,
NULL
,
LONG_OPTION_PHYTEST
},
{
"mmapped-dma"
,
no_argument
,
NULL
,
LONG_OPTION_MMAPPED_DMA
},
{
"mmapped-dma"
,
no_argument
,
NULL
,
LONG_OPTION_MMAPPED_DMA
},
{
"RCC"
,
no_argument
,
NULL
,
LONG_OPTION_RCC
},
{
"RRU"
,
no_argument
,
NULL
,
LONG_OPTION_RRU
},
{
"eNB"
,
no_argument
,
NULL
,
LONG_OPTION_ENB
},
{
"BBU"
,
no_argument
,
NULL
,
LONG_OPTION_ENB_BBU
},
{
"RRH"
,
no_argument
,
NULL
,
LONG_OPTION_RRH
},
#if T_TRACER
#if T_TRACER
{
"T_port"
,
required_argument
,
0
,
LONG_OPTION_T_PORT
},
{
"T_port"
,
required_argument
,
0
,
LONG_OPTION_T_PORT
},
{
"T_nowait"
,
no_argument
,
0
,
LONG_OPTION_T_NOWAIT
},
{
"T_nowait"
,
no_argument
,
0
,
LONG_OPTION_T_NOWAIT
},
...
@@ -818,26 +803,6 @@ static void get_options (int argc, char **argv)
...
@@ -818,26 +803,6 @@ static void get_options (int argc, char **argv)
mmapped_dma
=
1
;
mmapped_dma
=
1
;
break
;
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
LONG_OPTION_ENB_BBU
:
node_function
=
eNodeB_3GPP_BBU
;
break
;
case
LONG_OPTION_RRH
:
node_function
=
NGFI_RRU_IF5
;
break
;
#if T_TRACER
#if T_TRACER
case
LONG_OPTION_T_PORT
:
{
case
LONG_OPTION_T_PORT
:
{
extern
int
T_port
;
extern
int
T_port
;
...
@@ -1116,6 +1081,10 @@ static void get_options (int argc, char **argv)
...
@@ -1116,6 +1081,10 @@ static void get_options (int argc, char **argv)
}
}
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
node_function
[
CC_id
]
=
enb_properties
->
properties
[
i
]
->
cc_node_function
[
CC_id
];
node_timing
[
CC_id
]
=
enb_properties
->
properties
[
i
]
->
cc_node_timing
[
CC_id
];
node_synch_ref
[
CC_id
]
=
enb_properties
->
properties
[
i
]
->
cc_node_synch_ref
[
CC_id
];
frame_parms
[
CC_id
]
->
frame_type
=
enb_properties
->
properties
[
i
]
->
frame_type
[
CC_id
];
frame_parms
[
CC_id
]
->
frame_type
=
enb_properties
->
properties
[
i
]
->
frame_type
[
CC_id
];
frame_parms
[
CC_id
]
->
tdd_config
=
enb_properties
->
properties
[
i
]
->
tdd_config
[
CC_id
];
frame_parms
[
CC_id
]
->
tdd_config
=
enb_properties
->
properties
[
i
]
->
tdd_config
[
CC_id
];
frame_parms
[
CC_id
]
->
tdd_config_S
=
enb_properties
->
properties
[
i
]
->
tdd_config_s
[
CC_id
];
frame_parms
[
CC_id
]
->
tdd_config_S
=
enb_properties
->
properties
[
i
]
->
tdd_config_s
[
CC_id
];
...
@@ -1668,7 +1637,7 @@ int main( int argc, char **argv )
...
@@ -1668,7 +1637,7 @@ int main( int argc, char **argv )
if
(
UE_flag
==
0
)
{
if
(
UE_flag
==
0
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
(
node_function
==
NGFI_RRU_IF4
||
node_function
==
NGFI_RRU_IF5
)
{
if
(
node_function
[
CC_id
]
==
NGFI_RRU_IF4
||
node_function
[
CC_id
]
==
NGFI_RRU_IF5
)
{
PHY_vars_eNB_g
[
0
][
CC_id
]
->
rfdevice
.
host_type
=
RRH_HOST
;
PHY_vars_eNB_g
[
0
][
CC_id
]
->
rfdevice
.
host_type
=
RRH_HOST
;
PHY_vars_eNB_g
[
0
][
CC_id
]
->
ifdevice
.
host_type
=
RRH_HOST
;
PHY_vars_eNB_g
[
0
][
CC_id
]
->
ifdevice
.
host_type
=
RRH_HOST
;
}
else
{
}
else
{
...
@@ -1684,68 +1653,38 @@ int main( int argc, char **argv )
...
@@ -1684,68 +1653,38 @@ 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 */
/* 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
.
transp_type
=
NONE_TP
;
// 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) {
//}
//}
int
returns
=-
1
;
int
returns
=-
1
;
// Handle spatially distributed MIMO antenna ports
// Load RF device and initialize
// Load RF device and initialize
if
(
node_function
==
NGFI_RRU_IF5
||
node_function
==
NGFI_RRU_IF4
||
node_function
==
eNodeB_3GPP
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
(
node_function
[
CC_id
]
==
NGFI_RRU_IF5
||
node_function
[
CC_id
]
==
NGFI_RRU_IF4
||
node_function
[
CC_id
]
==
eNodeB_3GPP
)
{
if
(
mode
!=
loop_through_memory
)
{
if
(
mode
!=
loop_through_memory
)
{
returns
=
(
UE_flag
==
0
)
?
returns
=
(
UE_flag
==
0
)
?
openair0_device_load
(
&
(
PHY_vars_eNB_g
[
0
][
CC_id
]
->
rfdevice
),
&
openair0_cfg
[
0
])
:
openair0_device_load
(
&
(
PHY_vars_eNB_g
[
0
][
CC_id
]
->
rfdevice
),
&
openair0_cfg
[
0
])
:
openair0_device_load
(
&
openair0
,
&
openair0_cfg
[
0
]);
openair0_device_load
(
&
openair0
,
&
openair0_cfg
[
0
]);
printf
(
"openair0_device_init returns %d for CC_id %d
\n
"
,
returns
,
CC_id
);
printf
(
"openair0_device_init returns %d for CC_id %d
\n
"
,
returns
,
CC_id
);
if
(
returns
<
0
)
{
if
(
returns
<
0
)
{
printf
(
"Exiting, cannot initialize device
\n
"
);
printf
(
"Exiting, cannot initialize device
\n
"
);
exit
(
-
1
);
exit
(
-
1
);
}
}
}
}
else
if
(
mode
==
loop_through_memory
)
{
else
if
(
mode
==
loop_through_memory
)
{
}
}
}
}
}
}
// Load transport protocol and initialize
// Load transport protocol and initialize
if
((
UE_flag
==
0
)
&&
(
node_function
!=
eNodeB_3GPP
)){
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
if
((
UE_flag
==
0
)
&&
(
node_function
[
CC_id
]
!=
eNodeB_3GPP
))
{
if
(
mode
!=
loop_through_memory
)
{
if
(
mode
!=
loop_through_memory
)
{
returns
=
openair0_transport_load
(
&
(
PHY_vars_eNB_g
[
0
][
CC_id
]
->
ifdevice
),
&
openair0_cfg
[
0
],
(
eth_params
+
CC_id
));
returns
=
openair0_transport_load
(
&
(
PHY_vars_eNB_g
[
0
][
CC_id
]
->
ifdevice
),
&
openair0_cfg
[
0
],
(
eth_params
+
CC_id
));
printf
(
"openair0_transport_init returns %d for CC_id %d
\n
"
,
returns
,
CC_id
);
printf
(
"openair0_transport_init returns %d for CC_id %d
\n
"
,
returns
,
CC_id
);
if
(
returns
<
0
)
{
if
(
returns
<
0
)
{
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
printf
(
"Exiting, cannot initialize transport protocol
\n
"
);
exit
(
-
1
);
exit
(
-
1
);
}
}
}
}
else
if
(
mode
==
loop_through_memory
)
{
else
if
(
mode
==
loop_through_memory
)
{
}
}
}
}
}
}
...
@@ -1783,7 +1722,6 @@ int main( int argc, char **argv )
...
@@ -1783,7 +1722,6 @@ int main( int argc, char **argv )
number_of_cards
=
1
;
number_of_cards
=
1
;
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
rf_map
[
CC_id
].
card
=
0
;
rf_map
[
CC_id
].
card
=
0
;
rf_map
[
CC_id
].
chain
=
CC_id
+
chain_offset
;
rf_map
[
CC_id
].
chain
=
CC_id
+
chain_offset
;
...
@@ -1905,17 +1843,12 @@ int main( int argc, char **argv )
...
@@ -1905,17 +1843,12 @@ int main( int argc, char **argv )
// start the main thread
// start the main thread
if
(
UE_flag
==
1
)
init_UE
();
if
(
UE_flag
==
1
)
init_UE
();
else
init_eNB
(
node_function
);
else
init_eNB
(
node_function
,
node_timing
);
// Sleep to allow all threads to setup
// Sleep to allow all threads to setup
sleep
(
3
);
sleep
(
3
);
// *** Handle per CC_id openair0
printf
(
"Sending sync to all threads
\n
"
);
printf
(
"Sending sync to all threads
\n
"
);
pthread_mutex_lock
(
&
sync_mutex
);
pthread_mutex_lock
(
&
sync_mutex
);
...
@@ -1977,7 +1910,6 @@ int main( int argc, char **argv )
...
@@ -1977,7 +1910,6 @@ int main( int argc, char **argv )
pthread_cond_destroy
(
&
sync_cond
);
pthread_cond_destroy
(
&
sync_cond
);
pthread_mutex_destroy
(
&
sync_mutex
);
pthread_mutex_destroy
(
&
sync_mutex
);
// *** Handle per CC_id openair0
if
(
UE_flag
==
1
)
if
(
UE_flag
==
1
)
openair0
.
trx_end_func
(
&
openair0
);
openair0
.
trx_end_func
(
&
openair0
);
...
@@ -1998,10 +1930,3 @@ int main( int argc, char **argv )
...
@@ -1998,10 +1930,3 @@ int main( int argc, char **argv )
return
0
;
return
0
;
}
}
This diff is collapsed.
Click to expand it.
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