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
bfbfb805
Commit
bfbfb805
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
2c0c182e
cfce7ca8
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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
...
...
@@ -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 @
bfbfb805
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 @
bfbfb805
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 @
bfbfb805
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 @
bfbfb805
File moved
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf
0 → 100644
View file @
bfbfb805
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 @
bfbfb805
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 @
bfbfb805
File moved
targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf
0 → 100644
View file @
bfbfb805
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 @
bfbfb805
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