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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-RAN
Commits
e439a593
Commit
e439a593
authored
Feb 17, 2016
by
Aikaterini
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-52-rrh-gw' into develop
parents
2ab37edc
d13bb9d7
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
706 additions
and
55 deletions
+706
-55
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+70
-10
openair2/ENB_APP/enb_config.h
openair2/ENB_APP/enb_config.h
+8
-1
targets/ARCH/COMMON/common_lib.h
targets/ARCH/COMMON/common_lib.h
+12
-4
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
+8
-16
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.lmssdr.conf
.../GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.lmssdr.conf
+192
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf
...ENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf
+190
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.lmssdr.conf
...OJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.lmssdr.conf
+192
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf
...ECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf
+17
-14
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+17
-10
No files found.
openair2/ENB_APP/enb_config.c
View file @
e439a593
...
...
@@ -177,7 +177,11 @@
#define ENB_CONFIG_STRING_RRH_GW_LOCAL_PORT "local_port"
#define ENB_CONFIG_STRING_RRH_GW_REMOTE_PORT "remote_port"
#define ENB_CONFIG_STRING_RRH_GW_ACTIVE "active"
#define ENB_CONFIG_STRING_RRH_GW_PREFERENCE "preference"
#define ENB_CONFIG_STRING_RRH_GW_TRANSPORT_PREFERENCE "tr_preference"
#define ENB_CONFIG_STRING_RRH_GW_RF_TARGET_PREFERENCE "rf_preference"
#define ENB_CONFIG_STRING_RRH_GW_IQ_TXSHIFT "iq_txshift"
#define ENB_CONFIG_STRING_RRH_GW_TX_SAMPLE_ADVANCE "tx_sample_advance"
#define ENB_CONFIG_STRING_RRH_GW_TX_SCHEDULING_ADVANCE "tx_scheduling_advance"
#define ENB_CONFIG_STRING_ASN1_VERBOSITY "Asn1_verbosity"
#define ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE "none"
...
...
@@ -291,7 +295,23 @@ static void enb_config_display(void)
printf
(
"
\t
local port :
\t
%d:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
local_port
);
printf
(
"
\t
remote address :
\t
%s:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
remote_address
);
printf
(
"
\t
remote port :
\t
%d:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
remote_port
);
printf
(
"
\t
transport :
\t
%s Ethernet:
\n\n
"
,(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
raw
==
1
)
?
"RAW"
:
"UDP"
);
printf
(
"
\t
tx_scheduling_advance :
\t
%d:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
tx_scheduling_advance
);
printf
(
"
\t
tx_sample_advance :
\t
%d:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
tx_sample_advance
);
printf
(
"
\t
iq_txshift :
\t
%d:
\n
"
,
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
iq_txshift
);
printf
(
"
\t
transport :
\t
%s Ethernet:
\n
"
,(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
raw
==
1
)
?
"RAW"
:
"UDP"
);
if
(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
exmimo
==
1
)
{
printf
(
"
\t
RF target :
\t
EXMIMO:
\n\n
"
);
}
else
if
(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
usrp_b200
==
1
)
{
printf
(
"
\t
RF target :
\t
USRP_B200:
\n\n
"
);
}
else
if
(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
usrp_x300
==
1
)
{
printf
(
"
\t
RF target :
\t
USRP_X300:
\n\n
"
);
}
else
if
(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
bladerf
==
1
)
{
printf
(
"
\t
RF target :
\t
BLADERF:
\n\n
"
);
}
else
if
(
enb_properties
.
properties
[
i
]
->
rrh_gw_config
[
j
].
lmssdr
==
1
)
{
printf
(
"
\t
RF target :
\t
LMSSDR:
\n\n
"
);
}
else
{
printf
(
"
\t
RF target :
\t
NONE:
\n\n
"
);
}
}
}
...
...
@@ -479,14 +499,14 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
config_setting_t
*
setting_rrh_gw
=
NULL
;
config_setting_t
*
setting_enb
=
NULL
;
config_setting_t
*
setting_otg
=
NULL
;
config_setting_t
*
subsetting_otg
=
NULL
;
config_setting_t
*
subsetting_otg
=
NULL
;
int
num_enb_properties
=
0
;
int
enb_properties_index
=
0
;
int
num_enbs
=
0
;
int
num_mme_address
=
0
;
int
num_rrh_gw
=
0
;
int
num_otg_elements
=
0
;
int
num_component_carriers
=
0
;
int
num_otg_elements
=
0
;
int
num_component_carriers
=
0
;
int
i
=
0
;
int
j
=
0
;
int
parse_errors
=
0
;
...
...
@@ -588,6 +608,12 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
char
*
ipv6
=
NULL
;
char
*
active
=
NULL
;
char
*
preference
=
NULL
;
char
*
tr_preference
=
NULL
;
char
*
rf_preference
=
NULL
;
libconfig_int
tx_scheduling_advance
=
0
;
libconfig_int
tx_sample_advance
=
0
;
libconfig_int
iq_txshift
=
0
;
libconfig_int
local_port
=
0
;
libconfig_int
remote_port
=
0
;
const
char
*
active_enb
[
MAX_ENB
];
...
...
@@ -2180,7 +2206,11 @@ 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_LOCAL_PORT
,
&
local_port
)
&&
config_setting_lookup_int
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_REMOTE_PORT
,
&
remote_port
)
&&
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_ACTIVE
,
(
const
char
**
)
&
active
)
&&
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_PREFERENCE
,
(
const
char
**
)
&
preference
)
&&
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_TRANSPORT_PREFERENCE
,
(
const
char
**
)
&
tr_preference
)
&&
config_setting_lookup_string
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_RF_TARGET_PREFERENCE
,
(
const
char
**
)
&
rf_preference
)
&&
config_setting_lookup_int
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_IQ_TXSHIFT
,
&
iq_txshift
)
&&
config_setting_lookup_int
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_TX_SAMPLE_ADVANCE
,
&
tx_sample_advance
)
&&
config_setting_lookup_int
(
setting_rrh_gw
,
ENB_CONFIG_STRING_RRH_GW_TX_SCHEDULING_ADVANCE
,
&
tx_scheduling_advance
)
)
)
{
AssertError
(
0
,
parse_errors
++
,
...
...
@@ -2194,21 +2224,43 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_if_name
=
strdup
(
if_name
);
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
local_address
=
strdup
(
ipv4
);
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
remote_address
=
strdup
(
ipv4_remote
);
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
local_port
=
local_port
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
remote_port
=
remote_port
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
local_port
=
local_port
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
remote_port
=
remote_port
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
iq_txshift
=
iq_txshift
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
tx_sample_advance
=
tx_sample_advance
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
tx_scheduling_advance
=
tx_scheduling_advance
;
if
(
strcmp
(
active
,
"yes"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
active
=
1
;
}
if
(
strcmp
(
preference
,
"udp"
)
==
0
)
{
if
(
strcmp
(
tr_
preference
,
"udp"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
udp
=
1
;
}
else
if
(
strcmp
(
preference
,
"raw"
)
==
0
)
{
}
else
if
(
strcmp
(
tr_
preference
,
"raw"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
raw
=
1
;
}
else
{
//if (strcmp(preference, "no") == 0)
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
udp
=
1
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
raw
=
1
;
}
if
(
strcmp
(
rf_preference
,
"exmimo"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
exmimo
=
1
;
}
else
if
(
strcmp
(
rf_preference
,
"usrp_b200"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
usrp_b200
=
1
;
}
else
if
(
strcmp
(
rf_preference
,
"usrp_x300"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
usrp_x300
=
1
;
}
else
if
(
strcmp
(
rf_preference
,
"bladerf"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
bladerf
=
1
;
}
else
if
(
strcmp
(
rf_preference
,
"bladerf"
)
==
0
)
{
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
lmssdr
=
1
;
}
else
{
//if (strcmp(preference, "no") == 0)
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
exmimo
=
1
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
usrp_b200
=
1
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
usrp_x300
=
1
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
bladerf
=
1
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
lmssdr
=
1
;
}
}
}
else
{
enb_properties
.
properties
[
enb_properties_index
]
->
nb_rrh_gw
=
0
;
...
...
@@ -2220,6 +2272,14 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
active
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
udp
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
raw
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
tx_scheduling_advance
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
tx_sample_advance
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
iq_txshift
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
exmimo
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
usrp_b200
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
usrp_x300
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
bladerf
=
0
;
enb_properties
.
properties
[
enb_properties_index
]
->
rrh_gw_config
[
j
].
lmssdr
=
0
;
}
// SCTP SETTING
...
...
openair2/ENB_APP/enb_config.h
View file @
e439a593
...
...
@@ -86,7 +86,14 @@ typedef struct rrh_gw_config_s {
char
*
remote_address
;
uint16_t
local_port
;
uint16_t
remote_port
;
int
tx_scheduling_advance
;
int
tx_sample_advance
;
int
iq_txshift
;
unsigned
exmimo
:
1
;
unsigned
usrp_b200
:
1
;
unsigned
usrp_x300
:
1
;
unsigned
bladerf
:
1
;
unsigned
lmssdr
:
1
;
}
rrh_gw_config_t
;
typedef
struct
Enb_properties_s
{
...
...
targets/ARCH/COMMON/common_lib.h
View file @
e439a593
...
...
@@ -209,15 +209,23 @@ typedef struct {
typedef
struct
{
char
*
remote_addr
;
//! remote port number for Ethernet interface
u
nsigned
in
t
remote_port
;
u
int16_
t
remote_port
;
//! local IP/MAC addr for Ethernet interface (eNB/BBU, UE)
char
*
my_addr
;
//! local port number for Ethernet interface (eNB/BBU, UE)
u
nsigned
int
my_port
;
//! local
port number for
Ethernet interface (eNB/BBU, UE)
u
int16_t
my_port
;
//! local Ethernet interface (eNB/BBU, UE)
char
*
local_if_name
;
//! local port number for Ethernet interface (eNB/BBU, UE)
//! tx_sample_advance for RF + ETH
uint8_t
tx_sample_advance
;
//! tx_scheduling_advance for RF + ETH
uint8_t
tx_scheduling_advance
;
//! iq_txshift for RF + ETH
uint8_t
iq_txshift
;
//! transport type preference (RAW/UDP)
uint8_t
transp_preference
;
//! radio front end preference (EXMIMO,USRP, BALDERF,LMSSDR)
uint8_t
rf_preference
;
}
eth_params_t
;
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
View file @
e439a593
...
...
@@ -344,43 +344,35 @@ int transport_init(openair0_device *device, openair0_config_t *openair0_cfg, eth
/* device specific */
openair0_cfg
[
0
].
txlaunch_wait
=
0
;
//manage when TX processing is triggered
openair0_cfg
[
0
].
txlaunch_wait_slotcount
=
0
;
//manage when TX processing is triggered
openair0_cfg
[
0
].
iq_txshift
=
5
;
// shift
openair0_cfg
[
0
].
iq_rxrescale
=
15
;
//rescale iqs
openair0_cfg
[
0
].
iq_txshift
=
eth_params
->
iq_txshift
;
// shift
openair0_cfg
[
0
].
tx_sample_advance
=
eth_params
->
tx_sample_advance
;
/* RRH does not have any information to make this configuration atm */
if
(
device
->
host_type
==
BBU_HOST
)
{
/*Note scheduling advance values valid only for case 7680000 */
switch
((
int
)
openair0_cfg
[
0
].
sample_rate
)
{
case
30720000
:
openair0_cfg
[
0
].
samples_per_packet
=
4096
;
openair0_cfg
[
0
].
tx_sample_advance
=
115
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
11
*
openair0_cfg
[
0
].
samples_per_packet
;
openair0_cfg
[
0
].
samples_per_packet
=
4096
;
break
;
case
23040000
:
openair0_cfg
[
0
].
samples_per_packet
=
2048
;
openair0_cfg
[
0
].
tx_sample_advance
=
113
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
8
*
openair0_cfg
[
0
].
samples_per_packet
;
break
;
case
15360000
:
openair0_cfg
[
0
].
samples_per_packet
=
2048
;
openair0_cfg
[
0
].
tx_sample_advance
=
113
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
9
*
openair0_cfg
[
0
].
samples_per_packet
;
openair0_cfg
[
0
].
samples_per_packet
=
2048
;
break
;
case
7680000
:
openair0_cfg
[
0
].
samples_per_packet
=
1024
;
openair0_cfg
[
0
].
tx_sample_advance
=
70
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
9
*
openair0_cfg
[
0
].
samples_per_packet
;
break
;
openair0_cfg
[
0
].
samples_per_packet
=
1024
;
break
;
case
1920000
:
openair0_cfg
[
0
].
samples_per_packet
=
256
;
openair0_cfg
[
0
].
tx_sample_advance
=
40
;
openair0_cfg
[
0
].
tx_scheduling_advance
=
8
*
openair0_cfg
[
0
].
samples_per_packet
;
openair0_cfg
[
0
].
samples_per_packet
=
256
;
break
;
default:
printf
(
"Error: unknown sampling rate %f
\n
"
,
openair0_cfg
[
0
].
sample_rate
);
exit
(
-
1
);
break
;
}
openair0_cfg
[
0
].
tx_scheduling_advance
=
eth_params
->
tx_scheduling_advance
*
openair0_cfg
[
0
].
samples_per_packet
;
}
device
->
openair0_cfg
=&
openair0_cfg
[
0
];
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.lmssdr.conf
0 → 100644
View file @
e439a593
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
=
"93"
;
//////////
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
=
50
;
Nid_cell_mbsfn
=
0
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
60
;
rx_gain
=
111
;
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
= -
29
;
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
= -
85
;
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
= -
100
;
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
;
}
);
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.170"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
rrh_gw_config
= (
{
local_if_name
=
"eth0"
;
#remote_address = "169.254.10.158";
#local_address = "169.254.8.15";
remote_address
=
"74:d4:35:cc:88:45"
;
local_address
=
"d4:be:d9:22:0a:ac"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
active
=
"yes"
;
tr_preference
=
"raw"
;
rf_preference
=
"lmssdr"
;
iq_txshift
=
0
;
tx_sample_advance
=
45
;
tx_scheduling_advance
=
8
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth6"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.118/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth6"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.118/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"
;
};
}
);
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf
0 → 100644
View file @
e439a593
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
=
2680000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
50
;
Nid_cell_mbsfn
=
0
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
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
= -
29
;
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
;
}
);
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"
;
}
);
rrh_gw_config
= (
{
local_if_name
=
"eth0"
;
#remote_address = "169.254.10.158";
#local_address = "169.254.8.15";
remote_address
=
"74:d4:35:cc:88:45"
;
local_address
=
"98:90:96:df:66:07"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
active
=
"yes"
;
tr_preference
=
"raw"
;
rf_preference
=
"usrp_b200"
;
iq_txshift
=
5
;
tx_sample_advance
=
113
;
tx_scheduling_advance
=
9
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth4"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.111/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth4"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.111/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"
;
};
}
);
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.lmssdr.conf
0 → 100644
View file @
e439a593
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_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
60
;
rx_gain
=
111
;
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
= -
29
;
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
= -
85
;
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
= -
100
;
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
;
}
);
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.170"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
rrh_gw_config
= (
{
local_if_name
=
"eth0"
;
#remote_address = "169.254.10.158";
#local_address = "169.254.8.15";
remote_address
=
"74:d4:35:cc:88:45"
;
local_address
=
"d4:be:d9:22:0a:ac"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
active
=
"yes"
;
tr_preference
=
"raw"
;
rf_preference
=
"lmssdr"
;
iq_txshift
=
0
;
tx_sample_advance
=
70
;
tx_scheduling_advance
=
8
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth6"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.118/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth6"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.118/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"
;
};
}
);
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf
View file @
e439a593
...
...
@@ -133,7 +133,7 @@ eNBs =
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"192.168.12.
170
"
;
mme_ip_address
= ( {
ipv4
=
"192.168.12.
26
"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
...
...
@@ -143,28 +143,31 @@ eNBs =
rrh_gw_config
= (
{
local_if_name
=
"eth0"
;
remote_address
=
"169.254.8.28"
;
#remote_address = "127.0.0.1";
#remote_address = "74:d4:35:cc:88:45";
local_address
=
"169.254.7.91"
;
#local_address = "127.0.0.1";
#local_address = "d4:be:d9:22:0a:ac";
#for raw option local port must be the same to remote
local_port
=
50001
;
#remote_address = "169.254.10.158";
#local_address = "169.254.8.15";
remote_address
=
"74:d4:35:cc:88:45"
;
local_address
=
"98:90:96:df:66:07"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
active
=
"yes"
;
preference
=
"udp"
;
tr_preference
=
"raw"
;
rf_preference
=
"usrp_b200"
;
iq_txshift
=
5
;
tx_sample_advance
=
70
;
tx_scheduling_advance
=
9
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth
0
"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.
242
/24"
;
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth
4
"
;
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.242/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth4"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.111/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
...
...
targets/RT/USER/lte-softmodem.c
View file @
e439a593
...
...
@@ -2443,22 +2443,29 @@ static void get_options (int argc, char **argv)
local_remote_radio
=
BBU_REMOTE_RADIO_HEAD
;
eth_params
=
(
eth_params_t
*
)
malloc
(
sizeof
(
eth_params_t
));
memset
(
eth_params
,
0
,
sizeof
(
eth_params_t
));
printf
(
"
\n\t
RRH GW %d config for eNB %u:
\n\n
"
,
j
,
i
);
printf
(
"
\t
interface name :
\t
%s:
\n
"
,
enb_properties
->
properties
[
i
]
->
rrh_gw_if_name
);
printf
(
"
\t
local address :
\t
%s:
\n
"
,
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
local_address
);
printf
(
"
\t
local port :
\t
%d:
\n
"
,
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
local_port
);
printf
(
"
\t
remote address :
\t
%s:
\n
"
,
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
remote_address
);
printf
(
"
\t
remote port :
\t
%d:
\n
"
,
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
remote_port
);
printf
(
"
\t
transport :
\t
%s Ethernet:
\n\n
"
,(
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
raw
==
1
)
?
"RAW"
:
"UDP"
);
eth_params
->
local_if_name
=
enb_properties
->
properties
[
i
]
->
rrh_gw_if_name
;
eth_params
->
my_addr
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
local_address
;
eth_params
->
my_port
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
local_port
;
eth_params
->
remote_addr
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
remote_address
;
eth_params
->
remote_port
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
remote_port
;
eth_params
->
transp_preference
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
raw
;
eth_params
->
transp_preference
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
raw
;
eth_params
->
iq_txshift
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
iq_txshift
;
eth_params
->
tx_sample_advance
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
tx_sample_advance
;
eth_params
->
tx_scheduling_advance
=
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
tx_scheduling_advance
;
if
(
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
exmimo
==
1
)
{
eth_params
->
rf_preference
=
EXMIMO_DEV
;
}
else
if
(
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
usrp_b200
==
1
)
{
eth_params
->
rf_preference
=
USRP_B200_DEV
;
}
else
if
(
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
usrp_x300
==
1
)
{
eth_params
->
rf_preference
=
USRP_X300_DEV
;
}
else
if
(
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
bladerf
==
1
)
{
eth_params
->
rf_preference
=
BLADERF_DEV
;
}
else
if
(
enb_properties
->
properties
[
i
]
->
rrh_gw_config
[
j
].
lmssdr
==
1
)
{
//eth_params->rf_preference = LMSSDR_DEV;
}
else
{
eth_params
->
rf_preference
=
0
;
}
}
else
{
local_remote_radio
=
BBU_LOCAL_RADIO_HEAD
;
}
...
...
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