Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
openairinterface5G
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Merge Requests
18
Merge Requests
18
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
oai
openairinterface5G
Commits
b72ca3ee
Commit
b72ca3ee
authored
Jan 11, 2015
by
knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
git-svn-id:
http://svn.eurecom.fr/openair4G/trunk@6348
818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent
613088f3
Changes
28
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
635 additions
and
523 deletions
+635
-523
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
+2
-2
openair1/PHY/MODULATION/slot_fep.c
openair1/PHY/MODULATION/slot_fep.c
+2
-2
openair1/PHY/MODULATION/slot_fep_mbsfn.c
openair1/PHY/MODULATION/slot_fep_mbsfn.c
+2
-2
openair1/PHY/defs.h
openair1/PHY/defs.h
+1
-0
openair1/SCHED/phy_procedures_lte_ue.c
openair1/SCHED/phy_procedures_lte_ue.c
+6
-3
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+11
-6
openair1/SIMULATION/LTE_PHY/mbmssim.c
openair1/SIMULATION/LTE_PHY/mbmssim.c
+9
-4
openair1/SIMULATION/LTE_PHY/pdcchsim.c
openair1/SIMULATION/LTE_PHY/pdcchsim.c
+11
-8
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+1
-1
openair2/LAYER2/MAC/main.c
openair2/LAYER2/MAC/main.c
+4
-4
openair2/LAYER2/MAC/proto.h
openair2/LAYER2/MAC/proto.h
+2
-2
openair2/PHY_INTERFACE/defs.h
openair2/PHY_INTERFACE/defs.h
+1
-1
openair2/RRC/LITE/MESSAGES/asn1_msg.c
openair2/RRC/LITE/MESSAGES/asn1_msg.c
+141
-115
openair2/RRC/LITE/MESSAGES/asn1_msg.h
openair2/RRC/LITE/MESSAGES/asn1_msg.h
+1
-1
openair2/RRC/LITE/proto.h
openair2/RRC/LITE/proto.h
+1
-1
openair2/RRC/LITE/rrc_common.c
openair2/RRC/LITE/rrc_common.c
+2
-7
openair2/UTIL/LOG/vcd_signal_dumper.c
openair2/UTIL/LOG/vcd_signal_dumper.c
+1
-0
openair2/UTIL/LOG/vcd_signal_dumper.h
openair2/UTIL/LOG/vcd_signal_dumper.h
+1
-0
targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc
targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc
+1
-1
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
+6
-8
targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml
targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml
+112
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf
+10
-0
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf
...PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf
+0
-143
targets/RT/USER/Makefile
targets/RT/USER/Makefile
+4
-2
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+279
-194
targets/RT/USER/ue.gtkw
targets/RT/USER/ue.gtkw
+16
-9
targets/SIMU/USER/oaisim_functions.c
targets/SIMU/USER/oaisim_functions.c
+1
-0
targets/build_helper.bash
targets/build_helper.bash
+7
-7
No files found.
openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c
View file @
b72ca3ee
...
...
@@ -616,7 +616,7 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
}
#ifndef PERFECT_CE
if
(
phy_vars_ue
->
perfect_ce
==
0
)
{
// Temporal Interpolation
// printf("ch_offset %d\n",ch_offset);
...
...
@@ -691,7 +691,7 @@ int lte_dl_channel_estimation(PHY_VARS_UE *phy_vars_ue,
}
}
#endif
}
}
void
(
*
idft
)(
int16_t
*
,
int16_t
*
,
int
);
...
...
openair1/PHY/MODULATION/slot_fep.c
View file @
b72ca3ee
...
...
@@ -153,7 +153,7 @@ int slot_fep(PHY_VARS_UE *phy_vars_ue,
}
#ifndef PERFECT_CE
if
(
phy_vars_ue
->
perfect_ce
==
0
)
{
if
((
l
==
0
)
||
(
l
==
(
4
-
frame_parms
->
Ncp
)))
{
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_tx_eNB
;
aa
++
)
{
...
...
@@ -193,7 +193,7 @@ int slot_fep(PHY_VARS_UE *phy_vars_ue,
}
}
#endif
}
#ifdef DEBUG_FEP
msg
(
"slot_fep: done
\n
"
);
#endif
...
...
openair1/PHY/MODULATION/slot_fep_mbsfn.c
View file @
b72ca3ee
...
...
@@ -173,7 +173,7 @@ int slot_fep_mbsfn(PHY_VARS_UE *phy_vars_ue,
// changed to invoke MBSFN channel estimation in symbols 2,6,10
if
((
l
==
2
)
||
(
l
==
6
)
||
(
l
==
10
))
{
for
(
aa
=
0
;
aa
<
frame_parms
->
nb_antennas_tx
;
aa
++
)
{
#ifndef PERFECT_CE
if
(
phy_vars_ue
->
perfect_ce
==
0
)
{
#ifdef DEBUG_FEP
msg
(
"Channel estimation eNB %d, aatx %d, subframe %d, symbol %d
\n
"
,
eNB_id
,
aa
,
subframe
,
l
);
#endif
...
...
@@ -201,7 +201,6 @@ int slot_fep_mbsfn(PHY_VARS_UE *phy_vars_ue,
l,
symbol); */
// }
#endif
// do frequency offset estimation here!
// use channel estimates from current symbol (=ch_t) and last symbol (ch_{t-1})
...
...
@@ -215,6 +214,7 @@ int slot_fep_mbsfn(PHY_VARS_UE *phy_vars_ue,
l,
&ue_common_vars->freq_offset); */
}
}
}
#ifdef DEBUG_FEP
msg
(
"slot_fep_mbsfn: done
\n
"
);
...
...
openair1/PHY/defs.h
View file @
b72ca3ee
...
...
@@ -434,6 +434,7 @@ typedef struct
uint32_t
X_u
[
64
][
839
];
uint32_t
high_speed_flag
;
uint32_t
perfect_ce
;
int16_t
ch_est_alpha
;
char
ulsch_no_allocation_counter
[
NUMBER_OF_CONNECTED_eNB_MAX
];
...
...
openair1/SCHED/phy_procedures_lte_ue.c
View file @
b72ca3ee
...
...
@@ -1905,10 +1905,12 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
eNB_id
,
subframe_rx
);
vcd_signal_dumper_dump_function_by_name
(
VCD_SIGNAL_DUMPER_FUNCTIONS_DCI_DECODING
,
VCD_FUNCTION_OUT
);
//LOG_D(PHY,"[UE %d][PUSCH] Frame %d subframe %d PHICH RX\n",phy_vars_ue->Mod_id,frame_rx,subframe_rx);
if
(
is_phich_subframe
(
&
phy_vars_ue
->
lte_frame_parms
,
subframe_rx
))
{
vcd_signal_dumper_dump_function_by_name
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PHICH
,
VCD_FUNCTION_IN
);
rx_phich
(
phy_vars_ue
,
subframe_rx
,
eNB_id
);
vcd_signal_dumper_dump_function_by_name
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PHICH
,
VCD_FUNCTION_OUT
);
}
}
#ifdef PHY_ABSTRACTION
...
...
@@ -2318,6 +2320,9 @@ int lte_ue_pdcch_procedures(uint8_t eNB_id,PHY_VARS_UE *phy_vars_ue,uint8_t abst
int
CC_id
=
phy_vars_ue
->
CC_id
;
vcd_signal_dumper_dump_function_by_name
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_RX
,
VCD_FUNCTION_IN
);
vcd_signal_dumper_dump_variable_by_name
(
VCD_SIGNAL_DUMPER_VARIABLES_SLOT_NUMBER_UE
,
(
slot_rx
+
1
)
%
20
);
vcd_signal_dumper_dump_variable_by_name
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_UE
,
frame_rx
);
start_meas
(
&
phy_vars_ue
->
phy_proc_rx
);
#ifdef DEBUG_PHY_PROC
LOG_D
(
PHY
,
"[%s %d] Frame %d subframe %d: Doing phy_procedures_UE_RX(%d)
\n
"
,
...
...
@@ -3426,8 +3431,6 @@ void phy_UE_lte_check_measurement_thresholds(instance_t instanceP, ral_threshold
prach_resources_local
.
ra_PreambleIndex
=
0
;
#endif
vcd_signal_dumper_dump_variable_by_name
(
VCD_SIGNAL_DUMPER_VARIABLES_SLOT_NUMBER_UE
,
(
slot_rx
+
1
)
%
20
);
vcd_signal_dumper_dump_variable_by_name
(
VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_UE
,
frame_rx
);
vcd_signal_dumper_dump_function_by_name
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_LTE
,
1
);
#ifdef EXMIMO
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
b72ca3ee
...
...
@@ -73,7 +73,6 @@ extern unsigned char offset_mumimo_llr_drange_fix;
//#define ABSTRACTION
//#define PERFECT_CE
/*
#define RBmask0 0x00fc00fc
...
...
@@ -107,7 +106,7 @@ void handler(int sig) {
exit
(
1
);
}
void
lte_param_init
(
unsigned
char
N_tx
,
unsigned
char
N_rx
,
unsigned
char
transmission_mode
,
uint8_t
extended_prefix_flag
,
uint8_t
fdd_flag
,
uint16_t
Nid_cell
,
uint8_t
tdd_config
,
uint8_t
N_RB_DL
,
uint8_t
osf
)
{
void
lte_param_init
(
unsigned
char
N_tx
,
unsigned
char
N_rx
,
unsigned
char
transmission_mode
,
uint8_t
extended_prefix_flag
,
uint8_t
fdd_flag
,
uint16_t
Nid_cell
,
uint8_t
tdd_config
,
uint8_t
N_RB_DL
,
uint8_t
osf
,
uint32_t
perfect_ce
)
{
LTE_DL_FRAME_PARMS
*
lte_frame_parms
;
int
i
;
...
...
@@ -186,6 +185,7 @@ void lte_param_init(unsigned char N_tx, unsigned char N_rx,unsigned char transmi
((
PHY_vars_UE
->
lte_frame_parms
).
pdsch_config_common
).
p_b
=
1
;
}
PHY_vars_UE
->
perfect_ce
=
perfect_ce
;
printf
(
"Done lte_param_init
\n
"
);
...
...
@@ -344,6 +344,7 @@ int main(int argc, char **argv) {
char
channel_model_input
[
10
]
=
"I"
;
int
TB0_active
=
1
;
uint32_t
perfect_ce
=
0
;
LTE_DL_UE_HARQ_t
*
dlsch0_ue_harq
;
LTE_DL_eNB_HARQ_t
*
dlsch0_eNB_harq
;
...
...
@@ -365,8 +366,9 @@ int main(int argc, char **argv) {
n_frames
=
1000
;
snr0
=
0
;
num_layers
=
1
;
perfect_ce
=
0
;
while
((
c
=
getopt
(
argc
,
argv
,
"ahdpZDe:m:n:o:s:f:t:c:g:r:F:x:y:z:AM:N:I:i:O:R:S:C:T:b:u:v:w:B:PLl:"
))
!=
-
1
)
{
while
((
c
=
getopt
(
argc
,
argv
,
"ahdpZDe:m:n:o:s:f:t:c:g:r:F:x:y:z:AM:N:I:i:O:R:S:C:T:b:u:v:w:B:PLl:
Y
"
))
!=
-
1
)
{
switch
(
c
)
{
case
'a'
:
...
...
@@ -564,6 +566,9 @@ int main(int argc, char **argv) {
case
'Z'
:
dump_table
=
1
;
break
;
case
'Y'
:
perfect_ce
=
1
;
break
;
case
'h'
:
default:
printf
(
"%s -h(elp) -a(wgn on) -d(ci decoding on) -p(extended prefix on) -m mcs1 -M mcs2 -n n_frames -s snr0 -x transmission mode (1,2,5,6) -y TXant -z RXant -I trch_file
\n
"
,
argv
[
0
]);
...
...
@@ -645,7 +650,7 @@ int main(int argc, char **argv) {
printf
(
"dual_stream_UE=%d
\n
"
,
dual_stream_UE
);
}
lte_param_init
(
n_tx
,
n_rx
,
transmission_mode
,
extended_prefix_flag
,
fdd_flag
,
Nid_cell
,
tdd_config
,
N_RB_DL
,
osf
);
lte_param_init
(
n_tx
,
n_rx
,
transmission_mode
,
extended_prefix_flag
,
fdd_flag
,
Nid_cell
,
tdd_config
,
N_RB_DL
,
osf
,
perfect_ce
);
eNB_id_i
=
PHY_vars_UE
->
n_connected_eNB
;
...
...
@@ -2718,7 +2723,7 @@ int main(int argc, char **argv) {
0
,
0
);
stop_meas
(
&
PHY_vars_UE
->
ofdm_demod_stats
);
#ifdef PERFECT_CE
if
(
PHY_vars_UE
->
perfect_ce
==
1
)
{
if
(
awgn_flag
==
0
)
{
// fill in perfect channel estimates
freq_channel
(
eNB2UE
[
round
],
PHY_vars_UE
->
lte_frame_parms
.
N_RB_DL
,
12
*
PHY_vars_UE
->
lte_frame_parms
.
N_RB_DL
+
1
);
...
...
@@ -2751,7 +2756,7 @@ int main(int argc, char **argv) {
}
}
}
#endif
}
if
((
Ns
==
((
2
*
subframe
)))
&&
(
l
==
0
))
{
...
...
openair1/SIMULATION/LTE_PHY/mbmssim.c
View file @
b72ca3ee
...
...
@@ -60,7 +60,7 @@
PHY_VARS_eNB
*
PHY_vars_eNB
;
PHY_VARS_UE
*
PHY_vars_UE
;
void
lte_param_init
(
unsigned
char
N_tx
,
unsigned
char
N_rx
,
unsigned
char
transmission_mode
,
uint8_t
extended_prefix_flag
,
lte_frame_type_t
frame_type
,
uint16_t
Nid_cell
,
uint8_t
tdd_config
,
uint8_t
N_RB_DL
,
uint8_t
osf
)
{
void
lte_param_init
(
unsigned
char
N_tx
,
unsigned
char
N_rx
,
unsigned
char
transmission_mode
,
uint8_t
extended_prefix_flag
,
lte_frame_type_t
frame_type
,
uint16_t
Nid_cell
,
uint8_t
tdd_config
,
uint8_t
N_RB_DL
,
uint8_t
osf
,
uint32_t
perfect_ce
)
{
LTE_DL_FRAME_PARMS
*
lte_frame_parms
;
...
...
@@ -121,7 +121,8 @@ void lte_param_init(unsigned char N_tx, unsigned char N_rx,unsigned char transmi
phy_init_lte_ue
(
PHY_vars_UE
,
1
,
0
);
phy_init_lte_eNB
(
PHY_vars_eNB
,
0
,
0
,
0
);
PHY_vars_UE
->
perfect_ce
=
perfect_ce
;
printf
(
"Done lte_param_init
\n
"
);
...
...
@@ -174,6 +175,7 @@ int main(int argc, char **argv) {
uint8_t
N_RB_DL
=
25
,
osf
=
1
;
double
BW
=
5
.
0
;
uint32_t
perfect_ce
=
0
;
lte_frame_type_t
frame_type
=
FDD
;
...
...
@@ -201,7 +203,7 @@ int main(int argc, char **argv) {
rxdata[0] = (int *)malloc16(FRAME_LENGTH_BYTES);
rxdata[1] = (int *)malloc16(FRAME_LENGTH_BYTES);
*/
while
((
c
=
getopt
(
argc
,
argv
,
"ahA:Cp:n:s:S:t:x:y:z:N:F:R:O:dm:i:"
))
!=
-
1
)
while
((
c
=
getopt
(
argc
,
argv
,
"ahA:Cp:n:s:S:t:x:y:z:N:F:R:O:dm:i:
Y
"
))
!=
-
1
)
{
switch
(
c
)
{
...
...
@@ -266,6 +268,9 @@ int main(int argc, char **argv) {
case
'O'
:
osf
=
atoi
(
optarg
);
break
;
case
'Y'
:
perfect_ce
=
1
;
break
;
default:
case
'h'
:
printf
(
"%s -h(elp) -p(subframe) -N cell_id -g channel_model -n n_frames -t Delayspread -s snr0 -S snr1 -i snr increment -z RXant
\n
"
,
argv
[
0
]);
...
...
@@ -309,7 +314,7 @@ int main(int argc, char **argv) {
if
(
transmission_mode
==
2
)
n_tx
=
2
;
lte_param_init
(
n_tx
,
n_rx
,
transmission_mode
,
extended_prefix_flag
,
frame_type
,
Nid_cell
,
tdd_config
,
N_RB_DL
,
osf
);
lte_param_init
(
n_tx
,
n_rx
,
transmission_mode
,
extended_prefix_flag
,
frame_type
,
Nid_cell
,
tdd_config
,
N_RB_DL
,
osf
,
perfect_ce
);
...
...
openair1/SIMULATION/LTE_PHY/pdcchsim.c
View file @
b72ca3ee
...
...
@@ -59,7 +59,7 @@ PHY_VARS_UE *PHY_vars_UE;
#define CCCH_RB_ALLOC computeRIV(PHY_vars_eNB->lte_frame_parms.N_RB_UL,0,2)
#define DLSCH_RB_ALLOC 0x1fbf // igore DC component,RB13
void
lte_param_init
(
unsigned
char
N_tx
,
unsigned
char
N_rx
,
unsigned
char
transmission_mode
,
unsigned
char
extended_prefix_flag
,
uint16_t
Nid_cell
,
uint8_t
tdd_config
,
uint8_t
N_RB_DL
,
lte_frame_type_t
frame_type
,
uint8_t
osf
)
{
void
lte_param_init
(
unsigned
char
N_tx
,
unsigned
char
N_rx
,
unsigned
char
transmission_mode
,
unsigned
char
extended_prefix_flag
,
uint16_t
Nid_cell
,
uint8_t
tdd_config
,
uint8_t
N_RB_DL
,
lte_frame_type_t
frame_type
,
uint8_t
osf
,
uint32_t
perfect_ce
)
{
unsigned
int
i
;
LTE_DL_FRAME_PARMS
*
lte_frame_parms
;
...
...
@@ -135,6 +135,7 @@ void lte_param_init(unsigned char N_tx, unsigned char N_rx,unsigned char transmi
PHY_vars_UE
->
PHY_measurements
.
n_adj_cells
=
2
;
PHY_vars_UE
->
PHY_measurements
.
adj_cell_id
[
0
]
=
Nid_cell
+
1
;
PHY_vars_UE
->
PHY_measurements
.
adj_cell_id
[
1
]
=
Nid_cell
+
2
;
PHY_vars_UE
->
perfect_ce
=
perfect_ce
;
for
(
i
=
0
;
i
<
3
;
i
++
)
lte_gold
(
lte_frame_parms
,
PHY_vars_UE
->
lte_gold_table
[
i
],
Nid_cell
+
i
);
...
...
@@ -548,10 +549,9 @@ int main(int argc, char **argv) {
int
re_offset
;
uint32_t
*
txptr
;
int
aarx
;
#ifdef PERFECT_CE
int
k
;
#endif
double
BW
=
5
.
0
;
uint32_t
perfect_ce
=
0
;
number_of_cards
=
1
;
openair_daq_vars
.
rx_rf_mode
=
1
;
...
...
@@ -565,7 +565,7 @@ int main(int argc, char **argv) {
rxdata[0] = (int *)malloc16(FRAME_LENGTH_BYTES);
rxdata[1] = (int *)malloc16(FRAME_LENGTH_BYTES);
*/
while
((
c
=
getopt
(
argc
,
argv
,
"hapFg:R:c:n:s:x:y:z:L:M:N:I:f:i:S:P:"
))
!=
-
1
)
{
while
((
c
=
getopt
(
argc
,
argv
,
"hapFg:R:c:n:s:x:y:z:L:M:N:I:f:i:S:P:
Y
"
))
!=
-
1
)
{
switch
(
c
)
{
case
'a'
:
...
...
@@ -699,6 +699,9 @@ int main(int argc, char **argv) {
case
'P'
:
num_phich_interf
=
atoi
(
optarg
);
break
;
case
'Y'
:
perfect_ce
=
1
;
break
;
case
'h'
:
printf
(
"%s -h(elp) -a(wgn on) -c tdd_config -n n_frames -r RiceanFactor -s snr0 -t Delayspread -x transmission mode (1,2,6) -y TXant -z RXant -L AggregLevelUEspec -M AggregLevelCommonDCI -N DCIFormat
\n\n
"
,
argv
[
0
]);
printf
(
"-h This message
\n
"
);
...
...
@@ -757,7 +760,8 @@ int main(int argc, char **argv) {
Nid_cell
,
tdd_config
,
N_RB_DL
,
frame_type
,
osf
);
osf
,
perfect_ce
);
#ifdef XFORMS
fl_initialize
(
&
argc
,
argv
,
NULL
,
0
,
0
);
...
...
@@ -1131,7 +1135,7 @@ int main(int argc, char **argv) {
0
,
0
);
#ifdef PERFECT_CE
if
(
PHY_vars_UE
->
perfect_ce
==
1
)
{
if
(
awgn_flag
==
0
)
{
// fill in perfect channel estimates
freq_channel
(
eNB2UE
,
PHY_vars_UE
->
lte_frame_parms
.
N_RB_DL
,
12
*
PHY_vars_UE
->
lte_frame_parms
.
N_RB_DL
+
1
);
...
...
@@ -1164,8 +1168,7 @@ int main(int argc, char **argv) {
}
}
}
#endif
}
if
(
l
==
((
PHY_vars_eNB
->
lte_frame_parms
.
Ncp
==
0
)
?
4
:
3
))
{
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
b72ca3ee
...
...
@@ -567,7 +567,7 @@ void schedule_ulsch_rnti(module_id_t module_idP,
uint16_t
TBS
,
i
;
int32_t
buffer_occupancy
=
0
;
uint32_t
cqi_req
,
cshift
,
ndi
,
mcs
,
rballoc
,
tpc
;
int32_t
normalized_rx_power
,
target_rx_power
=-
75
;
int32_t
normalized_rx_power
,
target_rx_power
=-
90
;
static
int32_t
tpc_accumulated
=
0
;
int
n
,
CC_id
;
...
...
openair2/LAYER2/MAC/main.c
View file @
b72ca3ee
...
...
@@ -112,7 +112,7 @@ void mac_UE_out_of_sync_ind(module_id_t module_idP, frame_t frameP, uint16_t eNB
}
int
mac_top_init
(
int
eMBMS_active
,
uint8_t
cba_group_active
,
uint8_t
HO_active
){
int
mac_top_init
(
int
eMBMS_active
,
char
*
uecap_xer
,
uint8_t
cba_group_active
,
uint8_t
HO_active
){
module_id_t
Mod_id
,
i
,
j
;
RA_TEMPLATE
*
RA_template
;
...
...
@@ -185,7 +185,7 @@ int mac_top_init(int eMBMS_active, uint8_t cba_group_active, uint8_t HO_active){
if
(
Is_rrc_registered
==
1
){
LOG_I
(
MAC
,
"[MAIN] calling RRC
\n
"
);
#ifndef CELLULAR //nothing to be done yet for cellular
openair_rrc_top_init
(
eMBMS_active
,
cba_group_active
,
HO_active
);
openair_rrc_top_init
(
eMBMS_active
,
uecap_xer
,
cba_group_active
,
HO_active
);
#endif
}
else
{
...
...
@@ -401,7 +401,7 @@ void mac_top_cleanup(void){
free
(
Mac_rlc_xface
);
}
int
l2_init
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
int
eMBMS_active
,
uint8_t
cba_group_active
,
uint8_t
HO_active
)
{
int
l2_init
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
int
eMBMS_active
,
char
*
uecap_xer
,
uint8_t
cba_group_active
,
uint8_t
HO_active
)
{
...
...
@@ -510,7 +510,7 @@ int l2_init(LTE_DL_FRAME_PARMS *frame_parms,int eMBMS_active, uint8_t cba_group_
mac_xface
->
get_PHR
=
get_PHR
;
LOG_D
(
MAC
,
"[MAIN] ALL INIT OK
\n
"
);
mac_xface
->
macphy_init
(
eMBMS_active
,
cba_group_active
,
HO_active
);
mac_xface
->
macphy_init
(
eMBMS_active
,
uecap_xer
,
cba_group_active
,
HO_active
);
//Mac_rlc_xface->Is_cluster_head[0] = 1;
//Mac_rlc_xface->Is_cluster_head[1] = 0;
...
...
openair2/LAYER2/MAC/proto.h
View file @
b72ca3ee
...
...
@@ -156,7 +156,7 @@ void chbch_phy_sync_success(module_id_t module_idP,frame_t frameP,uint8_t eNB_in
void
mrbch_phy_sync_failure
(
module_id_t
module_idP
,
frame_t
frameP
,
uint8_t
free_eNB_index
);
int
mac_top_init
(
int
eMBMS_active
,
uint8_t
cba_group_active
,
uint8_t
HO_active
);
int
mac_top_init
(
int
eMBMS_active
,
char
*
uecap_xer
,
uint8_t
cba_group_active
,
uint8_t
HO_active
);
char
layer2_init_UE
(
module_id_t
module_idP
);
...
...
@@ -469,7 +469,7 @@ uint8_t *parse_ulsch_header(uint8_t *mac_header,
uint16_t
tx_lenght
);
int
l2_init
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
int
eMBMS_active
,
uint8_t
cba_group_active
,
uint8_t
HO_active
);
int
l2_init
(
LTE_DL_FRAME_PARMS
*
frame_parms
,
int
eMBMS_active
,
char
*
uecap_xer
,
uint8_t
cba_group_active
,
uint8_t
HO_active
);
int
mac_init
(
void
);
int
add_new_ue
(
module_id_t
Mod_id
,
int
CC_id
,
rnti_t
rnti
,
int
harq_pid
);
int
mac_remove_ue
(
module_id_t
Mod_id
,
int
UE_id
,
int
frameP
);
...
...
openair2/PHY_INTERFACE/defs.h
View file @
b72ca3ee
...
...
@@ -63,7 +63,7 @@ do {
typedef
struct
{
/// Pointer function that initializes L2
int
(
*
macphy_init
)(
int
eMBMS_active
,
uint8_t
CBA_active
,
uint8_t
HO_active
);
int
(
*
macphy_init
)(
int
eMBMS_active
,
char
*
uecap_xer
,
uint8_t
CBA_active
,
uint8_t
HO_active
);
/// Pointer function that stops the low-level scheduler due an exit condition
void
(
*
macphy_exit
)(
const
char
*
);
...
...
openair2/RRC/LITE/MESSAGES/asn1_msg.c
View file @
b72ca3ee
This diff is collapsed.
Click to expand it.
openair2/RRC/LITE/MESSAGES/asn1_msg.h
View file @
b72ca3ee
...
...
@@ -232,7 +232,7 @@ uint8_t do_DLInformationTransfer(uint8_t Mod_id, uint8_t **buffer, uint8_t trans
uint8_t
do_ULInformationTransfer
(
uint8_t
**
buffer
,
uint32_t
pdu_length
,
uint8_t
*
pdu_buffer
);
OAI_UECapability_t
*
fill_ue_capability
(
void
);
OAI_UECapability_t
*
fill_ue_capability
(
char
*
UE_EUTRA_Capability_xer
);
uint8_t
do_UECapabilityEnquiry
(
uint8_t
Mod_id
,
uint8_t
*
buffer
,
...
...
openair2/RRC/LITE/proto.h
View file @
b72ca3ee
...
...
@@ -39,7 +39,7 @@
//main.c
int
rrc_init_global_param
(
void
);
int
L3_xface_init
(
void
);
void
openair_rrc_top_init
(
int
eMBMS_active
,
uint8_t
cba_group_active
,
uint8_t
HO_enabled
);
void
openair_rrc_top_init
(
int
eMBMS_active
,
char
*
uecap_xer
,
uint8_t
cba_group_active
,
uint8_t
HO_enabled
);
char
openair_rrc_lite_eNB_init
(
module_id_t
module_idP
);
char
openair_rrc_lite_ue_init
(
module_id_t
module_idP
,
uint8_t
CH_IDX
);
void
rrc_config_buffer
(
SRB_INFO
*
srb_info
,
uint8_t
Lchan_type
,
uint8_t
Role
);
...
...
openair2/RRC/LITE/rrc_common.c
View file @
b72ca3ee
...
...
@@ -206,7 +206,7 @@ void rrc_config_buffer(SRB_INFO *Srb_info, uint8_t Lchan_type, uint8_t Role) {
}
/*------------------------------------------------------------------------------*/
void
openair_rrc_top_init
(
int
eMBMS_active
,
uint8_t
cba_group_active
,
uint8_t
HO_active
){
void
openair_rrc_top_init
(
int
eMBMS_active
,
char
*
uecap_xer
,
uint8_t
cba_group_active
,
uint8_t
HO_active
){
/*-----------------------------------------------------------------------------*/
module_id_t
module_id
;
...
...
@@ -221,16 +221,11 @@ void openair_rrc_top_init(int eMBMS_active, uint8_t cba_group_active,uint8_t HO_
LOG_D
(
RRC
,
"ALLOCATE %d Bytes for UE_RRC_INST @ %p
\n
"
,
(
unsigned
int
)(
NB_UE_INST
*
sizeof
(
UE_RRC_INST
)),
UE_rrc_inst
);
// fill UE capability
UECap
=
fill_ue_capability
();
UECap
=
fill_ue_capability
(
uecap_xer
);
for
(
module_id
=
0
;
module_id
<
NB_UE_INST
;
module_id
++
)
{
UE_rrc_inst
[
module_id
].
UECapability
=
UECap
->
sdu
;
UE_rrc_inst
[
module_id
].
UECapability_size
=
UECap
->
sdu_size
;
}
/*
do_UECapabilityEnquiry(0,
dummy_buffer,
0,
0);*/
#ifdef Rel10
LOG_I
(
RRC
,
"[UE] eMBMS active state is %d
\n
"
,
eMBMS_active
);
for
(
module_id
=
0
;
module_id
<
NB_UE_INST
;
module_id
++
)
{
...
...
openair2/UTIL/LOG/vcd_signal_dumper.c
View file @
b72ca3ee
...
...
@@ -152,6 +152,7 @@ const char* eurecomFunctionsNames[] = {
"dlsch_decoding7"
,
"rx_pdcch"
,
"dci_decoding"
,
"rx_phich"
,
"phy_ue_config_sib2"
,
"macxface_phy_config_sib1_eNB"
,
"macxface_phy_config_sib2_eNB"
,
...
...
openair2/UTIL/LOG/vcd_signal_dumper.h
View file @
b72ca3ee
...
...
@@ -127,6 +127,7 @@ typedef enum {
VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_DECODING7
,
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PDCCH
,
VCD_SIGNAL_DUMPER_FUNCTIONS_DCI_DECODING
,
VCD_SIGNAL_DUMPER_FUNCTIONS_RX_PHICH
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_CONFIG_SIB2
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_CONFIG_SIB1_ENB
,
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_CONFIG_SIB2_ENB
,
...
...
targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc
View file @
b72ca3ee
ETHERNET_OBJ
+=
$(OPENAIR_TARGETS)
/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.o
ETHERNET_FILE_OBJ
+=
$(OPENAIR_TARGETS)
/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
ETHERNET_CFLAGS
+=
-I
$(OPENAIR_TARGETS)
/ARCH/COMMON
-I
$(OPENAIR_TARGETS)
/ARCH/ETHERNET/USERSPACE/LIB/
-I
$(OPENAIR_TARGETS)
/COMMON
ETHERNET_CFLAGS
+=
-
O2
-
I
$(OPENAIR_TARGETS)
/ARCH/COMMON
-I
$(OPENAIR_TARGETS)
/ARCH/ETHERNET/USERSPACE/LIB/
-I
$(OPENAIR_TARGETS)
/COMMON
targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
View file @
b72ca3ee
...
...
@@ -106,15 +106,15 @@ int ethernet_write_data(int Mod_id, openair0_timestamp timestamp, const void **b
((
int16_t
*
)
buff2
)[
0
]
=
1
+
(
antenna_id
<<
1
);
((
int16_t
*
)
buff2
)[
1
]
=
nsamps
;
*
((
openair0_timestamp
*
)(
buff2
+
(
sizeof
(
int16_t
)
*
2
)))
=
timestamp
;
printf
(
"Timestamp TX sent : %d
\n
"
,
timestamp
);
//
printf("Timestamp TX sent : %d\n",timestamp);
// printf("buffer head : %d %d %d %d \n",((int16_t *)buff2)[0],((int16_t *)buff2)[1],((int16_t *)buff2)[2],((int16_t *)buff2)[3]);
while
(
n_written
<
nsamps
)
{
while
(
n_written
<
(
nsamps
<<
2
)
)
{
/* Send packet */
if
((
n_written
+=
sendto
(
sockfd
[
Mod_id
],
buff2
,
(
nsamps
<<
2
)
+
sizeof
(
openair0_timestamp
)
+
(
2
*
sizeof
(
int16_t
)),
0
,
MSG_DONTWAIT
,
(
struct
sockaddr
*
)
&
dest_addr
[
Mod_id
],
dest_addr_len
[
Mod_id
]))
<
0
)
{
printf
(
"Send failed for Mod_id %d
\n
"
,
Mod_id
);
...
...
@@ -137,16 +137,14 @@ int ethernet_read_data(int Mod_id,openair0_timestamp *timestamp,void **buff, int
int
ret
;
openair0_timestamp
temp
=
*
(
openair0_timestamp
*
)(
buff2
);
int16_t
mesg
[
2
];
char
str
[
INET_ADDRSTRLEN
];
mesg
[
0
]
=
0
+
(
antenna_id
<<
1
);
mesg
[
1
]
=
nsamps
;
inet_ntop
(
AF_INET
,
&
(
dest_addr
[
Mod_id
].
sin_addr
),
str
,
INET_ADDRSTRLEN
);
// send command RX for nsamps samples
printf
(
"requesting %d samples from (%s:%d)
\n
"
,
nsamps
,
str
,
ntohs
(
dest_addr
[
Mod_id
].
sin_port
));
sendto
(
sockfd
[
Mod_id
],
mesg
,
4
,
0
,(
struct
sockaddr
*
)
&
dest_addr
[
Mod_id
],
dest_addr_len
[
Mod_id
]);
sendto
(
sockfd
[
Mod_id
],
mesg
,
4
,
MSG_DONTWAIT
,(
struct
sockaddr
*
)
&
dest_addr
[
Mod_id
],
dest_addr_len
[
Mod_id
]);
bytes_received
=
0
;
block_cnt
=
0
;
...
...
@@ -178,7 +176,7 @@ int ethernet_read_data(int Mod_id,openair0_timestamp *timestamp,void **buff, int
//printf("buffer head : %x %x %x %x \n",((int32_t *)buff2)[0],((int32_t *)buff2)[1],((int32_t *)buff2)[2],((int32_t *)buff2)[3]);
*
timestamp
=
*
(
openair0_timestamp
*
)(
buff2
);
printf
(
"Received %d samples, timestamp = %d
\n
"
,
bytes_received
>>
2
,
*
(
int32_t
*
)
timestamp
);
//
printf("Received %d samples, timestamp = %d\n",bytes_received>>2,*(int32_t*)timestamp);
*
(
openair0_timestamp
*
)(
buff2
)
=
temp
;
return
nsamps
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml
0 → 100644
View file @
b72ca3ee
<UE-EUTRA-Capability>
<accessStratumRelease><rel8/></accessStratumRelease>
<ue-Category>
4
</ue-Category>
<pdcp-Parameters>
<supportedROHC-Profiles>
<profile0x0001><false/></profile0x0001>
<profile0x0002><false/></profile0x0002>
<profile0x0003><false/></profile0x0003>
<profile0x0004><false/></profile0x0004>
<profile0x0006><false/></profile0x0006>
<profile0x0101><false/></profile0x0101>
<profile0x0102><false/></profile0x0102>
<profile0x0103><false/></profile0x0103>
<profile0x0104><false/></profile0x0104>
</supportedROHC-Profiles>
<maxNumberROHC-ContextSessions><cs16/></maxNumberROHC-ContextSessions>
</pdcp-Parameters>
<phyLayerParameters>
<ue-TxAntennaSelectionSupported><false/></ue-TxAntennaSelectionSupported>
<ue-SpecificRefSigsSupported><false/></ue-SpecificRefSigsSupported>
</phyLayerParameters>
<rf-Parameters>
<supportedBandListEUTRA>
<SupportedBandEUTRA>
<bandEUTRA>
33
</bandEUTRA>
<halfDuplex><false/></halfDuplex>
</SupportedBandEUTRA>
<SupportedBandEUTRA>
<bandEUTRA>
38
</bandEUTRA>
<halfDuplex><false/></halfDuplex>
</SupportedBandEUTRA>
<SupportedBandEUTRA>
<bandEUTRA>
5
</bandEUTRA>
<halfDuplex><false/></halfDuplex>
</SupportedBandEUTRA>
<SupportedBandEUTRA>
<bandEUTRA>
7
</bandEUTRA>
<halfDuplex><false/></halfDuplex>
</SupportedBandEUTRA>
</supportedBandListEUTRA>
</rf-Parameters>
<measParameters>
<bandListEUTRA>
<BandInfoEUTRA>
<interFreqBandList>
<InterFreqBandInfo>
<interFreqNeedForGaps><false/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
</interFreqBandList>
</BandInfoEUTRA>
<BandInfoEUTRA>
<interFreqBandList>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><false/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
</interFreqBandList>
</BandInfoEUTRA>
<BandInfoEUTRA>
<interFreqBandList>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><false/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
</interFreqBandList>
</BandInfoEUTRA>
<BandInfoEUTRA>
<interFreqBandList>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><true/></interFreqNeedForGaps>
</InterFreqBandInfo>
<InterFreqBandInfo>
<interFreqNeedForGaps><false/></interFreqNeedForGaps>
</InterFreqBandInfo>
</interFreqBandList>
</BandInfoEUTRA>
</bandListEUTRA>
</measParameters>
<interRAT-Parameters>
</interRAT-Parameters>
</UE-EUTRA-Capability>
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf
View file @
b72ca3ee
...
...
@@ -113,11 +113,21 @@ eNBs =
NETWORK_INTERFACES
:
{
<<<<<<< .
mine
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth1"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.13.10/24"
;
=======
ENB_INTERFACE_NAME_FOR_S1_MME
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"192.168.13.10/24"
;
>>>>>>> .
r6319
<<<<<<< .
mine
ENB_INTERFACE_NAME_FOR_S1U
=
"eth1"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.13.10/24"
;
=======
ENB_INTERFACE_NAME_FOR_S1U
=
"eth0"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"192.168.13.10/24"
;
>>>>>>> .
r6319
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};