Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bin He
openairinterface5G
Commits
b61a2e0e
Commit
b61a2e0e
authored
Jul 24, 2017
by
knopp
Browse files
small changes to allow for monolithic eNB execution.
parent
ae884afe
Changes
2
Hide whitespace changes
Inline
Side-by-side
openair2/ENB_APP/enb_config.c
View file @
b61a2e0e
...
...
@@ -462,6 +462,7 @@ void RCconfig_RU() {
libconfig_int
band
[
256
];
int
num_eNB4RU
=
0
;
libconfig_int
eNB_list
[
256
];
int
fronthaul_flag
=
CONFIG_TRUE
;
load_config_file
(
&
cfg
);
...
...
@@ -480,51 +481,44 @@ void RCconfig_RU() {
setting_ru
=
config_setting_get_elem
(
setting
,
j
);
printf
(
"rru %d/%d
\n
"
,
j
,
RC
.
nb_RU
);
if
(
!
(
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_IF_NAME
,
(
const
char
**
)
&
if_name
)
&&
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_ADDRESS
,
(
const
char
**
)
&
ipv4
)
&&
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_REMOTE_ADDRESS
,
(
const
char
**
)
&
ipv4_remote
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_PORTC
,
&
local_portc
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_REMOTE_PORTC
,
&
remote_portc
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_PORTD
,
&
local_portd
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_REMOTE_PORTD
,
&
remote_portd
)
&&
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_TRANSPORT_PREFERENCE
,
(
const
char
**
)
&
tr_preference
)
&&
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_RF
,
(
const
char
**
)
&
local_rf
)
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_IF_NAME
,(
const
char
**
)
&
if_name
)
)
)
{
AssertFatal
(
0
,
"Failed to parse configuration file %s, RU %d config !
\n
"
,
RC
.
config_file_name
,
j
);
continue
;
// FIXME will prevent segfaults below, not sure what happens at function exit...
}
if
(
strcmp
(
local_rf
,
"yes"
)
==
0
)
{
// this has a local RF unit so read in default params
if
(
!
(
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_NB_TX
,
&
nb_tx
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_NB_RX
,
&
nb_rx
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_MAX_RS_EPRE
,
&
max_pdschReferenceSignalPower
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_MAX_RXGAIN
,
&
max_rxgain
)
// && config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_ATT_TX, &att_tx)
// && config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_ATT_RX, &att_rx)
)
)
{
AssertFatal
(
0
,
"Failed to parse configuration file %s, RU %d config !
\n
"
,
RC
.
config_file_name
,
j
);
continue
;
// FIXME will prevent segfaults below, not sure what happens at function exit...
}
fronthaul_flag
=
CONFIG_FALSE
;
}
if
(
fronthaul_flag
!=
CONFIG_TRUE
)
{
// no fronthaul
AssertFatal
((
setting_band
=
config_setting_get_member
(
setting_ru
,
CONFIG_STRING_RU_BAND_LIST
))
!=
NULL
,
"No allowable LTE bands
\n
"
);
if
(
setting_band
!=
NULL
)
num_bands
=
config_setting_length
(
setting_band
);
else
num_bands
=
0
;
for
(
i
=
0
;
i
<
num_bands
;
i
++
)
{
setting_band_elem
=
config_setting_get_elem
(
setting_band
,
i
);
band
[
i
]
=
config_setting_get_int
(
setting_band_elem
);
printf
(
"RU %d: band %d
\n
"
,
j
,
band
[
i
]);
}
}
else
{
}
// fronthaul_flag == CONFIG_FALSE
else
{
// fronthaul_flag == CONFIG_TRUE
if
(
!
(
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_ADDRESS
,
(
const
char
**
)
&
ipv4
)
&&
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_REMOTE_ADDRESS
,
(
const
char
**
)
&
ipv4_remote
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_PORTC
,
&
local_portc
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_REMOTE_PORTC
,
&
remote_portc
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_PORTD
,
&
local_portd
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_REMOTE_PORTD
,
&
remote_portd
)
&&
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_TRANSPORT_PREFERENCE
,
(
const
char
**
)
&
tr_preference
)
)
)
{
AssertFatal
(
0
,
"Failed to parse configuration file %s, RU %d config !
\n
"
,
RC
.
config_file_name
,
j
);
continue
;
// FIXME will prevent segfaults below, not sure what happens at function exit...
}
AssertFatal
((
setting_eNB_list
=
config_setting_get_member
(
setting_ru
,
CONFIG_STRING_RU_ENB_LIST
))
!=
NULL
,
"No RU<->eNB mappings
\n
"
);
if
(
setting_eNB_list
!=
NULL
)
num_eNB4RU
=
config_setting_length
(
setting_eNB_list
);
...
...
@@ -536,51 +530,52 @@ void RCconfig_RU() {
eNB_list
[
i
]
=
config_setting_get_int
(
setting_eNB_list_elem
);
printf
(
"RU %d: eNB %d
\n
"
,
j
,
eNB_list
[
i
]);
}
if
(
!
(
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_NB_TX
,
&
nb_tx
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_NB_RX
,
&
nb_rx
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_ATT_TX
,
&
att_tx
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_ATT_RX
,
&
att_rx
)
)
)
{
AssertFatal
(
0
,
"Failed to parse configuration file %s, RU %d config !
\n
"
,
RC
.
config_file_name
,
j
);
continue
;
// FIXME will prevent segfaults below, not sure what happens at function exit...
}
}
printf
(
"RU %d: Transport %s
\n
"
,
j
,
tr_preference
);
if
(
!
(
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_NB_TX
,
&
nb_tx
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_NB_RX
,
&
nb_rx
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_ATT_TX
,
&
att_tx
)
&&
config_setting_lookup_int
(
setting_ru
,
CONFIG_STRING_RU_ATT_RX
,
&
att_rx
)
&&
config_setting_lookup_string
(
setting_ru
,
CONFIG_STRING_RU_LOCAL_RF
,(
const
char
**
)
&
local_rf
)
))
{
AssertFatal
(
0
,
"Failed to parse configuration file %s, RU %d config !
\n
"
,
RC
.
config_file_name
,
j
);
continue
;
// FIXME will prevent segfaults below, not sure what happens at function exit...
}
RC
.
ru
[
j
]
=
(
RU_t
*
)
malloc
(
sizeof
(
RU_t
));
memset
((
void
*
)
RC
.
ru
[
j
],
0
,
sizeof
(
RU_t
));
RC
.
ru
[
j
]
->
idx
=
j
;
RC
.
ru
[
j
]
->
eth_params
.
local_if_name
=
strdup
(
if_name
);
RC
.
ru
[
j
]
->
eth_params
.
my_addr
=
strdup
(
ipv4
);
RC
.
ru
[
j
]
->
eth_params
.
remote_addr
=
strdup
(
ipv4_remote
);
RC
.
ru
[
j
]
->
eth_params
.
my_portc
=
local_portc
;
RC
.
ru
[
j
]
->
eth_params
.
remote_portc
=
remote_portc
;
RC
.
ru
[
j
]
->
eth_params
.
my_portd
=
local_portd
;
RC
.
ru
[
j
]
->
eth_params
.
remote_portd
=
remote_portd
;
RC
.
ru
[
j
]
->
if_timing
=
synch_to_ext_device
;
RC
.
ru
[
j
]
->
num_eNB
=
num_eNB4RU
;
if
(
strcmp
(
local_rf
,
"yes"
)
==
0
)
{
if
(
strcmp
(
tr_preference
,
"udp"
)
==
0
)
{
RC
.
ru
[
j
]
->
if_south
=
LOCAL_RF
;
RC
.
ru
[
j
]
->
function
=
NGFI_RRU_IF5
;
RC
.
ru
[
j
]
->
eth_params
.
transp_preference
=
ETH_UDP_MODE
;
}
else
if
(
strcmp
(
tr_preference
,
"raw"
)
==
0
)
{
if
(
fronthaul_flag
==
CONFIG_FALSE
)
{
RC
.
ru
[
j
]
->
if_south
=
LOCAL_RF
;
RC
.
ru
[
j
]
->
function
=
NGFI_RRU_IF5
;
RC
.
ru
[
j
]
->
eth_params
.
transp_preference
=
ETH_RAW_MODE
;
}
else
if
(
strcmp
(
tr_preference
,
"udp_if4p5"
)
==
0
)
{
RC
.
ru
[
j
]
->
if_south
=
LOCAL_RF
;
RC
.
ru
[
j
]
->
function
=
NGFI_RRU_IF4p5
;
RC
.
ru
[
j
]
->
eth_params
.
transp_preference
=
ETH_UDP_IF4p5_MODE
;
}
else
if
(
strcmp
(
tr_preference
,
"raw_if4p5"
)
==
0
)
{
RC
.
ru
[
j
]
->
if_south
=
LOCAL_RF
;
RC
.
ru
[
j
]
->
function
=
NGFI_RRU_IF4p5
;
RC
.
ru
[
j
]
->
eth_params
.
transp_preference
=
ETH_RAW_IF4p5_MODE
;
RC
.
ru
[
j
]
->
function
=
eNodeB_3GPP
;
}
else
{
if
(
strcmp
(
tr_preference
,
"udp"
)
==
0
)
{
RC
.
ru
[
j
]
->
if_south
=
LOCAL_RF
;
RC
.
ru
[
j
]
->
function
=
NGFI_RRU_IF5
;
RC
.
ru
[
j
]
->
eth_params
.
transp_preference
=
ETH_UDP_MODE
;
}
else
if
(
strcmp
(
tr_preference
,
"raw"
)
==
0
)
{
RC
.
ru
[
j
]
->
if_south
=
LOCAL_RF
;
RC
.
ru
[
j
]
->
function
=
NGFI_RRU_IF5
;
RC
.
ru
[
j
]
->
eth_params
.
transp_preference
=
ETH_RAW_MODE
;
}
else
if
(
strcmp
(
tr_preference
,
"udp_if4p5"
)
==
0
)
{
RC
.
ru
[
j
]
->
if_south
=
LOCAL_RF
;
RC
.
ru
[
j
]
->
function
=
NGFI_RRU_IF4p5
;
RC
.
ru
[
j
]
->
eth_params
.
transp_preference
=
ETH_UDP_IF4p5_MODE
;
}
else
if
(
strcmp
(
tr_preference
,
"raw_if4p5"
)
==
0
)
{
RC
.
ru
[
j
]
->
if_south
=
LOCAL_RF
;
RC
.
ru
[
j
]
->
function
=
NGFI_RRU_IF4p5
;
RC
.
ru
[
j
]
->
eth_params
.
transp_preference
=
ETH_RAW_IF4p5_MODE
;
}
}
RC
.
ru
[
j
]
->
max_pdschReferenceSignalPower
=
max_pdschReferenceSignalPower
;
...
...
@@ -589,7 +584,15 @@ void RCconfig_RU() {
for
(
i
=
0
;
i
<
num_bands
;
i
++
)
RC
.
ru
[
j
]
->
band
[
i
]
=
band
[
i
];
}
else
{
printf
(
"RU %d: Transport %s
\n
"
,
j
,
tr_preference
);
RC
.
ru
[
j
]
->
eth_params
.
local_if_name
=
strdup
(
if_name
);
RC
.
ru
[
j
]
->
eth_params
.
my_addr
=
strdup
(
ipv4
);
RC
.
ru
[
j
]
->
eth_params
.
remote_addr
=
strdup
(
ipv4_remote
);
RC
.
ru
[
j
]
->
eth_params
.
my_portc
=
local_portc
;
RC
.
ru
[
j
]
->
eth_params
.
remote_portc
=
remote_portc
;
RC
.
ru
[
j
]
->
eth_params
.
my_portd
=
local_portd
;
RC
.
ru
[
j
]
->
eth_params
.
remote_portd
=
remote_portd
;
for
(
i
=
0
;
i
<
num_eNB4RU
;
i
++
)
RC
.
ru
[
j
]
->
eNB_list
[
i
]
=
RC
.
eNB
[
eNB_list
[
i
]][
0
];
if
(
strcmp
(
tr_preference
,
"udp"
)
==
0
)
{
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
View file @
b61a2e0e
...
...
@@ -19,93 +19,96 @@ eNBs =
mobile_network_code
=
"93"
;
//////////
Physical
parameters
:
tr_s_preference
=
"local_mac"
//////////
Physical
parameters
:
component_carriers
= (
{
node_function
=
"eNodeB_3GPP
"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
2685000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
50
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
90
;
rx_gain
=
12
0
;
prach_root
=
0
;
prach_
config_index
=
0
;
prach_
high_speed
=
"DISABLE"
;
prach_
zero_correlation
=
1
;
prach_
freq_offset
=
2
;
pucch_delta_shif
t
=
1
;
pucch_
nRB_CQI
=
1
;
pucch_n
CS_AN
=
0
;
pucch_n
1
_AN
=
32
;
pdsch_referenceSignalPower
=
-
27
;
pdsch_
p_b
=
0
;
pusch_n_SB
=
1
;
pusch_
enable64QAM
=
"DISABLE"
;
pusch_
hoppingMode
=
"interSubFrame
"
;
pusch_hopping
Offset
=
0
;
pusch_
groupHoppingEnabled
=
"ENABLE"
;
pusch_group
Assignment
=
0
;
pusch_
sequenceHoppingEnabled
=
"DISABLE"
;
pusch_
nDMRS1
=
1
;
phich_duration
=
"NORMAL"
;
phich_
resource
=
"
ONESIXTH
"
;
srs_enable
=
"
DISABLE
"
;
/*
srs_BandwidthConfig
=;
srs_
Subframe
Config
=;
srs_
ackNackST
=;
srs_
MaxUpPts
=;
*/
pusch_p0_Nominal
= -
96
;
pusch_
alpha
=
"AL1"
;
pu
c
ch_
p0_Nominal
=
-
104
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1
b
=
"deltaF
3
"
;
pucch_deltaF_Format
2
=
"deltaF
0
"
;
pucch_deltaF_Format2
a
=
"deltaF0"
;
pucch_deltaF_Format2
b
=
"deltaF0"
;
rach_numberOfRA_Preambles
=
64
;
rach_
preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_sizeOfRA_PreamblesGroupA
= ;
rach_
messageSizeGroupA
= ;
rach_message
PowerOffsetGroupB
= ;
*/
rach_powerRampingStep
=
4
;
rach_p
reambleInitialReceivedTargetPower
= -
10
4
;
rach_preamble
TransMax
=
10
;
rach_
raResponseWindowSize
=
10
;
rach_
macContentionResolutionTimer
=
48
;
rach_ma
xHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_
nB
=
"oneT"
;
b
cch_
modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t30
1
=
1000
;
ue_TimersAndConstants_t3
1
0
=
1000
;
ue_TimersAndConstants_t31
1
=
1000
0
;
ue_TimersAndConstants_
n
31
0
=
2
0
;
ue_TimersAndConstants_n31
1
=
1
;
ue_TransmissionMode
=
1
;
node_function
=
"3GPP_eNODEB
"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
downlink_frequency
=
2685000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
50
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
90
;
rx_gain
=
12
5
;
pbch_repetition
=
"FALSE"
;
prach_
root
=
0
;
prach_
config_index
=
0
;
prach_
high_speed
=
"DISABLE"
;
prach_
zero_correlation
=
1
;
prach_freq_offse
t
=
2
;
pucch_
delta_shift
=
1
;
pucch_n
RB_CQI
=
1
;
pucch_n
CS
_AN
=
0
;
pucch_n1_AN
=
32
;
pdsch_
referenceSignalPower
=
-
27
;
pdsch_p_b
=
0
;
pusch_
n_SB
=
1
;
pusch_
enable64QAM
=
"DISABLE
"
;
pusch_hopping
Mode
=
"interSubFrame"
;
pusch_
hoppingOffset
=
0
;
pusch_group
HoppingEnabled
=
"ENABLE"
;
pusch_
groupAssignment
=
0
;
pusch_
sequenceHoppingEnabled
=
"DISABLE"
;
pusch_nDMRS1
=
1
;
phich_
duration
=
"
NORMAL
"
;
phich_resource
=
"
ONESIXTH
"
;
srs_enable
=
"DISABLE"
;
/*
srs_
Bandwidth
Config
=;
srs_
SubframeConfig
=;
srs_
ackNackST
=;
srs_MaxUpPts
=;*/
pusch_
p0_Nominal
=
-
96
;
pu
s
ch_
alpha
=
"AL1"
;
pucch_p0_Nominal
=
-
104
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF
2
"
;
pucch_deltaF_Format
1b
=
"deltaF
3
"
;
pucch_deltaF_Format2
=
"deltaF0"
;
pucch_deltaF_Format2
a
=
"deltaF0"
;
pucch_deltaF_Format2b
=
"deltaF0"
;
rach_
numberOfRA_Preambles
=
64
;
rach_preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_
sizeOfRA_PreamblesGroupA
= ;
rach_message
SizeGroupA
= ;
rach_messagePowerOffsetGroupB
= ;
*/
rach_p
owerRampingStep
=
4
;
rach_preamble
InitialReceivedTargetPower
=
-
10
8
;
rach_
preambleTransMax
=
10
;
rach_
raResponseWindowSize
=
10
;
rach_ma
cContentionResolutionTimer
=
4
8
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_
default_PagingCycle
=
128
;
p
cch_
nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t30
0
=
1000
;
ue_TimersAndConstants_t30
1
=
1000
;
ue_TimersAndConstants_t31
0
=
1000
;
ue_TimersAndConstants_
t
31
1
=
1000
0
;
ue_TimersAndConstants_n31
0
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
1
;
}
);
srb1_parameters
:
{
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
...
...
@@ -135,6 +138,7 @@ eNBs =
SCTP_OUTSTREAMS
=
2
;
};
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"127.0.0.3"
;
ipv6
=
"192:168:30::17"
;
...
...
@@ -145,9 +149,9 @@ eNBs =
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"lo"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"127.0.0.2/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"lo"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"127.0.0.5/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
...
...
@@ -172,3 +176,30 @@ eNBs =
};
}
);
MACRLCs
= (
{
num_cc
=
1
;
tr_s_preference
=
"local_L1"
;
tr_n_preference
=
"local_RRC"
;
}
);
L1s
= (
{
num_cc
=
1
;
tr_n_preference
=
"local_mac"
;
}
);
RUs
= (
{
local_rf
=
"yes"
nb_tx
=
1
nb_rx
=
1
att_tx
=
0
att_rx
=
0
;
bands
= [
7
];
eNB_instances
= [
0
];
}
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment