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
wangjie
OpenXG-RAN
Commits
8a082066
Commit
8a082066
authored
Nov 24, 2016
by
Xiwen JIANG
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into feature-21-TM7
parents
41fd001b
c6753606
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
801 additions
and
667 deletions
+801
-667
cmake_targets/autotests/README.txt
cmake_targets/autotests/README.txt
+3
-3
cmake_targets/autotests/run_exec_lte-softmodem_tests.py
cmake_targets/autotests/run_exec_lte-softmodem_tests.py
+2
-0
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+509
-357
common/utils/T/tracer/enb.c
common/utils/T/tracer/enb.c
+3
-3
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+277
-300
openair1/SIMULATION/LTE_PHY/dlsim.c
openair1/SIMULATION/LTE_PHY/dlsim.c
+1
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf
...PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf
+5
-2
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+1
-1
No files found.
cmake_targets/autotests/README.txt
View file @
8a082066
...
...
@@ -218,7 +218,7 @@ Obj.# Case# Test# Description
01 70 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 75 00 lte-softmodem + RR
H
tests with B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 75 00 lte-softmodem + RR
U (NGFI IF4P5, RAW)
tests with B210 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 75 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 75 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 75 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
...
...
@@ -226,7 +226,7 @@ Obj.# Case# Test# Description
01 75 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 75 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 80 00 lte-softmodem + RR
H
tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 80 00 lte-softmodem + RR
U (NGFI)
tests with BladeRF RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 80 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 80 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 80 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
...
...
@@ -234,7 +234,7 @@ Obj.# Case# Test# Description
01 80 04 Band 7 FDD 10MHz DL Throughput for 300 sec for 1TX/1RX
01 80 05 Band 7 FDD 20MHz DL Throughput for 300 sec for 1TX/1RX
01 85 00 lte-softmodem + RR
H
tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 85 00 lte-softmodem + RR
U (NGFI)
tests with USRP X310 RF as eNB and ALU EPC w/ Bandrich COTS UE for TX/1RX
01 85 00 Band 7 FDD 5MHz UL Throughput for 300 sec for 1TX/1RX
01 85 01 Band 7 FDD 10MHz UL Throughput for 300 sec for 1TX/1RX
01 85 02 Band 7 FDD 20MHz UL Throughput for 300 sec for 1TX/1RX
...
...
cmake_targets/autotests/run_exec_lte-softmodem_tests.py
View file @
8a082066
...
...
@@ -575,6 +575,7 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
tags
=
testcase
.
findtext
(
'tags'
,
default
=
''
)
RRHMachine
=
testcase
.
findtext
(
'RRH'
,
default
=
''
)
RRH_config_file
=
testcase
.
findtext
(
'RRH_config_file'
,
default
=
''
)
RRH_compile_prog
=
testcase
.
findtext
(
'RRH_compile_prog'
,
default
=
''
)
RRH_compile_prog_args
=
testcase
.
findtext
(
'RRH_compile_prog_args'
,
default
=
''
)
RRH_pre_exec
=
testcase
.
findtext
(
'RRH_pre_exec'
,
default
=
''
)
...
...
@@ -710,6 +711,7 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
task_RRH_compile
=
' ( uname -a ; date
\n
'
task_RRH_compile
=
task_RRH_compile
+
'cd '
+
logdirOAI5GRepo
+
' ; source oaienv ; source cmake_targets/tools/build_helper
\n
'
task_RRH_compile
=
task_RRH_compile
+
'env |grep OPENAIR
\n
'
task_RRH_compile
=
task_RRH_compile
+
update_config_file
(
oai_RRH
,
RRH_config_file
,
logdirOAI5GRepo
,
'$OPENAIR_DIR/cmake_targets/autotests/tools/search_repl.py'
)
+
'
\n
'
if
RRH_compile_prog
!=
""
:
task_RRH_compile
=
task_RRH_compile
+
' ( '
+
RRH_compile_prog
+
' '
+
RRH_compile_prog_args
+
' ) > '
+
logfile_compile_RRH
+
' 2>&1
\n
'
task_RRH_compile
=
task_RRH_compile
+
' date ) > '
+
logfile_task_RRH_compile_out
+
' 2>&1 '
...
...
cmake_targets/autotests/test_case_list.xml
View file @
8a082066
This source diff could not be displayed because it is too large. You can
view the blob
instead.
common/utils/T/tracer/enb.c
View file @
8a082066
...
...
@@ -525,9 +525,9 @@ int main(int n, char **v)
on_off
(
database
,
"ENB_PHY_PUCCH_1_ENERGY"
,
is_on
,
1
);
on_off
(
database
,
"ENB_PHY_PUCCH_1AB_IQ"
,
is_on
,
1
);
on_off
(
database
,
"LEGACY_
RRC
_INFO"
,
is_on
,
1
);
on_off
(
database
,
"LEGACY_
RRC
_ERROR"
,
is_on
,
1
);
on_off
(
database
,
"LEGACY_
RRC
_WARNING"
,
is_on
,
1
);
on_off
(
database
,
"LEGACY_
GROUP
_INFO"
,
is_on
,
1
);
on_off
(
database
,
"LEGACY_
GROUP
_ERROR"
,
is_on
,
1
);
on_off
(
database
,
"LEGACY_
GROUP
_WARNING"
,
is_on
,
1
);
view_add_log
(
eg
.
phyview
,
"ENB_PHY_DLSCH_UE_DCI"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_PHY_DLSCH_UE_ACK"
,
h
,
database
,
is_on
);
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
8a082066
...
...
@@ -2027,11 +2027,11 @@ void prach_procedures(PHY_VARS_eNB *eNB) {
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX
,
0
);
}
void
pucch_procedures
(
PHY_VARS_eNB
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
int
UE_id
,
int
harq_pid
)
{
void
pucch_procedures
(
PHY_VARS_eNB
*
eNB
,
eNB_rxtx_proc_t
*
proc
,
int
UE_id
,
int
harq_pid
)
{
LTE_DL_FRAME_PARMS
*
fp
=&
eNB
->
frame_parms
;
uint8_t
SR_payload
=
0
,
*
pucch_payload
=
NULL
,
pucch_payload0
[
2
]
=
{
0
,
0
},
pucch_payload1
[
2
]
=
{
0
,
0
};
int16_t
n1_pucch0
,
n1_pucch1
,
n1_pucch2
,
n1_pucch3
;
int16_t
n1_pucch0
=
-
1
,
n1_pucch1
=
-
1
,
n1_pucch2
=
-
1
,
n1_pucch3
=
-
1
;
uint8_t
do_SR
=
0
;
uint8_t
pucch_sel
=
0
;
int32_t
metric0
=
0
,
metric1
=
0
,
metric0_SR
=
0
;
...
...
@@ -2100,7 +2100,7 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
eNB
->
UE_stats
[
UE_id
].
sr_total
++
;
if
(
eNB
->
abstraction_flag
==
0
)
if
(
eNB
->
abstraction_flag
==
0
)
{
metric0_SR
=
rx_pucch
(
eNB
,
pucch_format1
,
UE_id
,
...
...
@@ -2111,7 +2111,14 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
frame
,
subframe
,
PUCCH1_THRES
);
LOG_D
(
PHY
,
"[eNB %d][SR %x] Frame %d subframe %d Checking SR is %d (SR n1pucch is %d)
\n
"
,
eNB
->
Mod_id
,
eNB
->
ulsch
[
UE_id
]
->
rnti
,
frame
,
subframe
,
SR_payload
,
eNB
->
scheduling_request_config
[
UE_id
].
sr_PUCCH_ResourceIndex
);
}
#ifdef PHY_ABSTRACTION
else
{
metric0_SR
=
rx_pucch_emul
(
eNB
,
...
...
@@ -2123,43 +2130,17 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
LOG_D
(
PHY
,
"[eNB %d][SR %x] Frame %d subframe %d Checking SR (UE SR %d/%d)
\n
"
,
eNB
->
Mod_id
,
eNB
->
ulsch
[
UE_id
]
->
rnti
,
frame
,
subframe
,
SR_payload
,
eNB
->
scheduling_request_config
[
UE_id
].
sr_PUCCH_ResourceIndex
);
}
#endif
if
(
SR_payload
==
1
)
{
LOG_D
(
PHY
,
"[eNB %d][SR %x] Frame %d subframe %d Got SR for PUSCH, transmitting to MAC
\n
"
,
eNB
->
Mod_id
,
eNB
->
ulsch
[
UE_id
]
->
rnti
,
frame
,
subframe
);
eNB
->
UE_stats
[
UE_id
].
sr_received
++
;
if
(
eNB
->
first_sr
[
UE_id
]
==
1
)
{
// this is the first request for uplink after Connection Setup, so clear HARQ process 0 use for Msg4
eNB
->
first_sr
[
UE_id
]
=
0
;
eNB
->
dlsch
[
UE_id
][
0
]
->
harq_processes
[
0
]
->
round
=
0
;
eNB
->
dlsch
[
UE_id
][
0
]
->
harq_processes
[
0
]
->
status
=
SCH_IDLE
;
LOG_D
(
PHY
,
"[eNB %d][SR %x] Frame %d subframe %d First SR
\n
"
,
eNB
->
Mod_id
,
eNB
->
ulsch
[
UE_id
]
->
rnti
,
frame
,
subframe
);
}
if
(
eNB
->
mac_enabled
==
1
)
{
mac_xface
->
SR_indication
(
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
eNB
->
dlsch
[
UE_id
][
0
]
->
rnti
,
subframe
);
}
}
}
// do_SR==1
if
((
n1_pucch0
==-
1
)
&&
(
n1_pucch1
==-
1
))
{
// just check for SR
}
else
if
(
eNB
->
frame_parms
.
frame_type
==
FDD
)
{
// FDD
}
else
if
(
fp
->
frame_type
==
FDD
)
{
// FDD
// if SR was detected, use the n1_pucch from SR, else use n1_pucch0
// n1_pucch0 = (SR_payload==1) ? eNB->scheduling_request_config[UE_id].sr_PUCCH_ResourceIndex:n1_pucch0;
LOG_D
(
PHY
,
"Demodulating PUCCH for ACK/NAK: n1_pucch0 %d (%d), SR_payload %d
\n
"
,
n1_pucch0
,
eNB
->
scheduling_request_config
[
UE_id
].
sr_PUCCH_ResourceIndex
,
SR_payload
);
if
(
eNB
->
abstraction_flag
==
0
)
{
metric0
=
rx_pucch
(
eNB
,
pucch_format1a
,
UE_id
,
...
...
@@ -2170,53 +2151,26 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
frame
,
subframe
,
PUCCH1a_THRES
);
if
(
metric0
<
metric0_SR
)
metric0
=
rx_pucch
(
eNB
,
pucch_format1a
,
UE_id
,
eNB
->
scheduling_request_config
[
UE_id
].
sr_PUCCH_ResourceIndex
,
0
,
//n2_pucch
0
,
// shortened format
pucch_payload0
,
frame
,
subframe
,
PUCCH1a_THRES
);
}
if
(
eNB
->
mac_enabled
==
1
)
{
mac_xface
->
SR_indication
(
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
eNB
->
dlsch
[
UE_id
][
0
]
->
rnti
,
subframe
);
}
#ifdef PHY_ABSTRACTION
else
{
metric0
=
rx_pucch_emul
(
eNB
,
proc
,
UE_id
,
pucch_format1a
,
0
,
pucch_payload0
);
}
}
// do_SR==1
#endif
if
((
n1_pucch0
==-
1
)
&&
(
n1_pucch1
==-
1
))
{
// just check for SR
}
else
if
(
fp
->
frame_type
==
FDD
)
{
// FDD
// if SR was detected, use the n1_pucch from SR, else use n1_pucch0
// n1_pucch0 = (SR_payload==1) ? eNB->scheduling_request_config[UE_id].sr_PUCCH_ResourceIndex:n1_pucch0;
/* cancel SR detection if reception on n1_pucch0 is better than on SR PUCCH resource index */
if
(
do_SR
&&
metric0
>
metric0_SR
)
SR_payload
=
0
;
LOG_D
(
PHY
,
"Demodulating PUCCH for ACK/NAK: n1_pucch0 %d (%d), SR_payload %d
\n
"
,
n1_pucch0
,
eNB
->
scheduling_request_config
[
UE_id
].
sr_PUCCH_ResourceIndex
,
SR_payload
);
if
(
do_SR
&&
metric0
<=
metric0_SR
)
{
/* when transmitting ACK/NACK on SR PUCCH resource index, SR payload is always 1 */
SR_payload
=
1
;
if
(
eNB
->
abstraction_flag
==
0
)
{
metric0
=
rx_pucch
(
eNB
,
pucch_format1a
,
UE_id
,
(
uint16_t
)
n1_pucch0
,
0
,
//n2_pucch
0
,
// shortened format
pucch_payload0
,
frame
,
subframe
,
PUCCH1a_THRES
);
if
(
metric0
<
metric0_SR
)
metric0
=
rx_pucch
(
eNB
,
pucch_format1a
,
UE_id
,
...
...
@@ -2228,14 +2182,15 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
subframe
,
PUCCH1a_THRES
);
}
else
{
#ifdef PHY_ABSTRACTION
else
{
metric0
=
rx_pucch_emul
(
eNB
,
proc
,
UE_id
,
pucch_format1a
,
0
,
pucch_payload0
);
}
#endif
}
...
...
@@ -2252,7 +2207,6 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
pucch_payload0
,
2
,
SR_payload
);
}
// FDD
else
{
//TDD
...
...
@@ -2278,7 +2232,7 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
#endif
if
(
eNB
->
abstraction_flag
==
0
)
metric0_SR
=
rx_pucch
(
eNB
,
metric0
=
rx_pucch
(
eNB
,
format
,
UE_id
,
eNB
->
scheduling_request_config
[
UE_id
].
sr_PUCCH_ResourceIndex
,
...
...
@@ -2386,6 +2340,29 @@ void pucch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,int UE_id,int harq
pucch_payload
,
pucch_sel
,
SR_payload
);
}
// TDD
}
if
(
SR_payload
==
1
)
{
LOG_D
(
PHY
,
"[eNB %d][SR %x] Frame %d subframe %d Got SR for PUSCH, transmitting to MAC
\n
"
,
eNB
->
Mod_id
,
eNB
->
ulsch
[
UE_id
]
->
rnti
,
frame
,
subframe
);
eNB
->
UE_stats
[
UE_id
].
sr_received
++
;
if
(
eNB
->
first_sr
[
UE_id
]
==
1
)
{
// this is the first request for uplink after Connection Setup, so clear HARQ process 0 use for Msg4
eNB
->
first_sr
[
UE_id
]
=
0
;
eNB
->
dlsch
[
UE_id
][
0
]
->
harq_processes
[
0
]
->
round
=
0
;
eNB
->
dlsch
[
UE_id
][
0
]
->
harq_processes
[
0
]
->
status
=
SCH_IDLE
;
LOG_D
(
PHY
,
"[eNB %d][SR %x] Frame %d subframe %d First SR
\n
"
,
eNB
->
Mod_id
,
eNB
->
ulsch
[
UE_id
]
->
rnti
,
frame
,
subframe
);
}
if
(
eNB
->
mac_enabled
==
1
)
{
mac_xface
->
SR_indication
(
eNB
->
Mod_id
,
eNB
->
CC_id
,
frame
,
eNB
->
dlsch
[
UE_id
][
0
]
->
rnti
,
subframe
);
}
}
}
}
...
...
openair1/SIMULATION/LTE_PHY/dlsim.c
View file @
8a082066
...
...
@@ -2477,7 +2477,7 @@ int main(int argc, char **argv)
phy_procedures_UE_RX
(
UE
,
proc
,
0
,
0
,
normal_txrx
,
no_relay
,
NULL
);
if
(
UE
->
dlsch
[
0
][
0
]
->
active
==
0
)
{
printf
(
"DCI not received
\n
"
);
//
printf("DCI not received\n");
/*
write_output("pdcchF0_ext.m","pdcchF_ext", UE->pdcch_vars[eNB_id]->rxdataF_ext[0],2*3*UE->frame_parms.ofdm_symbol_size,1,1);
write_output("pdcch00_ch0_ext.m","pdcch00_ch0_ext",UE->pdcch_vars[eNB_id]->dl_ch_estimates_ext[0],12*UE->frame_parms.N_RB_DL*3,1,1);
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf
View file @
8a082066
...
...
@@ -38,8 +38,9 @@ eNBs =
Nid_cell_mbsfn
=
0
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
10
;//
25
;
rx_gain
=
120
;
nb_antenna_ports
=
1
;
tx_gain
=
10
; //
25
;
rx_gain
=
10
; //
20
;
prach_root
=
0
;
prach_config_index
=
0
;
prach_high_speed
=
"DISABLE"
;
...
...
@@ -100,6 +101,8 @@ eNBs =
ue_TimersAndConstants_t311
=
10000
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
1
;
}
);
...
...
targets/RT/USER/lte-enb.c
View file @
8a082066
...
...
@@ -1787,7 +1787,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
}
}
if
(
setup_eNB_buffers
(
PHY_vars_eNB_g
[
inst
],
&
openair0_cfg
[
CC_id
])
!=
0
)
{
if
(
setup_eNB_buffers
(
PHY_vars_eNB_g
[
inst
],
&
openair0_cfg
[
0
])
!=
0
)
{
printf
(
"Exiting, cannot initialize eNodeB Buffers
\n
"
);
exit
(
-
1
);
}
...
...
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