Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ZhouShuya
OpenXG-RAN
Commits
ae674104
Commit
ae674104
authored
Feb 10, 2017
by
Cedric Roux
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/various-l2-fixes-187' into develop_integration_w06
parents
e2ae88de
80eaec1d
Changes
21
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
942 additions
and
43 deletions
+942
-43
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+6
-6
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+3
-2
openair2/LAYER2/MAC/defs.h
openair2/LAYER2/MAC/defs.h
+4
-0
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler.c
+6
-4
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+27
-11
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
+67
-6
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+8
-5
openair2/LAYER2/MAC/extern.h
openair2/LAYER2/MAC/extern.h
+6
-0
openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c
openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c
+28
-5
openair2/LAYER2/MAC/pre_processor.c
openair2/LAYER2/MAC/pre_processor.c
+1
-2
openair2/LAYER2/MAC/proto.h
openair2/LAYER2/MAC/proto.h
+4
-2
openair2/LAYER2/MAC/vars.h
openair2/LAYER2/MAC/vars.h
+30
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf
...TS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf
+174
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf
...RIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf
+193
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf
...ERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf
+0
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf
...ERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf
+0
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf
...NERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf
+195
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf
...ENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf
+0
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf
...ENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf
+0
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf
...NERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf
+190
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf
...ENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf
+0
-0
No files found.
cmake_targets/tools/build_helper
View file @
ae674104
...
...
@@ -171,7 +171,7 @@ install_protobuf_from_source(){
echo "Downloading protobuf"
rm -rf /tmp/protobuf-2.6.1.tar.gz* /tmp/protobuf-2.6.1
wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
tar -xzvf protobuf-2.6.1.tar.gz
tar -xzvf protobuf-2.6.1.tar.gz
--owner $USER --group $USER --no-same-owner
cd protobuf-2.6.1/
./configure
echo "Compiling protobuf"
...
...
@@ -208,8 +208,8 @@ check_install_usrp_uhd_driver(){
#The new USRP repository
$SUDO add-apt-repository ppa:ettusresearch/uhd -y
$SUDO apt-get update
$SUDO apt-get -y install python python-tk libboost-all-dev libusb-1.0-0-dev
$SUDO apt-get -y install libuhd-dev libuhd003 uhd-host
$SUDO apt-get -y
--allow-unauthenticated
install python python-tk libboost-all-dev libusb-1.0-0-dev
$SUDO apt-get -y
--allow-unauthenticated
install libuhd-dev libuhd003 uhd-host
}
install_usrp_uhd_driver() {
...
...
@@ -224,9 +224,9 @@ check_install_bladerf_driver(){
$SUDO add-apt-repository -y ppa:bladerf/bladerf
$SUDO apt-get update
fi
$SUDO apt-get install -y bladerf libbladerf-dev
$SUDO apt-get install -y bladerf-firmware-fx3
$SUDO apt-get install -y bladerf-fpga-hostedx40
$SUDO apt-get install -y
--allow-unauthenticated
bladerf libbladerf-dev
$SUDO apt-get install -y
--allow-unauthenticated
bladerf-firmware-fx3
$SUDO apt-get install -y
--allow-unauthenticated
bladerf-fpga-hostedx40
}
flash_firmware_bladerf() {
...
...
openair2/ENB_APP/enb_config.c
View file @
ae674104
...
...
@@ -2391,10 +2391,11 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
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
)
{
}
else
if
(
strcmp
(
rf_preference
,
"
lmsdr
"
)
==
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
].
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
;
...
...
openair2/LAYER2/MAC/defs.h
View file @
ae674104
...
...
@@ -132,6 +132,10 @@
#define MIN_CQI_VALUE 0
/*!\brief maximum value for channel quality indicator */
#define MAX_CQI_VALUE 15
/*!\briefmaximum number of supported bandwidth (1.4, 5, 10, 20 MHz) */
#define MAX_SUPPORTED_BW 4
/*!\brief CQI values range from 1 to 15 (4 bits) */
#define CQI_VALUE_RANGE 16
/*!\brief value for indicating BSR Timer is not running */
#define MAC_UE_BSR_TIMER_NOT_RUNNING (0xFFFF)
...
...
openair2/LAYER2/MAC/eNB_scheduler.c
View file @
ae674104
...
...
@@ -104,6 +104,8 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
rnti_t
rnti
;
void
*
DLSCH_dci
=
NULL
;
int
size_bits
=
0
,
size_bytes
=
0
;
LTE_eNB_UE_stats
*
eNB_UE_stats
=
NULL
;
#if defined(FLEXRAN_AGENT_SB_IF)
Protocol__FlexranMessage
*
msg
;
...
...
@@ -150,9 +152,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
eNB_mac_inst
[
module_idP
].
UE_list
.
UE_sched_ctrl
[
i
].
ul_inactivity_timer
++
;
eNB_mac_inst
[
module_idP
].
UE_list
.
UE_sched_ctrl
[
i
].
cqi_req_timer
++
;
eNB_UE_stats
=
mac_xface
->
get_eNB_UE_stats
(
module_idP
,
CC_id
,
rnti
);
if
(
mac_xface
->
get_eNB_UE_stats
(
module_idP
,
CC_id
,
rnti
)
==
NULL
)
{
if
(
eNB_UE_stats
==
NULL
)
{
//mac_remove_ue(module_idP, i, frameP, subframeP);
//Inform the controller about the UE deactivation. Should be moved to RRC agent in the future
#if defined(FLEXRAN_AGENT_SB_IF)
...
...
@@ -247,8 +249,8 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
add_ue_spec_dci
(
DCI_pdu
[
CC_id
],
DLSCH_dci
,
rnti
,
size_bytes
,
process_ue_cqi
(
module_idP
,
i
),
//aggregation
,
size_bytes
,
get_aggregation
(
get_bw_index
(
module_idP
,
CC_id
),
eNB_UE_stats
->
DL_cqi
[
0
],
format1A
)
,
size_bits
,
format1A
,
0
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
View file @
ae674104
...
...
@@ -463,7 +463,7 @@ schedule_ue_spec(
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH
,
VCD_FUNCTION_IN
);
//weight = get_ue_weight(module_idP,UE_id);
aggregation
=
1
;
// set to the maximum aggregation level
aggregation
=
2
;
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
min_rb_unit
[
CC_id
]
=
get_min_rb_unit
(
module_idP
,
CC_id
);
...
...
@@ -520,7 +520,25 @@ schedule_ue_spec(
// mac_xface->macphy_exit("[MAC][eNB] Cannot find eNB_UE_stats\n");
continue_flag
=
1
;
}
switch
(
mac_xface
->
get_transmission_mode
(
module_idP
,
CC_id
,
rnti
)){
case
1
:
case
2
:
case
7
:
aggregation
=
get_aggregation
(
get_bw_index
(
module_idP
,
CC_id
),
eNB_UE_stats
->
DL_cqi
[
0
],
format1
);
break
;
case
3
:
aggregation
=
get_aggregation
(
get_bw_index
(
module_idP
,
CC_id
),
eNB_UE_stats
->
DL_cqi
[
0
],
format2A
);
break
;
default:
LOG_W
(
MAC
,
"Unsupported transmission mode %d
\n
"
,
mac_xface
->
get_transmission_mode
(
module_idP
,
CC_id
,
rnti
));
aggregation
=
2
;
}
if
((
ue_sched_ctl
->
pre_nb_available_rbs
[
CC_id
]
==
0
)
||
// no RBs allocated
CCE_allocation_infeasible
(
module_idP
,
CC_id
,
0
,
subframeP
,
aggregation
,
rnti
)
)
{
...
...
@@ -630,9 +648,6 @@ schedule_ue_spec(
}
nb_available_rb
-=
nb_rb
;
aggregation
=
process_ue_cqi
(
module_idP
,
UE_id
);
PHY_vars_eNB_g
[
module_idP
][
CC_id
]
->
mu_mimo_mode
[
UE_id
].
pre_nb_available_rbs
=
nb_rb
;
PHY_vars_eNB_g
[
module_idP
][
CC_id
]
->
mu_mimo_mode
[
UE_id
].
dl_pow_off
=
ue_sched_ctl
->
dl_pow_off
[
CC_id
];
...
...
@@ -1120,8 +1135,7 @@ schedule_ue_spec(
T
(
T_ENB_MAC_UE_DL_PDU_WITH_DATA
,
T_INT
(
module_idP
),
T_INT
(
CC_id
),
T_INT
(
rnti
),
T_INT
(
frameP
),
T_INT
(
subframeP
),
T_INT
(
harq_pid
),
T_BUFFER
(
UE_list
->
DLSCH_pdu
[
CC_id
][
0
][
UE_id
].
payload
[
0
],
TBS
));
aggregation
=
process_ue_cqi
(
module_idP
,
UE_id
);
UE_list
->
UE_template
[
CC_id
][
UE_id
].
nb_rb
[
harq_pid
]
=
nb_rb
;
UE_list
->
UE_template
[
CC_id
][
UE_id
].
nb_rb
[
harq_pid
]
=
nb_rb
;
add_ue_dlsch_info
(
module_idP
,
CC_id
,
...
...
@@ -1519,7 +1533,8 @@ fill_DLSCH_dci(
eNB_MAC_INST
*
eNB
=&
eNB_mac_inst
[
module_idP
];
UE_list_t
*
UE_list
=
&
eNB
->
UE_list
;
//RA_TEMPLATE *RA_template;
LTE_eNB_UE_stats
*
eNB_UE_stats
=
NULL
;
start_meas
(
&
eNB
->
fill_DLSCH_dci
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_FILL_DLSCH_DCI
,
VCD_FUNCTION_IN
);
...
...
@@ -1546,6 +1561,7 @@ fill_DLSCH_dci(
nb_rb
=
UE_list
->
UE_template
[
CC_id
][
UE_id
].
nb_rb
[
harq_pid
];
DLSCH_dci
=
(
void
*
)
UE_list
->
UE_template
[
CC_id
][
UE_id
].
DLSCH_DCI
[
harq_pid
];
eNB_UE_stats
=
mac_xface
->
get_eNB_UE_stats
(
module_idP
,
CC_id
,
rnti
);
/// Synchronizing rballoc with rballoc_sub
...
...
@@ -1645,7 +1661,7 @@ fill_DLSCH_dci(
DLSCH_dci
,
rnti
,
size_bytes
,
process_ue_cqi
(
module_idP
,
UE_id
),
//aggregation
,
get_aggregation
(
get_bw_index
(
module_idP
,
CC_id
),
eNB_UE_stats
->
DL_cqi
[
0
],
format1
)
,
size_bits
,
format1
,
0
);
...
...
@@ -1741,8 +1757,8 @@ fill_DLSCH_dci(
DLSCH_dci
,
rnti
,
size_bytes
,
process_ue_cqi
(
module_idP
,
UE_id
),
//aggregation
,
size_bits
,
get_aggregation
(
get_bw_index
(
module_idP
,
CC_id
),
eNB_UE_stats
->
DL_cqi
[
0
],
format2A
)
,
size_bits
,
format2A
,
0
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_primitives.c
View file @
ae674104
...
...
@@ -181,11 +181,41 @@ uint8_t find_active_UEs(module_id_t module_idP,int CC_id){
*/
// get aggregatio
b
form phy for a give UE
unsigned
char
process_ue_cqi
(
module_id_t
module_idP
,
int
ue_idP
)
// get aggregatio
n (L)
form phy for a give UE
unsigned
char
get_aggregation
(
uint8_t
bw_index
,
uint8_t
cqi
,
uint8_t
dci_fmt
)
{
unsigned
char
aggregation
=
1
;
// check the MCS and SNR and set the aggregation accordingly
unsigned
char
aggregation
=
3
;
switch
(
dci_fmt
){
case
format0
:
aggregation
=
cqi2fmt0_agg
[
bw_index
][
cqi
];
break
;
case
format1
:
case
format1A
:
case
format1B
:
case
format1D
:
aggregation
=
cqi2fmt1x_agg
[
bw_index
][
cqi
];
break
;
case
format2
:
case
format2A
:
case
format2B
:
case
format2C
:
case
format2D
:
aggregation
=
cqi2fmt2x_agg
[
bw_index
][
cqi
];
break
;
case
format1C
:
case
format1E_2A_M10PRB
:
case
format3
:
case
format3A
:
case
format4
:
default:
LOG_W
(
MAC
,
"unsupported DCI format %d
\n
"
,
dci_fmt
);
}
LOG_D
(
MAC
,
"Aggregation level %d (cqi %d, bw_index %d, format %d)
\n
"
,
1
<<
aggregation
,
cqi
,
bw_index
,
dci_fmt
);
return
aggregation
;
}
#ifdef CBA
...
...
@@ -714,6 +744,38 @@ uint32_t allocate_prbs(int UE_id,unsigned char nb_rb, uint32_t *rballoc)
return
(
rballoc_dci
);
}
int
get_bw_index
(
module_id_t
module_id
,
uint8_t
CC_id
)
{
int
bw_index
=
0
;
LTE_DL_FRAME_PARMS
*
frame_parms
=
mac_xface
->
get_lte_frame_parms
(
module_id
,
CC_id
);
switch
(
frame_parms
->
N_RB_DL
)
{
case
6
:
// 1.4 MHz
bw_index
=
0
;
break
;
case
25
:
// 5HMz
bw_index
=
1
;
break
;
case
50
:
// 10HMz
bw_index
=
2
;
break
;
case
100
:
// 20HMz
bw_index
=
3
;
break
;
default:
bw_index
=
1
;
LOG_W
(
MAC
,
"[eNB %d] N_DL_RB %d unknown for CC_id %d, setting bw_index to 1
\n
"
,
module_id
,
CC_id
);
break
;
}
return
bw_index
;
}
int
get_min_rb_unit
(
module_id_t
module_id
,
uint8_t
CC_id
)
{
...
...
@@ -1044,8 +1106,7 @@ try_again:
1
<<
DCI_pdu
->
dci_alloc
[
j
].
L
,
nCCE
,
nCCE_max
,
DCI_pdu
->
num_pdcch_symbols
);
}
//dump_CCE_table(CCE_table,nCCE_max,subframeP,dci_alloc->rnti,dci_alloc->L);
//dump_CCE_table(CCE_table,nCCE_max,subframeP,dci_alloc->rnti,1<<dci_alloc->L);
goto
failed
;
}
DCI_pdu
->
num_pdcch_symbols
++
;
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
ae674104
...
...
@@ -729,8 +729,7 @@ void schedule_ulsch_rnti(module_id_t module_idP,
ulsch_scheduler_pre_processor
(
module_idP
,
frameP
,
subframeP
,
first_rb
,
aggregation
);
first_rb
);
// LOG_I(MAC,"exiting ulsch preprocesor\n");
...
...
@@ -791,14 +790,19 @@ abort();
frame_parms
=
mac_xface
->
get_lte_frame_parms
(
module_idP
,
CC_id
);
eNB_UE_stats
=
mac_xface
->
get_eNB_UE_stats
(
module_idP
,
CC_id
,
rnti
);
aggregation
=
get_aggregation
(
get_bw_index
(
module_idP
,
CC_id
),
eNB_UE_stats
->
DL_cqi
[
0
],
format0
);
if
(
CCE_allocation_infeasible
(
module_idP
,
CC_id
,
0
,
subframeP
,
aggregation
,
rnti
))
{
LOG_W
(
MAC
,
"[eNB %d] frame %d subframe %d, UE %d/%x CC %d: not enough nCCE
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
);
continue
;
// break;
}
else
{
LOG_D
(
MAC
,
"[eNB %d] frame %d subframe %d, UE %d/%x CC %d mode %s: aggregation level %d
\n
"
,
module_idP
,
frameP
,
subframeP
,
UE_id
,
rnti
,
CC_id
,
mode_string
[
eNB_UE_stats
->
mode
],
1
<<
aggregation
);
}
// printf("UE %d/%x is feasible, mode %s\n",UE_id,rnti,mode_string[eNB_UE_stats->mode]);
if
(
eNB_UE_stats
->
mode
==
PUSCH
)
{
// ue has a ulsch channel
DCI_pdu
=
&
eNB
->
common_channels
[
CC_id
].
DCI_pdu
;
...
...
@@ -824,7 +828,6 @@ abort();
UE_sched_ctrl
->
ul_failure_timer
);
// reset the scheduling request
UE_template
->
ul_SR
=
0
;
aggregation
=
process_ue_cqi
(
module_idP
,
UE_id
);
status
=
mac_eNB_get_rrc_status
(
module_idP
,
rnti
);
if
(
status
<
RRC_CONNECTED
)
cqi_req
=
0
;
...
...
openair2/LAYER2/MAC/extern.h
View file @
ae674104
...
...
@@ -50,6 +50,12 @@ extern const uint32_t BSR_TABLE[BSR_TABLE_SIZE];
extern
const
uint32_t
Extended_BSR_TABLE
[
BSR_TABLE_SIZE
];
//extern uint32_t Extended_BSR_TABLE[63]; ----currently not used
extern
const
uint8_t
cqi2fmt0_agg
[
MAX_SUPPORTED_BW
][
CQI_VALUE_RANGE
];
extern
const
uint8_t
cqi2fmt1x_agg
[
MAX_SUPPORTED_BW
][
CQI_VALUE_RANGE
];
extern
const
uint8_t
cqi2fmt2x_agg
[
MAX_SUPPORTED_BW
][
CQI_VALUE_RANGE
];
extern
UE_MAC_INST
*
UE_mac_inst
;
extern
eNB_MAC_INST
*
eNB_mac_inst
;
extern
eNB_RRC_INST
*
eNB_rrc_inst
;
...
...
openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c
View file @
ae674104
...
...
@@ -1042,6 +1042,7 @@ flexran_schedule_ue_spec_common(mid_t mod_id,
int32_t
tpc
=
1
;
static
int32_t
tpc_accumulated
=
0
;
UE_sched_ctrl
*
ue_sched_ctl
;
LTE_eNB_UE_stats
*
eNB_UE_stats
=
NULL
;
Protocol__FlexDlData
*
dl_data
[
NUM_MAX_UE
];
int
num_ues_added
=
0
;
...
...
@@ -1108,8 +1109,15 @@ flexran_schedule_ue_spec_common(mid_t mod_id,
for
(
UE_id
=
UE_list
->
head
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next
[
UE_id
])
{
rnti
=
flexran_get_ue_crnti
(
mod_id
,
UE_id
);
eNB_UE_stats
=
mac_xface
->
get_eNB_UE_stats
(
mod_id
,
CC_id
,
rnti
);
ue_sched_ctl
=
&
UE_list
->
UE_sched_ctrl
[
UE_id
];
if
(
eNB_UE_stats
==
NULL
)
{
LOG_D
(
MAC
,
"[eNB] Cannot find eNB_UE_stats
\n
"
);
// mac_xface->macphy_exit("[MAC][eNB] Cannot find eNB_UE_stats\n");
continue
;
}
if
(
flexran_slice_member
(
UE_id
,
slice_id
)
==
0
)
continue
;
...
...
@@ -1124,7 +1132,25 @@ flexran_schedule_ue_spec_common(mid_t mod_id,
// mac_xface->macphy_exit("[MAC][eNB] Cannot find eNB_UE_stats\n");
continue
;
}
switch
(
mac_xface
->
get_transmission_mode
(
mod_id
,
CC_id
,
rnti
)){
case
1
:
case
2
:
case
7
:
aggregation
=
get_aggregation
(
get_bw_index
(
mod_id
,
CC_id
),
eNB_UE_stats
->
DL_cqi
[
0
],
format1
);
break
;
case
3
:
aggregation
=
get_aggregation
(
get_bw_index
(
mod_id
,
CC_id
),
eNB_UE_stats
->
DL_cqi
[
0
],
format2A
);
break
;
default:
LOG_W
(
MAC
,
"Unsupported transmission mode %d
\n
"
,
mac_xface
->
get_transmission_mode
(
mod_id
,
CC_id
,
rnti
));
aggregation
=
2
;
}
if
((
ue_sched_ctl
->
pre_nb_available_rbs
[
CC_id
]
==
0
)
||
// no RBs allocated
CCE_allocation_infeasible
(
mod_id
,
CC_id
,
0
,
subframe
,
aggregation
,
rnti
))
{
LOG_D
(
MAC
,
"[eNB %d] Frame %d : no RB allocated for UE %d on CC_id %d: continue
\n
"
,
...
...
@@ -1237,8 +1263,6 @@ flexran_schedule_ue_spec_common(mid_t mod_id,
}
nb_available_rb
-=
nb_rb
;
aggregation
=
process_ue_cqi
(
mod_id
,
UE_id
);
PHY_vars_eNB_g
[
mod_id
][
CC_id
]
->
mu_mimo_mode
[
UE_id
].
pre_nb_available_rbs
=
nb_rb
;
PHY_vars_eNB_g
[
mod_id
][
CC_id
]
->
mu_mimo_mode
[
UE_id
].
dl_pow_off
=
ue_sched_ctl
->
dl_pow_off
[
CC_id
];
...
...
@@ -1435,7 +1459,6 @@ flexran_schedule_ue_spec_common(mid_t mod_id,
dci_tbs
=
TBS
;
mcs
=
mcs_tmp
;
aggregation
=
process_ue_cqi
(
mod_id
,
UE_id
);
dl_dci
->
has_aggr_level
=
1
;
dl_dci
->
aggr_level
=
aggregation
;
...
...
openair2/LAYER2/MAC/pre_processor.c
View file @
ae674104
...
...
@@ -1081,8 +1081,7 @@ void dlsch_scheduler_pre_processor_allocate (module_id_t Mod_id,
void
ulsch_scheduler_pre_processor
(
module_id_t
module_idP
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
,
uint8_t
aggregation
)
uint16_t
*
first_rb
)
{
int16_t
i
;
...
...
openair2/LAYER2/MAC/proto.h
View file @
ae674104
...
...
@@ -320,7 +320,7 @@ rnti_t UE_RNTI (module_id_t module_idP, int UE_id);
int
UE_PCCID
(
module_id_t
module_idP
,
int
UE_id
);
uint8_t
find_active_UEs
(
module_id_t
module_idP
);
boolean_t
is_UE_active
(
module_id_t
module_idP
,
int
UE_id
);
uint8_t
process_ue_cqi
(
module_id_t
module_idP
,
int
UE_id
);
uint8_t
get_aggregation
(
uint8_t
bw_index
,
uint8_t
cqi
,
uint8_t
dci_fmt
);
int8_t
find_active_UEs_with_traffic
(
module_id_t
module_idP
);
...
...
@@ -531,7 +531,7 @@ int UE_PCCID(module_id_t mod_idP,int ue_idP);
rnti_t
UE_RNTI
(
module_id_t
mod_idP
,
int
ue_idP
);
void
ulsch_scheduler_pre_processor
(
module_id_t
module_idP
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
,
uint8_t
aggregattion
);
void
ulsch_scheduler_pre_processor
(
module_id_t
module_idP
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
);
void
store_ulsch_buffer
(
module_id_t
module_idP
,
int
frameP
,
sub_frame_t
subframeP
);
void
sort_ue_ul
(
module_id_t
module_idP
,
int
frameP
,
sub_frame_t
subframeP
);
void
assign_max_mcs_min_rb
(
module_id_t
module_idP
,
int
frameP
,
sub_frame_t
subframeP
,
uint16_t
*
first_rb
);
...
...
@@ -696,6 +696,8 @@ uint32_t allocate_prbs_sub(int nb_rb, uint8_t *rballoc);
void
update_ul_dci
(
module_id_t
module_idP
,
uint8_t
CC_id
,
rnti_t
rnti
,
uint8_t
dai
);
int
get_bw_index
(
module_id_t
module_id
,
uint8_t
CC_id
);
int
get_min_rb_unit
(
module_id_t
module_idP
,
uint8_t
CC_id
);
/* \brief Generate header for DL-SCH. This function parses the desired control elements and sdus and generates the header as described
...
...
openair2/LAYER2/MAC/vars.h
View file @
ae674104
...
...
@@ -55,6 +55,36 @@ const uint32_t Extended_BSR_TABLE[BSR_TABLE_SIZE] = {0,10,13,16,19,23,29,35,43,5
1067031
,
1312097
,
1613447
,
1984009
,
2439678
,
3000000
,
6000000
};
//#define MAX_SIZE_OF_AGG3 576
//#define MAX_SIZE_OF_AGG2 288
//#define MAX_SIZE_OF_AGG1 144
//#define MAX_SIZE_OF_AGG0 72
/*
* If the CQI is low, then scheduler will use a higher aggregation level and lower aggregation level otherwise
* this is also dependent to transmission mode, where an offset could be defined
*/
// the follwoing three tables are calibrated for TXMODE 1 and 2
const
uint8_t
cqi2fmt0_agg
[
MAX_SUPPORTED_BW
][
CQI_VALUE_RANGE
]
=
{
{
3
,
3
,
3
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
// 1.4_DCI0_CRC_Size= 37 bits
//{3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0}, // 5_DCI0_CRC_SIZE = 41
{
3
,
3
,
3
,
3
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
},
// 5_DCI0_CRC_SIZE = 41
{
3
,
3
,
3
,
3
,
2
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
},
// 10_DCI0_CRC_SIZE = 43
{
3
,
3
,
3
,
3
,
2
,
2
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
}
// 20_DCI0_CRC_SIZE = 44
};
const
uint8_t
cqi2fmt1x_agg
[
MAX_SUPPORTED_BW
][
CQI_VALUE_RANGE
]
=
{
{
3
,
3
,
3
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
// 1.4_DCI0_CRC_Size < 38 bits
{
3
,
3
,
3
,
3
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
},
// 5_DCI0_CRC_SIZE < 43
{
3
,
3
,
3
,
3
,
2
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
},
// 10_DCI0_CRC_SIZE < 47
{
3
,
3
,
3
,
3
,
2
,
2
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
}
// 20_DCI0_CRC_SIZE < 55
};
const
uint8_t
cqi2fmt2x_agg
[
MAX_SUPPORTED_BW
][
CQI_VALUE_RANGE
]
=
{
{
3
,
3
,
3
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
},
// 1.4_DCI0_CRC_Size= 47 bits
{
3
,
3
,
3
,
3
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
},
// 5_DCI0_CRC_SIZE = 55
{
3
,
3
,
3
,
3
,
2
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
},
// 10_DCI0_CRC_SIZE = 59
{
3
,
3
,
3
,
3
,
3
,
2
,
2
,
2
,
2
,
2
,
1
,
1
,
1
,
1
,
0
,
0
}
// 20_DCI0_CRC_SIZE = 64
};
//uint32_t EBSR_Level[63]={0,10,13,16,19,23,29,35,43,53,65,80,98,120,147,181};
MAC_xface
*
mac_xface
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf
0 → 100644
View file @
ae674104
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
= (
{
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
=
25
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
90
;
rx_gain
=
120
;
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
= -
24
;
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
= -
96
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
104
;
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
= -
104
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t301
=
1000
;
ue_TimersAndConstants_t310
=
1000
;
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
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
=
"127.0.0.3"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
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
};
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/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf
0 → 100644
View file @
ae674104
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
= (
{
node_function
=
"NGFI_RCC_IF4p5"
;
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
=
100
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
1
;
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
= -
27
;
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
= -
96
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
104
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format2
=
"deltaF0"
;
pucch_deltaF_Format2a
=
"deltaF0"
;
pucch_deltaF_Format2b
=
"deltaF0"
;
rach_numberOfRA_Preambles
=
64
;
rach_preamblesGroupAConfig
=
"DISABLE"
;
/*
rach_sizeOfRA_PreamblesGroupA
= ;
rach_messageSizeGroupA
= ;
rach_messagePowerOffsetGroupB
= ;
*/
rach_powerRampingStep
=
4
;
rach_preambleInitialReceivedTargetPower
= -
108
;
rach_preambleTransMax
=
10
;
rach_raResponseWindowSize
=
10
;
rach_macContentionResolutionTimer
=
48
;
rach_maxHARQ_Msg3Tx
=
4
;
pcch_default_PagingCycle
=
128
;
pcch_nB
=
"oneT"
;
bcch_modificationPeriodCoeff
=
2
;
ue_TimersAndConstants_t300
=
1000
;
ue_TimersAndConstants_t301
=
1000
;
ue_TimersAndConstants_t310
=
1000
;
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
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
=
"127.0.0.3"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
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
};
rrh_gw_config
= (
{
local_if_name
=
"eth0"
;
remote_address
=
"10.10.10.60"
;
local_address
=
"10.10.10.215"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
rrh_gw_active
=
"yes"
;
tr_preference
=
"udp_if4p5"
;
rf_preference
=
"usrp_b200"
;
iq_txshift
=
4
;
tx_sample_advance
=
80
;
tx_scheduling_advance
=
9
;
}
);
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/rcc.band7.tm1.if4p5.25PRB.conf
→
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.
usrpb210.
conf
View file @
ae674104
File moved
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
→
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.
usrpb210.
conf
View file @
ae674104
File moved
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf
0 → 100644
View file @
ae674104
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
= (
{
node_function
=
"eNodeB_3GPP_BBU"
;
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
=
2660000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
100
;
Nid_cell_mbsfn
=
0
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
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
;
ue_TransmissionMode
=
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
=
"127.0.0.3"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
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.4/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
rrh_gw_config
= (
{
local_if_name
=
"eth2"
;
remote_address
=
"10.10.10.60"
;
local_address
=
"10.10.10.215"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
rrh_gw_active
=
"yes"
;
tr_preference
=
"udp"
;
rf_preference
=
"usrp_b200"
;
iq_txshift
=
4
;
tx_sample_advance
=
80
;
tx_scheduling_advance
=
9
;
}
);
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/rcc.band7.tm1.if5.25PRB.conf
→
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.
usrpb210.
conf
View file @
ae674104
File moved
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.conf
→
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.
usrpb210.
conf
View file @
ae674104
File moved
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf
0 → 100644
View file @
ae674104
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
= (
{
node_function
=
"NGFI_RRU_IF5"
;
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
=
2660000000
L
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
N_RB_DL
=
100
;
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.11"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
preference
=
"ipv4"
;
}
);
NETWORK_INTERFACES
:
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth3"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.12.215/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"eth3"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.12.215/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
rrh_gw_config
= (
{
local_if_name
=
"eth0"
;
remote_address
=
"90:e2:ba:c5:fc:04"
;
local_address
=
"00:13:95:1f:a0:af"
;
local_port
=
50000
;
#for raw option local port must be the same to remote
remote_port
=
50000
;
rrh_gw_active
=
"yes"
;
tr_preference
=
"raw_if5"
;
rf_preference
=
"usrp_b200"
;
iq_txshift
=
4
;
tx_sample_advance
=
80
;
tx_scheduling_advance
=
9
;
}
);
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/rru.band7.tm1.
50PRB.if5
.usrpb210.conf
→
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.
if5.50PRB
.usrpb210.conf
View file @
ae674104
File moved
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