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
Michael Black
OpenXG-RAN
Commits
0c74ab15
Commit
0c74ab15
authored
Jun 18, 2016
by
Rohit Gupta
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-34-test_framework'
parents
2be77066
7f4ec782
Changes
15
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
658 additions
and
264 deletions
+658
-264
cmake_targets/autotests/test_case_list.xml
cmake_targets/autotests/test_case_list.xml
+34
-34
cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
+28
-7
cmake_targets/autotests/tools/configure_usrpb210.py
cmake_targets/autotests/tools/configure_usrpb210.py
+108
-0
cmake_targets/tools/build_helper
cmake_targets/tools/build_helper
+26
-15
common/utils/T/T_defs.h
common/utils/T/T_defs.h
+2
-2
common/utils/T/T_messages.txt
common/utils/T/T_messages.txt
+393
-141
common/utils/T/tracee/tracee.c
common/utils/T/tracee/tracee.c
+1
-1
common/utils/T/tracer/enb.c
common/utils/T/tracer/enb.c
+43
-42
common/utils/T/tracer/textlog.c
common/utils/T/tracer/textlog.c
+1
-1
openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
+1
-1
openair1/PHY/LTE_TRANSPORT/phich.c
openair1/PHY/LTE_TRANSPORT/phich.c
+1
-1
openair1/PHY/LTE_TRANSPORT/pucch.c
openair1/PHY/LTE_TRANSPORT/pucch.c
+2
-2
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
+1
-1
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+9
-9
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+8
-7
No files found.
cmake_targets/autotests/test_case_list.xml
View file @
0c74ab15
This diff is collapsed.
Click to expand it.
cmake_targets/autotests/tools/configure_cots_bandrich_ue.py
View file @
0c74ab15
...
...
@@ -33,6 +33,7 @@
import
time
import
serial
import
os
from
socket
import
AF_INET
from
pyroute2
import
IPRoute
import
sys
import
re
...
...
@@ -62,7 +63,7 @@ def find_open_port():
while
True
:
if
os
.
path
.
exists
(
serial_port
)
==
True
:
return
serial_port
for
port
in
range
(
2
,
100
):
for
port
in
range
(
0
,
100
):
serial_port_tmp
=
'/dev/ttyUSB'
+
str
(
port
)
if
os
.
path
.
exists
(
serial_port_tmp
)
==
True
:
print
'New Serial Port : '
+
serial_port_tmp
...
...
@@ -97,11 +98,12 @@ signal.signal(signal.SIGINT, signal_handler)
#ser.isOpen()
class
pppThread
(
threading
.
Thread
):
def
__init__
(
self
,
threadID
,
name
,
counter
):
def
__init__
(
self
,
threadID
,
name
,
counter
,
port
):
threading
.
Thread
.
__init__
(
self
)
self
.
threadID
=
threadID
self
.
name
=
name
self
.
counter
=
counter
self
.
port
=
port
def
run
(
self
):
print
"Starting "
+
self
.
name
#Here we keep running pppd thread in indefinite loop as this script terminates sometimes
...
...
@@ -111,6 +113,10 @@ class pppThread (threading.Thread):
print
"Starting wvdial now..."
print
'exit_flag = '
+
str
(
exit_flag
)
send_command
(
'AT+CGATT=1'
,
'OK'
,
300
)
#Now we do search and replace on wvdial config file
cmd
=
"sed -i
\"
s%Modem = .*%Modem = "
+
self
.
port
+
"%g
\"
"
+
bandrich_ppd_config
os
.
system
(
cmd
)
os
.
system
(
'wvdial -C '
+
bandrich_ppd_config
+
''
)
if
exit_flag
==
1
:
print
"Exit flag set to true. Exiting pppThread now"
...
...
@@ -146,6 +152,7 @@ def send_command (cmd, response, timeout):
def
start_ue
()
:
#print 'Enter your commands below.\r\nInsert "exit" to leave the application.'
global
serial_port
timeout
=
60
#timeout in seconds
send_command
(
'AT'
,
'OK'
,
timeout
)
send_command
(
'AT+CFUN=1'
,
'OK'
,
timeout
)
...
...
@@ -153,23 +160,33 @@ def start_ue () :
send_command
(
'AT+CGATT=1'
,
'OK'
,
300
)
#os.system('wvdial -C ' + bandrich_ppd_config + ' &' )
thread_ppp
=
pppThread
(
1
,
"ppp_thread"
,
1
)
thread_ppp
=
pppThread
(
1
,
"ppp_thread"
,
1
,
port
=
serial_port
)
thread_ppp
.
start
()
iface
=
'ppp0'
#
iface='ppp0'
while
1
:
time
.
sleep
(
2
)
iface
=
''
#Now we check if ppp0 interface is up and running
try
:
if
exit_flag
==
1
:
break
cmd
=
"ifconfig -a | sed 's/[
\t
].*//;/^$/d' | grep ppp"
status
,
out
=
commands
.
getstatusoutput
(
cmd
)
iface
=
out
ip
=
IPRoute
()
idx
=
ip
.
link_lookup
(
ifname
=
iface
)[
0
]
os
.
system
(
'route add '
+
gw
+
' ppp0'
)
print
"iface = "
+
iface
print
" Setting route now..."
#os.system("status=1; while [ \"$status\" -ne \"0\" ]; do route add -host " + gw + ' ' + iface + " ; status=$? ;sleep 1; echo \"status = $status\" ; sleep 2; done ")
os
.
system
(
'route add -host '
+
gw
+
' '
+
iface
+
' 2> /dev/null'
)
#ip.route('add', dst=gw, oif=iface)
os
.
system
(
'sleep 5'
)
os
.
system
(
'ping '
+
gw
)
break
#print "Starting ping now..."
os
.
system
(
'ping -c 1 '
+
gw
)
#break
except
Exception
,
e
:
error
=
' Interface '
+
iface
+
'does not exist...'
error
=
error
+
' In function: '
+
sys
.
_getframe
().
f_code
.
co_name
+
': *** Caught exception: '
+
str
(
e
.
__class__
)
+
" : "
+
str
(
e
)
...
...
@@ -206,6 +223,7 @@ def reset_ue():
os
.
system
(
cmd
+
" ; sleep 15"
)
cmd
=
"sudo sh -c
\"
echo 1 > "
+
usb_dir
+
"/authorized
\"
"
os
.
system
(
cmd
+
" ; sleep 30"
)
find_open_port
()
stop_ue
()
i
=
1
...
...
@@ -213,14 +231,17 @@ gw='192.172.0.1'
while
i
<
len
(
sys
.
argv
):
arg
=
sys
.
argv
[
i
]
if
arg
==
'--start-ue'
:
print
"Turning on UE..."
find_open_port
()
print
'Using Serial port : '
+
serial_port
start_ue
()
elif
arg
==
'--stop-ue'
:
print
"Turning off UE..."
find_open_port
()
print
'Using Serial port : '
+
serial_port
stop_ue
()
elif
arg
==
'--reset-ue'
:
print
"Resetting UE..."
find_open_port
()
reset_ue
()
elif
arg
==
'-gw'
:
...
...
cmake_targets/autotests/tools/configure_usrpb210.py
0 → 100755
View file @
0c74ab15
#!/usr/bin/python
#******************************************************************************
# OpenAirInterface
# Copyright(c) 1999 - 2014 Eurecom
# OpenAirInterface is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# OpenAirInterface is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with OpenAirInterface.The full GNU General Public License is
# included in this distribution in the file called "COPYING". If not,
# see <http://www.gnu.org/licenses/>.
# Contact Information
# OpenAirInterface Admin: openair_admin@eurecom.fr
# OpenAirInterface Tech : openair_tech@eurecom.fr
# OpenAirInterface Dev : openair4g-devel@lists.eurecom.fr
# Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
# *******************************************************************************/
# \author Navid Nikaein, Rohit Gupta
import
time
import
serial
import
os
from
pyroute2
import
IPRoute
import
sys
import
re
import
threading
import
signal
import
traceback
import
os
import
commands
# configure the serial connections (the parameters differs on the device you are connecting to)
#First we find an open port to work with
serial_port
=
''
openair_dir
=
os
.
environ
.
get
(
'OPENAIR_DIR'
)
if
openair_dir
==
None
:
print
"Error getting OPENAIR_DIR environment variable"
sys
.
exit
(
1
)
sys
.
path
.
append
(
os
.
path
.
expandvars
(
'$OPENAIR_DIR/cmake_targets/autotests/tools/'
))
from
lib_autotest
import
*
#Stop the USB BUS of USRPB210
def
stop_usrpb210
():
stringIdBandrich
=
'National Instruments Corp.'
status
,
out
=
commands
.
getstatusoutput
(
'lsusb | grep -i
\'
'
+
stringIdBandrich
+
'
\'
'
)
if
(
out
==
''
)
:
print
"USRP B210 not found. Exiting now..."
sys
.
exit
()
p
=
re
.
compile
(
'Bus\s*(\w+)\s*Device\s*(\w+):\s*ID\s*(\w+):(\w+)'
)
res
=
p
.
findall
(
out
)
BusId
=
res
[
0
][
0
]
DeviceId
=
res
[
0
][
1
]
VendorId
=
res
[
0
][
2
]
ProductId
=
res
[
0
][
3
]
usb_dir
=
find_usb_path
(
VendorId
,
ProductId
)
print
"USRP B210 found in..."
+
usb_dir
cmd
=
"sudo sh -c
\"
echo 0 > "
+
usb_dir
+
"/authorized
\"
"
os
.
system
(
cmd
)
#Start the USB bus of USRP B210
def
start_usrpb210
():
stringIdBandrich
=
'National Instruments Corp.'
status
,
out
=
commands
.
getstatusoutput
(
'lsusb | grep -i
\'
'
+
stringIdBandrich
+
'
\'
'
)
if
(
out
==
''
)
:
print
"USRP B210 not found. Exiting now..."
sys
.
exit
()
p
=
re
.
compile
(
'Bus\s*(\w+)\s*Device\s*(\w+):\s*ID\s*(\w+):(\w+)'
)
res
=
p
.
findall
(
out
)
BusId
=
res
[
0
][
0
]
DeviceId
=
res
[
0
][
1
]
VendorId
=
res
[
0
][
2
]
ProductId
=
res
[
0
][
3
]
usb_dir
=
find_usb_path
(
VendorId
,
ProductId
)
print
"USRP B210 found in..."
+
usb_dir
cmd
=
"sudo sh -c
\"
echo 1 > "
+
usb_dir
+
"/authorized
\"
"
os
.
system
(
cmd
)
i
=
1
while
i
<
len
(
sys
.
argv
):
arg
=
sys
.
argv
[
i
]
if
arg
==
'--start-usrpb210'
:
start_usrpb210
()
elif
arg
==
'--stop-usrpb210'
:
stop_usrpb210
()
elif
arg
==
'-h'
:
print
"--stop-usrpb210: Stop the USRP B210. It cannot be found in uhd_find_devices"
print
"--start-usrpb210: Start the USRP B210. It can now be found in uhd_find_devices"
else
:
print
" Script called with wrong arguments, arg = "
+
arg
sys
.
exit
()
i
=
i
+
1
cmake_targets/tools/build_helper
View file @
0c74ab15
...
...
@@ -226,7 +226,25 @@ check_install_additional_tools (){
valgrind \
vlan \
ctags \
ntpdate
ntpdate \
iperf3 \
android-tools-adb
$SUDO pip install paramiko
$SUDO pip install pyroute2
$SUDO rm -fr /opt/ssh
$SUDO git clone https://gist.github.com/2190472.git /opt/ssh
log_netiface=$OPENAIR_DIR/cmake_targets/log/netiface_install_log.txt
echo_info "Installing Netinterfaces package. The logfile for installation is in $log_netiface"
(
$SUDO rm -fr /tmp/netifaces-0.10.4.tar.gz /tmp/netifaces
wget -P /tmp https://pypi.python.org/packages/18/fa/dd13d4910aea339c0bb87d2b3838d8fd923c11869b1f6e741dbd0ff3bc00/netifaces-0.10.4.tar.gz
tar -xzvf /tmp/netifaces-0.10.4.tar.gz -C /tmp
cd /tmp/netifaces-0.10.4
$SUDO python setup.py install
cd -
) >& $log_netiface
}
check_install_oai_software() {
...
...
@@ -293,8 +311,7 @@ check_install_oai_software() {
python-numpy \
sshpass \
libxslt1-dev \
android-tools-adb \
iperf3
android-tools-adb
$SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
...
...
@@ -303,11 +320,7 @@ check_install_oai_software() {
install_nettle_from_source
install_gnutls_from_source
$SUDO pip install paramiko
$SUDO pip install pyroute2
install_asn1c_from_source
$SUDO rm -fr /opt/ssh
$SUDO git clone https://gist.github.com/2190472.git /opt/ssh
}
install_asn1c_from_source(){
...
...
@@ -315,14 +328,12 @@ install_asn1c_from_source(){
echo_info "\nInstalling ASN1. The log file for ASN1 installation is here: $asn1_install_log "
(
$SUDO rm -rf /tmp/asn1c-r1516
mkdir -p /tmp/asn1c-r1516
cd /tmp/asn1c-r1516
rm -rf /tmp/asn1c-r1516/*
svn co https://github.com/vlm/asn1c/trunk /tmp/asn1c-r1516 -r 1516 > /tmp/log_compile_asn1c
patch -p0 < $OPENAIR_DIR/openair3/S1AP/MESSAGES/ASN1/asn1cpatch.p0 >> /tmp/log_compile_asn1c
patch -p0 < $OPENAIR_DIR/openair3/S1AP/MESSAGES/ASN1/asn1cpatch_2.p0 >> /tmp/log_compile_asn1c
patch -p0 < $OPENAIR_DIR/openair2/RRC/LITE/MESSAGES/asn1c/asn1cpatch.p0 >> /tmp/log_compile_asn1c
patch -p0 < $OPENAIR_DIR/openair3/S1AP/MESSAGES/ASN1/asn1cpatch_3.p0 >> /tmp/log_compile_asn1c
svn co https://github.com/vlm/asn1c/trunk /tmp/asn1c-r1516 -r 1516
cd /tmp/asn1c-r1516
patch -p0 < $OPENAIR_DIR/openair3/S1AP/MESSAGES/ASN1/asn1cpatch.p0
patch -p0 < $OPENAIR_DIR/openair3/S1AP/MESSAGES/ASN1/asn1cpatch_2.p0
patch -p0 < $OPENAIR_DIR/openair2/RRC/LITE/MESSAGES/asn1c/asn1cpatch.p0
patch -p0 < $OPENAIR_DIR/openair3/S1AP/MESSAGES/ASN1/asn1cpatch_3.p0
./configure
make -j`nproc`
$SUDO make install
...
...
common/utils/T/T_defs.h
View file @
0c74ab15
...
...
@@ -29,10 +29,10 @@ typedef struct {
#define T_SHM_FILENAME "/T_shm_segment"
/* number of VCD functions (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_FUNCTIONS 1
39
#define VCD_NUM_FUNCTIONS 1
46
/* number of VCD variables (to be kept up to date! see in T_messages.txt) */
#define VCD_NUM_VARIABLES
45
#define VCD_NUM_VARIABLES
99
/* first VCD function (to be kept up to date! see in T_messages.txt) */
#define VCD_FIRST_FUNCTION ((uintptr_t)T_VCD_FUNCTION_RT_SLEEP)
...
...
common/utils/T/T_messages.txt
View file @
0c74ab15
This diff is collapsed.
Click to expand it.
common/utils/T/tracee/tracee.c
View file @
0c74ab15
...
...
@@ -9,7 +9,7 @@ int main(void)
T_connect_to_tracer
(
"127.0.0.1"
,
2020
);
while
(
1
)
{
getchar
();
T
(
T_PUCCH_1AB_IQ
,
T_INT
(
0
),
T_INT
(
0
),
T_INT
(
frame
),
T_INT
(
0
),
T_INT
(
0
),
T_INT
(
0
));
T
(
T_
ENB_PHY_
PUCCH_1AB_IQ
,
T_INT
(
0
),
T_INT
(
0
),
T_INT
(
frame
),
T_INT
(
0
),
T_INT
(
0
),
T_INT
(
0
));
frame
++
;
}
return
0
;
...
...
common/utils/T/tracer/enb.c
View file @
0c74ab15
...
...
@@ -129,7 +129,7 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
widget_add_child
(
g
,
line
,
input_signal_plot
,
-
1
);
xy_plot_set_range
(
g
,
input_signal_plot
,
0
,
7680
*
10
,
20
,
70
);
input_signal_log
=
new_framelog
(
h
,
database
,
"ENB_INPUT_SIGNAL"
,
"subframe"
,
"rxdata"
);
"ENB_
PHY_
INPUT_SIGNAL"
,
"subframe"
,
"rxdata"
);
/* a skip value of 10 means to process 1 frame over 10, that is
* more or less 10 frames per second
*/
...
...
@@ -151,40 +151,40 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
new_color
(
g
,
i
==
0
||
i
==
4
?
"#aaf"
:
"#eee"
));
timeview
=
new_view_time
(
3600
,
10
,
g
,
timeline_plot
);
/* DL tick logging */
timelog
=
new_timelog
(
h
,
database
,
"ENB_DL_TICK"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_
PHY_
DL_TICK"
);
subview
=
new_subview_time
(
timeview
,
0
,
new_color
(
g
,
"#77c"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
/* DL DCI logging */
timelog
=
new_timelog
(
h
,
database
,
"ENB_DLSCH_UE_DCI"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_
PHY_
DLSCH_UE_DCI"
);
subview
=
new_subview_time
(
timeview
,
1
,
new_color
(
g
,
"#228"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
/* DL ACK */
timelog
=
new_timelog
(
h
,
database
,
"ENB_DLSCH_UE_ACK"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_
PHY_
DLSCH_UE_ACK"
);
subview
=
new_subview_time
(
timeview
,
2
,
new_color
(
g
,
"#282"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
/* DL NACK */
timelog
=
new_timelog
(
h
,
database
,
"ENB_DLSCH_UE_NACK"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_
PHY_
DLSCH_UE_NACK"
);
subview
=
new_subview_time
(
timeview
,
3
,
new_color
(
g
,
"#f22"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
/* UL tick logging */
timelog
=
new_timelog
(
h
,
database
,
"ENB_UL_TICK"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_
PHY_
UL_TICK"
);
subview
=
new_subview_time
(
timeview
,
4
,
new_color
(
g
,
"#77c"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
/* UL DCI logging */
timelog
=
new_timelog
(
h
,
database
,
"ENB_ULSCH_UE_DCI"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_
PHY_
ULSCH_UE_DCI"
);
subview
=
new_subview_time
(
timeview
,
5
,
new_color
(
g
,
"#228"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
/* UL retransmission without DCI logging */
timelog
=
new_timelog
(
h
,
database
,
"ENB
_ULSCH_UE_NO_DCI_RETRANSMISSION"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_PHY
_ULSCH_UE_NO_DCI_RETRANSMISSION"
);
subview
=
new_subview_time
(
timeview
,
5
,
new_color
(
g
,
"#f22"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
/* UL ACK */
timelog
=
new_timelog
(
h
,
database
,
"ENB_ULSCH_UE_ACK"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_
PHY_
ULSCH_UE_ACK"
);
subview
=
new_subview_time
(
timeview
,
6
,
new_color
(
g
,
"#282"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
/* UL NACK */
timelog
=
new_timelog
(
h
,
database
,
"ENB_ULSCH_UE_NACK"
);
timelog
=
new_timelog
(
h
,
database
,
"ENB_
PHY_
ULSCH_UE_NACK"
);
subview
=
new_subview_time
(
timeview
,
7
,
new_color
(
g
,
"#f22"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
...
...
@@ -212,72 +212,73 @@ static void enb_main_gui(enb_gui *e, gui *g, event_handler *h, void *database)
logger_add_view
(
timelog
,
subview
);
/* DL harq pids */
for
(
i
=
0
;
i
<
8
;
i
++
)
{
timelog
=
new_ticklog
(
h
,
database
,
"ENB_DLSCH_UE_DCI"
,
timelog
=
new_ticklog
(
h
,
database
,
"ENB_
PHY_
DLSCH_UE_DCI"
,
"frame"
,
"subframe"
);
subview
=
new_subview_ticktime
(
timeview
,
i
+
1
,
new_color
(
g
,
"#55f"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
logger_set_filter
(
timelog
,
ticktime_filter
(
database
,
"ENB_DLSCH_UE_DCI"
,
i
));
ticktime_filter
(
database
,
"ENB_
PHY_
DLSCH_UE_DCI"
,
i
));
}
/* DL ACK */
for
(
i
=
0
;
i
<
8
;
i
++
)
{
timelog
=
new_ticklog
(
h
,
database
,
"ENB_DLSCH_UE_ACK"
,
timelog
=
new_ticklog
(
h
,
database
,
"ENB_
PHY_
DLSCH_UE_ACK"
,
"frame"
,
"subframe"
);
subview
=
new_subview_ticktime
(
timeview
,
i
+
1
,
new_color
(
g
,
"#282"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
logger_set_filter
(
timelog
,
ticktime_filter
(
database
,
"ENB_DLSCH_UE_ACK"
,
i
));
ticktime_filter
(
database
,
"ENB_
PHY_
DLSCH_UE_ACK"
,
i
));
}
/* DL NACK */
for
(
i
=
0
;
i
<
8
;
i
++
)
{
timelog
=
new_ticklog
(
h
,
database
,
"ENB_DLSCH_UE_NACK"
,
timelog
=
new_ticklog
(
h
,
database
,
"ENB_
PHY_
DLSCH_UE_NACK"
,
"frame"
,
"subframe"
);
subview
=
new_subview_ticktime
(
timeview
,
i
+
1
,
new_color
(
g
,
"#f22"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
logger_set_filter
(
timelog
,
ticktime_filter
(
database
,
"ENB_DLSCH_UE_NACK"
,
i
));
ticktime_filter
(
database
,
"ENB_
PHY_
DLSCH_UE_NACK"
,
i
));
}
/* UL harq pids */
for
(
i
=
0
;
i
<
8
;
i
++
)
{
/* first transmission */
timelog
=
new_ticklog
(
h
,
database
,
"ENB_ULSCH_UE_DCI"
,
timelog
=
new_ticklog
(
h
,
database
,
"ENB_
PHY_
ULSCH_UE_DCI"
,
"frame"
,
"subframe"
);
subview
=
new_subview_ticktime
(
timeview
,
i
+
9
+
1
,
new_color
(
g
,
"#55f"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
logger_set_filter
(
timelog
,
ticktime_filter
(
database
,
"ENB_ULSCH_UE_DCI"
,
i
));
ticktime_filter
(
database
,
"ENB_
PHY_
ULSCH_UE_DCI"
,
i
));
/* retransmission */
timelog
=
new_ticklog
(
h
,
database
,
"ENB_ULSCH_UE_NO_DCI_RETRANSMISSION"
,
"frame"
,
"subframe"
);
timelog
=
new_ticklog
(
h
,
database
,
"
ENB_PHY_ULSCH_UE_NO_DCI_RETRANSMISSION"
,
"
frame"
,
"subframe"
);
subview
=
new_subview_ticktime
(
timeview
,
i
+
9
+
1
,
new_color
(
g
,
"#99f"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
logger_set_filter
(
timelog
,
ticktime_filter
(
database
,
"ENB_ULSCH_UE_NO_DCI_RETRANSMISSION"
,
i
));
ticktime_filter
(
database
,
"ENB_PHY_ULSCH_UE_NO_DCI_RETRANSMISSION"
,
i
));
}
/* UL ACK */
for
(
i
=
0
;
i
<
8
;
i
++
)
{
timelog
=
new_ticklog
(
h
,
database
,
"ENB_ULSCH_UE_ACK"
,
timelog
=
new_ticklog
(
h
,
database
,
"ENB_
PHY_
ULSCH_UE_ACK"
,
"frame"
,
"subframe"
);
subview
=
new_subview_ticktime
(
timeview
,
i
+
9
+
1
,
new_color
(
g
,
"#282"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
logger_set_filter
(
timelog
,
ticktime_filter
(
database
,
"ENB_ULSCH_UE_ACK"
,
i
));
ticktime_filter
(
database
,
"ENB_
PHY_
ULSCH_UE_ACK"
,
i
));
}
/* UL NACK */
for
(
i
=
0
;
i
<
8
;
i
++
)
{
timelog
=
new_ticklog
(
h
,
database
,
"ENB_ULSCH_UE_NACK"
,
timelog
=
new_ticklog
(
h
,
database
,
"ENB_
PHY_
ULSCH_UE_NACK"
,
"frame"
,
"subframe"
);
subview
=
new_subview_ticktime
(
timeview
,
i
+
9
+
1
,
new_color
(
g
,
"#f22"
),
3600
*
1000
);
logger_add_view
(
timelog
,
subview
);
logger_set_filter
(
timelog
,
ticktime_filter
(
database
,
"ENB_ULSCH_UE_NACK"
,
i
));
ticktime_filter
(
database
,
"ENB_
PHY_
ULSCH_UE_NACK"
,
i
));
}
/* phy/mac/rlc/pdcp/rrc textlog */
...
...
@@ -446,30 +447,30 @@ int main(int n, char **v)
free
(
desc
);
}
on_off
(
database
,
"ENB_INPUT_SIGNAL"
,
is_on
,
1
);
on_off
(
database
,
"ENB_DL_TICK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_DLSCH_UE_DCI"
,
is_on
,
1
);
on_off
(
database
,
"ENB_DLSCH_UE_ACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_DLSCH_UE_NACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_UL_TICK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_ULSCH_UE_DCI"
,
is_on
,
1
);
on_off
(
database
,
"ENB_ULSCH_UE_NO_DCI_RETRANSMISSION"
,
is_on
,
1
);
on_off
(
database
,
"ENB_ULSCH_UE_ACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_ULSCH_UE_NACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
INPUT_SIGNAL"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
DL_TICK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
DLSCH_UE_DCI"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
DLSCH_UE_ACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
DLSCH_UE_NACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
UL_TICK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
ULSCH_UE_DCI"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
ULSCH_UE_NO_DCI_RETRANSMISSION"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
ULSCH_UE_ACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_
PHY_
ULSCH_UE_NACK"
,
is_on
,
1
);
on_off
(
database
,
"ENB_MASTER_TICK"
,
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
);
view_add_log
(
eg
.
phyview
,
"ENB_DLSCH_UE_DCI"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_DLSCH_UE_ACK"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_DLSCH_UE_NACK"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_ULSCH_UE_DCI"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_ULSCH_UE_NO_DCI_RETRANSMISSION"
,
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
);
view_add_log
(
eg
.
phyview
,
"ENB_
PHY_
DLSCH_UE_NACK"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_
PHY_
ULSCH_UE_DCI"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_
PHY_
ULSCH_UE_NO_DCI_RETRANSMISSION"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_ULSCH_UE_ACK"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_ULSCH_UE_NACK"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_
PHY_
ULSCH_UE_ACK"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
phyview
,
"ENB_
PHY_
ULSCH_UE_NACK"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
macview
,
"ENB_MAC_UE_DL_SDU"
,
h
,
database
,
is_on
);
view_add_log
(
eg
.
macview
,
"ENB_MAC_UE_UL_SCHEDULE"
,
h
,
database
,
is_on
);
...
...
common/utils/T/tracer/textlog.c
View file @
0c74ab15
...
...
@@ -159,7 +159,7 @@ int main(int n, char **v)
char
*
name
,
*
desc
;
database_get_generic_description
(
database
,
i
,
&
name
,
&
desc
);
textlog
=
new_textlog
(
h
,
database
,
name
,
desc
);
// "ENB_UL_CHANNEL_ESTIMATE",
// "ENB_
PHY_
UL_CHANNEL_ESTIMATE",
// "ev: {} eNB_id [eNB_ID] frame [frame] subframe [subframe]");
logger_add_view
(
textlog
,
out
);
free
(
name
);
...
...
openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c
View file @
0c74ab15
...
...
@@ -334,7 +334,7 @@ int32_t lte_ul_channel_estimation(PHY_VARS_eNB *phy_vars_eNB,
#if T_TRACER
if
(
aa
==
0
)
T
(
T_ENB_UL_CHANNEL_ESTIMATE
,
T_INT
(
eNB_id
),
T_INT
(
UE_id
),
T
(
T_ENB_
PHY_
UL_CHANNEL_ESTIMATE
,
T_INT
(
eNB_id
),
T_INT
(
UE_id
),
T_INT
(
phy_vars_eNB
->
proc
[
sched_subframe
].
frame_rx
),
T_INT
(
subframe
),
T_INT
(
0
),
T_BUFFER
(
ul_ch_estimates_time
[
0
],
512
*
4
));
#endif
...
...
openair1/PHY/LTE_TRANSPORT/phich.c
View file @
0c74ab15
...
...
@@ -1506,7 +1506,7 @@ void generate_phich_top(PHY_VARS_eNB *phy_vars_eNB,
if
((
ulsch_eNB
[
UE_id
]
->
harq_processes
[
harq_pid
]
->
dci_alloc
==
0
)
&&
(
ulsch_eNB
[
UE_id
]
->
harq_processes
[
harq_pid
]
->
rar_alloc
==
0
)
)
{
if
(
ulsch_eNB
[
UE_id
]
->
harq_processes
[
harq_pid
]
->
phich_ACK
==
0
)
{
T
(
T_ENB_ULSCH_UE_NO_DCI_RETRANSMISSION
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
phy_vars_eNB
->
proc
[
sched_subframe
].
frame_tx
),
T
(
T_ENB_
PHY_
ULSCH_UE_NO_DCI_RETRANSMISSION
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
phy_vars_eNB
->
proc
[
sched_subframe
].
frame_tx
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T_INT
(
ulsch_eNB
[
UE_id
]
->
rnti
),
T_INT
(
harq_pid
));
LOG_D
(
PHY
,
"[eNB %d][PUSCH %d] frame %d, subframe %d : PHICH NACK / (no format0 DCI) Setting subframe_scheduling_flag
\n
"
,
phy_vars_eNB
->
Mod_id
,
harq_pid
,
phy_vars_eNB
->
proc
[
sched_subframe
].
frame_tx
,
subframe
);
...
...
openair1/PHY/LTE_TRANSPORT/pucch.c
View file @
0c74ab15
...
...
@@ -799,7 +799,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *phy_vars_eNB,
phy_vars_eNB
->
pucch1_stats_thres
[
UE_id
][(
subframe
<<
10
)
+
phy_vars_eNB
->
pucch1_stats_cnt
[
UE_id
][
subframe
]]
=
sigma2_dB
+
pucch1_thres
;
phy_vars_eNB
->
pucch1_stats_cnt
[
UE_id
][
subframe
]
=
(
phy_vars_eNB
->
pucch1_stats_cnt
[
UE_id
][
subframe
]
+
1
)
&
1023
;
T
(
T_PUCCH_1_ENERGY
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
UE_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T
(
T_
ENB_PHY_
PUCCH_1_ENERGY
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
UE_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
stat_max
),
T_INT
(
sigma2_dB
+
pucch1_thres
));
/*
...
...
@@ -1044,7 +1044,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *phy_vars_eNB,
phy_vars_eNB
->
pucch1ab_stats_cnt
[
UE_id
][
subframe
]
=
(
phy_vars_eNB
->
pucch1ab_stats_cnt
[
UE_id
][
subframe
]
+
1
)
&
1023
;
/* frame not available here - set to -1 for the moment */
T
(
T_PUCCH_1AB_IQ
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
UE_id
),
T_INT
(
-
1
),
T_INT
(
subframe
),
T_INT
(
stat_re
),
T_INT
(
stat_im
));
T
(
T_
ENB_PHY_
PUCCH_1AB_IQ
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
UE_id
),
T_INT
(
-
1
),
T_INT
(
subframe
),
T_INT
(
stat_re
),
T_INT
(
stat_im
));
*
payload
=
(
stat_re
<
0
)
?
1
:
0
;
...
...
openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c
View file @
0c74ab15
...
...
@@ -1840,7 +1840,7 @@ void rx_ulsch(PHY_VARS_eNB *phy_vars_eNB,
#endif
T
(
T_PUSCH_IQ
,
T_INT
(
eNB_id
),
T_INT
(
UE_id
),
T_INT
(
phy_vars_eNB
->
proc
[
sched_subframe
].
frame_rx
),
T
(
T_
ENB_PHY_
PUSCH_IQ
,
T_INT
(
eNB_id
),
T_INT
(
UE_id
),
T_INT
(
phy_vars_eNB
->
proc
[
sched_subframe
].
frame_rx
),
T_INT
(
subframe
),
T_INT
(
ulsch
[
UE_id
]
->
harq_processes
[
harq_pid
]
->
nb_rb
),
T_BUFFER
(
eNB_pusch_vars
->
rxdataF_comp
[
eNB_id
][
0
],
2
*
/* ulsch[UE_id]->harq_processes[harq_pid]->nb_rb */
frame_parms
->
N_RB_UL
*
12
*
frame_parms
->
symbols_per_tti
*
2
));
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
0c74ab15
...
...
@@ -598,7 +598,7 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX
,
1
);
start_meas
(
&
phy_vars_eNB
->
phy_proc_tx
);
T
(
T_ENB_DL_TICK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
));
T
(
T_ENB_
PHY_
DL_TICK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
));
for
(
i
=
0
;
i
<
NUMBER_OF_UE_MAX
;
i
++
)
{
// If we've dropped the UE, go back to PRACH mode for this UE
...
...
@@ -1097,7 +1097,7 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
phy_vars_eNB
->
Mod_id
,
DCI_pdu
->
dci_alloc
[
i
].
rnti
,
phy_vars_eNB
->
dlsch_eNB
[(
uint8_t
)
UE_id
][
0
]
->
current_harq_pid
,
phy_vars_eNB
->
proc
[
sched_subframe
].
frame_tx
,
subframe
);
T
(
T_ENB_DLSCH_UE_DCI
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T
(
T_ENB_
PHY_
DLSCH_UE_DCI
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T_INT
(
DCI_pdu
->
dci_alloc
[
i
].
rnti
),
T_INT
(
DCI_pdu
->
dci_alloc
[
i
].
format
),
T_INT
(
phy_vars_eNB
->
dlsch_eNB
[(
int
)
UE_id
][
0
]
->
current_harq_pid
));
...
...
@@ -1151,7 +1151,7 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
else
UE_id
=
i
;
T
(
T_ENB_ULSCH_UE_DCI
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T
(
T_ENB_
PHY_
ULSCH_UE_DCI
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T_INT
(
DCI_pdu
->
dci_alloc
[
i
].
rnti
),
T_INT
(
harq_pid
));
if
(
UE_id
<
0
)
{
...
...
@@ -1878,7 +1878,7 @@ void process_HARQ_feedback(uint8_t UE_id,
dlsch
->
rnti
,
dl_harq_pid
[
m
],
M
,
m
,
mp
,
dlsch_harq_proc
->
round
);
#endif
T
(
T_ENB_DLSCH_UE_NACK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T_INT
(
dlsch
->
rnti
),
T
(
T_ENB_
PHY_
DLSCH_UE_NACK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T_INT
(
dlsch
->
rnti
),
T_INT
(
dl_harq_pid
[
m
]));
if
(
dlsch_harq_proc
->
round
==
0
)
...
...
@@ -1915,7 +1915,7 @@ void process_HARQ_feedback(uint8_t UE_id,
dlsch
->
rnti
,
dl_harq_pid
[
m
],
dlsch_harq_proc
->
round
);
#endif
T
(
T_ENB_DLSCH_UE_ACK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T_INT
(
dlsch
->
rnti
),
T
(
T_ENB_
PHY_
DLSCH_UE_ACK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
UE_id
),
T_INT
(
dlsch
->
rnti
),
T_INT
(
dl_harq_pid
[
m
]));
ue_stats
->
dlsch_ACK
[
dl_harq_pid
[
m
]][
dlsch_harq_proc
->
round
]
++
;
...
...
@@ -2748,9 +2748,9 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
LOG_D
(
PHY
,
"[eNB %d] Frame %d: Doing phy_procedures_eNB_RX(%d)
\n
"
,
phy_vars_eNB
->
Mod_id
,
frame
,
subframe
);
#endif
T
(
T_ENB_UL_TICK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
));
T
(
T_ENB_
PHY_
UL_TICK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
));
T
(
T_ENB_INPUT_SIGNAL
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
0
),
T
(
T_ENB_
PHY_
INPUT_SIGNAL
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
0
),
T_BUFFER
(
&
phy_vars_eNB
->
lte_eNB_common_vars
.
rxdata
[
0
][
0
][
subframe
*
phy_vars_eNB
->
lte_frame_parms
.
samples_per_tti
],
phy_vars_eNB
->
lte_frame_parms
.
samples_per_tti
*
4
));
...
...
@@ -2984,7 +2984,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_ULSCH_MSG3
,
0
);
if
(
ret
==
(
1
+
MAX_TURBO_ITERATIONS
))
{
T
(
T_ENB_ULSCH_UE_NACK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
i
),
T_INT
(
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
),
T
(
T_ENB_
PHY_
ULSCH_UE_NACK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
i
),
T_INT
(
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
),
T_INT
(
harq_pid
));
phy_vars_eNB
->
eNB_UE_stats
[
i
].
ulsch_round_errors
[
harq_pid
][
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
harq_processes
[
harq_pid
]
->
round
]
++
;
...
...
@@ -3089,7 +3089,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
}
}
// ulsch in error
else
{
T
(
T_ENB_ULSCH_UE_ACK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
i
),
T_INT
(
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
),
T
(
T_ENB_
PHY_
ULSCH_UE_ACK
,
T_INT
(
phy_vars_eNB
->
Mod_id
),
T_INT
(
frame
),
T_INT
(
subframe
),
T_INT
(
i
),
T_INT
(
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
rnti
),
T_INT
(
harq_pid
));
if
(
phy_vars_eNB
->
ulsch_eNB
[
i
]
->
Msg3_flag
==
1
)
{
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
0c74ab15
...
...
@@ -862,6 +862,11 @@ void schedule_ulsch_rnti(module_id_t module_idP,
rballoc
=
mac_xface
->
computeRIV
(
frame_parms
->
N_RB_UL
,
first_rb
[
CC_id
],
rb_table
[
rb_table_index
]);
T
(
T_ENB_MAC_UE_UL_SCHEDULE
,
T_INT
(
module_idP
),
T_INT
(
CC_id
),
T_INT
(
rnti
),
T_INT
(
frameP
),
T_INT
(
subframeP
),
T_INT
(
harq_pid
),
T_INT
(
mcs
),
T_INT
(
first_rb
[
CC_id
]),
T_INT
(
rb_table
[
rb_table_index
]),
T_INT
(
TBS
));
// bad indices : 20 (40 PRB), 21 (45 PRB), 22 (48 PRB)
// increment for next UE allocation
first_rb
[
CC_id
]
+=
rb_table
[
rb_table_index
];
...
...
@@ -876,7 +881,7 @@ void schedule_ulsch_rnti(module_id_t module_idP,
module_idP
,
harq_pid
,
rnti
,
CC_id
,
frameP
,
subframeP
,
UE_id
,
mcs
,
first_rb
[
CC_id
],
rb_table
[
rb_table_index
],
rb_table_index
,
TBS
,
harq_pid
);
// adjust total UL buffer status by TBS, wait for UL sdus to do final update
LOG_D
(
MAC
,
"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d
\n
"
,
module_idP
,
CC_id
,
UE_id
,
rnti
,
UE_template
->
ul_total_buffer
,
TBS
);
if
(
UE_template
->
ul_total_buffer
>
TBS
)
...
...
@@ -1100,9 +1105,9 @@ void schedule_ulsch_rnti(module_id_t module_idP,
}
else
{
T
(
T_ENB_MAC_UE_UL_SCHEDULE
,
T_INT
(
module_idP
),
T_INT
(
CC_id
),
T_INT
(
rnti
),
T_INT
(
frameP
),
T
(
T_ENB_MAC_UE_UL_SCHEDULE
_RETRANSMISSION
,
T_INT
(
module_idP
),
T_INT
(
CC_id
),
T_INT
(
rnti
),
T_INT
(
frameP
),
T_INT
(
subframeP
),
T_INT
(
harq_pid
),
T_INT
(
mcs
),
T_INT
(
first_rb
[
CC_id
]),
T_INT
(
rb_table
[
rb_table_index
]),
T_INT
(
TBS
));
T_INT
(
round
));
LOG_D
(
MAC
,
"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled (PHICH) UE %d (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d,round %d)
\n
"
,
module_idP
,
harq_pid
,
rnti
,
CC_id
,
frameP
,
subframeP
,
UE_id
,
mcs
,
...
...
@@ -1120,10 +1125,6 @@ void schedule_ulsch_rnti(module_id_t module_idP,
}
T(T_ENB_MAC_UE_UL_SCHEDULE_RETRANSMISSION, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP),
T_INT(subframeP), T_INT(harq_pid), T_INT(mcs), T_INT(first_rb[CC_id]), T_INT(rb_table[rb_table_index]),
T_INT(round));
LOG_I(MAC,"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE retransmission (mcs %d, first rb %d, nb_rb %d, harq_pid %d, round %d)\n",
module_idP,UE_id,rnti,CC_id,frameP,subframeP,mcs,
first_rb[CC_id],UE_template->nb_rb_ul[harq_pid],
...
...
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