Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG UE
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
Michael Black
OpenXG UE
Commits
e75ab68d
Commit
e75ab68d
authored
Feb 17, 2016
by
Aikaterini
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-52-rrh-gw' into develop
parents
3b57f9ab
dde2c11a
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 @
e75ab68d
...
...
@@ -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 @
e75ab68d
...
...
@@ -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 @
e75ab68d
...
...
@@ -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 @
e75ab68d
...
...
@@ -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 @
e75ab68d
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 @
e75ab68d
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 @
e75ab68d
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 @
e75ab68d
...
...
@@ -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 @
e75ab68d
...
...
@@ -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