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
wangwenhui
OpenXG-RAN
Commits
41b80a11
Commit
41b80a11
authored
8 years ago
by
Rohit Gupta
Browse files
Options
Browse Files
Download
Plain Diff
Merge from develop
parents
7af3d98f
410dc2ae
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
5364 additions
and
2326 deletions
+5364
-2326
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+2
-4
cmake_targets/autotests/README.txt
cmake_targets/autotests/README.txt
+41
-12
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+4476
-2188
cmake_targets/build_oai
cmake_targets/build_oai
+1
-1
openair1/PHY/MODULATION/slot_fep_ul.c
openair1/PHY/MODULATION/slot_fep_ul.c
+32
-19
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+117
-100
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+1
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf
...S/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf
+1
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
...S/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
+2
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf
...S/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf
+174
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf
...S/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf
+171
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf
...PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf
+174
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf
...PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf
+172
-0
No files found.
cmake_targets/CMakeLists.txt
View file @
41b80a11
...
...
@@ -548,7 +548,7 @@ elseif (${RF_BOARD} STREQUAL "OAI_USRP")
set
(
HW_SOURCE
${
HW_SOURCE
}
${
OPENAIR_TARGETS
}
/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
)
LINK_DIRECTORIES
(
"/opt/lib"
)
set
(
option_HW_lib
"-luhd -rdynamic -ldl"
)
set
(
option_HW_lib
"-luhd -rdynamic -ldl
-lboost_system
"
)
elseif
(
${
RF_BOARD
}
STREQUAL
"OAI_BLADERF"
)
include_directories
(
"
${
OPENAIR_TARGETS
}
/ARCH/BLADERF/USERSPACE/LIB/"
)
...
...
@@ -1636,7 +1636,6 @@ target_link_libraries (lte-softmodem -ldl
target_link_libraries
(
lte-softmodem
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
sctp
${
option_HW_lib
}
${
option_TP_lib
}
${
XFORMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem
${
LIBBOOST_LIBRARIES
}
-lboost_system
)
#Added manually as it is not found for some reason for USRP
target_link_libraries
(
lte-softmodem
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem
${
T_LIB
}
)
...
...
@@ -1671,7 +1670,6 @@ target_link_libraries (lte-softmodem-nos1
target_link_libraries
(
lte-softmodem-nos1
${
LIBXML2_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1 pthread m
${
CONFIG_LIBRARIES
}
rt crypt
${
CRYPTO_LIBRARIES
}
${
OPENSSL_LIBRARIES
}
${
NETTLE_LIBRARIES
}
${
option_HW_lib
}
${
option_TP_lib
}
${
XFORMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
LIBBOOST_LIBRARIES
}
-lboost_system
)
#Added manually as it is not found for some reason for USRP
target_link_libraries
(
lte-softmodem-nos1
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
lte-softmodem-nos1
${
T_LIB
}
)
...
...
@@ -1694,7 +1692,7 @@ target_link_libraries(rrh_gw
UTIL LFDS
-Wl,--end-group
)
target_link_libraries
(
rrh_gw rt pthread m
)
target_link_libraries
(
rrh_gw
${
option_HW_lib
}
${
option_TP_lib
}
${
LIBBOOST_LIBRARIES
}
-lboost_system
)
#Added manually as it is not found for some reason for USRP
target_link_libraries
(
rrh_gw
${
option_HW_lib
}
${
option_TP_lib
}
)
target_link_libraries
(
rrh_gw
${
LIB_LMS_LIBRARIES
}
)
target_link_libraries
(
rrh_gw
${
T_LIB
}
)
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/README.txt
View file @
41b80a11
...
...
@@ -104,25 +104,31 @@ Obj.# Case# Test# Description
01 51 06 mbmssim (TBD)
01 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for
TX/1RX, 2TX/2RX
01 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for
1TX/1RX (TM1), 2TX/2RX (TM2)
01 55 00 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 55 01 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 55 02 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 55 03 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 55 04 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 55 05 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 1TX/1RX
01 55 06 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 2TX/2RX
01 55 07 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 2TX/2RX
01 55 08 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 2TX/2RX
01 55 09 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 2TX/2RX
01 55 10 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 2TX/2RX
01 55 11 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 2TX/2RX
01 55 06 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 2TX/2RX
(TM2)
01 55 07 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 2TX/2RX
(TM2)
01 55 08 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 2TX/2RX
(TM2)
01 55 09 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 2TX/2RX
(TM2)
01 55 10 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 2TX/2RX
(TM2)
01 55 11 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 2TX/2RX
(TM2)
01 55 12 Band 7 FDD 5MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 55 13 Band 7 FDD 10MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 55 14 Band 7 FDD 20MHz UL Throughput (TCP) for 300 sec for 1TX/1RX
01 55 15 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 55 16 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 55 17 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 55 18 Band 7 FDD 5MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 55 19 Band 7 FDD 10MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 55 20 Band 7 FDD 20MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 55 21 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 55 22 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 55 23 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 56 lte-softmodem tests with USRP B210 RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE
01 56 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
...
...
@@ -140,7 +146,7 @@ Obj.# Case# Test# Description
01 57 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 57 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 58 lte-softmodem tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for
`TX/1RX, 2TX/2RX
01 58 lte-softmodem tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for
1TX/1RX (TM1), 2TX/2RX(TM2)
01 58 00 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 58 01 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
01 58 02 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
...
...
@@ -153,6 +159,18 @@ Obj.# Case# Test# Description
01 58 09 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 58 10 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 58 11 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
01 58 12 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 58 13 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 58 14 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 58 15 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 58 16 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 58 17 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
01 58 18 Band 7 FDD 5MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 58 19 Band 7 FDD 10MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 58 20 Band 7 FDD 20MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 58 21 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 58 22 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 58 23 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 59 lte-softmodem tests with USRP X310 RF as eNB and OAI EPC (eNB and EPC are on same machines) w/ Bandrich COTS UE
...
...
@@ -165,7 +183,7 @@ Obj.# Case# Test# Description
01 60 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 60 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 61 lte-softmodem tests with EXMIMO RF as eNB and ALU EPC w/ Bandrich COTS UE for
`
TX/1RX, 2TX/2RX
01 61 lte-softmodem tests with EXMIMO RF as eNB and ALU EPC w/ Bandrich COTS UE for
1
TX/1RX, 2TX/2RX
01 61 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 61 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 61 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
...
...
@@ -183,7 +201,7 @@ Obj.# Case# Test# Description
01 63 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 63 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 65 00 lte-softmodem tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 65 00 lte-softmodem tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for
1
TX/1RX
01 65 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 65 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 65 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
...
...
@@ -225,7 +243,7 @@ Obj.# Case# Test# Description
01 85 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 85 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
02 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Sony Experia M4 COTS UE for
TX/1RX
02 55 lte-softmodem tests with USRP B210 RF as eNB and ALU EPC w/ Sony Experia M4 COTS UE for
1TX/1RX and 2TX/2RX (TM2)
02 55 00 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
02 55 01 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
02 55 02 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 1TX/1RX
...
...
@@ -238,7 +256,18 @@ Obj.# Case# Test# Description
02 55 09 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
02 55 10 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
02 55 11 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 1TX/1RX
02 55 12 Band 7 FDD 5MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
02 55 13 Band 7 FDD 10MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
02 55 14 Band 7 FDD 20MHz UL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
02 55 15 Band 7 FDD 5MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
02 55 16 Band 7 FDD 10MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
02 55 17 Band 7 FDD 20MHz DL Throughput (UDP) for 300 sec for 2TX/2RX (TM2)
02 55 18 Band 7 FDD 5MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
02 55 19 Band 7 FDD 10MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
02 55 20 Band 7 FDD 20MHz UL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
02 55 21 Band 7 FDD 5MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
02 55 22 Band 7 FDD 10MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
02 55 23 Band 7 FDD 20MHz DL Throughput (TCP) for 300 sec for 2TX/2RX (TM2)
01 64 lte-softmodem-noS1 tests
...
...
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/test_case_list.xml
View file @
41b80a11
This source diff could not be displayed because it is too large. You can
view the blob
instead.
This diff is collapsed.
Click to expand it.
cmake_targets/build_oai
View file @
41b80a11
...
...
@@ -330,7 +330,7 @@ function main() {
#By default: EXMIMO: enable
if
[
"
$FORCE_DEADLINE_SCHEDULER_FLAG_USER
"
=
""
]
;
then
if
[
"
$HW
"
=
"EXMIMO"
]
;
then
DEADLINE_SCHEDULER_FLAG_USER
=
"
Fals
e"
DEADLINE_SCHEDULER_FLAG_USER
=
"
Tru
e"
elif
[
"
$HW
"
=
"ETHERNET"
]
;
then
DEADLINE_SCHEDULER_FLAG_USER
=
"True"
elif
[
"
$HW
"
=
"OAI_USRP"
]
;
then
...
...
This diff is collapsed.
Click to expand it.
openair1/PHY/MODULATION/slot_fep_ul.c
View file @
41b80a11
...
...
@@ -50,6 +50,10 @@ int slot_fep_ul(LTE_DL_FRAME_PARMS *frame_parms,
void
(
*
dft
)(
int16_t
*
,
int16_t
*
,
int
);
int
tmp_dft_in
[
2048
]
__attribute__
((
aligned
(
32
)));
// This is for misalignment issues for 6 and 15 PRBs
unsigned
int
frame_length_samples
=
frame_parms
->
samples_per_tti
*
10
;
unsigned
int
rx_offset
;
switch
(
frame_parms
->
ofdm_symbol_size
)
{
case
128
:
dft
=
dft128
;
...
...
@@ -103,28 +107,37 @@ int slot_fep_ul(LTE_DL_FRAME_PARMS *frame_parms,
#endif
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_rx
;
aa
++
)
{
rx_offset
=
slot_offset
+
nb_prefix_samples0
;
if
(
l
==
0
)
{
dft
(
#ifndef OFDMA_ULSCH
(
int16_t
*
)
&
eNB_common_vars
->
rxdata_7_5kHz
[
eNB_id
][
aa
][
slot_offset
+
nb_prefix_samples0
],
#else
(
int16_t
*
)
&
eNB_common_vars
->
rxdata
[
eNB_id
][
aa
][((
frame_parms
->
samples_per_tti
>>
1
)
*
Ns
)
+
nb_prefix_samples0
],
#endif
(
int16_t
*
)
&
eNB_common_vars
->
rxdataF
[
eNB_id
][
aa
][
frame_parms
->
ofdm_symbol_size
*
symbol
],
1
);
dft
(
(
int16_t
*
)
&
eNB_common_vars
->
rxdata_7_5kHz
[
eNB_id
][
aa
][
rx_offset
],
(
int16_t
*
)
&
eNB_common_vars
->
rxdataF
[
eNB_id
][
aa
][
frame_parms
->
ofdm_symbol_size
*
symbol
],
1
);
}
else
{
dft
(
#ifndef OFDMA_ULSCH
(
short
*
)
&
eNB_common_vars
->
rxdata_7_5kHz
[
eNB_id
][
aa
][
slot_offset
+
#else
(
short
*
)
&
eNB_common_vars
->
rxdata
[
eNB_id
][
aa
][((
frame_parms
->
samples_per_tti
>>
1
)
*
Ns
)
+
#endif
(
frame_parms
->
ofdm_symbol_size
+
nb_prefix_samples0
+
nb_prefix_samples
)
+
(
frame_parms
->
ofdm_symbol_size
+
nb_prefix_samples
)
*
(
l
-
1
)],
(
short
*
)
&
eNB_common_vars
->
rxdataF
[
eNB_id
][
aa
][
frame_parms
->
ofdm_symbol_size
*
symbol
],
1
);
rx_offset
+=
(
frame_parms
->
ofdm_symbol_size
+
nb_prefix_samples
)
*
l
;
if
(
rx_offset
>
(
frame_length_samples
-
frame_parms
->
ofdm_symbol_size
))
{
memcpy
((
void
*
)
&
eNB_common_vars
->
rxdata_7_5kHz
[
eNB_id
][
aa
][
frame_length_samples
],
(
void
*
)
&
eNB_common_vars
->
rxdata_7_5kHz
[
eNB_id
][
aa
][
0
],
frame_parms
->
ofdm_symbol_size
*
sizeof
(
int
));
}
if
(
(
rx_offset
&
7
)
!=
0
){
memcpy
((
void
*
)
&
tmp_dft_in
,
(
void
*
)
&
eNB_common_vars
->
rxdata_7_5kHz
[
eNB_id
][
aa
][(
rx_offset
%
frame_length_samples
)],
frame_parms
->
ofdm_symbol_size
*
sizeof
(
int
));
dft
(
(
short
*
)
tmp_dft_in
,
(
short
*
)
&
eNB_common_vars
->
rxdataF
[
eNB_id
][
aa
][
frame_parms
->
ofdm_symbol_size
*
symbol
],
1
);
}
else
{
dft
(
(
short
*
)
&
eNB_common_vars
->
rxdata_7_5kHz
[
eNB_id
][
aa
][
rx_offset
],
(
short
*
)
&
eNB_common_vars
->
rxdataF
[
eNB_id
][
aa
][
frame_parms
->
ofdm_symbol_size
*
symbol
],
1
);
}
}
}
...
...
This diff is collapsed.
Click to expand it.
openair2/ENB_APP/enb_config.c
View file @
41b80a11
...
...
@@ -61,6 +61,27 @@
#include "LAYER2/MAC/extern.h"
#include "PHY/extern.h"
/* those macros are here to help diagnose problems in configuration files
* if the lookup fails, a warning is printed
* (yes we can use the function name for the macro itself, the C preprocessor
* won't die in an infinite loop)
*/
#define config_setting_lookup_int(setting, name, value) \
(config_setting_lookup_int(setting, name, value) || \
(printf("WARNING: setting '%s' not found in configuration file\n", name), 0))
#define config_setting_lookup_int64(setting, name, value) \
(config_setting_lookup_int64(setting, name, value) || \
(printf("WARNING: setting '%s' not found in configuration file\n", name), 0))
#define config_setting_lookup_float(setting, name, value) \
(config_setting_lookup_float(setting, name, value) || \
(printf("WARNING: setting '%s' not found in configuration file\n", name), 0))
#define config_setting_lookup_bool(setting, name, value) \
(config_setting_lookup_bool(setting, name, value) || \
(printf("WARNING: setting '%s' not found in configuration file\n", name), 0))
#define config_setting_lookup_string(setting, name, value) \
(config_setting_lookup_string(setting, name, value) || \
(printf("WARNING: setting '%s' not found in configuration file\n", name), 0))
#define ENB_CONFIG_STRING_ACTIVE_ENBS "Active_eNBs"
#define ENB_CONFIG_STRING_ENB_LIST "eNBs"
...
...
@@ -524,7 +545,6 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
int
num_component_carriers
=
0
;
int
i
=
0
;
int
j
=
0
;
int
parse_errors
=
0
;
libconfig_int
enb_id
=
0
;
const
char
*
cc_node_function
=
NULL
;
...
...
@@ -731,7 +751,6 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
if
(
setting
!=
NULL
)
{
enb_properties_index
=
0
;
parse_errors
=
0
;
num_enbs
=
config_setting_length
(
setting
);
for
(
i
=
0
;
i
<
num_enbs
;
i
++
)
{
...
...
@@ -758,7 +777,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
)
)
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, %u th enb
\n
"
,
lib_config_file_name_pP
,
i
);
continue
;
// FIXME this prevents segfaults below, not sure what happens after function exit
...
...
@@ -776,7 +795,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
cell_type
,
"CELL_HOME_ENB"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
cell_type
=
CELL_HOME_ENB
;
}
else
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !
\n
"
,
lib_config_file_name_pP
,
i
,
cell_type
);
}
...
...
@@ -883,7 +902,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
#endif
))
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, Component Carrier %d!
\n
"
,
lib_config_file_name_pP
,
enb_properties
.
properties
[
enb_properties_index
]
->
nb_cc
++
);
continue
;
// FIXME this prevents segfaults below, not sure what happens after function exit
...
...
@@ -928,17 +947,17 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
enb_properties
.
properties
[
enb_properties_index
]
->
tdd_config
[
j
]
=
tdd_config
;
Assert
Error
(
tdd_config
<=
TDD_Config__subframeAssignment_sa6
,
parse_errors
++
,
Assert
Fatal
(
tdd_config
<=
TDD_Config__subframeAssignment_sa6
,
"Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!"
,
lib_config_file_name_pP
,
i
,
tdd_config
,
TDD_Config__subframeAssignment_sa6
);
enb_properties
.
properties
[
enb_properties_index
]
->
tdd_config_s
[
j
]
=
tdd_config_s
;
Assert
Error
(
tdd_config_s
<=
TDD_Config__specialSubframePatterns_ssp8
,
parse_errors
++
,
Assert
Fatal
(
tdd_config_s
<=
TDD_Config__specialSubframePatterns_ssp8
,
"Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!"
,
lib_config_file_name_pP
,
i
,
tdd_config_s
,
TDD_Config__specialSubframePatterns_ssp8
);
if
(
!
prefix_type
)
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!
\n
"
,
lib_config_file_name_pP
,
i
,
ENB_CONFIG_STRING_PREFIX_TYPE
);
else
if
(
strcmp
(
prefix_type
,
"NORMAL"
)
==
0
)
{
...
...
@@ -946,7 +965,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
prefix_type
,
"EXTENDED"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
prefix_type
[
j
]
=
EXTENDED
;
}
else
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for prefix_type choice: NORMAL or EXTENDED !
\n
"
,
lib_config_file_name_pP
,
i
,
prefix_type
);
}
...
...
@@ -957,7 +976,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
Nid_cell
[
j
]
=
Nid_cell
;
if
(
Nid_cell
>
503
)
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for Nid_cell choice: 0...503 !
\n
"
,
lib_config_file_name_pP
,
i
,
Nid_cell
);
}
...
...
@@ -965,7 +984,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
N_RB_DL
[
j
]
=
N_RB_DL
;
if
((
N_RB_DL
!=
6
)
&&
(
N_RB_DL
!=
15
)
&&
(
N_RB_DL
!=
25
)
&&
(
N_RB_DL
!=
50
)
&&
(
N_RB_DL
!=
75
)
&&
(
N_RB_DL
!=
100
))
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for N_RB_DL choice: 6,15,25,50,75,100 !
\n
"
,
lib_config_file_name_pP
,
i
,
N_RB_DL
);
}
...
...
@@ -975,27 +994,27 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
frame_type
,
"TDD"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
frame_type
[
j
]
=
TDD
;
}
else
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for frame_type choice: FDD or TDD !
\n
"
,
lib_config_file_name_pP
,
i
,
frame_type
);
}
enb_properties
.
properties
[
enb_properties_index
]
->
tdd_config
[
j
]
=
tdd_config
;
Assert
Error
(
tdd_config
<=
TDD_Config__subframeAssignment_sa6
,
parse_errors
++
,
Assert
Fatal
(
tdd_config
<=
TDD_Config__subframeAssignment_sa6
,
"Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!"
,
lib_config_file_name_pP
,
i
,
tdd_config
,
TDD_Config__subframeAssignment_sa6
);
enb_properties
.
properties
[
enb_properties_index
]
->
tdd_config_s
[
j
]
=
tdd_config_s
;
Assert
Error
(
tdd_config_s
<=
TDD_Config__specialSubframePatterns_ssp8
,
parse_errors
++
,
Assert
Fatal
(
tdd_config_s
<=
TDD_Config__specialSubframePatterns_ssp8
,
"Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!"
,
lib_config_file_name_pP
,
i
,
tdd_config_s
,
TDD_Config__specialSubframePatterns_ssp8
);
if
(
!
prefix_type
)
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!
\n
"
,
lib_config_file_name_pP
,
i
,
ENB_CONFIG_STRING_PREFIX_TYPE
);
else
if
(
strcmp
(
prefix_type
,
"NORMAL"
)
==
0
)
{
...
...
@@ -1003,7 +1022,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
prefix_type
,
"EXTENDED"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
prefix_type
[
j
]
=
EXTENDED
;
}
else
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for prefix_type choice: NORMAL or EXTENDED !
\n
"
,
lib_config_file_name_pP
,
i
,
prefix_type
);
}
...
...
@@ -1021,64 +1040,66 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
uplink_frequency_offset
[
j
]
=
(
unsigned
int
)
uplink_frequency_offset
;
parse_errors
+=
enb_check_band_frequencies
(
lib_config_file_name_pP
,
if
(
enb_check_band_frequencies
(
lib_config_file_name_pP
,
enb_properties_index
,
enb_properties
.
properties
[
enb_properties_index
]
->
eutra_band
[
j
],
enb_properties
.
properties
[
enb_properties_index
]
->
downlink_frequency
[
j
],
enb_properties
.
properties
[
enb_properties_index
]
->
uplink_frequency_offset
[
j
],
enb_properties
.
properties
[
enb_properties_index
]
->
frame_type
[
j
]);
enb_properties
.
properties
[
enb_properties_index
]
->
frame_type
[
j
]))
{
AssertFatal
(
0
,
"error calling enb_check_band_frequencies
\n
"
);
}
enb_properties
.
properties
[
enb_properties_index
]
->
nb_antennas_tx
[
j
]
=
nb_antennas_tx
;
if
((
nb_antenna_ports
<
1
)
||
(
nb_antenna_ports
>
2
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for nb_antenna_ports choice: 1..2 !
\n
"
,
lib_config_file_name_pP
,
i
,
nb_antenna_ports
);
enb_properties
.
properties
[
enb_properties_index
]
->
nb_antenna_ports
[
j
]
=
nb_antenna_ports
;
if
((
nb_antennas_tx
<
1
)
||
(
nb_antennas_tx
>
64
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for nb_antennas_tx choice: 1..4 !
\n
"
,
lib_config_file_name_pP
,
i
,
nb_antennas_tx
);
enb_properties
.
properties
[
enb_properties_index
]
->
nb_antennas_rx
[
j
]
=
nb_antennas_rx
;
if
((
nb_antennas_rx
<
1
)
||
(
nb_antennas_rx
>
4
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for nb_antennas_rx choice: 1..4 !
\n
"
,
lib_config_file_name_pP
,
i
,
nb_antennas_rx
);
enb_properties
.
properties
[
enb_properties_index
]
->
tx_gain
[
j
]
=
tx_gain
;
if
((
tx_gain
<
0
)
||
(
tx_gain
>
127
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for tx_gain choice: 0..127 !
\n
"
,
lib_config_file_name_pP
,
i
,
tx_gain
);
enb_properties
.
properties
[
enb_properties_index
]
->
rx_gain
[
j
]
=
rx_gain
;
if
((
rx_gain
<
0
)
||
(
rx_gain
>
160
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rx_gain choice: 0..160 !
\n
"
,
lib_config_file_name_pP
,
i
,
rx_gain
);
enb_properties
.
properties
[
enb_properties_index
]
->
prach_root
[
j
]
=
prach_root
;
if
((
prach_root
<
0
)
||
(
prach_root
>
1023
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_root choice: 0..1023 !
\n
"
,
lib_config_file_name_pP
,
i
,
prach_root
);
enb_properties
.
properties
[
enb_properties_index
]
->
prach_config_index
[
j
]
=
prach_config_index
;
if
((
prach_config_index
<
0
)
||
(
prach_config_index
>
63
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_config_index choice: 0..1023 !
\n
"
,
lib_config_file_name_pP
,
i
,
prach_config_index
);
if
(
!
prach_high_speed
)
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!
\n
"
,
lib_config_file_name_pP
,
i
,
ENB_CONFIG_STRING_PRACH_HIGH_SPEED
);
else
if
(
strcmp
(
prach_high_speed
,
"ENABLE"
)
==
0
)
{
...
...
@@ -1086,21 +1107,21 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
prach_high_speed
,
"DISABLE"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
prach_high_speed
[
j
]
=
FALSE
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for prach_config choice: ENABLE,DISABLE !
\n
"
,
lib_config_file_name_pP
,
i
,
prach_high_speed
);
enb_properties
.
properties
[
enb_properties_index
]
->
prach_zero_correlation
[
j
]
=
prach_zero_correlation
;
if
((
prach_zero_correlation
<
0
)
||
(
prach_zero_correlation
>
15
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_zero_correlation choice: 0..15!
\n
"
,
lib_config_file_name_pP
,
i
,
prach_zero_correlation
);
enb_properties
.
properties
[
enb_properties_index
]
->
prach_freq_offset
[
j
]
=
prach_freq_offset
;
if
((
prach_freq_offset
<
0
)
||
(
prach_freq_offset
>
94
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for prach_freq_offset choice: 0..94!
\n
"
,
lib_config_file_name_pP
,
i
,
prach_freq_offset
);
...
...
@@ -1108,21 +1129,21 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_delta_shift
[
j
]
=
pucch_delta_shift
-
1
;
if
((
pucch_delta_shift
<
1
)
||
(
pucch_delta_shift
>
3
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pucch_delta_shift choice: 1..3!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_delta_shift
);
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_nRB_CQI
[
j
]
=
pucch_nRB_CQI
;
if
((
pucch_nRB_CQI
<
0
)
||
(
pucch_nRB_CQI
>
98
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pucch_nRB_CQI choice: 0..98!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_nRB_CQI
);
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_nCS_AN
[
j
]
=
pucch_nCS_AN
;
if
((
pucch_nCS_AN
<
0
)
||
(
pucch_nCS_AN
>
7
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pucch_nCS_AN choice: 0..7!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_nCS_AN
);
...
...
@@ -1130,7 +1151,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_n1_AN
[
j
]
=
pucch_n1_AN
;
if
((
pucch_n1_AN
<
0
)
||
(
pucch_n1_AN
>
2047
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pucch_n1_AN choice: 0..2047!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_n1_AN
);
...
...
@@ -1138,26 +1159,26 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
pdsch_referenceSignalPower
[
j
]
=
pdsch_referenceSignalPower
;
if
((
pdsch_referenceSignalPower
<-
60
)
||
(
pdsch_referenceSignalPower
>
50
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pdsch_referenceSignalPower choice:-60..50!
\n
"
,
lib_config_file_name_pP
,
i
,
pdsch_referenceSignalPower
);
enb_properties
.
properties
[
enb_properties_index
]
->
pdsch_p_b
[
j
]
=
pdsch_p_b
;
if
((
pdsch_p_b
<
0
)
||
(
pdsch_p_b
>
3
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pdsch_p_b choice: 0..3!
\n
"
,
lib_config_file_name_pP
,
i
,
pdsch_p_b
);
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_n_SB
[
j
]
=
pusch_n_SB
;
if
((
pusch_n_SB
<
1
)
||
(
pusch_n_SB
>
4
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pusch_n_SB choice: 1..4!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_n_SB
);
if
(
!
pusch_hoppingMode
)
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!
\n
"
,
lib_config_file_name_pP
,
i
,
ENB_CONFIG_STRING_PUSCH_HOPPINGMODE
);
else
if
(
strcmp
(
pusch_hoppingMode
,
"interSubFrame"
)
==
0
)
{
...
...
@@ -1165,19 +1186,19 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pusch_hoppingMode
,
"intraAndInterSubFrame"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_hoppingMode
[
j
]
=
PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_hoppingMode
);
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_hoppingOffset
[
j
]
=
pusch_hoppingOffset
;
if
((
pusch_hoppingOffset
<
0
)
||
(
pusch_hoppingOffset
>
98
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_hoppingOffset choice: 0..98!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_hoppingMode
);
if
(
!
pusch_enable64QAM
)
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!
\n
"
,
lib_config_file_name_pP
,
i
,
ENB_CONFIG_STRING_PUSCH_ENABLE64QAM
);
else
if
(
strcmp
(
pusch_enable64QAM
,
"ENABLE"
)
==
0
)
{
...
...
@@ -1185,12 +1206,12 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pusch_enable64QAM
,
"DISABLE"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_enable64QAM
[
j
]
=
FALSE
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_enable64QAM choice: ENABLE,DISABLE!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_enable64QAM
);
if
(
!
pusch_groupHoppingEnabled
)
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!
\n
"
,
lib_config_file_name_pP
,
i
,
ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN
);
else
if
(
strcmp
(
pusch_groupHoppingEnabled
,
"ENABLE"
)
==
0
)
{
...
...
@@ -1198,7 +1219,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pusch_groupHoppingEnabled
,
"DISABLE"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_groupHoppingEnabled
[
j
]
=
FALSE
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_groupHoppingEnabled
);
...
...
@@ -1206,12 +1227,12 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_groupAssignment
[
j
]
=
pusch_groupAssignment
;
if
((
pusch_groupAssignment
<
0
)
||
(
pusch_groupAssignment
>
29
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pusch_groupAssignment choice: 0..29!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_groupAssignment
);
if
(
!
pusch_sequenceHoppingEnabled
)
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!
\n
"
,
lib_config_file_name_pP
,
i
,
ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN
);
else
if
(
strcmp
(
pusch_sequenceHoppingEnabled
,
"ENABLE"
)
==
0
)
{
...
...
@@ -1219,14 +1240,14 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pusch_sequenceHoppingEnabled
,
"DISABLE"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_sequenceHoppingEnabled
[
j
]
=
FALSE
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_sequenceHoppingEnabled
);
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_nDMRS1
[
j
]
=
pusch_nDMRS1
;
//cyclic_shift in RRC!
if
((
pusch_nDMRS1
<
0
)
||
(
pusch_nDMRS1
>
7
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pusch_nDMRS1 choice: 0..7!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_nDMRS1
);
...
...
@@ -1235,7 +1256,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
phich_duration
,
"EXTENDED"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
phich_duration
[
j
]
=
extended
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for phich_duration choice: NORMAL,EXTENDED!
\n
"
,
lib_config_file_name_pP
,
i
,
phich_duration
);
...
...
@@ -1248,7 +1269,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
phich_resource
,
"TWO"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
phich_resource
[
j
]
=
two
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for phich_resource choice: ONESIXTH,HALF,ONE,TWO!
\n
"
,
lib_config_file_name_pP
,
i
,
phich_resource
);
...
...
@@ -1257,7 +1278,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
srs_enable
,
"DISABLE"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
srs_enable
[
j
]
=
FALSE
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for srs_BandwidthConfig choice: ENABLE,DISABLE !
\n
"
,
lib_config_file_name_pP
,
i
,
srs_enable
);
...
...
@@ -1267,21 +1288,20 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
&&
config_setting_lookup_string
(
component_carrier
,
ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG
,
&
srs_ackNackST
)
&&
config_setting_lookup_string
(
component_carrier
,
ENB_CONFIG_STRING_SRS_MAXUPPTS
,
&
srs_MaxUpPts
)
))
AssertError
(
0
,
parse_errors
++
,
AssertFatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts
\n
"
,
lib_config_file_name_pP
,
i
);
enb_properties
.
properties
[
enb_properties_index
]
->
srs_BandwidthConfig
[
j
]
=
srs_BandwidthConfig
;
if
((
srs_BandwidthConfig
<
0
)
||
(
srs_BandwidthConfig
>
7
))
Assert
Error
(
0
,
parse_errors
++
,
"Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7
\n
"
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7
\n
"
,
lib_config_file_name_pP
,
i
,
srs_BandwidthConfig
);
enb_properties
.
properties
[
enb_properties_index
]
->
srs_SubframeConfig
[
j
]
=
srs_SubframeConfig
;
if
((
srs_SubframeConfig
<
0
)
||
(
srs_SubframeConfig
>
15
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for srs_SubframeConfig choice: 0..15 !
\n
"
,
lib_config_file_name_pP
,
i
,
srs_SubframeConfig
);
...
...
@@ -1290,7 +1310,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
srs_ackNackST
,
"DISABLE"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
srs_ackNackST
[
j
]
=
FALSE
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for srs_BandwidthConfig choice: ENABLE,DISABLE !
\n
"
,
lib_config_file_name_pP
,
i
,
srs_ackNackST
);
...
...
@@ -1299,7 +1319,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
srs_MaxUpPts
,
"DISABLE"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
srs_MaxUpPts
[
j
]
=
FALSE
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for srs_MaxUpPts choice: ENABLE,DISABLE !
\n
"
,
lib_config_file_name_pP
,
i
,
srs_MaxUpPts
);
}
...
...
@@ -1307,7 +1327,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_p0_Nominal
[
j
]
=
pusch_p0_Nominal
;
if
((
pusch_p0_Nominal
<-
126
)
||
(
pusch_p0_Nominal
>
24
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pusch_p0_Nominal choice: -126..24 !
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_p0_Nominal
);
...
...
@@ -1328,21 +1348,21 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pusch_alpha
,
"AL1"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pusch_alpha
[
j
]
=
UplinkPowerControlCommon__alpha_al1
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!
\n
"
,
lib_config_file_name_pP
,
i
,
pusch_alpha
);
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_p0_Nominal
[
j
]
=
pucch_p0_Nominal
;
if
((
pucch_p0_Nominal
<-
127
)
||
(
pucch_p0_Nominal
>-
96
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pucch_p0_Nominal choice: -127..-96 !
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_p0_Nominal
);
enb_properties
.
properties
[
enb_properties_index
]
->
msg3_delta_Preamble
[
j
]
=
msg3_delta_Preamble
;
if
((
msg3_delta_Preamble
<-
1
)
||
(
msg3_delta_Preamble
>
6
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for msg3_delta_Preamble choice: -1..6 !
\n
"
,
lib_config_file_name_pP
,
i
,
msg3_delta_Preamble
);
...
...
@@ -1354,7 +1374,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pucch_deltaF_Format1
,
"deltaF2"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_deltaF_Format1
[
j
]
=
DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_deltaF_Format1
);
...
...
@@ -1365,7 +1385,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pucch_deltaF_Format1b
,
"deltaF5"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_deltaF_Format1b
[
j
]
=
DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_deltaF_Format1b
);
...
...
@@ -1379,7 +1399,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pucch_deltaF_Format2
,
"deltaF2"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_deltaF_Format2
[
j
]
=
DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_deltaF_Format2
);
...
...
@@ -1390,7 +1410,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pucch_deltaF_Format2a
,
"deltaF2"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_deltaF_Format2a
[
j
]
=
DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_deltaF_Format2a
);
...
...
@@ -1401,7 +1421,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pucch_deltaF_Format2b
,
"deltaF2"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pucch_deltaF_Format2b
[
j
]
=
DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!
\n
"
,
lib_config_file_name_pP
,
i
,
pucch_deltaF_Format2b
);
...
...
@@ -1411,7 +1431,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
rach_numberOfRA_Preambles
[
j
]
=
(
rach_numberOfRA_Preambles
/
4
)
-
1
;
if
((
rach_numberOfRA_Preambles
<
4
)
||
(
rach_numberOfRA_Preambles
>
64
)
||
((
rach_numberOfRA_Preambles
&
3
)
!=
0
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_numberOfRA_Preambles choice: 4,8,12,...,64!
\n
"
,
lib_config_file_name_pP
,
i
,
rach_numberOfRA_Preambles
);
...
...
@@ -1421,14 +1441,14 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
if
(
!
(
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA
,
&
rach_sizeOfRA_PreamblesGroupA
)
&&
config_setting_lookup_int
(
component_carrier
,
ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA
,
&
rach_messageSizeGroupA
)
&&
config_setting_lookup_string
(
component_carrier
,
ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB
,
&
rach_messagePowerOffsetGroupB
)))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!
\n
"
,
lib_config_file_name_pP
,
i
);
enb_properties
.
properties
[
enb_properties_index
]
->
rach_sizeOfRA_PreamblesGroupA
[
j
]
=
(
rach_sizeOfRA_PreamblesGroupA
/
4
)
-
1
;
if
((
rach_numberOfRA_Preambles
<
4
)
||
(
rach_numberOfRA_Preambles
>
60
)
||
((
rach_numberOfRA_Preambles
&
3
)
!=
0
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!
\n
"
,
lib_config_file_name_pP
,
i
,
rach_sizeOfRA_PreamblesGroupA
);
...
...
@@ -1451,7 +1471,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_messageSizeGroupA choice: 56,144,208,256!
\n
"
,
lib_config_file_name_pP
,
i
,
rach_messageSizeGroupA
);
break
;
...
...
@@ -1488,21 +1508,21 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
else
if
(
strcmp
(
rach_messagePowerOffsetGroupB
,
"dB18"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rach_messagePowerOffsetGroupB
[
j
]
=
RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!
\n
"
,
lib_config_file_name_pP
,
i
,
rach_messagePowerOffsetGroupB
);
}
else
if
(
strcmp
(
rach_preamblesGroupAConfig
,
"DISABLE"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preamblesGroupAConfig
[
j
]
=
FALSE
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%s
\"
for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !
\n
"
,
lib_config_file_name_pP
,
i
,
rach_preamblesGroupAConfig
);
enb_properties
.
properties
[
enb_properties_index
]
->
rach_preambleInitialReceivedTargetPower
[
j
]
=
(
rach_preambleInitialReceivedTargetPower
+
120
)
/
2
;
if
((
rach_preambleInitialReceivedTargetPower
<-
120
)
||
(
rach_preambleInitialReceivedTargetPower
>-
90
)
||
((
rach_preambleInitialReceivedTargetPower
&
1
)
!=
0
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !
\n
"
,
lib_config_file_name_pP
,
i
,
rach_preambleInitialReceivedTargetPower
);
...
...
@@ -1510,7 +1530,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
rach_powerRampingStep
[
j
]
=
rach_powerRampingStep
/
2
;
if
((
rach_powerRampingStep
<
0
)
||
(
rach_powerRampingStep
>
6
)
||
((
rach_powerRampingStep
&
1
)
!=
0
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_powerRampingStep choice: 0,2,4,6 !
\n
"
,
lib_config_file_name_pP
,
i
,
rach_powerRampingStep
);
...
...
@@ -1562,7 +1582,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!
\n
"
,
lib_config_file_name_pP
,
i
,
rach_preambleTransMax
);
break
;
...
...
@@ -1571,7 +1591,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
rach_raResponseWindowSize
[
j
]
=
(
rach_raResponseWindowSize
==
10
)
?
7
:
rach_raResponseWindowSize
-
2
;
if
((
rach_raResponseWindowSize
<
0
)
||
(
rach_raResponseWindowSize
==
9
)
||
(
rach_raResponseWindowSize
>
10
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!
\n
"
,
lib_config_file_name_pP
,
i
,
rach_preambleTransMax
);
...
...
@@ -1579,14 +1599,14 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
rach_macContentionResolutionTimer
[
j
]
=
(
rach_macContentionResolutionTimer
/
8
)
-
1
;
if
((
rach_macContentionResolutionTimer
<
8
)
||
(
rach_macContentionResolutionTimer
>
64
)
||
((
rach_macContentionResolutionTimer
&
7
)
!=
0
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_macContentionResolutionTimer choice: 8,16,...,56,64!
\n
"
,
lib_config_file_name_pP
,
i
,
rach_preambleTransMax
);
enb_properties
.
properties
[
enb_properties_index
]
->
rach_maxHARQ_Msg3Tx
[
j
]
=
rach_maxHARQ_Msg3Tx
;
if
((
rach_maxHARQ_Msg3Tx
<
0
)
||
(
rach_maxHARQ_Msg3Tx
>
8
))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for rach_maxHARQ_Msg3Tx choice: 1..8!
\n
"
,
lib_config_file_name_pP
,
i
,
rach_preambleTransMax
);
...
...
@@ -1609,7 +1629,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pcch_defaultPagingCycle choice: 32,64,128,256!
\n
"
,
lib_config_file_name_pP
,
i
,
pcch_defaultPagingCycle
);
break
;
...
...
@@ -1632,7 +1652,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
strcmp
(
pcch_nB
,
"oneThirtySecondT"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
pcch_nB
[
j
]
=
PCCH_Config__nB_oneThirtySecondT
;
}
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !
\n
"
,
lib_config_file_name_pP
,
i
,
pcch_defaultPagingCycle
);
...
...
@@ -1656,7 +1676,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for bcch_modificationPeriodCoeff choice: 2,4,8,16"
,
lib_config_file_name_pP
,
i
,
bcch_modificationPeriodCoeff
);
...
...
@@ -1698,7 +1718,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 "
,
lib_config_file_name_pP
,
i
,
ue_TimersAndConstants_t300
);
break
;
...
...
@@ -1739,7 +1759,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 "
,
lib_config_file_name_pP
,
i
,
ue_TimersAndConstants_t301
);
break
;
...
...
@@ -1776,7 +1796,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 "
,
lib_config_file_name_pP
,
i
,
ue_TimersAndConstants_t310
);
break
;
...
...
@@ -1813,7 +1833,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000"
,
lib_config_file_name_pP
,
i
,
ue_TimersAndConstants_t311
);
break
;
...
...
@@ -1854,7 +1874,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20"
,
lib_config_file_name_pP
,
i
,
ue_TimersAndConstants_n311
);
break
;
...
...
@@ -1895,7 +1915,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10"
,
lib_config_file_name_pP
,
i
,
ue_TimersAndConstants_t311
);
break
;
...
...
@@ -1925,7 +1945,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
ue_TransmissionMode
[
j
]
=
AntennaInfoDedicated__transmissionMode_tm7
;
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d unknown value
\"
%d
\"
for ue_TransmissionMode choice: 1,2,3,4,5,6,7"
,
lib_config_file_name_pP
,
i
,
ue_TransmissionMode
);
break
;
...
...
@@ -1942,7 +1962,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
&&
config_setting_lookup_int
(
setting_srb1
,
ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD
,
&
srb1_max_retx_threshold
)
&&
config_setting_lookup_int
(
setting_srb1
,
ENB_CONFIG_STRING_SRB1_POLL_PDU
,
&
srb1_poll_pdu
)
&&
config_setting_lookup_int
(
setting_srb1
,
ENB_CONFIG_STRING_SRB1_POLL_BYTE
,
&
srb1_poll_byte
)))
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, "
"timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !
\n
"
,
lib_config_file_name_pP
,
i
);
...
...
@@ -1981,7 +2001,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!
\n
"
,
lib_config_file_name_pP
,
i
,
srb1_max_retx_threshold
);
}
...
...
@@ -2019,7 +2039,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
if
(
srb1_poll_pdu
>=
10000
)
enb_properties
.
properties
[
enb_properties_index
]
->
srb1_poll_pdu
=
PollPDU_pInfinity
;
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!
\n
"
,
lib_config_file_name_pP
,
i
,
srb1_poll_pdu
);
}
...
...
@@ -2087,7 +2107,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
if
(
srb1_poll_byte
>=
10000
)
enb_properties
.
properties
[
enb_properties_index
]
->
srb1_poll_byte
=
PollByte_kBinfinity
;
else
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!
\n
"
,
lib_config_file_name_pP
,
i
,
srb1_poll_byte
);
}
...
...
@@ -2097,7 +2117,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
(
srb1_timer_poll_retransmit
<=
500
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
srb1_timer_poll_retransmit
=
(
srb1_timer_poll_retransmit
-
300
)
/
50
+
50
;
}
else
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!
\n
"
,
lib_config_file_name_pP
,
i
,
srb1_timer_poll_retransmit
);
}
...
...
@@ -2107,7 +2127,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
}
else
if
((
srb1_timer_poll_retransmit
>=
300
)
&&
(
srb1_timer_poll_retransmit
<=
500
))
{
enb_properties
.
properties
[
enb_properties_index
]
->
srb1_timer_status_prohibit
=
(
srb1_timer_status_prohibit
-
300
)
/
50
+
51
;
}
else
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!
\n
"
,
lib_config_file_name_pP
,
i
,
srb1_timer_status_prohibit
);
}
...
...
@@ -2238,7 +2258,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
break
;
default:
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!
\n
"
,
lib_config_file_name_pP
,
i
,
srb1_timer_reordering
);
}
...
...
@@ -2265,7 +2285,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
&&
config_setting_lookup_string
(
setting_mme_address
,
ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE
,
(
const
char
**
)
&
preference
)
)
)
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, %u th enb %u th mme address !
\n
"
,
lib_config_file_name_pP
,
i
,
j
);
continue
;
// FIXME will prevent segfaults below, not sure what happens at function exit...
...
...
@@ -2315,7 +2335,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
&&
config_setting_lookup_int
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_TX_SCHEDULING_ADVANCE
,
&
tx_scheduling_advance
)
)
)
{
Assert
Error
(
0
,
parse_errors
++
,
Assert
Fatal
(
0
,
"Failed to parse eNB configuration file %s, %u th enb %u the RRH GW address !
\n
"
,
lib_config_file_name_pP
,
i
,
j
);
continue
;
// FIXME will prevent segfaults below, not sure what happens at function exit...
...
...
@@ -2724,13 +2744,10 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
number
=
num_enb_properties
;
Assert
Error
(
enb_properties_index
==
num_enb_properties
,
parse_errors
++
,
Assert
Fatal
(
enb_properties_index
==
num_enb_properties
,
"Failed to parse eNB configuration file %s, mismatch between %u active eNBs and %u corresponding defined eNBs !
\n
"
,
lib_config_file_name_pP
,
num_enb_properties
,
enb_properties_index
);
AssertFatal
(
parse_errors
==
0
,
"Failed to parse eNB configuration file %s, found %d error%s !
\n
"
,
lib_config_file_name_pP
,
parse_errors
,
parse_errors
>
1
?
"s"
:
""
);
enb_config_display
();
return
&
enb_properties
;
...
...
This diff is collapsed.
Click to expand it.
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
41b80a11
...
...
@@ -75,7 +75,7 @@ void init_ue_sched_info(void)
module_id_t
i
,
j
,
k
;
for
(
i
=
0
;
i
<
NUMBER_OF_eNB_MAX
;
i
++
)
{
for
(
k
=
0
;
i
<
MAX_NUM_CCs
;
i
++
)
{
for
(
k
=
0
;
k
<
MAX_NUM_CCs
;
k
++
)
{
for
(
j
=
0
;
j
<
NUMBER_OF_UE_MAX
;
j
++
)
{
// init DL
eNB_dlsch_info
[
i
][
k
][
j
].
weight
=
0
;
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf
View file @
41b80a11
...
...
@@ -50,7 +50,7 @@ eNBs =
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
29
;
pdsch_referenceSignalPower
= -
32
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf
View file @
41b80a11
...
...
@@ -35,6 +35,7 @@ eNBs =
Nid_cell
=
0
;
N_RB_DL
=
100
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
32
;
...
...
@@ -99,6 +100,7 @@ eNBs =
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
1
;
}
);
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf
0 → 100644
View file @
41b80a11
Active_eNBs
= (
"eNB_Eurecom_LTEBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
eNBs
=
(
{
//////////
Identification
parameters
:
eNB_ID
=
0
xe00
;
cell_type
=
"CELL_MACRO_ENB"
;
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"94"
;
//////////
Physical
parameters
:
component_carriers
= (
{
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
2680000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
100
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
2
;
nb_antennas_tx
=
2
;
nb_antennas_rx
=
2
;
tx_gain
=
90
;
rx_gain
=
125
;
prach_root
=
0
;
prach_config_index
=
0
;
prach_high_speed
=
"DISABLE"
;
prach_zero_correlation
=
1
;
prach_freq_offset
=
2
;
pucch_delta_shift
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
32
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_hoppingMode
=
"interSubFrame"
;
pusch_hoppingOffset
=
0
;
pusch_groupHoppingEnabled
=
"ENABLE"
;
pusch_groupAssignment
=
0
;
pusch_sequenceHoppingEnabled
=
"DISABLE"
;
pusch_nDMRS1
=
1
;
phich_duration
=
"NORMAL"
;
phich_resource
=
"ONESIXTH"
;
srs_enable
=
"DISABLE"
;
/*
srs_BandwidthConfig
=;
srs_SubframeConfig
=;
srs_ackNackST
=;
srs_MaxUpPts
=;*/
pusch_p0_Nominal
= -
90
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
96
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format2
=
"deltaF0"
;
pucch_deltaF_Format2a
=
"deltaF0"
;
pucch_deltaF_Format2b
=
"deltaF0"
;
rach_numberOfRA_Preambles
=
64
;
rach_preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_sizeOfRA_PreamblesGroupA
= ;
rach_messageSizeGroupA
= ;
rach_messagePowerOffsetGroupB
= ;
*/
rach_powerRampingStep
=
4
;
rach_preambleInitialReceivedTargetPower
= -
108
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t301
=
1000
;
ue_TimersAndConstants_t310
=
1000
;
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
2
;
}
);
srb1_parameters
:
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit
=
80
;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering
=
35
;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit
=
0
;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu
=
4
;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte
=
99999
;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold
=
4
;
}
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output
SCTP_INSTREAMS
=
2
;
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.12.171"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.150/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.150/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
log_config
:
{
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
};
}
);
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf
0 → 100644
View file @
41b80a11
Active_eNBs
= (
"eNB_Eurecom_LTEBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
eNBs
=
(
{
//////////
Identification
parameters
:
eNB_ID
=
0
xe00
;
cell_type
=
"CELL_MACRO_ENB"
;
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
//////////
Physical
parameters
:
component_carriers
= (
{
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
2660000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
100
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
2
;
nb_antennas_tx
=
2
;
nb_antennas_rx
=
2
;
tx_gain
=
32
;
rx_gain
=
116
;
prach_root
=
0
;
prach_config_index
=
0
;
prach_high_speed
=
"DISABLE"
;
prach_zero_correlation
=
1
;
prach_freq_offset
=
2
;
pucch_delta_shift
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
23
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_hoppingMode
=
"interSubFrame"
;
pusch_hoppingOffset
=
0
;
pusch_groupHoppingEnabled
=
"ENABLE"
;
pusch_groupAssignment
=
0
;
pusch_sequenceHoppingEnabled
=
"DISABLE"
;
pusch_nDMRS1
=
1
;
phich_duration
=
"NORMAL"
;
phich_resource
=
"ONESIXTH"
;
srs_enable
=
"DISABLE"
;
/*
srs_BandwidthConfig
=;
srs_SubframeConfig
=;
srs_ackNackST
=;
srs_MaxUpPts
=;*/
pusch_p0_Nominal
= -
90
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
108
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format2
=
"deltaF0"
;
pucch_deltaF_Format2a
=
"deltaF0"
;
pucch_deltaF_Format2b
=
"deltaF0"
;
rach_numberOfRA_Preambles
=
64
;
rach_preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_sizeOfRA_PreamblesGroupA
= ;
rach_messageSizeGroupA
= ;
rach_messagePowerOffsetGroupB
= ;
*/
rach_powerRampingStep
=
4
;
rach_preambleInitialReceivedTargetPower
= -
108
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t301
=
1000
;
ue_TimersAndConstants_t310
=
1000
;
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
2
;
ue_TransmissionMode
=
2
;
}
);
srb1_parameters
:
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit
=
80
;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering
=
35
;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit
=
0
;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu
=
4
;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte
=
99999
;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold
=
4
;
}
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output
SCTP_INSTREAMS
=
2
;
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.12.26"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.111/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.111/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
log_config
:
{
global_log_level
=
"debug"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
};
}
);
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf
0 → 100644
View file @
41b80a11
Active_eNBs
= (
"eNB_Eurecom_LTEBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
eNBs
=
(
{
//////////
Identification
parameters
:
eNB_ID
=
0
xe00
;
cell_type
=
"CELL_MACRO_ENB"
;
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"94"
;
//////////
Physical
parameters
:
component_carriers
= (
{
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
2680000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
25
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
2
;
nb_antennas_tx
=
2
;
nb_antennas_rx
=
2
;
tx_gain
=
90
;
rx_gain
=
125
;
prach_root
=
0
;
prach_config_index
=
0
;
prach_high_speed
=
"DISABLE"
;
prach_zero_correlation
=
1
;
prach_freq_offset
=
2
;
pucch_delta_shift
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
28
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_hoppingMode
=
"interSubFrame"
;
pusch_hoppingOffset
=
0
;
pusch_groupHoppingEnabled
=
"ENABLE"
;
pusch_groupAssignment
=
0
;
pusch_sequenceHoppingEnabled
=
"DISABLE"
;
pusch_nDMRS1
=
1
;
phich_duration
=
"NORMAL"
;
phich_resource
=
"ONESIXTH"
;
srs_enable
=
"DISABLE"
;
/*
srs_BandwidthConfig
=;
srs_SubframeConfig
=;
srs_ackNackST
=;
srs_MaxUpPts
=;*/
pusch_p0_Nominal
= -
90
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
96
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format2
=
"deltaF0"
;
pucch_deltaF_Format2a
=
"deltaF0"
;
pucch_deltaF_Format2b
=
"deltaF0"
;
rach_numberOfRA_Preambles
=
64
;
rach_preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_sizeOfRA_PreamblesGroupA
= ;
rach_messageSizeGroupA
= ;
rach_messagePowerOffsetGroupB
= ;
*/
rach_powerRampingStep
=
4
;
rach_preambleInitialReceivedTargetPower
= -
108
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t301
=
1000
;
ue_TimersAndConstants_t310
=
1000
;
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
2
;
}
);
srb1_parameters
:
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit
=
80
;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering
=
35
;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit
=
0
;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu
=
4
;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte
=
99999
;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold
=
4
;
}
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output
SCTP_INSTREAMS
=
2
;
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.12.171"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.150/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.150/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
log_config
:
{
global_log_level
=
"info"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
};
}
);
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf
0 → 100644
View file @
41b80a11
Active_eNBs
= (
"eNB_Eurecom_LTEBox"
);
# Asn1_verbosity, choice in: none, info, annoying
Asn1_verbosity
=
"none"
;
eNBs
=
(
{
//////////
Identification
parameters
:
eNB_ID
=
0
xe00
;
cell_type
=
"CELL_MACRO_ENB"
;
eNB_name
=
"eNB_Eurecom_LTEBox"
;
//
Tracking
area
code
,
0
x0000
and
0
xfffe
are
reserved
values
tracking_area_code
=
"1"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"92"
;
//////////
Physical
parameters
:
component_carriers
= (
{
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
2660000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
25
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
2
;
nb_antennas_tx
=
2
;
nb_antennas_rx
=
2
;
tx_gain
=
32
;
rx_gain
=
116
;
prach_root
=
0
;
prach_config_index
=
0
;
prach_high_speed
=
"DISABLE"
;
prach_zero_correlation
=
1
;
prach_freq_offset
=
2
;
pucch_delta_shift
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
18
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_hoppingMode
=
"interSubFrame"
;
pusch_hoppingOffset
=
0
;
pusch_groupHoppingEnabled
=
"ENABLE"
;
pusch_groupAssignment
=
0
;
pusch_sequenceHoppingEnabled
=
"DISABLE"
;
pusch_nDMRS1
=
1
;
phich_duration
=
"NORMAL"
;
phich_resource
=
"ONESIXTH"
;
srs_enable
=
"DISABLE"
;
/*
srs_BandwidthConfig
=;
srs_SubframeConfig
=;
srs_ackNackST
=;
srs_MaxUpPts
=;*/
pusch_p0_Nominal
= -
90
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
108
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format2
=
"deltaF0"
;
pucch_deltaF_Format2a
=
"deltaF0"
;
pucch_deltaF_Format2b
=
"deltaF0"
;
rach_numberOfRA_Preambles
=
64
;
rach_preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_sizeOfRA_PreamblesGroupA
= ;
rach_messageSizeGroupA
= ;
rach_messagePowerOffsetGroupB
= ;
*/
rach_powerRampingStep
=
4
;
rach_preambleInitialReceivedTargetPower
= -
108
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t301
=
1000
;
ue_TimersAndConstants_t310
=
1000
;
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
2
;
}
);
srb1_parameters
:
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
timer_poll_retransmit
=
80
;
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
timer_reordering
=
35
;
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
timer_status_prohibit
=
0
;
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
poll_pdu
=
4
;
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
poll_byte
=
99999
;
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
max_retx_threshold
=
4
;
}
# ------- SCTP definitions
SCTP
:
{
# Number of streams to use in input/output
SCTP_INSTREAMS
=
2
;
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.12.26"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.111/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.111/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
log_config
:
{
global_log_level
=
"debug"
;
global_log_verbosity
=
"medium"
;
hw_log_level
=
"info"
;
hw_log_verbosity
=
"medium"
;
phy_log_level
=
"info"
;
phy_log_verbosity
=
"medium"
;
mac_log_level
=
"info"
;
mac_log_verbosity
=
"high"
;
rlc_log_level
=
"info"
;
rlc_log_verbosity
=
"medium"
;
pdcp_log_level
=
"info"
;
pdcp_log_verbosity
=
"medium"
;
rrc_log_level
=
"info"
;
rrc_log_verbosity
=
"medium"
;
};
}
);
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