From ffec6a4e3c255b82ef98e393e56d676f37e28bba Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sun, 17 Jul 2016 14:50:02 +0200 Subject: [PATCH 01/14] minor fix to disable error reporting for gitlab logs --- .gitlab-ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ae57a56e36..2f2d95d4b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -34,6 +34,4 @@ job1: - cat $OPENAIR_DIR/cmake_targets/autotests/log/results_autotests.xml - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest.log |cat ` - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $NFS_TEST_RESULTS_DIR/log/python_autotest.log. Please check the logs\e[0m" ; fi - - exce_log=`egrep -i 'warning|error|critical|exception' $OPENAIR_DIR/cmake_targets/autotests/log/python_autotest_cleanup.log |cat ` - - if [ -n "$exce_log" ]; then echo -e "\e[31mThere are errors in $NFS_TEST_RESULTS_DIR/log/python_autotest_cleanup.log. Please check the logs\e[0m" ; fi From f0792762220b25c568e9d606a5e017ca09bca063 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Tue, 19 Jul 2016 16:47:33 +0200 Subject: [PATCH 02/14] Tests for OAI UE --- cmake_targets/autotests/README.txt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cmake_targets/autotests/README.txt b/cmake_targets/autotests/README.txt index 31bf293a7b..cf1e28dd05 100644 --- a/cmake_targets/autotests/README.txt +++ b/cmake_targets/autotests/README.txt @@ -239,7 +239,7 @@ Obj.# Case# Test# Description 02 Functional test case -03 Non-Functional test case +03 Autotests specific to OAI UE 04 Failure test case @@ -249,6 +249,4 @@ Obj.# Case# Test# Description #TODO: Add test cases for 10,20 MHz #TODO: Add test cases for TDD/FDD #TODO: Test and compile seperately for Rel8/Rel10 -#TODO: Case03.py eMBMS test case - - +#TODO: Case03.py eMBMS test case \ No newline at end of file From d0b046581c2234f71ad8f7c693bb33ae493f3044 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Tue, 19 Jul 2016 17:25:47 +0200 Subject: [PATCH 03/14] hotfix: set DCINdi for 1st uplink TX in the UE's harq process --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 1 + 1 file changed, 1 insertion(+) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index c849adf2f6..1bd7db46a0 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -6389,6 +6389,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if (ulsch->harq_processes[harq_pid]->first_tx==1) { // ulsch->harq_processes[harq_pid]->Ndi = 1; ulsch->harq_processes[harq_pid]->first_tx=0; + ulsch->harq_processes[harq_pid]->DCINdi= ndi; ulsch->harq_processes[harq_pid]->round = 0; } else { if (ulsch->harq_processes[harq_pid]->DCINdi!=ndi) { // new SDU opportunity From 833714406c84cde6308155696328093fc8bdac91 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 20 Jul 2016 17:54:21 +0200 Subject: [PATCH 04/14] hotfix: RLC AM reported wrong number of bytes to retransmit This was causing oaisim to fail way too often at the startup of a connection. Things should go better with this patch. It may not be the end of the story, the use of retrans_num_bytes_to_retransmit is not clear to me. The problem I see is: what if the max number of retransimission has been reached (if that has a meaning at all in RLC AM)? will this value be decreased or not? --- openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c index 0b8abf3838..fd8279579d 100755 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c @@ -103,7 +103,7 @@ rlc_am_get_buffer_occupancy_in_bytes ( } #endif - return rlc_pP->status_buffer_occupancy + rlc_pP->retransmission_buffer_occupancy + rlc_pP->sdu_buffer_occupancy + max_li_overhead + header_overhead; + return rlc_pP->status_buffer_occupancy + rlc_pP->retrans_num_bytes_to_retransmit + rlc_pP->sdu_buffer_occupancy + max_li_overhead + header_overhead; } //----------------------------------------------------------------------------- void From 6d504b870527ea2d07a92f3ce0263808b69e4efb Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sun, 24 Jul 2016 15:33:57 +0200 Subject: [PATCH 05/14] Gitlab CI: minor fixes to test case config file --- cmake_targets/autotests/test_case_list.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 2fecd2b292..d78e358e28 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -2154,7 +2154,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -f m + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 5 ppp0 -c 192.172.0.1 -f m -R throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec @@ -2175,7 +2175,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m False @@ -4084,7 +4084,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -f m + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 5 ppp0 -c 192.172.0.1 -f m -R False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -4104,7 +4104,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m False From dc18dabe3bba880aa721a8cafa4fd78a01664892 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sun, 24 Jul 2016 20:08:21 +0200 Subject: [PATCH 06/14] Gitlab CI: iperf script changes for checking connectivity --- cmake_targets/autotests/tools/iperf_script | 64 ++++++++++++++++++---- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/cmake_targets/autotests/tools/iperf_script b/cmake_targets/autotests/tools/iperf_script index 9f5990655e..2431c8489d 100755 --- a/cmake_targets/autotests/tools/iperf_script +++ b/cmake_targets/autotests/tools/iperf_script @@ -34,6 +34,8 @@ #arg2 interface #arg3 iperf arguments +echo "Start time of script: `date`" + args=($*) timeout=${args[0]} iface=${args[1]} @@ -48,17 +50,57 @@ echo "iface = $iface" echo "iperf_args = ${iperf_args[@]}" echo "ip_client = $ip_client" + + +# Test an IP address for validity: +# Usage: +# valid_ip IP_ADDRESS +# if [[ $? -eq 0 ]]; then echo good; else echo bad; fi +# OR +# if valid_ip IP_ADDRESS; then echo good; else echo bad; fi +# +function valid_ip() +{ + local ip=$1 + local stat=1 + + if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + OIFS=$IFS + IFS='.' + ip=($ip) + IFS=$OIFS + [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ + && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] + stat=$? + fi + return $stat +} + +if valid_ip $iface; then + echo "$iface is Valid IP Address. Checking for connectivity..." + ping -c 1 $iface >& /dev/null + while [ "$?" != "0" ]; do + ping -c 1 $iface >& /dev/null + done + echo "$iface connectivity achieved at `date`" + +else + + echo "Waiting for Interface $iface to come up..." + while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done + echo "$iface is now available at `date`" +fi + + +#if [ -n "$ip_client" ]; then +#echo "Waiting for route to be setup before iperf makes connection..." +# var=`route -n | grep $ip_client` +# if ["$var" != "" ] ; then break; fi +# +#fi + +echo "Sleeping for additional $timeout seconds" sleep $timeout -echo " Waiting for IP Address..." -while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done ; sleep 5 - -if [ -n "$ip_client" ]; then -echo "Waiting for route to be setup before iperf makes connection..." - var=`route -n | grep $ip_client` - if ["$var" != "" ] ; then break; fi - -fi -sleep 5 - +echo "Starting iperf at `date`...." iperf ${iperf_args[@]} From 051b0b38bd44decdb9435ffb6c67da2cedfa8939 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Sun, 24 Jul 2016 21:51:36 +0200 Subject: [PATCH 07/14] Gitlab CI: minor fix for iperf logging --- cmake_targets/autotests/tools/iperf_script | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake_targets/autotests/tools/iperf_script b/cmake_targets/autotests/tools/iperf_script index 2431c8489d..731438d65d 100755 --- a/cmake_targets/autotests/tools/iperf_script +++ b/cmake_targets/autotests/tools/iperf_script @@ -82,13 +82,13 @@ if valid_ip $iface; then while [ "$?" != "0" ]; do ping -c 1 $iface >& /dev/null done - echo "$iface connectivity achieved at `date`" + echo "$iface connectivity achieved at `date`, Seconds = $SECONDS" else echo "Waiting for Interface $iface to come up..." while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done - echo "$iface is now available at `date`" + echo "$iface is now available at `date` , Seconds = $SECONDS" fi @@ -102,5 +102,5 @@ fi echo "Sleeping for additional $timeout seconds" sleep $timeout -echo "Starting iperf at `date`...." +echo "Starting iperf at `date` , Seconds = $SECONDS ...." iperf ${iperf_args[@]} From 964e622ac33a19ed0afeea8eda19e1fc0f4f86f8 Mon Sep 17 00:00:00 2001 From: Rohit Gupta Date: Mon, 25 Jul 2016 01:21:54 +0200 Subject: [PATCH 08/14] Gitlab CI: updates to test case config file for iperf --- cmake_targets/autotests/test_case_list.xml | 60 +++++++++++----------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index d78e358e28..e2f34c7c90 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -1194,7 +1194,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 16M -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -u False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -1214,7 +1214,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -b 16M -i 1 -f m -u False @@ -1266,7 +1266,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -f m -u + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -u throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec @@ -1287,7 +1287,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -b 33M -i 1 -f m -u False @@ -1361,7 +1361,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 60 lo -u -c 192.172.0.2 -b 10Mbits/s + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -u -c 192.172.0.2 -b 10Mbits/s False @@ -1859,7 +1859,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 @@ -1934,7 +1934,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 @@ -2008,7 +2008,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 @@ -2082,7 +2082,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -f m -B 192.172.0.2 -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -2102,7 +2102,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -i 1 -f m False @@ -2154,7 +2154,7 @@ $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 5 ppp0 -c 192.172.0.1 -f m -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec @@ -2175,7 +2175,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -i 1 -f m False @@ -2249,7 +2249,7 @@ /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 60 lo -c 192.172.0.2 + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 False @@ -3585,7 +3585,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -u -f m -B 192.172.0.2 -b 16M -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3605,7 +3605,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -i 1 -u -f m -b 16M False @@ -3656,7 +3656,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 5 lo -s -i 1 -u -f m + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3676,7 +3676,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u False @@ -3727,7 +3727,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2 + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -3747,7 +3747,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 60 lo -u -c 192.172.0.2 -b 10Mbits/s + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -u -c 192.172.0.2 -b 10Mbits/s False @@ -3797,7 +3797,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -c 192.172.0.1 -B 192.172.0.2 @@ -4013,7 +4013,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 1 ppp0 -c 192.172.0.1 -i 1 -f m -B 192.172.0.2 -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -4033,7 +4033,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -i 1 -f m False @@ -4084,7 +4084,7 @@ c $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --stop-ue ; sleep 10; $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --start-ue - $OPENAIR_DIR/cmake_targets/autotests/tools/iperf3_script 5 ppp0 -c 192.172.0.1 -f m -R + $OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m False sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue @@ -4104,7 +4104,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf3_script 5 lo -s -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -i 1 -f m False @@ -7293,7 +7293,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 16Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -b 16Mbits/s -i 1 -f m -u False @@ -7367,7 +7367,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -b 33Mbits/s -i 1 -f m -u False @@ -7441,7 +7441,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -b 40Mbits/s -i 1 -f m -u + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -b 40Mbits/s -i 1 -f m -u False @@ -7738,7 +7738,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -i 1 -f m False @@ -7812,7 +7812,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -i 1 -f m False @@ -7886,7 +7886,7 @@ c /opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 - $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 65 lo -c 192.172.0.2 -i 1 -f m + $OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -i 1 -f m False From 3f20ce7b871b1c5655610d870239701ca51f3662 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 22 Jul 2016 20:51:02 +0200 Subject: [PATCH 09/14] mono-thread test --- targets/RT/USER/lte-softmodem.c | 89 +++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index 3f419ed49c..18e26cb125 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -1063,6 +1063,7 @@ static struct { */ static void* eNB_thread_tx( void* param ) { +return 0; static int eNB_thread_tx_status[NUM_ENB_THREADS]; eNB_proc_t *proc = (eNB_proc_t*)param; @@ -1344,6 +1345,7 @@ static void* eNB_thread_tx( void* param ) */ static void* eNB_thread_rx( void* param ) { +return 0; static int eNB_thread_rx_status[NUM_ENB_THREADS]; eNB_proc_t *proc = (eNB_proc_t*)param; @@ -1747,6 +1749,7 @@ void kill_eNB_proc(void) */ static void* eNB_thread( void* arg ) { +return 0; UNUSED(arg); static int eNB_thread_status; @@ -2834,6 +2837,86 @@ int T_port = 2021; /* default port to listen to to wait for the tracer */ int T_dont_fork = 0; /* default is to fork, see 'T_init' to understand */ #endif +void *processing_thread(void *_) +{ + PHY_VARS_eNB *phy = PHY_vars_eNB_g[0][0]; + int sched_frame = 0; + int sched_subframe = 0; + openair0_timestamp timestamp; + int spp; + int rxs; + void *rxp[2]; + void *txp[2]; + + spp = phy->lte_frame_parms.samples_per_tti; //openair0_cfg[0].samples_per_packet; + +loop: + T(T_ENB_MASTER_TICK, T_INT(0), T_INT(sched_frame), T_INT(sched_subframe)); + + /* received subframe n */ + rxp[0] = &rxdata[0][spp * sched_subframe]; + rxs = openair0.trx_read_func(&openair0, + ×tamp, + rxp, + spp, + 1); + if (rxs != spp) printf("WARN: received %d samples out of %d wanted\n", rxs, spp); + + /* transmit subframe n+3 */ + txp[0] = &txdata[0][spp * ((sched_subframe + 3) % 10)]; + openair0.trx_write_func(&openair0, + timestamp + spp * 3 -openair0_cfg[0].tx_sample_advance, + txp, + spp, + 1, + 1); + + /* process received subframe n */ + phy->proc[sched_subframe].subframe = sched_subframe; + phy->proc[sched_subframe].frame_rx = sched_frame; + phy->proc[sched_subframe].subframe_rx = sched_subframe; + phy_procedures_eNB_RX(sched_subframe, PHY_vars_eNB_g[0][0], 0, no_relay); + + /* generate subframe n+4 */ + phy->proc[sched_subframe].subframe = (sched_subframe+4) % 10; + phy->proc[sched_subframe].frame_tx = sched_frame + ((sched_subframe >= 6) ? 1 : 0); + phy->proc[sched_subframe].subframe_tx = (sched_subframe+4) % 10; + phy_procedures_eNB_TX(sched_subframe, PHY_vars_eNB_g[0][0], 0, no_relay, NULL); + do_OFDM_mod_rt(phy->proc[sched_subframe].subframe_tx, PHY_vars_eNB_g[0][0]); + + sched_subframe++; + if (sched_subframe == 10) { + sched_subframe = 0; + sched_frame++; + sched_frame %= 1024; + } + if (!oai_exit) goto loop; + + return 0; +} + +static void new_thread(void *(*f)(void *), void *data) +{ + pthread_t t; + pthread_attr_t att; + + if (pthread_attr_init(&att)) + { fprintf(stderr, "pthread_attr_init err\n"); exit(1); } + if (pthread_attr_setdetachstate(&att, PTHREAD_CREATE_DETACHED)) + { fprintf(stderr, "pthread_attr_setdetachstate err\n"); exit(1); } + if (pthread_attr_setstacksize(&att, 10000000)) + { fprintf(stderr, "pthread_attr_setstacksize err\n"); exit(1); } + if (pthread_create(&t, &att, f, data)) + { fprintf(stderr, "pthread_create err\n"); exit(1); } + if (pthread_attr_destroy(&att)) + { fprintf(stderr, "pthread_attr_destroy err\n"); exit(1); } +} + +void new_threading(void) +{ + new_thread(processing_thread, 0); +} + int main( int argc, char **argv ) { int i,aa,card=0; @@ -3368,6 +3451,7 @@ int main( int argc, char **argv ) int s; char cpu_affinity[1024]; CPU_ZERO(&cpuset); +#if 0 #ifdef CPU_AFFINITY if (get_nprocs() > 2) { @@ -3381,6 +3465,7 @@ int main( int argc, char **argv ) LOG_I(HW, "Setting the affinity of main function to CPU 0, for device library to use CPU 0 only!\n"); } #endif +#endif /* Check the actual affinity mask assigned to the thread */ s = pthread_getaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); @@ -3664,6 +3749,7 @@ int main( int argc, char **argv ) pthread_attr_setstacksize(&attr_UE_thread,8192);//5*PTHREAD_STACK_MIN); #ifndef DEADLINE_SCHEDULER +#if 0 sched_param_UE_thread.sched_priority = sched_get_priority_max(SCHED_FIFO); pthread_attr_setschedparam(&attr_UE_thread,&sched_param_UE_thread); sched_param_dlsch.sched_priority = sched_get_priority_max(SCHED_FIFO); //OPENAIR_THREAD_PRIORITY; @@ -3671,6 +3757,7 @@ int main( int argc, char **argv ) pthread_attr_setschedpolicy (&attr_dlsch_threads, SCHED_FIFO); printf("Setting eNB_thread FIFO scheduling policy with priority %d \n", sched_param_dlsch.sched_priority); #endif +#endif #endif @@ -3734,6 +3821,8 @@ int main( int argc, char **argv ) #endif } + new_threading(); + // Sleep to allow all threads to setup sleep(1); From b07efe7a01f243e89bb323895818e92ed6e2786f Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 27 Jul 2016 11:36:35 +0200 Subject: [PATCH 10/14] add trace ENB_MAC_UE_DL_PDU_WITH_DATA to trace downlink pdu --- common/utils/T/T_messages.txt | 4 ++++ openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 3 +++ 2 files changed, 7 insertions(+) diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt index 05c08085c6..050c48d0a9 100644 --- a/common/utils/T/T_messages.txt +++ b/common/utils/T/T_messages.txt @@ -95,6 +95,10 @@ ID = ENB_MAC_UE_UL_CE DESC = MAC uplink UE received control element GROUP = ALL:MAC:ENB FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,ce +ID = ENB_MAC_UE_DL_PDU_WITH_DATA + DESC = MAC downlink PDU for an UE + GROUP = ALL:MAC:ENB + FORMAT = int,eNB_ID : int,CC_id : int,rnti : int,frame : int,subframe : int,harq_pid : buffer,data #RLC logs ID = ENB_RLC_DL diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 81e1df4dc5..990542a771 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -1110,6 +1110,9 @@ schedule_ue_spec( module_idP, CC_id, frameP, UE_RNTI(module_idP,UE_id), TBS); } + 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; From d62de525eb7615983d55bf657e0b28d7136d0749 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 27 Jul 2016 13:05:46 +0200 Subject: [PATCH 11/14] scroll by one line in textlist to scroll by only one line, hold CONTROL key and scroll with mouse wheel --- common/utils/T/tracer/event_selector.c | 3 +++ common/utils/T/tracer/gui/gui.h | 4 ++-- common/utils/T/tracer/gui/textlist.c | 4 ++-- common/utils/T/tracer/view/textlist.c | 3 +++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/common/utils/T/tracer/event_selector.c b/common/utils/T/tracer/event_selector.c index a03846c056..2b6cfd878d 100644 --- a/common/utils/T/tracer/event_selector.c +++ b/common/utils/T/tracer/event_selector.c @@ -34,11 +34,14 @@ static void scroll(void *private, gui *g, int number_of_lines; int new_line; int inc; + int *d = notification_data; + int key_modifiers = *d; textlist_state(g, w, &visible_lines, &start_line, &number_of_lines); inc = 10; if (inc > visible_lines - 2) inc = visible_lines - 2; if (inc < 1) inc = 1; + if (key_modifiers & KEY_CONTROL) inc = 1; if (!strcmp(notification, "scrollup")) inc = -inc; new_line = start_line + inc; diff --git a/common/utils/T/tracer/gui/gui.h b/common/utils/T/tracer/gui/gui.h index 673514f138..27e6603042 100644 --- a/common/utils/T/tracer/gui/gui.h +++ b/common/utils/T/tracer/gui/gui.h @@ -83,8 +83,8 @@ int new_color(gui *gui, char *color); /* notifications */ /* known notifications: * - textlist: - * - scrollup { void *: NULL } - * - scrolldown { void *: NULL } + * - scrollup { int: key_modifiers } + * - scrolldown { int: key_modifiers } * - click { int [2]: line, button } * - label: * - click { int: button } (if enabled) diff --git a/common/utils/T/tracer/gui/textlist.c b/common/utils/T/tracer/gui/textlist.c index 896cba5b9e..e919b7c0a5 100644 --- a/common/utils/T/tracer/gui/textlist.c +++ b/common/utils/T/tracer/gui/textlist.c @@ -54,11 +54,11 @@ static void button(gui *_g, widget *_this, int x, int y, x -= this->common.x; /* scroll up */ if (button == 4 && up == 0) { - gui_notify(g, "scrollup", _this, NULL); + gui_notify(g, "scrollup", _this, &key_modifiers); } /* scroll down */ if (button == 5 && up == 0) { - gui_notify(g, "scrolldown", _this, NULL); + gui_notify(g, "scrolldown", _this, &key_modifiers); } /* button 1/2/3 click */ if (button >= 1 && button <= 3 && up == 0) { diff --git a/common/utils/T/tracer/view/textlist.c b/common/utils/T/tracer/view/textlist.c index 5227900e4e..ffa8cbf718 100644 --- a/common/utils/T/tracer/view/textlist.c +++ b/common/utils/T/tracer/view/textlist.c @@ -89,6 +89,8 @@ static void scroll(void *private, gui *g, int number_of_lines; int new_line; int inc; + int *d = notification_data; + int key_modifiers = *d; if (pthread_mutex_lock(&this->lock)) abort(); @@ -96,6 +98,7 @@ static void scroll(void *private, gui *g, inc = 10; if (inc > visible_lines - 2) inc = visible_lines - 2; if (inc < 1) inc = 1; + if (key_modifiers & KEY_CONTROL) inc = 1; if (!strcmp(notification, "scrollup")) inc = -inc; new_line = start_line + inc; From 3f2a080cba3dc24a53dbc56888b23e8a2695c8df Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 27 Jul 2016 14:40:25 +0200 Subject: [PATCH 12/14] better autoscroll management in textlist left click: enable autoscroll and go to end of list right click: disable autoscroll --- common/utils/T/tracer/view/textlist.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/common/utils/T/tracer/view/textlist.c b/common/utils/T/tracer/view/textlist.c index ffa8cbf718..b89314191c 100644 --- a/common/utils/T/tracer/view/textlist.c +++ b/common/utils/T/tracer/view/textlist.c @@ -125,7 +125,19 @@ static void click(void *private, gui *g, if (pthread_mutex_lock(&this->lock)) abort(); - if (button == 1) this->autoscroll = 1 - this->autoscroll; + if (button == 1) this->autoscroll = 1; + if (button == 3) this->autoscroll = 0; + + if (this->autoscroll) { + int visible_lines, start_line, number_of_lines; + textlist_state(this->g, this->w, &visible_lines, &start_line, + &number_of_lines); + start_line = number_of_lines - visible_lines; + if (start_line < 0) start_line = 0; + textlist_set_start_line(this->g, this->w, start_line); + /* this call is not necessary, but if things change in textlist... */ + widget_dirty(this->g, this->w); + } if (pthread_mutex_unlock(&this->lock)) abort(); } From 56014444e2b027d57e1f08c57f2b2bace3464444 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 29 Jul 2016 09:54:23 +0200 Subject: [PATCH 13/14] bugfix thanks to Supreeth Herle for reporting. --- cmake_targets/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 67cc6cfc3a..d0c3caa42a 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -1671,7 +1671,7 @@ target_link_libraries (lte-softmodem-nos1 ${LIBXML2_LIBRARIES}) target_link_libraries (lte-softmodem-nos1 pthread m ${CONFIG_LIBRARIES} rt crypt ${CRYPTO_LIBRARIES} ${OPENSSL_LIBRARIES} ${NETTLE_LIBRARIES} ${option_HW_lib} ${option_TP_lib} ${XFORMS_LIBRARIES} ) target_link_libraries (lte-softmodem-nos1 ${LIBBOOST_LIBRARIES}) target_link_libraries (lte-softmodem-nos1 ${LIB_LMS_LIBRARIES}) -target_link_libraries (lte-softmodem ${T_LIB}) +target_link_libraries (lte-softmodem-nos1 ${T_LIB}) # rrh ################################ From a023de6e5d1a00c86f006d91e4bbb65b426d8377 Mon Sep 17 00:00:00 2001 From: Florian Kaltenberger Date: Fri, 29 Jul 2016 10:38:30 +0200 Subject: [PATCH 14/14] Revert "mono-thread test" This reverts commit 3f20ce7b871b1c5655610d870239701ca51f3662. it was mistakenly pushed to develop --- targets/RT/USER/lte-softmodem.c | 89 --------------------------------- 1 file changed, 89 deletions(-) diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index 18e26cb125..3f419ed49c 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -1063,7 +1063,6 @@ static struct { */ static void* eNB_thread_tx( void* param ) { -return 0; static int eNB_thread_tx_status[NUM_ENB_THREADS]; eNB_proc_t *proc = (eNB_proc_t*)param; @@ -1345,7 +1344,6 @@ return 0; */ static void* eNB_thread_rx( void* param ) { -return 0; static int eNB_thread_rx_status[NUM_ENB_THREADS]; eNB_proc_t *proc = (eNB_proc_t*)param; @@ -1749,7 +1747,6 @@ void kill_eNB_proc(void) */ static void* eNB_thread( void* arg ) { -return 0; UNUSED(arg); static int eNB_thread_status; @@ -2837,86 +2834,6 @@ int T_port = 2021; /* default port to listen to to wait for the tracer */ int T_dont_fork = 0; /* default is to fork, see 'T_init' to understand */ #endif -void *processing_thread(void *_) -{ - PHY_VARS_eNB *phy = PHY_vars_eNB_g[0][0]; - int sched_frame = 0; - int sched_subframe = 0; - openair0_timestamp timestamp; - int spp; - int rxs; - void *rxp[2]; - void *txp[2]; - - spp = phy->lte_frame_parms.samples_per_tti; //openair0_cfg[0].samples_per_packet; - -loop: - T(T_ENB_MASTER_TICK, T_INT(0), T_INT(sched_frame), T_INT(sched_subframe)); - - /* received subframe n */ - rxp[0] = &rxdata[0][spp * sched_subframe]; - rxs = openair0.trx_read_func(&openair0, - ×tamp, - rxp, - spp, - 1); - if (rxs != spp) printf("WARN: received %d samples out of %d wanted\n", rxs, spp); - - /* transmit subframe n+3 */ - txp[0] = &txdata[0][spp * ((sched_subframe + 3) % 10)]; - openair0.trx_write_func(&openair0, - timestamp + spp * 3 -openair0_cfg[0].tx_sample_advance, - txp, - spp, - 1, - 1); - - /* process received subframe n */ - phy->proc[sched_subframe].subframe = sched_subframe; - phy->proc[sched_subframe].frame_rx = sched_frame; - phy->proc[sched_subframe].subframe_rx = sched_subframe; - phy_procedures_eNB_RX(sched_subframe, PHY_vars_eNB_g[0][0], 0, no_relay); - - /* generate subframe n+4 */ - phy->proc[sched_subframe].subframe = (sched_subframe+4) % 10; - phy->proc[sched_subframe].frame_tx = sched_frame + ((sched_subframe >= 6) ? 1 : 0); - phy->proc[sched_subframe].subframe_tx = (sched_subframe+4) % 10; - phy_procedures_eNB_TX(sched_subframe, PHY_vars_eNB_g[0][0], 0, no_relay, NULL); - do_OFDM_mod_rt(phy->proc[sched_subframe].subframe_tx, PHY_vars_eNB_g[0][0]); - - sched_subframe++; - if (sched_subframe == 10) { - sched_subframe = 0; - sched_frame++; - sched_frame %= 1024; - } - if (!oai_exit) goto loop; - - return 0; -} - -static void new_thread(void *(*f)(void *), void *data) -{ - pthread_t t; - pthread_attr_t att; - - if (pthread_attr_init(&att)) - { fprintf(stderr, "pthread_attr_init err\n"); exit(1); } - if (pthread_attr_setdetachstate(&att, PTHREAD_CREATE_DETACHED)) - { fprintf(stderr, "pthread_attr_setdetachstate err\n"); exit(1); } - if (pthread_attr_setstacksize(&att, 10000000)) - { fprintf(stderr, "pthread_attr_setstacksize err\n"); exit(1); } - if (pthread_create(&t, &att, f, data)) - { fprintf(stderr, "pthread_create err\n"); exit(1); } - if (pthread_attr_destroy(&att)) - { fprintf(stderr, "pthread_attr_destroy err\n"); exit(1); } -} - -void new_threading(void) -{ - new_thread(processing_thread, 0); -} - int main( int argc, char **argv ) { int i,aa,card=0; @@ -3451,7 +3368,6 @@ int main( int argc, char **argv ) int s; char cpu_affinity[1024]; CPU_ZERO(&cpuset); -#if 0 #ifdef CPU_AFFINITY if (get_nprocs() > 2) { @@ -3465,7 +3381,6 @@ int main( int argc, char **argv ) LOG_I(HW, "Setting the affinity of main function to CPU 0, for device library to use CPU 0 only!\n"); } #endif -#endif /* Check the actual affinity mask assigned to the thread */ s = pthread_getaffinity_np(pthread_self(), sizeof(cpu_set_t), &cpuset); @@ -3749,7 +3664,6 @@ int main( int argc, char **argv ) pthread_attr_setstacksize(&attr_UE_thread,8192);//5*PTHREAD_STACK_MIN); #ifndef DEADLINE_SCHEDULER -#if 0 sched_param_UE_thread.sched_priority = sched_get_priority_max(SCHED_FIFO); pthread_attr_setschedparam(&attr_UE_thread,&sched_param_UE_thread); sched_param_dlsch.sched_priority = sched_get_priority_max(SCHED_FIFO); //OPENAIR_THREAD_PRIORITY; @@ -3757,7 +3671,6 @@ int main( int argc, char **argv ) pthread_attr_setschedpolicy (&attr_dlsch_threads, SCHED_FIFO); printf("Setting eNB_thread FIFO scheduling policy with priority %d \n", sched_param_dlsch.sched_priority); #endif -#endif #endif @@ -3821,8 +3734,6 @@ int main( int argc, char **argv ) #endif } - new_threading(); - // Sleep to allow all threads to setup sleep(1);