Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
openairinterface5G
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Patricio Latini
openairinterface5G
Commits
b61a2e0e
Commit
b61a2e0e
authored
7 years ago
by
knopp
Browse files
Options
Downloads
Patches
Plain Diff
small changes to allow for monolithic eNB execution.
parent
ae884afe
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
openair2/ENB_APP/enb_config.c
+73
-70
73 additions, 70 deletions
openair2/ENB_APP/enb_config.c
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
+113
-82
113 additions, 82 deletions
...TS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
with
186 additions
and
152 deletions
openair2/ENB_APP/enb_config.c
+
73
−
70
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
)
{
...
...
This diff is collapsed.
Click to expand it.
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
+
113
−
82
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
];
}
);
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment