Merge branch 'develop' into develop1B
This commit is contained in:
@@ -894,27 +894,28 @@ def handle_testcaseclass_softmodem (testcase, oldprogramList, logdirOAI5GRepo ,
|
||||
task_EPC = task_EPC + ' ) > ' + logfile_task_EPC_out + ' 2>&1 '
|
||||
write_file(logfile_task_EPC, task_EPC, mode="w")
|
||||
|
||||
#first we compile all the programs
|
||||
thread_EPC = oaiThread(1, "EPC_thread", EPCMachine, user, password , task_EPC_compile, False, timeout_thread)
|
||||
thread_eNB = oaiThread(2, "eNB_thread", eNBMachine, user, password , task_eNB_compile, False, timeout_thread)
|
||||
thread_UE = oaiThread(3, "UE_thread", UEMachine, user, password , task_UE_compile, False, timeout_thread)
|
||||
if RRHMachine != '':
|
||||
thread_RRH = oaiThread(4, "RRH_thread", RRHMachine, user, password , task_RRH_compile, False, timeout_thread)
|
||||
threads=[]
|
||||
threads.append(thread_eNB)
|
||||
threads.append(thread_UE)
|
||||
threads.append(thread_EPC)
|
||||
if RRHMachine != '':
|
||||
threads.append(thread_RRH)
|
||||
# Start new Threads
|
||||
thread_eNB.start()
|
||||
thread_UE.start()
|
||||
thread_EPC.start()
|
||||
if RRHMachine != '':
|
||||
thread_RRH.start()
|
||||
#Wait for all the compile threads to complete
|
||||
for t in threads:
|
||||
t.join()
|
||||
#first we compile all the programs but only for run_0
|
||||
if run == 0:
|
||||
thread_EPC = oaiThread(1, "EPC_thread", EPCMachine, user, password , task_EPC_compile, False, timeout_thread)
|
||||
thread_eNB = oaiThread(2, "eNB_thread", eNBMachine, user, password , task_eNB_compile, False, timeout_thread)
|
||||
thread_UE = oaiThread(3, "UE_thread", UEMachine, user, password , task_UE_compile, False, timeout_thread)
|
||||
if RRHMachine != '':
|
||||
thread_RRH = oaiThread(4, "RRH_thread", RRHMachine, user, password , task_RRH_compile, False, timeout_thread)
|
||||
threads=[]
|
||||
threads.append(thread_eNB)
|
||||
threads.append(thread_UE)
|
||||
threads.append(thread_EPC)
|
||||
if RRHMachine != '':
|
||||
threads.append(thread_RRH)
|
||||
# Start new Threads
|
||||
thread_eNB.start()
|
||||
thread_UE.start()
|
||||
thread_EPC.start()
|
||||
if RRHMachine != '':
|
||||
thread_RRH.start()
|
||||
#Wait for all the compile threads to complete
|
||||
for t in threads:
|
||||
t.join()
|
||||
|
||||
#Now we execute all the threads
|
||||
thread_EPC = oaiThread(1, "EPC_thread", EPCMachine, user, password , task_EPC, False, timeout_thread)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<CleanUpAluLteBox>sudo -S -E /opt/ltebox/tools/stop_ltebox</CleanUpAluLteBox>
|
||||
<ExmimoRfStop>exmimo_pci=`lspci -m | grep Xilinx`; if [ -n "$exmimo_pci" ] ; then $OPENAIR_DIR/cmake_targets/build_oai -w EXMIMO -c; sudo -S -E $OPENAIR_DIR/cmake_targets/tools/stop_exmimo2; fi; sudo -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue; sudo -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py --reset-ue; sudo -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py --stop-ue; uname -a; sudo -E dmesg</ExmimoRfStop>
|
||||
<Timeout_execution>36000</Timeout_execution>
|
||||
<TestCaseExclusionList>010141 0102+ 010301 010303 010304 010305 0104+ 015518 015519 015520 015521 015522 015523 015602 015605 015702 015705 015818 015819 015820 015821 015822 015823 016102 016105 016502 016505 017002 017005 017502 017505 018002 018005 018502 018505 025502 025518 025519 025520 025521 025522 025523</TestCaseExclusionList>
|
||||
<TestCaseExclusionList>010141 0102+ 010301 010303 010304 010305 0104+ 015508 015511 015520 015523 015518 015519 015520 015521 015522 015523 015602 015605 015702 015705 015818 015819 015820 015821 015822 015823 016102 016105 016502 016505 017002 017005 017502 017505 018002 018005 018502 018505 025514 025517 025520 025523 025518 025519 025520 025521 025522 025523</TestCaseExclusionList>
|
||||
<nruns_lte-softmodem>3</nruns_lte-softmodem>
|
||||
<MachineListGeneric>mozart hutch starsky stevens amerique calisson </MachineListGeneric>
|
||||
<testCase id="010101" >
|
||||
@@ -791,7 +791,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_aes128_cmac_encrypt</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_aes128_cmac_encrypt</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -807,7 +807,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_aes128_ctr_decrypt</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_aes128_ctr_decrypt</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -823,7 +823,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_aes128_ctr_encrypt</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_aes128_ctr_encrypt</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -839,7 +839,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_kenb</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_kenb</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -855,7 +855,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -871,7 +871,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas_encrypt_eea1</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas_encrypt_eea1</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -887,7 +887,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas_encrypt_eea2</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas_encrypt_eea2</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -903,7 +903,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas_encrypt_eia1</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas_encrypt_eia1</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -919,7 +919,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas_encrypt_eia1</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_secu_knas_encrypt_eia1</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -935,7 +935,7 @@
|
||||
<compile_prog_args> --core_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_kdf</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/test_kdf</main_exec>
|
||||
<main_exec_args> --verbose</main_exec_args>
|
||||
<search_expr_true>"finished with 0 errors"</search_expr_true>
|
||||
<search_expr_false>segmentation fault|assertion|exiting|fatal</search_expr_false>
|
||||
@@ -962,7 +962,7 @@
|
||||
<compile_prog_args> --phy_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/dlsim</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/dlsim</main_exec>
|
||||
<main_exec_args> -m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L
|
||||
-m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O70
|
||||
-m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L
|
||||
@@ -993,7 +993,7 @@
|
||||
<compile_prog_args> --phy_simulators -c </compile_prog_args>
|
||||
<pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</pre_exec>
|
||||
<pre_exec_args></pre_exec_args>
|
||||
<main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte-simulators/build/ulsim</main_exec>
|
||||
<main_exec> $OPENAIR_DIR/cmake_targets/lte-simulators/build/ulsim</main_exec>
|
||||
<main_exec_args> -B25 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L
|
||||
-B25 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L
|
||||
-B50 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L
|
||||
@@ -1170,13 +1170,12 @@
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mme_ip_address "ipv4=\"192.168.12.26\";ipv6=\"192:168:30::17\";active=\"yes\";preference=\"ipv4\";"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf downlink_frequency 2660000000L
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth0\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.19/24\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth0\"
|
||||
@@ -1276,7 +1275,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -u</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m -u</UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -1348,7 +1347,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -u </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m -u </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -1394,11 +1393,10 @@
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth0\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.19/24\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth0\"
|
||||
@@ -1424,7 +1422,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=10.0Mbits/sec average=10.0Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -1623,7 +1621,7 @@
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -1639,7 +1637,7 @@
|
||||
<eNB_pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</eNB_pre_exec>
|
||||
<eNB_pre_exec_args></eNB_pre_exec_args>
|
||||
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread </eNB_main_exec_args>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread -E </eNB_main_exec_args>
|
||||
<eNB_traffic_exec></eNB_traffic_exec>
|
||||
<eNB_traffic_exec_args></eNB_traffic_exec_args>
|
||||
<eNB_search_expr_true></eNB_search_expr_true>
|
||||
@@ -1730,7 +1728,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m -B 192.172.0.2</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -1806,7 +1804,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -1852,7 +1850,7 @@
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -1868,7 +1866,7 @@
|
||||
<eNB_pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</eNB_pre_exec>
|
||||
<eNB_pre_exec_args></eNB_pre_exec_args>
|
||||
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread </eNB_main_exec_args>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread -E </eNB_main_exec_args>
|
||||
<eNB_traffic_exec></eNB_traffic_exec>
|
||||
<eNB_traffic_exec_args></eNB_traffic_exec_args>
|
||||
<eNB_search_expr_true></eNB_search_expr_true>
|
||||
@@ -1883,7 +1881,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -2078,11 +2076,10 @@
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth0\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.19/24\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth0\"
|
||||
@@ -2182,7 +2179,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -2254,7 +2251,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -2300,11 +2297,10 @@
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth0\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.19/24\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth0\"
|
||||
@@ -2330,7 +2326,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -B 192.172.0.2</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -2531,7 +2527,7 @@
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -2547,7 +2543,7 @@
|
||||
<eNB_pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</eNB_pre_exec>
|
||||
<eNB_pre_exec_args></eNB_pre_exec_args>
|
||||
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread </eNB_main_exec_args>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread -E </eNB_main_exec_args>
|
||||
<eNB_traffic_exec></eNB_traffic_exec>
|
||||
<eNB_traffic_exec_args></eNB_traffic_exec_args>
|
||||
<eNB_search_expr_true></eNB_search_expr_true>
|
||||
@@ -2638,7 +2634,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -B 192.172.0.2</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=5.0Mbits/sec average=4.0Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -2714,7 +2710,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=9.0Mbits/sec average=8.5Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -2760,7 +2756,7 @@
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -2776,7 +2772,7 @@
|
||||
<eNB_pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</eNB_pre_exec>
|
||||
<eNB_pre_exec_args></eNB_pre_exec_args>
|
||||
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread </eNB_main_exec_args>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread -E </eNB_main_exec_args>
|
||||
<eNB_traffic_exec></eNB_traffic_exec>
|
||||
<eNB_traffic_exec_args></eNB_traffic_exec_args>
|
||||
<eNB_search_expr_true></eNB_search_expr_true>
|
||||
@@ -2791,7 +2787,7 @@
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_search_expr_true>throughput_test min=0.0Mbits/sec max=15.0Mbits/sec average=15.0Mbits/sec </UE_search_expr_true>
|
||||
<UE_search_expr_false></UE_search_expr_false>
|
||||
@@ -4150,7 +4146,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -4221,7 +4217,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -4241,7 +4237,7 @@ c
|
||||
<EPC_main_exec_args></EPC_main_exec_args>
|
||||
<HSS_main_exec>/opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 </HSS_main_exec>
|
||||
<HSS_main_exec_args></HSS_main_exec_args>
|
||||
<EPC_traffic_exec>$OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -b 32Mbits/s -i 1 -f m -u </EPC_traffic_exec>
|
||||
<EPC_traffic_exec>$OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 -b 31Mbits/s -i 1 -f m -u </EPC_traffic_exec>
|
||||
<EPC_traffic_exec_args></EPC_traffic_exec_args>
|
||||
<EPC_search_expr_false></EPC_search_expr_false>
|
||||
<EPC_terminate_missing_procs>False</EPC_terminate_missing_procs>
|
||||
@@ -4293,7 +4289,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -4313,7 +4309,7 @@ c
|
||||
<EPC_main_exec_args></EPC_main_exec_args>
|
||||
<HSS_main_exec>/opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 </HSS_main_exec>
|
||||
<HSS_main_exec_args></HSS_main_exec_args>
|
||||
<EPC_traffic_exec>$OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -u -c 192.172.0.2 -b 10Mbits/s </EPC_traffic_exec>
|
||||
<EPC_traffic_exec>$OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -u -c 192.172.0.2 -b 33Mbits/s </EPC_traffic_exec>
|
||||
<EPC_traffic_exec_args></EPC_traffic_exec_args>
|
||||
<EPC_search_expr_false></EPC_search_expr_false>
|
||||
<EPC_terminate_missing_procs>False</EPC_terminate_missing_procs>
|
||||
@@ -4580,7 +4576,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -4651,7 +4647,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -4723,7 +4719,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -B 192.172.0.2</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -4743,7 +4739,7 @@ c
|
||||
<EPC_main_exec_args></EPC_main_exec_args>
|
||||
<HSS_main_exec>/opt/hss_sim0609/starthss >> /dev/null ; sleep 3000 </HSS_main_exec>
|
||||
<HSS_main_exec_args></HSS_main_exec_args>
|
||||
<EPC_traffic_exec>$OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 75 lo -c 192.172.0.2 </EPC_traffic_exec>
|
||||
<EPC_traffic_exec>$OPENAIRCN_DIR/TEST/autotests/tools/iperf_script 10 192.172.0.2 -c 192.172.0.2 </EPC_traffic_exec>
|
||||
<EPC_traffic_exec_args></EPC_traffic_exec_args>
|
||||
<EPC_search_expr_false></EPC_search_expr_false>
|
||||
<EPC_terminate_missing_procs>False</EPC_terminate_missing_procs>
|
||||
@@ -5018,7 +5014,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -5091,7 +5087,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -5165,7 +5161,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -5460,7 +5456,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -5533,7 +5529,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -5607,7 +5603,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -f m -B 192.172.0.2</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -f m </UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -6387,7 +6383,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m</UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -6458,7 +6454,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m</UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -6529,7 +6525,7 @@ c
|
||||
<UE_pre_exec_args></UE_pre_exec_args>
|
||||
<UE_main_exec>$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 </UE_main_exec>
|
||||
<UE_main_exec_args></UE_main_exec_args>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 ppp0 -s -i 1 -u -f m</UE_traffic_exec>
|
||||
<UE_traffic_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/iperf_script 1 lo -s -i 1 -u -f m</UE_traffic_exec>
|
||||
<UE_traffic_exec_args></UE_traffic_exec_args>
|
||||
<UE_terminate_missing_procs>False</UE_terminate_missing_procs>
|
||||
<UE_stop_script>sudo -S -E $OPENAIR_DIR/cmake_targets/autotests/tools/configure_cots_bandrich_ue.py --reset-ue </UE_stop_script>
|
||||
@@ -8628,7 +8624,7 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth0\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.19/24\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth0\"
|
||||
@@ -8851,7 +8847,7 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth0\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.19/24\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth0\"
|
||||
@@ -9075,7 +9071,7 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth0\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.19/24\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth0\"
|
||||
@@ -9298,7 +9294,7 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_rx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf nb_antennas_tx 1
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1_MME \"eth0\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_IPV4_ADDRESS_FOR_S1_MME \"192.168.12.19/24\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf ENB_INTERFACE_NAME_FOR_S1U \"eth0\"
|
||||
@@ -9524,7 +9520,7 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -9540,7 +9536,7 @@ c
|
||||
<eNB_pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</eNB_pre_exec>
|
||||
<eNB_pre_exec_args></eNB_pre_exec_args>
|
||||
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread </eNB_main_exec_args>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread -E </eNB_main_exec_args>
|
||||
<eNB_traffic_exec></eNB_traffic_exec>
|
||||
<eNB_traffic_exec_args></eNB_traffic_exec_args>
|
||||
<eNB_search_expr_true></eNB_search_expr_true>
|
||||
@@ -9753,7 +9749,7 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -9769,7 +9765,7 @@ c
|
||||
<eNB_pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</eNB_pre_exec>
|
||||
<eNB_pre_exec_args></eNB_pre_exec_args>
|
||||
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread </eNB_main_exec_args>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread -E </eNB_main_exec_args>
|
||||
<eNB_traffic_exec></eNB_traffic_exec>
|
||||
<eNB_traffic_exec_args></eNB_traffic_exec_args>
|
||||
<eNB_search_expr_true></eNB_search_expr_true>
|
||||
@@ -9907,7 +9903,6 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -9984,7 +9979,7 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -10000,7 +9995,7 @@ c
|
||||
<eNB_pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</eNB_pre_exec>
|
||||
<eNB_pre_exec_args></eNB_pre_exec_args>
|
||||
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread </eNB_main_exec_args>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread -E </eNB_main_exec_args>
|
||||
<eNB_traffic_exec></eNB_traffic_exec>
|
||||
<eNB_traffic_exec_args></eNB_traffic_exec_args>
|
||||
<eNB_search_expr_true></eNB_search_expr_true>
|
||||
@@ -10213,7 +10208,7 @@ c
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf uplink_frequency_offset -120000000
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf tx_gain 90
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf rx_gain 125
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -32
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf pdsch_referenceSignalPower -30
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf frame_type \"FDD\"
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antenna_ports 2
|
||||
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf nb_antennas_rx 2
|
||||
@@ -10229,7 +10224,7 @@ c
|
||||
<eNB_pre_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash</eNB_pre_exec>
|
||||
<eNB_pre_exec_args></eNB_pre_exec_args>
|
||||
<eNB_main_exec>$OPENAIR_DIR/cmake_targets/autotests/tools/run_gdb $OPENAIR_DIR/cmake_targets/lte_build_oai/build/lte-softmodem</eNB_main_exec>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread </eNB_main_exec_args>
|
||||
<eNB_main_exec_args> -O $OPENAIR_DIR/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf --single-thread -E </eNB_main_exec_args>
|
||||
<eNB_traffic_exec></eNB_traffic_exec>
|
||||
<eNB_traffic_exec_args></eNB_traffic_exec_args>
|
||||
<eNB_search_expr_true></eNB_search_expr_true>
|
||||
|
||||
@@ -83,7 +83,7 @@ Options
|
||||
--install-optional-packages
|
||||
Install useful but not mandatory packages such as valgrind
|
||||
-g | --run-with-gdb
|
||||
Add debugging symbols to compilation directives. It also disables any compiler optimization.
|
||||
Add debugging symbols to compilation directives. It also disables any compiler optimization. Only for debugging. Do not use in normal operation!
|
||||
-h | --help
|
||||
Print this help
|
||||
--eNB
|
||||
@@ -137,9 +137,9 @@ Options
|
||||
--disable-hardware-dependency
|
||||
Disable HW dependency during installation
|
||||
Usage (first build):
|
||||
oaisim (eNB + UE): ./build_oai -I -g --oaisim -x --install-system-files
|
||||
Eurecom EXMIMO + COTS UE : ./build_oai -I -g --eNB -x --install-system-files
|
||||
NI/ETTUS B201 + COTS UE : ./build_oai -I -g --eNB -x --install-system-files -w USRP
|
||||
oaisim (eNB + UE): ./build_oai -I --oaisim -x --install-system-files
|
||||
Eurecom EXMIMO + COTS UE : ./build_oai -I --eNB -x --install-system-files
|
||||
NI/ETTUS B201 + COTS UE : ./build_oai -I --eNB -x --install-system-files -w USRP
|
||||
Usage (Regular):
|
||||
oaisim : ./build_oai --oaisim -x
|
||||
Eurecom EXMIMO + OAI ENB : ./build_oai --eNB -x
|
||||
|
||||
@@ -233,7 +233,7 @@ check_install_usrp_uhd_driver(){
|
||||
$SUDO add-apt-repository ppa:ettusresearch/uhd -y
|
||||
$SUDO apt-get update
|
||||
$SUDO apt-get -y install python python-tk libboost-all-dev libusb-1.0-0-dev
|
||||
$SUDO apt-get -y install libuhd-dev libuhd003
|
||||
$SUDO apt-get -y install libuhd-dev libuhd003 uhd-host
|
||||
}
|
||||
|
||||
install_usrp_uhd_driver() {
|
||||
@@ -291,7 +291,7 @@ check_install_additional_tools (){
|
||||
$SUDO pip install paramiko
|
||||
$SUDO pip install pyroute2
|
||||
$SUDO rm -fr /opt/ssh
|
||||
$SUDO GIT_SSL_NO_VERIFY=true git clone https://gist.github.com/2190472.git /opt/ssh
|
||||
$SUDO GIT_SSL_NO_VERIFY=true git clone https://gitlab.eurecom.fr/oai/ssh.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"
|
||||
|
||||
@@ -493,6 +493,11 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho
|
||||
|
||||
#endif
|
||||
|
||||
if (frame_length > 6143) {
|
||||
LOG_E(PHY,"compute_beta: frame_length %d\n",frame_length);
|
||||
return;
|
||||
}
|
||||
|
||||
// we are supposed to run compute_alpha just before compute_beta
|
||||
// so the initial states of backward computation can be set from last value of alpha states (forward computation)
|
||||
|
||||
@@ -512,9 +517,11 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho
|
||||
beta_ptr[6] = alpha128[6+(frame_length>>1)];
|
||||
beta_ptr[7] = alpha128[7+(frame_length>>1)];
|
||||
|
||||
int overlap = (frame_length>>4)> L ? (frame_length>>4)-L : 0 ;
|
||||
|
||||
for (rerun_flag=0, loopval=0;
|
||||
rerun_flag<2 ;
|
||||
loopval=(frame_length>>4)-L,rerun_flag++) {
|
||||
loopval=overlap,rerun_flag++) {
|
||||
|
||||
if (offset8_flag==0) {
|
||||
// FIXME! beta0-beta7 are used uninitialized. FIXME!
|
||||
|
||||
@@ -2865,6 +2865,7 @@ void dci_decoding_procedure0(LTE_UE_PDCCH **pdcch_vars,
|
||||
}
|
||||
}
|
||||
|
||||
LOG_D(PHY,"DCI decoding CRNTI [format_c: %d, nCCE[subframe: %d]: %d ]\n",format_c, subframe, pdcch_vars[eNB_id]->nCCE[subframe]);
|
||||
// memcpy(&dci_alloc[*dci_cnt].dci_pdu[0],dci_decoded_output,sizeof_bytes);
|
||||
|
||||
|
||||
|
||||
@@ -105,8 +105,8 @@ void send_IF5(PHY_VARS_eNB *eNB, openair0_timestamp proc_timestamp, int subframe
|
||||
__m128i t0, t1;
|
||||
|
||||
tx_buffer = memalign(16, MAC_HEADER_SIZE_BYTES + sizeof_IF5_mobipass_header_t + db_fulllength*sizeof(int16_t));
|
||||
IF5_mobipass_header_t *header = (IF5_mobipass_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES);
|
||||
data_block_head = (__m128i *)(tx_buffer + MAC_HEADER_SIZE_BYTES + sizeof_IF5_mobipass_header_t + 4);
|
||||
IF5_mobipass_header_t *header = (IF5_mobipass_header_t *)((uint8_t *)tx_buffer + MAC_HEADER_SIZE_BYTES);
|
||||
data_block_head = (__m128i *)((uint8_t *)tx_buffer + MAC_HEADER_SIZE_BYTES + sizeof_IF5_mobipass_header_t + 4);
|
||||
|
||||
header->flags = 0;
|
||||
header->fifo_status = 0;
|
||||
@@ -117,11 +117,11 @@ void send_IF5(PHY_VARS_eNB *eNB, openair0_timestamp proc_timestamp, int subframe
|
||||
txp[0] = (void*)&eNB->common_vars.txdata[0][0][subframe*eNB->frame_parms.samples_per_tti];
|
||||
txp128 = (__m128i *) txp[0];
|
||||
|
||||
for (packet_id=0; packet_id<(fp->samples_per_tti*2)/db_fulllength; packet_id++) {
|
||||
header->time_stamp = proc_timestamp + packet_id*db_fulllength;
|
||||
for (packet_id=0; packet_id<fp->samples_per_tti/db_fulllength; packet_id++) {
|
||||
header->time_stamp = (uint32_t)(proc_timestamp + packet_id*db_fulllength);
|
||||
data_block = data_block_head;
|
||||
|
||||
for (i=0; i<db_fulllength>>3; i+=2) {
|
||||
for (i=0; i<db_fulllength>>2; i+=2) {
|
||||
t0 = _mm_srai_epi16(*txp128++, 4);
|
||||
t1 = _mm_srai_epi16(*txp128++, 4);
|
||||
|
||||
|
||||
@@ -435,9 +435,10 @@ void generate_phich(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
if (HI>0)
|
||||
HI=1;
|
||||
|
||||
|
||||
// c = (1-(2*HI))*SSS_AMP;
|
||||
// x1 is set in lte_gold_generic
|
||||
x2 = (((subframe+1)*(frame_parms->Nid_cell+1))<<9) + frame_parms->Nid_cell;
|
||||
x2 = (((subframe+1)*((frame_parms->Nid_cell<<1)+1))<<9) + frame_parms->Nid_cell;
|
||||
|
||||
s = lte_gold_generic(&x1, &x2, reset);
|
||||
|
||||
@@ -1119,7 +1120,7 @@ void rx_phich(PHY_VARS_UE *ue,
|
||||
phich_d_ptr = phich_d;
|
||||
|
||||
// x1 is set in lte_gold_generic
|
||||
x2 = (((subframe+1)*(frame_parms->Nid_cell+1))<<9) + frame_parms->Nid_cell;
|
||||
x2 = (((subframe+1)*((frame_parms->Nid_cell<<1)+1))<<9) + frame_parms->Nid_cell;
|
||||
|
||||
s = lte_gold_generic(&x1, &x2, reset);
|
||||
|
||||
|
||||
@@ -818,11 +818,14 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
|
||||
break;
|
||||
|
||||
case 75:
|
||||
memset((void*)prachF,0,4*19432);
|
||||
memset((void*)prachF,0,4*18432);
|
||||
break;
|
||||
|
||||
case 100:
|
||||
memset((void*)prachF,0,4*24576);
|
||||
if (ue->frame_parms.threequarter_fs == 0)
|
||||
memset((void*)prachF,0,4*24576);
|
||||
else
|
||||
memset((void*)prachF,0,4*18432);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -886,6 +889,9 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
|
||||
break;
|
||||
}
|
||||
|
||||
if (ue->frame_parms.threequarter_fs == 1)
|
||||
Ncp=(Ncp*3)>>2;
|
||||
|
||||
prach2 = prach+(Ncp<<1);
|
||||
|
||||
// do IDFT
|
||||
@@ -986,20 +992,39 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
|
||||
break;
|
||||
|
||||
case 100:
|
||||
if (prach_fmt == 4) {
|
||||
idft4096(prachF,prach2,1);
|
||||
memmove( prach, prach+8192, Ncp<<2 );
|
||||
prach_len = 4096+Ncp;
|
||||
} else {
|
||||
idft24576(prachF,prach2);
|
||||
memmove( prach, prach+49152, Ncp<<2 );
|
||||
prach_len = 24576+Ncp;
|
||||
|
||||
if (prach_fmt>1) {
|
||||
memmove( prach2+49152, prach2, 98304 );
|
||||
prach_len = 2* 24576+Ncp;
|
||||
if (ue->frame_parms.threequarter_fs == 0) {
|
||||
if (prach_fmt == 4) {
|
||||
idft4096(prachF,prach2,1);
|
||||
memmove( prach, prach+8192, Ncp<<2 );
|
||||
prach_len = 4096+Ncp;
|
||||
} else {
|
||||
idft24576(prachF,prach2);
|
||||
memmove( prach, prach+49152, Ncp<<2 );
|
||||
prach_len = 24576+Ncp;
|
||||
|
||||
if (prach_fmt>1) {
|
||||
memmove( prach2+49152, prach2, 98304 );
|
||||
prach_len = 2* 24576+Ncp;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (prach_fmt == 4) {
|
||||
idft3072(prachF,prach2);
|
||||
//TODO: account for repeated format in dft output
|
||||
memmove( prach, prach+6144, Ncp<<2 );
|
||||
prach_len = 3072+Ncp;
|
||||
} else {
|
||||
idft18432(prachF,prach2);
|
||||
memmove( prach, prach+36864, Ncp<<2 );
|
||||
prach_len = 18432+Ncp;
|
||||
printf("Generated prach for 100 PRB, 3/4 sampling\n");
|
||||
if (prach_fmt>1) {
|
||||
memmove( prach2+36834, prach2, 73728 );
|
||||
prach_len = 2*18432+Ncp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -1026,18 +1051,18 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1
|
||||
((int16_t*)ue->common_vars.txdata[0])[2*i+1] = prach[2*j+1]<<4;
|
||||
}
|
||||
#if defined(EXMIMO)
|
||||
// handle switch before 1st TX subframe, guarantee that the slot prior to transmission is switch on
|
||||
for (k=prach_start - (ue->frame_parms.samples_per_tti>>1) ; k<prach_start ; k++) {
|
||||
if (k<0)
|
||||
ue->common_vars.txdata[0][k+ue->frame_parms.samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME] &= 0xFFFEFFFE;
|
||||
else if (k>(ue->frame_parms.samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME))
|
||||
ue->common_vars.txdata[0][k-ue->frame_parms.samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME] &= 0xFFFEFFFE;
|
||||
else
|
||||
ue->common_vars.txdata[0][k] &= 0xFFFEFFFE;
|
||||
}
|
||||
// handle switch before 1st TX subframe, guarantee that the slot prior to transmission is switch on
|
||||
for (k=prach_start - (ue->frame_parms.samples_per_tti>>1) ; k<prach_start ; k++) {
|
||||
if (k<0)
|
||||
ue->common_vars.txdata[0][k+ue->frame_parms.samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME] &= 0xFFFEFFFE;
|
||||
else if (k>(ue->frame_parms.samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME))
|
||||
ue->common_vars.txdata[0][k-ue->frame_parms.samples_per_tti*LTE_NUMBER_OF_SUBFRAMES_PER_FRAME] &= 0xFFFEFFFE;
|
||||
else
|
||||
ue->common_vars.txdata[0][k] &= 0xFFFEFFFE;
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
|
||||
|
||||
for (i=0; i<prach_len; i++) {
|
||||
((int16_t*)(&ue->common_vars.txdata[0][prach_start]))[2*i] = prach[2*i];
|
||||
((int16_t*)(&ue->common_vars.txdata[0][prach_start]))[2*i+1] = prach[2*i+1];
|
||||
@@ -1496,7 +1521,7 @@ void rx_prach(PHY_VARS_eNB *eNB,
|
||||
|
||||
#ifdef PRACH_DEBUG
|
||||
|
||||
if (en>40) {
|
||||
// if (en>40) {
|
||||
k = (12*n_ra_prb) - 6*eNB->frame_parms.N_RB_UL;
|
||||
|
||||
if (k<0)
|
||||
@@ -1510,7 +1535,7 @@ void rx_prach(PHY_VARS_eNB *eNB,
|
||||
write_output("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1);
|
||||
write_output("prach_ifft0.m","prach_t0",prach_ifft[0],1024,1,1);
|
||||
exit(-1);
|
||||
}
|
||||
// }
|
||||
#endif
|
||||
} // new dft
|
||||
|
||||
|
||||
@@ -154,6 +154,9 @@ void generate_pucch1x(int32_t **txdataF,
|
||||
uint8_t Ncs1 = frame_parms->pucch_config_common.nCS_AN;
|
||||
uint8_t Ncs1_div_deltaPUCCH_Shift = Ncs1/deltaPUCCH_Shift;
|
||||
|
||||
LOG_D(PHY,"generate_pucch Start [deltaPUCCH_Shift %d, NRB2 %d, Ncs1_div_deltaPUCCH_Shift %d, n1_pucch %d]\n", deltaPUCCH_Shift, NRB2, Ncs1_div_deltaPUCCH_Shift,n1_pucch);
|
||||
|
||||
|
||||
uint32_t u0 = (frame_parms->Nid_cell + frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[subframe<<1]) % 30;
|
||||
uint32_t u1 = (frame_parms->Nid_cell + frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[1+(subframe<<1)]) % 30;
|
||||
uint32_t v0=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[subframe<<1];
|
||||
@@ -178,6 +181,11 @@ void generate_pucch1x(int32_t **txdataF,
|
||||
printf("[PHY] PUCCH: cNcs1/deltaPUCCH_Shift %d, Nprime %d, n1_pucch %d\n",thres,Nprime,n1_pucch);
|
||||
#endif
|
||||
|
||||
LOG_D(PHY,"[PHY] PUCCH: n1_pucch %d, thres %d Ncs1_div_deltaPUCCH_Shift %d (12/deltaPUCCH_Shift) %d Nprime_div_deltaPUCCH_Shift %d \n",
|
||||
n1_pucch, thres, Ncs1_div_deltaPUCCH_Shift, (int)(12/deltaPUCCH_Shift), Nprime_div_deltaPUCCH_Shift);
|
||||
LOG_D(PHY,"[PHY] PUCCH: deltaPUCCH_Shift %d, Nprime %d\n",deltaPUCCH_Shift,Nprime);
|
||||
|
||||
|
||||
N_UL_symb = (frame_parms->Ncp==0) ? 7 : 6;
|
||||
|
||||
if (n1_pucch < thres)
|
||||
@@ -190,6 +198,9 @@ void generate_pucch1x(int32_t **txdataF,
|
||||
else {
|
||||
d = (frame_parms->Ncp==0) ? 2 : 0;
|
||||
h= (nprime0+d)%(c*Nprime_div_deltaPUCCH_Shift);
|
||||
#ifdef DEBUG_PUCCH_TX
|
||||
printf("[PHY] PUCCH: h %d, d %d\n",h,d);
|
||||
#endif
|
||||
nprime1 = (h/c) + (h%c)*Nprime_div_deltaPUCCH_Shift;
|
||||
}
|
||||
|
||||
@@ -208,7 +219,7 @@ void generate_pucch1x(int32_t **txdataF,
|
||||
n_oc1<<=1;
|
||||
|
||||
#ifdef DEBUG_PUCCH_TX
|
||||
printf("[PHY] PUCCH: noc0 %d noc11 %d\n",n_oc0,n_oc1);
|
||||
printf("[PHY] PUCCH: noc0 %d noc1 %d\n",n_oc0,n_oc1);
|
||||
#endif
|
||||
|
||||
nprime=nprime0;
|
||||
|
||||
@@ -1200,6 +1200,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
|
||||
y[i2] = c*ulsch_llr[i++];
|
||||
i2=(i2+(Cmux<<2)-3);
|
||||
*/
|
||||
// slightly more optimized version (equivalent to above) for 16QAM to improve computational performance
|
||||
*(__m64 *)&y[i2] = _mm_sign_pi16(*(__m64*)&ulsch_llr[i],*(__m64*)&cseq[i]);i+=4;i2+=(Cmux<<2);
|
||||
|
||||
|
||||
@@ -1531,6 +1532,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
|
||||
|
||||
// RI
|
||||
|
||||
// rank 1
|
||||
if ((ulsch_harq->O_RI == 1) && (Qprime_RI > 0)) {
|
||||
ulsch_harq->o_RI[0] = ((ulsch_harq->q_RI[0] + ulsch_harq->q_RI[Q_m/2]) > 0) ? 0 : 1;
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ int slot_fep_mbsfn(PHY_VARS_UE *ue,
|
||||
int sample_offset,
|
||||
int no_prefix)
|
||||
{
|
||||
|
||||
|
||||
LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms;
|
||||
LTE_UE_COMMON *common_vars = &ue->common_vars;
|
||||
uint8_t eNB_id = 0;//ue_common_vars->eNb_id;
|
||||
@@ -115,10 +115,8 @@ int slot_fep_mbsfn(PHY_VARS_UE *ue,
|
||||
sample_offset);
|
||||
#endif
|
||||
|
||||
|
||||
for (aa=0; aa<frame_parms->nb_antennas_rx; aa++) {
|
||||
memset(&common_vars->rxdataF[aa][2*frame_parms->ofdm_symbol_size*l],0,2*frame_parms->ofdm_symbol_size*sizeof(int));
|
||||
|
||||
memset(&common_vars->rxdataF[aa][frame_parms->ofdm_symbol_size*l],0,frame_parms->ofdm_symbol_size*sizeof(int));
|
||||
if (l==0) {
|
||||
start_meas(&ue->rx_dft_stats);
|
||||
dft((int16_t *)&common_vars->rxdata[aa][(sample_offset +
|
||||
@@ -146,9 +144,10 @@ int slot_fep_mbsfn(PHY_VARS_UE *ue,
|
||||
(int16_t *)&common_vars->rxdataF[aa][frame_parms->ofdm_symbol_size*l],1);
|
||||
stop_meas(&ue->rx_dft_stats);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//if ((l==0) || (l==(4-frame_parms->Ncp))) {
|
||||
// changed to invoke MBSFN channel estimation in symbols 2,6,10
|
||||
if ((l==2)||(l==6)||(l==10)) {
|
||||
|
||||
+102
-17
@@ -5229,7 +5229,7 @@ void dft8192(int16_t *x,int16_t *y,int scale)
|
||||
|
||||
xtmpp = xtmp;
|
||||
|
||||
for (i=0; i<32; i++) {
|
||||
for (i=0; i<16; i++) {
|
||||
transpose4_ooff_simd256(x256 ,xtmpp,512);
|
||||
transpose4_ooff_simd256(x256+2,xtmpp+1,512);
|
||||
transpose4_ooff_simd256(x256+4,xtmpp+2,512);
|
||||
@@ -5267,7 +5267,7 @@ void dft8192(int16_t *x,int16_t *y,int scale)
|
||||
}
|
||||
|
||||
dft4096((int16_t*)(xtmp),(int16_t*)ytmp,1);
|
||||
dft4096((int16_t*)(xtmp+1024),(int16_t*)(ytmp+512),1);
|
||||
dft4096((int16_t*)(xtmp+512),(int16_t*)(ytmp+512),1);
|
||||
|
||||
|
||||
for (i=0; i<512; i++) {
|
||||
@@ -5319,7 +5319,7 @@ void idft8192(int16_t *x,int16_t *y,int scale)
|
||||
|
||||
xtmpp = xtmp;
|
||||
|
||||
for (i=0; i<32; i++) {
|
||||
for (i=0; i<16; i++) {
|
||||
transpose4_ooff_simd256(x256 ,xtmpp,512);
|
||||
transpose4_ooff_simd256(x256+2,xtmpp+1,512);
|
||||
transpose4_ooff_simd256(x256+4,xtmpp+2,512);
|
||||
@@ -5357,7 +5357,7 @@ void idft8192(int16_t *x,int16_t *y,int scale)
|
||||
}
|
||||
|
||||
idft4096((int16_t*)(xtmp),(int16_t*)ytmp,1);
|
||||
idft4096((int16_t*)(xtmp+1024),(int16_t*)(ytmp+512),1);
|
||||
idft4096((int16_t*)(xtmp+512),(int16_t*)(ytmp+512),1);
|
||||
|
||||
|
||||
for (i=0; i<512; i++) {
|
||||
@@ -5680,15 +5680,58 @@ void idft12288(int16_t *input, int16_t *output)
|
||||
// write_output("out.m","out",output,6144,1,1);
|
||||
}
|
||||
|
||||
#include "twiddle18432.h"
|
||||
// 6144 x 3
|
||||
void dft18432(int16_t *input, int16_t *output)
|
||||
{
|
||||
void dft18432(int16_t *input, int16_t *output) {
|
||||
|
||||
int i,i2,j;
|
||||
uint32_t tmp[3][6144] __attribute__((aligned(32)));
|
||||
uint32_t tmpo[3][6144] __attribute__((aligned(32)));
|
||||
|
||||
for (i=0,j=0; i<6144; i++) {
|
||||
tmp[0][i] = ((uint32_t *)input)[j++];
|
||||
tmp[1][i] = ((uint32_t *)input)[j++];
|
||||
tmp[2][i] = ((uint32_t *)input)[j++];
|
||||
}
|
||||
|
||||
dft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]));
|
||||
dft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]));
|
||||
dft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]));
|
||||
|
||||
for (i=0,i2=0; i<12288; i+=8,i2+=4) {
|
||||
bfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
|
||||
(simd_q15_t*)(output+i),(simd_q15_t*)(output+12288+i),(simd_q15_t*)(output+24576+i),
|
||||
(simd_q15_t*)(twa18432+i),(simd_q15_t*)(twb18432+i));
|
||||
}
|
||||
|
||||
_mm_empty();
|
||||
_m_empty();
|
||||
}
|
||||
|
||||
void idft18432(int16_t *input, int16_t *output)
|
||||
{
|
||||
void idft18432(int16_t *input, int16_t *output) {
|
||||
|
||||
int i,i2,j;
|
||||
uint32_t tmp[3][6144] __attribute__((aligned(32)));
|
||||
uint32_t tmpo[3][6144] __attribute__((aligned(32)));
|
||||
|
||||
for (i=0,j=0; i<6144; i++) {
|
||||
tmp[0][i] = ((uint32_t *)input)[j++];
|
||||
tmp[1][i] = ((uint32_t *)input)[j++];
|
||||
tmp[2][i] = ((uint32_t *)input)[j++];
|
||||
}
|
||||
|
||||
idft6144((int16_t*)(tmp[0]),(int16_t*)(tmpo[0]));
|
||||
idft6144((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]));
|
||||
idft6144((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]));
|
||||
|
||||
for (i=0,i2=0; i<12288; i+=8,i2+=4) {
|
||||
ibfly3((simd_q15_t*)(&tmpo[0][i2]),(simd_q15_t*)(&tmpo[1][i2]),(simd_q15_t*)(&tmpo[2][i2]),
|
||||
(simd_q15_t*)(output+i),(simd_q15_t*)(output+12288+i),(simd_q15_t*)(output+24576+i),
|
||||
(simd_q15_t*)(twa18432+i),(simd_q15_t*)(twb18432+i));
|
||||
}
|
||||
|
||||
_mm_empty();
|
||||
_m_empty();
|
||||
}
|
||||
|
||||
#include "twiddle24576.h"
|
||||
@@ -5733,8 +5776,8 @@ void dft24576(int16_t *input, int16_t *output)
|
||||
void idft24576(int16_t *input, int16_t *output)
|
||||
{
|
||||
int i,i2,j;
|
||||
uint32_t tmp[3][16384] __attribute__((aligned(32)));
|
||||
uint32_t tmpo[3][16384] __attribute__((aligned(32)));
|
||||
uint32_t tmp[3][8192] __attribute__((aligned(32)));
|
||||
uint32_t tmpo[3][8192] __attribute__((aligned(32)));
|
||||
|
||||
for (i=0,j=0; i<8192; i++) {
|
||||
tmp[0][i] = ((uint32_t *)input)[j++];
|
||||
@@ -5746,13 +5789,6 @@ void idft24576(int16_t *input, int16_t *output)
|
||||
idft8192((int16_t*)(tmp[1]),(int16_t*)(tmpo[1]),1);
|
||||
idft8192((int16_t*)(tmp[2]),(int16_t*)(tmpo[2]),1);
|
||||
|
||||
/*
|
||||
for (i=1; i<8192; i++) {
|
||||
tmpo[0][i] = tmpo[0][i<<1];
|
||||
tmpo[1][i] = tmpo[1][i<<1];
|
||||
tmpo[2][i] = tmpo[2][i<<1];
|
||||
}*/
|
||||
|
||||
/*
|
||||
write_output("in.m","in",input,24576,1,1);
|
||||
write_output("out0.m","o0",tmpo[0],8192,1,1);
|
||||
@@ -19129,6 +19165,55 @@ int main(int argc, char**argv)
|
||||
write_output("y2048.m","y2048",y,2048,1,1);
|
||||
write_output("x2048.m","x2048",x,2048,1,1);
|
||||
|
||||
memset((void*)x,0,2048*sizeof(int32_t));
|
||||
for (i=2;i<2402;i++) {
|
||||
if ((taus() & 1)==0)
|
||||
((int16_t*)x)[i] = 364;
|
||||
else
|
||||
((int16_t*)x)[i] = -364;
|
||||
}
|
||||
for (i=2*(4096-1200);i<8192;i++) {
|
||||
if ((taus() & 1)==0)
|
||||
((int16_t*)x)[i] = 364;
|
||||
else
|
||||
((int16_t*)x)[i] = -364;
|
||||
}
|
||||
reset_meas(&ts);
|
||||
|
||||
for (i=0; i<10000; i++) {
|
||||
start_meas(&ts);
|
||||
idft4096((int16_t *)x,(int16_t *)y,1);
|
||||
stop_meas(&ts);
|
||||
}
|
||||
|
||||
printf("\n\n4096-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
|
||||
write_output("y4096.m","y4096",y,4096,1,1);
|
||||
write_output("x4096.m","x4096",x,4096,1,1);
|
||||
|
||||
memset((void*)x,0,8192*sizeof(int32_t));
|
||||
for (i=2;i<4802;i++) {
|
||||
if ((taus() & 1)==0)
|
||||
((int16_t*)x)[i] = 364;
|
||||
else
|
||||
((int16_t*)x)[i] = -364;
|
||||
}
|
||||
for (i=2*(4096-1200);i<8192;i++) {
|
||||
if ((taus() & 1)==0)
|
||||
((int16_t*)x)[i] = 364;
|
||||
else
|
||||
((int16_t*)x)[i] = -364;
|
||||
}
|
||||
reset_meas(&ts);
|
||||
for (i=0; i<10000; i++) {
|
||||
start_meas(&ts);
|
||||
idft8192((int16_t *)x,(int16_t *)y,1);
|
||||
stop_meas(&ts);
|
||||
}
|
||||
|
||||
printf("\n\n8192-point(%f cycles)\n",(double)ts.diff/(double)ts.trials);
|
||||
write_output("y8192.m","y8192",y,8192,1,1);
|
||||
write_output("x8192.m","x8192",x,8192,1,1);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5
-3
@@ -234,6 +234,8 @@ typedef struct eNB_proc_t_s {
|
||||
int thread_index;
|
||||
/// timestamp received from HW
|
||||
openair0_timestamp timestamp_rx;
|
||||
/// timestamp to send to "slave rru"
|
||||
openair0_timestamp timestamp_tx;
|
||||
/// subframe to act upon for reception
|
||||
int subframe_rx;
|
||||
/// subframe to act upon for PRACH
|
||||
@@ -875,7 +877,7 @@ typedef struct {
|
||||
|
||||
void exit_fun(const char* s);
|
||||
|
||||
inline int wait_on_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,int *instance_cnt,char *name) {
|
||||
static inline int wait_on_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,int *instance_cnt,char *name) {
|
||||
|
||||
if (pthread_mutex_lock(mutex) != 0) {
|
||||
LOG_E( PHY, "[SCHED][eNB] error locking mutex for %s\n",name);
|
||||
@@ -897,7 +899,7 @@ inline int wait_on_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,int *in
|
||||
return(0);
|
||||
}
|
||||
|
||||
inline int wait_on_busy_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,int *instance_cnt,char *name) {
|
||||
static inline int wait_on_busy_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,int *instance_cnt,char *name) {
|
||||
|
||||
if (pthread_mutex_lock(mutex) != 0) {
|
||||
LOG_E( PHY, "[SCHED][eNB] error locking mutex for %s\n",name);
|
||||
@@ -919,7 +921,7 @@ inline int wait_on_busy_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,in
|
||||
return(0);
|
||||
}
|
||||
|
||||
inline int release_thread(pthread_mutex_t *mutex,int *instance_cnt,char *name) {
|
||||
static inline int release_thread(pthread_mutex_t *mutex,int *instance_cnt,char *name) {
|
||||
|
||||
if (pthread_mutex_lock(mutex) != 0) {
|
||||
LOG_E( PHY, "[SCHED][eNB] error locking mutex for %s\n",name);
|
||||
|
||||
@@ -433,7 +433,7 @@ UE_MODE_t get_ue_mode(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index);
|
||||
@param pucch_fmt Format of PUCCH that is being transmitted
|
||||
@returns Transmit power
|
||||
*/
|
||||
int8_t pucch_power_cntl(PHY_VARS_UE *phy_vars_ue, UE_rxtx_proc_t *proc,uint8_t eNB_id,PUCCH_FMT_t pucch_fmt);
|
||||
int8_t pucch_power_cntl(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t subframe,uint8_t eNB_id,PUCCH_FMT_t pucch_fmt);
|
||||
|
||||
/*! \brief This function implements the power control mechanism for PUCCH from 36.213.
|
||||
@param phy_vars_ue PHY variables
|
||||
|
||||
@@ -335,7 +335,7 @@ void process_timing_advance_rar(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint16_t ti
|
||||
|
||||
|
||||
#ifdef DEBUG_PHY_PROC
|
||||
LOG_I(PHY,"[UE %d] Frame %d, received (rar) timing_advance %d, HW timing advance %d\n",ue->Mod_id,proc->frame_rx, ue->timing_advance);
|
||||
LOG_I(PHY,"[UE %d] AbsoluteSubFrame %d.%d, received (rar) timing_advance %d, HW timing advance %d\n",ue->Mod_id,proc->frame_rx, proc->subframe_rx, ue->timing_advance);
|
||||
#endif
|
||||
|
||||
}
|
||||
@@ -736,14 +736,8 @@ void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
|
||||
#endif
|
||||
|
||||
if (abstraction_flag == 0) {
|
||||
LOG_I(PHY,"[UE %d][RAPROC] Frame %d, Subframe %d : Generating PRACH, preamble %d, TARGET_RECEIVED_POWER %d dBm, PRACH TDD Resource index %d, RA-RNTI %d\n",
|
||||
ue->Mod_id,
|
||||
frame_tx,
|
||||
subframe_tx,
|
||||
ue->prach_resources[eNB_id]->ra_PreambleIndex,
|
||||
ue->prach_resources[eNB_id]->ra_PREAMBLE_RECEIVED_TARGET_POWER,
|
||||
ue->prach_resources[eNB_id]->ra_TDD_map_index,
|
||||
ue->prach_resources[eNB_id]->ra_RNTI);
|
||||
|
||||
LOG_I(PHY,"mode %d\n",mode);
|
||||
|
||||
if ((ue->mac_enabled==1) && (mode != calib_prach_tx)) {
|
||||
ue->tx_power_dBm[subframe_tx] = ue->prach_resources[eNB_id]->ra_PREAMBLE_RECEIVED_TARGET_POWER+get_PL(ue->Mod_id,ue->CC_id,eNB_id);
|
||||
@@ -753,6 +747,16 @@ void ue_prach_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
|
||||
ue->prach_resources[eNB_id]->ra_PreambleIndex = 19;
|
||||
}
|
||||
|
||||
LOG_I(PHY,"[UE %d][RAPROC] Frame %d, Subframe %d : Generating PRACH, preamble %d, P0_PRACH %d, TARGET_RECEIVED_POWER %d dBm, PRACH TDD Resource index %d, RA-RNTI %d\n",
|
||||
ue->Mod_id,
|
||||
frame_tx,
|
||||
subframe_tx,
|
||||
ue->prach_resources[eNB_id]->ra_PreambleIndex,
|
||||
ue->tx_power_dBm[subframe_tx],
|
||||
ue->prach_resources[eNB_id]->ra_PREAMBLE_RECEIVED_TARGET_POWER,
|
||||
ue->prach_resources[eNB_id]->ra_TDD_map_index,
|
||||
ue->prach_resources[eNB_id]->ra_RNTI);
|
||||
|
||||
ue->tx_total_RE[subframe_tx] = 96;
|
||||
|
||||
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
|
||||
@@ -1046,7 +1050,7 @@ void ue_ulsch_uespec_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB
|
||||
ue->tx_total_RE[subframe_tx] = nb_rb*12;
|
||||
|
||||
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)
|
||||
tx_amp = get_tx_amp(ue->tx_power_dBm,
|
||||
tx_amp = get_tx_amp(ue->tx_power_dBm[subframe_tx],
|
||||
ue->tx_power_max_dBm,
|
||||
ue->frame_parms.N_RB_UL,
|
||||
nb_rb);
|
||||
@@ -1153,7 +1157,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
|
||||
SR_payload);
|
||||
|
||||
if (ue->mac_enabled == 1) {
|
||||
Po_PUCCH = pucch_power_cntl(ue,proc,eNB_id,format);
|
||||
Po_PUCCH = pucch_power_cntl(ue,proc,subframe_tx,eNB_id,format);
|
||||
}
|
||||
else {
|
||||
Po_PUCCH = ue->tx_power_max_dBm;
|
||||
@@ -1216,7 +1220,7 @@ void ue_pucch_procedures(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,uin
|
||||
} else if (SR_payload==1) { // no ACK/NAK but SR is triggered by MAC
|
||||
|
||||
if (ue->mac_enabled == 1) {
|
||||
Po_PUCCH = pucch_power_cntl(ue,proc,eNB_id,pucch_format1);
|
||||
Po_PUCCH = pucch_power_cntl(ue,proc,subframe_tx,eNB_id,pucch_format1);
|
||||
}
|
||||
else {
|
||||
Po_PUCCH = ue->tx_power_max_dBm;
|
||||
@@ -1303,8 +1307,7 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
|
||||
}
|
||||
|
||||
if (ue->UE_mode[eNB_id] == PUSCH) { // check if we need to use PUCCH 1a/1b
|
||||
|
||||
|
||||
ue_pucch_procedures(ue,proc,eNB_id,abstraction_flag);
|
||||
} // UE_mode==PUSCH
|
||||
|
||||
|
||||
@@ -1369,7 +1372,9 @@ void phy_procedures_UE_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,uint8_t eNB_id,ui
|
||||
if (abstraction_flag == 0) {
|
||||
|
||||
if (ue->generate_ul_signal[eNB_id] == 1 )
|
||||
{
|
||||
ulsch_common_procedures(ue,proc);
|
||||
}
|
||||
else { // no uplink so clear signal buffer instead
|
||||
#if defined(EXMIMO) || defined(OAI_USRP) || defined(OAI_BLADERF) || defined(OAI_LMSSDR)//this is the EXPRESS MIMO case
|
||||
ulsch_start = (ue->rx_offset+subframe_tx*frame_parms->samples_per_tti-
|
||||
|
||||
@@ -130,7 +130,7 @@ void do_OFDM_mod_l(int32_t **txdataF, int32_t **txdata, uint16_t next_slot, LTE_
|
||||
}
|
||||
|
||||
void DL_channel(PHY_VARS_eNB *eNB,PHY_VARS_UE *UE,int subframe,int awgn_flag,double SNR, int tx_lev,int hold_channel,int abstx, int num_rounds, int trials, int round, channel_desc_t *eNB2UE[4],
|
||||
double s_re[2][30720*2],double s_im[2][30720*2],double r_re[2][30720*2],double r_im[2][30720*2],FILE *csv_fd) {
|
||||
double *s_re[2],double *s_im[2],double *r_re[2],double *r_im[2],FILE *csv_fd) {
|
||||
|
||||
int i,u;
|
||||
int aa,aarx,aatx;
|
||||
@@ -1267,7 +1267,12 @@ int main(int argc, char **argv)
|
||||
double snr_step=1,input_snr_step=1, snr_int=30;
|
||||
|
||||
LTE_DL_FRAME_PARMS *frame_parms;
|
||||
double s_re[2][30720*2],s_im[2][30720*2],r_re[2][30720*2],r_im[2][30720*2];
|
||||
double s_re0[30720*2],s_im0[30720*2],r_re0[30720*2],r_im0[30720*2];
|
||||
double s_re1[30720*2],s_im1[30720*2],r_re1[30720*2],r_im1[30720*2];
|
||||
double *s_re[2]={s_re0,s_re1};
|
||||
double *s_im[2]={s_im0,s_im1};
|
||||
double *r_re[2]={r_re0,r_re1};
|
||||
double *r_im[2]={r_im0,r_im1};
|
||||
double forgetting_factor=0.0; //in [0,1] 0 means a new channel every time, 1 means keep the same channel
|
||||
|
||||
|
||||
@@ -1380,7 +1385,6 @@ int main(int argc, char **argv)
|
||||
FILE *csv_fd=NULL;
|
||||
char csv_fname[32];
|
||||
int dci_flag=1;
|
||||
int llr8_flag=1;
|
||||
int two_thread_flag=0;
|
||||
int DLSCH_RB_ALLOC;
|
||||
|
||||
@@ -1413,7 +1417,7 @@ int main(int argc, char **argv)
|
||||
// num_layers = 1;
|
||||
perfect_ce = 0;
|
||||
|
||||
while ((c = getopt (argc, argv, "ahdpZDe:Em: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:WXY")) != -1) {
|
||||
while ((c = getopt (argc, argv, "ahdpZDe:Em: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:Pl:WXY")) != -1) {
|
||||
switch (c) {
|
||||
case 'a':
|
||||
awgn_flag = 1;
|
||||
@@ -1477,10 +1481,6 @@ int main(int argc, char **argv)
|
||||
input_trch_file=1;
|
||||
break;
|
||||
|
||||
case 'L':
|
||||
llr8_flag=1;
|
||||
break;
|
||||
|
||||
case 'W':
|
||||
two_thread_flag = 1;
|
||||
break;
|
||||
|
||||
@@ -51,15 +51,16 @@
|
||||
|
||||
|
||||
#include "OCG_vars.h"
|
||||
#include "unitary_defs.h"
|
||||
|
||||
|
||||
PHY_VARS_eNB *PHY_vars_eNB;
|
||||
PHY_VARS_UE *PHY_vars_UE;
|
||||
PHY_VARS_eNB *eNB;
|
||||
PHY_VARS_UE *UE;
|
||||
|
||||
|
||||
DCI1E_5MHz_2A_M10PRB_TDD_t DLSCH_alloc_pdu2_1E[2];
|
||||
#define UL_RB_ALLOC 0x1ff;
|
||||
#define CCCH_RB_ALLOC computeRIV(PHY_vars_eNB->lte_frame_parms.N_RB_UL,0,2)
|
||||
#define CCCH_RB_ALLOC computeRIV(eNB->frame_parms.N_RB_UL,0,2)
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
|
||||
@@ -70,10 +71,11 @@ int main(int argc, char **argv)
|
||||
uint8_t snr1set=0;
|
||||
double snr_step=1,input_snr_step=1;
|
||||
int **txdata;
|
||||
double **s_re,**s_im,**r_re,**r_im;
|
||||
double s_re0[2*30720],s_im0[2*30720],s_re1[2*30720],s_im1[2*30720];
|
||||
double r_re0[2*30720],r_im0[2*30720],r_re1[2*30720],r_im1[2*30720];
|
||||
double *s_re[2]={s_re0,s_re1},*s_im[2]={s_im0,s_im1},*r_re[2]={r_re0,r_re1},*r_im[2]={r_im0,r_im1};
|
||||
double iqim = 0.0;
|
||||
int subframe=1;
|
||||
int sched_subframe;
|
||||
char fname[40];//, vname[40];
|
||||
uint8_t transmission_mode = 1,n_tx=1,n_rx=2;
|
||||
uint16_t Nid_cell=0;
|
||||
@@ -125,17 +127,7 @@ int main(int argc, char **argv)
|
||||
|
||||
logInit();
|
||||
number_of_cards = 1;
|
||||
openair_daq_vars.rx_rf_mode = 1;
|
||||
|
||||
/*
|
||||
rxdataF = (int **)malloc16(2*sizeof(int*));
|
||||
rxdataF[0] = (int *)malloc16(FRAME_LENGTH_BYTES);
|
||||
rxdataF[1] = (int *)malloc16(FRAME_LENGTH_BYTES);
|
||||
|
||||
rxdata = (int **)malloc16(2*sizeof(int*));
|
||||
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:Y")) != -1) {
|
||||
switch (c) {
|
||||
case 'a':
|
||||
@@ -235,7 +227,6 @@ int main(int argc, char **argv)
|
||||
}
|
||||
|
||||
|
||||
sched_subframe = (subframe+9)%10;
|
||||
|
||||
if (awgn_flag == 1)
|
||||
channel_model = AWGN;
|
||||
@@ -253,9 +244,17 @@ 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,0,osf,perfect_ce);
|
||||
|
||||
|
||||
lte_param_init(n_tx,
|
||||
n_rx,
|
||||
transmission_mode,
|
||||
extended_prefix_flag,
|
||||
frame_type,
|
||||
Nid_cell,
|
||||
tdd_config,
|
||||
N_RB_DL,
|
||||
0,
|
||||
osf,
|
||||
perfect_ce);
|
||||
|
||||
if (snr1set==0) {
|
||||
if (n_frames==1)
|
||||
@@ -266,7 +265,7 @@ int main(int argc, char **argv)
|
||||
|
||||
printf("SNR0 %f, SNR1 %f\n",snr0,snr1);
|
||||
|
||||
frame_parms = &PHY_vars_eNB->lte_frame_parms;
|
||||
frame_parms = &eNB->frame_parms;
|
||||
|
||||
if (awgn_flag == 0)
|
||||
sprintf(fname,"embms_%d_%d.m",mcs,N_RB_DL);
|
||||
@@ -292,72 +291,56 @@ int main(int argc, char **argv)
|
||||
|
||||
fflush(fd);
|
||||
|
||||
txdata = PHY_vars_eNB->lte_eNB_common_vars.txdata[0];
|
||||
txdata = eNB->common_vars.txdata[0];
|
||||
|
||||
s_re = malloc(2*sizeof(double*));
|
||||
s_im = malloc(2*sizeof(double*));
|
||||
r_re = malloc(2*sizeof(double*));
|
||||
r_im = malloc(2*sizeof(double*));
|
||||
nsymb = 12;
|
||||
|
||||
printf("FFT Size %d, Extended Prefix %d, Samples per subframe %d, Symbols per subframe %d, AWGN %d\n",NUMBER_OF_OFDM_CARRIERS,
|
||||
frame_parms->Ncp,frame_parms->samples_per_tti,nsymb,awgn_flag);
|
||||
|
||||
for (i=0; i<2; i++) {
|
||||
|
||||
s_re[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double));
|
||||
bzero(s_re[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double));
|
||||
s_im[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double));
|
||||
bzero(s_im[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double));
|
||||
r_re[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double));
|
||||
bzero(r_re[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double));
|
||||
r_im[i] = malloc(FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double));
|
||||
bzero(r_im[i],FRAME_LENGTH_COMPLEX_SAMPLES*sizeof(double));
|
||||
}
|
||||
|
||||
eNB2UE = new_channel_desc_scm(PHY_vars_eNB->lte_frame_parms.nb_antennas_tx,
|
||||
PHY_vars_UE->lte_frame_parms.nb_antennas_rx,
|
||||
eNB2UE = new_channel_desc_scm(eNB->frame_parms.nb_antennas_tx,
|
||||
UE->frame_parms.nb_antennas_rx,
|
||||
channel_model,
|
||||
N_RB2sampling_rate(PHY_vars_eNB->lte_frame_parms.N_RB_DL),
|
||||
N_RB2channel_bandwidth(PHY_vars_eNB->lte_frame_parms.N_RB_DL),
|
||||
N_RB2sampling_rate(eNB->frame_parms.N_RB_DL),
|
||||
N_RB2channel_bandwidth(eNB->frame_parms.N_RB_DL),
|
||||
0,
|
||||
0,
|
||||
0);
|
||||
|
||||
// Create transport channel structures for 2 transport blocks (MIMO)
|
||||
PHY_vars_eNB->dlsch_eNB_MCH = new_eNB_dlsch(1,8,Nsoft,N_RB_DL,0);
|
||||
eNB->dlsch_MCH = new_eNB_dlsch(1,8,Nsoft,N_RB_DL,0);
|
||||
|
||||
if (!PHY_vars_eNB->dlsch_eNB_MCH) {
|
||||
if (!eNB->dlsch_MCH) {
|
||||
printf("Can't get eNB dlsch structures\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
PHY_vars_UE->dlsch_ue_MCH[0] = new_ue_dlsch(1,8,Nsoft,MAX_TURBO_ITERATIONS_MBSFN,N_RB_DL,0);
|
||||
UE->dlsch_MCH[0] = new_ue_dlsch(1,8,Nsoft,MAX_TURBO_ITERATIONS_MBSFN,N_RB_DL,0);
|
||||
|
||||
PHY_vars_eNB->lte_frame_parms.num_MBSFN_config = 1;
|
||||
PHY_vars_eNB->lte_frame_parms.MBSFN_config[0].radioframeAllocationPeriod = 0;
|
||||
PHY_vars_eNB->lte_frame_parms.MBSFN_config[0].radioframeAllocationOffset = 0;
|
||||
PHY_vars_eNB->lte_frame_parms.MBSFN_config[0].fourFrames_flag = 0;
|
||||
PHY_vars_eNB->lte_frame_parms.MBSFN_config[0].mbsfn_SubframeConfig=0xff; // activate all possible subframes
|
||||
PHY_vars_UE->lte_frame_parms.num_MBSFN_config = 1;
|
||||
PHY_vars_UE->lte_frame_parms.MBSFN_config[0].radioframeAllocationPeriod = 0;
|
||||
PHY_vars_UE->lte_frame_parms.MBSFN_config[0].radioframeAllocationOffset = 0;
|
||||
PHY_vars_UE->lte_frame_parms.MBSFN_config[0].fourFrames_flag = 0;
|
||||
PHY_vars_UE->lte_frame_parms.MBSFN_config[0].mbsfn_SubframeConfig=0xff; // activate all possible subframes
|
||||
eNB->frame_parms.num_MBSFN_config = 1;
|
||||
eNB->frame_parms.MBSFN_config[0].radioframeAllocationPeriod = 0;
|
||||
eNB->frame_parms.MBSFN_config[0].radioframeAllocationOffset = 0;
|
||||
eNB->frame_parms.MBSFN_config[0].fourFrames_flag = 0;
|
||||
eNB->frame_parms.MBSFN_config[0].mbsfn_SubframeConfig=0xff; // activate all possible subframes
|
||||
UE->frame_parms.num_MBSFN_config = 1;
|
||||
UE->frame_parms.MBSFN_config[0].radioframeAllocationPeriod = 0;
|
||||
UE->frame_parms.MBSFN_config[0].radioframeAllocationOffset = 0;
|
||||
UE->frame_parms.MBSFN_config[0].fourFrames_flag = 0;
|
||||
UE->frame_parms.MBSFN_config[0].mbsfn_SubframeConfig=0xff; // activate all possible subframes
|
||||
|
||||
fill_eNB_dlsch_MCH(PHY_vars_eNB,mcs,1,0,0);
|
||||
fill_UE_dlsch_MCH(PHY_vars_UE,mcs,1,0,0);
|
||||
fill_eNB_dlsch_MCH(eNB,mcs,1,0);
|
||||
fill_UE_dlsch_MCH(UE,mcs,1,0,0);
|
||||
|
||||
if (is_pmch_subframe(0,subframe,&PHY_vars_eNB->lte_frame_parms)==0) {
|
||||
if (is_pmch_subframe(0,subframe,&eNB->frame_parms)==0) {
|
||||
printf("eNB is not configured for MBSFN in subframe %d\n",subframe);
|
||||
exit(-1);
|
||||
} else if (is_pmch_subframe(0,subframe,&PHY_vars_UE->lte_frame_parms)==0) {
|
||||
} else if (is_pmch_subframe(0,subframe,&UE->frame_parms)==0) {
|
||||
printf("UE is not configured for MBSFN in subframe %d\n",subframe);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
||||
input_buffer_length = PHY_vars_eNB->dlsch_eNB_MCH->harq_processes[0]->TBS/8;
|
||||
input_buffer_length = eNB->dlsch_MCH->harq_processes[0]->TBS/8;
|
||||
input_buffer = (unsigned char *)malloc(input_buffer_length+4);
|
||||
memset(input_buffer,0,input_buffer_length+4);
|
||||
|
||||
@@ -369,9 +352,9 @@ int main(int argc, char **argv)
|
||||
snr_step = input_snr_step;
|
||||
|
||||
for (SNR=snr0; SNR<snr1; SNR+=snr_step) {
|
||||
PHY_vars_UE->frame_tx=0;
|
||||
PHY_vars_eNB->proc[sched_subframe].frame_tx=0;
|
||||
PHY_vars_eNB->proc[sched_subframe].subframe_tx=subframe;
|
||||
UE->proc.proc_rxtx[0].frame_tx=0;
|
||||
eNB->proc.proc_rxtx[0].frame_tx=0;
|
||||
eNB->proc.proc_rxtx[0].subframe_tx=subframe;
|
||||
|
||||
errs[0]=0;
|
||||
errs[1]=0;
|
||||
@@ -392,12 +375,11 @@ int main(int argc, char **argv)
|
||||
//if (trials%100==0)
|
||||
//eNB2UE[0]->first_run = 1;
|
||||
eNB2UE->first_run = 1;
|
||||
memset(&PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][0][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t));
|
||||
|
||||
generate_mch(PHY_vars_eNB,sched_subframe,input_buffer,0);
|
||||
memset(&eNB->common_vars.txdataF[0][0][0],0,FRAME_LENGTH_COMPLEX_SAMPLES_NO_PREFIX*sizeof(int32_t));
|
||||
generate_mch(eNB,&eNB->proc.proc_rxtx[0],input_buffer);
|
||||
|
||||
|
||||
PHY_ofdm_mod(PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][0], // input,
|
||||
PHY_ofdm_mod(eNB->common_vars.txdataF[0][0], // input,
|
||||
txdata[0], // output
|
||||
frame_parms->ofdm_symbol_size,
|
||||
LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*nsymb, // number of symbols
|
||||
@@ -405,33 +387,34 @@ int main(int argc, char **argv)
|
||||
CYCLIC_PREFIX);
|
||||
|
||||
if (n_frames==1) {
|
||||
write_output("txsigF0.m","txsF0", &PHY_vars_eNB->lte_eNB_common_vars.txdataF[0][0][subframe*nsymb*PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size],
|
||||
nsymb*PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size,1,1);
|
||||
//if (PHY_vars_eNB->lte_frame_parms.nb_antennas_tx>1)
|
||||
//write_output("txsigF1.m","txsF1", &PHY_vars_eNB->lte_eNB_common_vars.txdataF[eNB_id][1][subframe*nsymb*PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size],nsymb*PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size,1,1);
|
||||
write_output("txsigF0.m","txsF0", &eNB->common_vars.txdataF[0][0][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],
|
||||
nsymb*eNB->frame_parms.ofdm_symbol_size,1,1);
|
||||
//if (eNB->frame_parms.nb_antennas_tx>1)
|
||||
//write_output("txsigF1.m","txsF1", &eNB->lte_eNB_common_vars.txdataF[eNB_id][1][subframe*nsymb*eNB->frame_parms.ofdm_symbol_size],nsymb*eNB->frame_parms.ofdm_symbol_size,1,1);
|
||||
}
|
||||
|
||||
tx_lev = 0;
|
||||
|
||||
for (aa=0; aa<PHY_vars_eNB->lte_frame_parms.nb_antennas_tx; aa++) {
|
||||
tx_lev += signal_energy(&PHY_vars_eNB->lte_eNB_common_vars.txdata[eNB_id][aa]
|
||||
[subframe*PHY_vars_eNB->lte_frame_parms.samples_per_tti],
|
||||
PHY_vars_eNB->lte_frame_parms.samples_per_tti);
|
||||
for (aa=0; aa<eNB->frame_parms.nb_antennas_tx; aa++) {
|
||||
tx_lev += signal_energy(&eNB->common_vars.txdata[eNB_id][aa]
|
||||
[subframe*eNB->frame_parms.samples_per_tti],
|
||||
eNB->frame_parms.samples_per_tti);
|
||||
}
|
||||
|
||||
tx_lev_dB = (unsigned int) dB_fixed(tx_lev);
|
||||
|
||||
if (n_frames==1) {
|
||||
printf("tx_lev = %d (%d dB)\n",tx_lev,tx_lev_dB);
|
||||
// write_output("txsig0.m","txs0", &PHY_vars_eNB->lte_eNB_common_vars.txdata[0][0][subframe* PHY_vars_eNB->lte_frame_parms.samples_per_tti],
|
||||
// write_output("txsig0.m","txs0", &eNB->common_vars.txdata[0][0][subframe* eNB->frame_parms.samples_per_tti],
|
||||
|
||||
// PHY_vars_eNB->lte_frame_parms.samples_per_tti,1,1);
|
||||
// eNB->frame_parms.samples_per_tti,1,1);
|
||||
}
|
||||
|
||||
|
||||
for (i=0; i<2*frame_parms->samples_per_tti; i++) {
|
||||
for (aa=0; aa<PHY_vars_eNB->lte_frame_parms.nb_antennas_tx; aa++) {
|
||||
s_re[aa][i] = ((double)(((short *)PHY_vars_eNB->lte_eNB_common_vars.txdata[0][aa]))[(2*subframe*PHY_vars_UE->lte_frame_parms.samples_per_tti) + (i<<1)]);
|
||||
s_im[aa][i] = ((double)(((short *)PHY_vars_eNB->lte_eNB_common_vars.txdata[0][aa]))[(2*subframe*PHY_vars_UE->lte_frame_parms.samples_per_tti) +(i<<1)+1]);
|
||||
for (aa=0; aa<eNB->frame_parms.nb_antennas_tx; aa++) {
|
||||
s_re[aa][i] = ((double)(((short *)eNB->common_vars.txdata[0][aa]))[(2*subframe*UE->frame_parms.samples_per_tti) + (i<<1)]);
|
||||
s_im[aa][i] = ((double)(((short *)eNB->common_vars.txdata[0][aa]))[(2*subframe*UE->frame_parms.samples_per_tti) +(i<<1)+1]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -440,39 +423,38 @@ int main(int argc, char **argv)
|
||||
2*frame_parms->samples_per_tti,hold_channel);
|
||||
|
||||
//AWGN
|
||||
sigma2_dB = 10*log10((double)tx_lev) +10*log10((double)PHY_vars_eNB->lte_frame_parms.ofdm_symbol_size/(NB_RB*12)) - SNR;
|
||||
sigma2_dB = 10*log10((double)tx_lev) +10*log10((double)eNB->frame_parms.ofdm_symbol_size/(NB_RB*12)) - SNR;
|
||||
sigma2 = pow(10,sigma2_dB/10);
|
||||
|
||||
if (n_frames==1)
|
||||
printf("Sigma2 %f (sigma2_dB %f)\n",sigma2,sigma2_dB);
|
||||
|
||||
for (i=0; i<2*frame_parms->samples_per_tti; i++) {
|
||||
for (aa=0; aa<PHY_vars_eNB->lte_frame_parms.nb_antennas_rx; aa++) {
|
||||
for (aa=0; aa<eNB->frame_parms.nb_antennas_rx; aa++) {
|
||||
//printf("s_re[0][%d]=> %f , r_re[0][%d]=> %f\n",i,s_re[aa][i],i,r_re[aa][i]);
|
||||
((short*) PHY_vars_UE->lte_ue_common_vars.rxdata[aa])[(2*subframe*PHY_vars_UE->lte_frame_parms.samples_per_tti)+2*i] =
|
||||
((short*) UE->common_vars.rxdata[aa])[(2*subframe*UE->frame_parms.samples_per_tti)+2*i] =
|
||||
(short) (r_re[aa][i] + sqrt(sigma2/2)*gaussdouble(0.0,1.0));
|
||||
((short*) PHY_vars_UE->lte_ue_common_vars.rxdata[aa])[(2*subframe*PHY_vars_UE->lte_frame_parms.samples_per_tti)+2*i+1] =
|
||||
((short*) UE->common_vars.rxdata[aa])[(2*subframe*UE->frame_parms.samples_per_tti)+2*i+1] =
|
||||
(short) (r_im[aa][i] + (iqim*r_re[aa][i]) + sqrt(sigma2/2)*gaussdouble(0.0,1.0));
|
||||
}
|
||||
}
|
||||
|
||||
for (l=2; l<12; l++) {
|
||||
|
||||
slot_fep_mbsfn(PHY_vars_UE,
|
||||
slot_fep_mbsfn(UE,
|
||||
l,
|
||||
subframe%10,
|
||||
0,
|
||||
0);
|
||||
|
||||
if (PHY_vars_UE->perfect_ce==1) {
|
||||
if (UE->perfect_ce==1) {
|
||||
// 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);
|
||||
freq_channel(eNB2UE,UE->frame_parms.N_RB_DL,12*UE->frame_parms.N_RB_DL + 1);
|
||||
for(k=0; k<NUMBER_OF_eNB_MAX; k++) {
|
||||
for(aa=0; aa<frame_parms->nb_antennas_tx; aa++) {
|
||||
for (aarx=0; aarx<frame_parms->nb_antennas_rx; aarx++) {
|
||||
for (i=0; i<frame_parms->N_RB_DL*12; i++) {
|
||||
((int16_t *) PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[k][(aa<<1)+aarx])[2*i+(l*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(int16_t)(eNB2UE->chF[aarx+(aa*frame_parms->nb_antennas_rx)][i].x*AMP);
|
||||
((int16_t *) PHY_vars_UE->lte_ue_common_vars.dl_ch_estimates[k][(aa<<1)+aarx])[2*i+1+(l*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(int16_t)(eNB2UE->chF[aarx+(aa*frame_parms->nb_antennas_rx)][i].y*AMP);
|
||||
((int16_t *) UE->common_vars.dl_ch_estimates[k][(aa<<1)+aarx])[2*i+(l*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(int16_t)(eNB2UE->chF[aarx+(aa*frame_parms->nb_antennas_rx)][i].x*AMP);
|
||||
((int16_t *) UE->common_vars.dl_ch_estimates[k][(aa<<1)+aarx])[2*i+1+(l*frame_parms->ofdm_symbol_size+LTE_CE_FILTER_LENGTH)*2]=(int16_t)(eNB2UE->chF[aarx+(aa*frame_parms->nb_antennas_rx)][i].y*AMP);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -481,52 +463,52 @@ int main(int argc, char **argv)
|
||||
|
||||
if (l==6)
|
||||
for (l2=2;l2<7;l2++)
|
||||
rx_pmch(PHY_vars_UE,
|
||||
rx_pmch(UE,
|
||||
0,
|
||||
subframe%10,
|
||||
l2);
|
||||
if (l==6)
|
||||
for (l2=2;l2<7;l2++)
|
||||
rx_pmch(PHY_vars_UE,
|
||||
rx_pmch(UE,
|
||||
0,
|
||||
subframe%10,
|
||||
l2);
|
||||
if (l==11)
|
||||
for (l2=7;l2<12;l2++)
|
||||
rx_pmch(PHY_vars_UE,
|
||||
rx_pmch(UE,
|
||||
0,
|
||||
subframe%10,
|
||||
l2);
|
||||
}
|
||||
|
||||
PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->G = get_G(&PHY_vars_UE->lte_frame_parms,
|
||||
PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->nb_rb,
|
||||
PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->rb_alloc_even,
|
||||
get_Qm(PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->mcs),
|
||||
UE->dlsch_MCH[0]->harq_processes[0]->G = get_G(&UE->frame_parms,
|
||||
UE->dlsch_MCH[0]->harq_processes[0]->nb_rb,
|
||||
UE->dlsch_MCH[0]->harq_processes[0]->rb_alloc_even,
|
||||
get_Qm(UE->dlsch_MCH[0]->harq_processes[0]->mcs),
|
||||
1,2,
|
||||
PHY_vars_UE->frame_tx,subframe);
|
||||
PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->Qm = get_Qm(PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->mcs);
|
||||
UE->proc.proc_rxtx[0].frame_tx,subframe);
|
||||
UE->dlsch_MCH[0]->harq_processes[0]->Qm = get_Qm(UE->dlsch_MCH[0]->harq_processes[0]->mcs);
|
||||
|
||||
dlsch_unscrambling(&PHY_vars_UE->lte_frame_parms,1,PHY_vars_UE->dlsch_ue_MCH[0],
|
||||
PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->G,
|
||||
PHY_vars_UE->lte_ue_pdsch_vars_MCH[0]->llr[0],0,subframe<<1);
|
||||
dlsch_unscrambling(&UE->frame_parms,1,UE->dlsch_MCH[0],
|
||||
UE->dlsch_MCH[0]->harq_processes[0]->G,
|
||||
UE->pdsch_vars_MCH[0]->llr[0],0,subframe<<1);
|
||||
|
||||
ret = dlsch_decoding(PHY_vars_UE,
|
||||
PHY_vars_UE->lte_ue_pdsch_vars_MCH[0]->llr[0],
|
||||
&PHY_vars_UE->lte_frame_parms,
|
||||
PHY_vars_UE->dlsch_ue_MCH[0],
|
||||
PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0],
|
||||
ret = dlsch_decoding(UE,
|
||||
UE->pdsch_vars_MCH[0]->llr[0],
|
||||
&UE->frame_parms,
|
||||
UE->dlsch_MCH[0],
|
||||
UE->dlsch_MCH[0]->harq_processes[0],
|
||||
subframe,
|
||||
0,0,0);
|
||||
|
||||
if (n_frames==1)
|
||||
printf("MCH decoding returns %d\n",ret);
|
||||
|
||||
if (ret == (1+PHY_vars_UE->dlsch_ue_MCH[0]->max_turbo_iterations))
|
||||
if (ret == (1+UE->dlsch_MCH[0]->max_turbo_iterations))
|
||||
errs[0]++;
|
||||
|
||||
PHY_vars_UE->frame_tx++;
|
||||
PHY_vars_eNB->proc[sched_subframe].frame_tx++;
|
||||
UE->proc.proc_rxtx[0].frame_tx++;
|
||||
eNB->proc.proc_rxtx[0].frame_tx++;
|
||||
}
|
||||
|
||||
printf("errors %d/%d (Pe %e)\n",errs[round],trials,(double)errs[round]/trials);
|
||||
@@ -550,34 +532,18 @@ int main(int argc, char **argv)
|
||||
|
||||
|
||||
if (n_frames==1) {
|
||||
printf("Dumping PMCH files ( G %d)\n",PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->G);
|
||||
dump_mch(PHY_vars_UE,0,
|
||||
PHY_vars_UE->dlsch_ue_MCH[0]->harq_processes[0]->G,
|
||||
printf("Dumping PMCH files ( G %d)\n",UE->dlsch_MCH[0]->harq_processes[0]->G);
|
||||
dump_mch(UE,0,
|
||||
UE->dlsch_MCH[0]->harq_processes[0]->G,
|
||||
subframe);
|
||||
}
|
||||
|
||||
printf("Freeing dlsch structures\n");
|
||||
free_eNB_dlsch(PHY_vars_eNB->dlsch_eNB_MCH);
|
||||
free_ue_dlsch(PHY_vars_UE->dlsch_ue_MCH[0]);
|
||||
free_eNB_dlsch(eNB->dlsch_MCH);
|
||||
free_ue_dlsch(UE->dlsch_MCH[0]);
|
||||
|
||||
fclose(fd);
|
||||
|
||||
printf("Freeing channel I/O\n");
|
||||
|
||||
for (i=0; i<2; i++) {
|
||||
free(s_re[i]);
|
||||
free(s_im[i]);
|
||||
free(r_re[i]);
|
||||
free(r_im[i]);
|
||||
}
|
||||
|
||||
free(s_re);
|
||||
free(s_im);
|
||||
free(r_re);
|
||||
free(r_im);
|
||||
|
||||
// lte_sync_time_free();
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -104,13 +104,15 @@ int main(int argc, char **argv)
|
||||
double delay_avg=0;
|
||||
double ue_speed = 0;
|
||||
int NCS_config = 1,rootSequenceIndex=0;
|
||||
int threequarter_fs = 0;
|
||||
|
||||
logInit();
|
||||
|
||||
number_of_cards = 1;
|
||||
|
||||
|
||||
|
||||
while ((c = getopt (argc, argv, "hHaA:Cr:p:g:n:s:S:t:x:y:v:V:z:N:F:d:Z:L:R:")) != -1) {
|
||||
while ((c = getopt (argc, argv, "hHaA:Cr:p:g:n:s:S:t:x:y:v:V:z:N:F:d:Z:L:R:E")) != -1) {
|
||||
switch (c) {
|
||||
case 'a':
|
||||
printf("Running AWGN simulation\n");
|
||||
@@ -182,6 +184,10 @@ int main(int argc, char **argv)
|
||||
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
threequarter_fs=1;
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
n_frames = atoi(optarg);
|
||||
break;
|
||||
@@ -316,7 +322,7 @@ int main(int argc, char **argv)
|
||||
Nid_cell,
|
||||
3,
|
||||
N_RB_DL,
|
||||
0,
|
||||
threequarter_fs,
|
||||
osf,
|
||||
0);
|
||||
|
||||
@@ -395,8 +401,9 @@ int main(int argc, char **argv)
|
||||
eNB->frame_parms.prach_config_common.prach_ConfigInfo.highSpeedFlag=hs_flag;
|
||||
eNB->frame_parms.prach_config_common.prach_ConfigInfo.prach_FreqOffset=0;
|
||||
|
||||
eNB->node_function = eNodeB_3GPP;
|
||||
eNB->proc.subframe_rx = subframe;
|
||||
eNB->node_function = eNodeB_3GPP;
|
||||
eNB->proc.subframe_rx = subframe;
|
||||
eNB->proc.subframe_prach = subframe;
|
||||
|
||||
/* N_ZC not used later, so prach_fmt is also useless, don't set */
|
||||
//prach_fmt = get_prach_fmt(eNB->frame_parms.prach_config_common.prach_ConfigInfo.prach_ConfigIndex,
|
||||
@@ -530,7 +537,7 @@ int main(int argc, char **argv)
|
||||
write_output("rxsig0.m","rxs0",
|
||||
&eNB->common_vars.rxdata[0][0][subframe*frame_parms->samples_per_tti],
|
||||
frame_parms->samples_per_tti,1,1);
|
||||
write_output("rxsigF0.m","rxsF0", &eNB->common_vars.rxdataF[0][0][0],512*nsymb*2,2,1);
|
||||
write_output("rxsigF0.m","rxsF0", eNB->prach_vars.rxsigF[0],6144,1,1);
|
||||
write_output("prach_preamble.m","prachp",&eNB->X_u[0],839,1,1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,11 @@ int main(int argc, char **argv)
|
||||
uint8_t snr1set=0;
|
||||
//mod_sym_t **txdataF;
|
||||
int **txdata;
|
||||
double s_re[2][30720],s_im[2][30720],r_re[2][30720],r_im[2][30720];
|
||||
double s_re0[30720],s_re1[30720],s_im0[30720],s_im1[30720],r_re0[30720],r_im0[30720],r_re1[30720],r_im1[30720];
|
||||
double *s_re[2]={s_re0,s_re1};
|
||||
double *s_im[2]={s_im0,s_im1};
|
||||
double *r_re[2]={r_re0,r_re1};
|
||||
double *r_im[2]={r_im0,r_im1};
|
||||
double ricean_factor=0.0000005,iqim=0.0;
|
||||
|
||||
int trial, n_trials, ntrials=1, n_errors;
|
||||
@@ -352,12 +356,15 @@ int main(int argc, char **argv)
|
||||
|
||||
init_ncs_cell(&UE->frame_parms,UE->ncs_cell);
|
||||
|
||||
eNB->frame_parms.pucch_config_common.deltaPUCCH_Shift = 1;
|
||||
eNB->frame_parms.pucch_config_common.nRB_CQI = 0;
|
||||
eNB->frame_parms.pucch_config_common.nCS_AN = 0;
|
||||
UE->frame_parms.pucch_config_common.deltaPUCCH_Shift = 1;
|
||||
UE->frame_parms.pucch_config_common.nRB_CQI = 0;
|
||||
UE->frame_parms.pucch_config_common.nCS_AN = 0;
|
||||
init_ul_hopping(&eNB->frame_parms);
|
||||
init_ul_hopping(&UE->frame_parms);
|
||||
|
||||
eNB->frame_parms.pucch_config_common.deltaPUCCH_Shift = 2;
|
||||
eNB->frame_parms.pucch_config_common.nRB_CQI = 4;
|
||||
eNB->frame_parms.pucch_config_common.nCS_AN = 6;
|
||||
UE->frame_parms.pucch_config_common.deltaPUCCH_Shift = 2;
|
||||
UE->frame_parms.pucch_config_common.nRB_CQI = 4;
|
||||
UE->frame_parms.pucch_config_common.nCS_AN = 6;
|
||||
|
||||
pucch_payload = 0;
|
||||
|
||||
|
||||
@@ -188,7 +188,12 @@ int main(int argc, char **argv)
|
||||
int **txdata;
|
||||
|
||||
LTE_DL_FRAME_PARMS *frame_parms;
|
||||
double s_re[2][30720],s_im[2][30720],r_re[2][30720],r_im[2][30720];
|
||||
double s_re0[30720],s_im0[30720],r_re0[30720],r_im0[30720];
|
||||
double s_re1[30720],s_im1[30720],r_re1[30720],r_im1[30720];
|
||||
double *s_re[2]={s_re0,s_re1};
|
||||
double *s_im[2]={s_im0,s_im1};
|
||||
double *r_re[2]={r_re0,r_re1};
|
||||
double *r_im[2]={r_im0,r_im1};
|
||||
double forgetting_factor=0.0; //in [0,1] 0 means a new channel every time, 1 means keep the same channel
|
||||
double iqim=0.0;
|
||||
uint8_t extended_prefix_flag=0;
|
||||
|
||||
@@ -318,7 +318,7 @@ void enb_config_display(void)
|
||||
for (j=0; j< enb_properties.properties[i]->nb_rrh_gw; j++) {
|
||||
if (enb_properties.properties[i]->rrh_gw_config[j].active == 1 ){
|
||||
printf( "\n\tRRH GW %d config for eNB %u:\n\n", j, i);
|
||||
printf( "\tinterface name : \t%s:\n",enb_properties.properties[i]->rrh_gw_if_name);
|
||||
printf( "\tinterface name : \t%s:\n",enb_properties.properties[i]->rrh_gw_config[j].rrh_gw_if_name);
|
||||
printf( "\tlocal address : \t%s:\n",enb_properties.properties[i]->rrh_gw_config[j].local_address);
|
||||
printf( "\tlocal port : \t%d:\n",enb_properties.properties[i]->rrh_gw_config[j].local_port);
|
||||
printf( "\tremote address : \t%s:\n",enb_properties.properties[i]->rrh_gw_config[j].remote_address);
|
||||
@@ -2344,7 +2344,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
||||
|
||||
enb_properties.properties[enb_properties_index]->nb_rrh_gw += 1;
|
||||
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_if_name = strdup(if_name);
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_config[j].rrh_gw_if_name = strdup(if_name);
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_config[j].local_address = strdup(ipv4);
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_config[j].remote_address = strdup(ipv4_remote);
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_config[j].local_port = local_port;
|
||||
@@ -2393,7 +2393,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
||||
}
|
||||
} else {
|
||||
enb_properties.properties[enb_properties_index]->nb_rrh_gw = 0;
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_if_name = "none";
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_config[j].rrh_gw_if_name = "none";
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_config[j].local_address = "0.0.0.0";
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_config[j].remote_address = "0.0.0.0";
|
||||
enb_properties.properties[enb_properties_index]->rrh_gw_config[j].local_port= 0;
|
||||
|
||||
@@ -83,6 +83,7 @@ typedef struct rrh_gw_config_s {
|
||||
unsigned udp:1;
|
||||
unsigned raw:1;
|
||||
unsigned active:1;
|
||||
char *rrh_gw_if_name;
|
||||
char *local_address;
|
||||
char *remote_address;
|
||||
uint16_t local_port;
|
||||
|
||||
@@ -621,7 +621,9 @@ typedef struct {
|
||||
uint8_t DLSCH_dci_size_bits;
|
||||
|
||||
/// DCI buffer for DLSCH
|
||||
uint8_t DLSCH_DCI[8][(MAX_DCI_SIZE_BITS>>3)+1];
|
||||
/* rounded to 32 bits unit (actual value should be 8 due to the logic
|
||||
* of the function generate_dci0) */
|
||||
uint8_t DLSCH_DCI[8][(((MAX_DCI_SIZE_BITS)+31)>>5)*4];
|
||||
|
||||
/// Number of Allocated RBs for DL after scheduling (prior to frequency allocation)
|
||||
uint16_t nb_rb[8]; // num_max_harq
|
||||
@@ -645,7 +647,9 @@ typedef struct {
|
||||
uint8_t assigned_mcs_ul;
|
||||
|
||||
/// DCI buffer for ULSCH
|
||||
uint8_t ULSCH_DCI[8][(MAX_DCI_SIZE_BITS>>3)+1];
|
||||
/* rounded to 32 bits unit (actual value should be 8 due to the logic
|
||||
* of the function generate_dci0) */
|
||||
uint8_t ULSCH_DCI[8][(((MAX_DCI_SIZE_BITS)+31)>>5)*4];
|
||||
|
||||
/// DL DAI
|
||||
uint8_t DAI;
|
||||
|
||||
@@ -434,7 +434,7 @@ schedule_ue_spec(
|
||||
int N_RBG[MAX_NUM_CCs];
|
||||
unsigned char aggregation;
|
||||
mac_rlc_status_resp_t rlc_status;
|
||||
unsigned char header_len_dcch=0, header_len_dcch_tmp=0, header_len_dcch_last=0;
|
||||
unsigned char header_len_dcch=0, header_len_dcch_tmp=0;
|
||||
unsigned char header_len_dtch=0, header_len_dtch_tmp=0, header_len_dtch_last=0;
|
||||
unsigned char ta_len=0;
|
||||
unsigned char sdu_lcids[NB_RB_MAX],lcid,offset,num_sdus=0;
|
||||
|
||||
@@ -1010,10 +1010,11 @@ void dump_CCE_table(int *CCE_table,const int nCCE,const unsigned short rnti,cons
|
||||
int nb_candidates = 0,i;
|
||||
unsigned int Yk;
|
||||
|
||||
printf("CCE 0: ");
|
||||
for (i=0;i<nCCE;i++) {
|
||||
printf("%1d.",CCE_table[i]);
|
||||
if ((i&7) == 0)
|
||||
printf("\n");
|
||||
if ((i&7) == 7)
|
||||
printf("\n CCE %d: ");
|
||||
}
|
||||
|
||||
Yk = (unsigned int)rnti;
|
||||
|
||||
@@ -1167,6 +1167,22 @@ rrc_pdcp_config_asn1_req (
|
||||
break;
|
||||
|
||||
case SRB_ToAddMod__rlc_Config_PR_defaultValue:
|
||||
pdcp_config_req_asn1 (
|
||||
ctxt_pP,
|
||||
pdcp_p,
|
||||
SRB_FLAG_YES,
|
||||
rlc_type,
|
||||
action,
|
||||
lc_id,
|
||||
mch_id,
|
||||
srb_id,
|
||||
srb_sn,
|
||||
0, // drb_report
|
||||
0, // header compression
|
||||
security_modeP,
|
||||
kRRCenc_pP,
|
||||
kRRCint_pP,
|
||||
kUPenc_pP);
|
||||
// already the default values
|
||||
break;
|
||||
|
||||
|
||||
@@ -202,6 +202,27 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP
|
||||
|
||||
case SRB_ToAddMod__rlc_Config_PR_defaultValue:
|
||||
//#warning TO DO SRB_ToAddMod__rlc_Config_PR_defaultValue
|
||||
LOG_I(RRC, "RLC SRB1 is default value !!\n");
|
||||
struct RLC_Config__am * config_am_pP = &srb_toaddmod_p->rlc_Config->choice.explicitValue.choice.am;
|
||||
config_am_pP->dl_AM_RLC.t_Reordering = T_Reordering_ms35;
|
||||
config_am_pP->dl_AM_RLC.t_StatusProhibit = T_StatusProhibit_ms0;
|
||||
config_am_pP->ul_AM_RLC.t_PollRetransmit = T_PollRetransmit_ms45;
|
||||
config_am_pP->ul_AM_RLC.pollPDU = PollPDU_pInfinity;
|
||||
config_am_pP->ul_AM_RLC.pollByte = PollByte_kBinfinity;
|
||||
config_am_pP->ul_AM_RLC.maxRetxThreshold = UL_AM_RLC__maxRetxThreshold_t4;
|
||||
|
||||
if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_AM) != NULL) {
|
||||
config_req_rlc_am_asn1 (
|
||||
ctxt_pP,
|
||||
SRB_FLAG_YES,
|
||||
&srb_toaddmod_p->rlc_Config->choice.explicitValue.choice.am,
|
||||
rb_id);
|
||||
} else {
|
||||
LOG_E(RLC, PROTOCOL_CTXT_FMT" ERROR IN ALLOCATING SRB %d \n",
|
||||
PROTOCOL_CTXT_ARGS(ctxt_pP),
|
||||
rb_id);
|
||||
}
|
||||
/*
|
||||
if (rrc_rlc_add_rlc (ctxt_pP, SRB_FLAG_YES, MBMS_FLAG_NO, rb_id, lc_id, RLC_MODE_UM) != NULL) {
|
||||
config_req_rlc_um_asn1(
|
||||
ctxt_pP,
|
||||
@@ -217,6 +238,7 @@ rlc_op_status_t rrc_rlc_config_asn1_req (const protocol_ctxt_t * const ctxt_pP
|
||||
PROTOCOL_CTXT_ARGS(ctxt_pP),
|
||||
rb_id);
|
||||
}
|
||||
*/
|
||||
|
||||
break;
|
||||
|
||||
|
||||
@@ -384,7 +384,7 @@ ue_meas_filtering(
|
||||
|
||||
void
|
||||
ue_measurement_report_triggering(
|
||||
const protocol_ctxt_t* const ctxt_pP,
|
||||
protocol_ctxt_t* const ctxt_pP,
|
||||
const uint8_t eNB_index
|
||||
);
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t* c
|
||||
*/
|
||||
static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id );
|
||||
|
||||
static void rrc_ue_generate_MeasurementReport( const protocol_ctxt_t* const ctxt_pP, uint8_t eNB_index );
|
||||
static void rrc_ue_generate_MeasurementReport(protocol_ctxt_t* const ctxt_pP, uint8_t eNB_index );
|
||||
|
||||
static uint8_t check_trigger_meas_event(
|
||||
uint8_t module_idP,
|
||||
@@ -3562,7 +3562,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_
|
||||
|
||||
//Below routine implements Measurement Reporting procedure from 36.331 Section 5.5.5
|
||||
//-----------------------------------------------------------------------------
|
||||
static void rrc_ue_generate_MeasurementReport( const protocol_ctxt_t* const ctxt_pP, uint8_t eNB_index )
|
||||
static void rrc_ue_generate_MeasurementReport(protocol_ctxt_t* const ctxt_pP, uint8_t eNB_index )
|
||||
{
|
||||
|
||||
uint8_t buffer[32], size;
|
||||
@@ -3643,7 +3643,7 @@ static void rrc_ue_generate_MeasurementReport( const protocol_ctxt_t* const ctxt
|
||||
|
||||
// Measurement report triggering, described in 36.331 Section 5.5.4.1: called periodically
|
||||
//-----------------------------------------------------------------------------
|
||||
void ue_measurement_report_triggering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index )
|
||||
void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index )
|
||||
{
|
||||
uint8_t i,j;
|
||||
Hysteresis_t hys;
|
||||
|
||||
@@ -1259,7 +1259,6 @@ int rrc_eNB_process_S1AP_E_RAB_SETUP_REQ(MessageDef *msg_p, const char *msg_name
|
||||
{
|
||||
uint16_t ue_initial_id;
|
||||
uint32_t eNB_ue_s1ap_id;
|
||||
MessageDef *message_gtpv1u_p = NULL;
|
||||
gtpv1u_enb_create_tunnel_req_t create_tunnel_req;
|
||||
gtpv1u_enb_create_tunnel_resp_t create_tunnel_resp;
|
||||
|
||||
|
||||
@@ -79,6 +79,14 @@ rrc_eNB_S1AP_remove_ue_ids(
|
||||
eNB_RRC_INST* const rrc_instance_pP,
|
||||
struct rrc_ue_s1ap_ids_s* const ue_ids_pP
|
||||
);
|
||||
|
||||
void
|
||||
rrc_eNB_generate_dedicatedRRCConnectionReconfiguration(const protocol_ctxt_t* const ctxt_pP,
|
||||
rrc_eNB_ue_context_t* const ue_context_pP,
|
||||
const uint8_t ho_state
|
||||
);
|
||||
|
||||
|
||||
/*! \fn void rrc_eNB_send_S1AP_INITIAL_CONTEXT_SETUP_RESP(uint8_t mod_id, uint8_t ue_index)
|
||||
*\brief create a S1AP_INITIAL_CONTEXT_SETUP_RESP for S1AP.
|
||||
*\param ctxt_pP Running context.
|
||||
|
||||
@@ -577,7 +577,7 @@ nwGtpv1uProcessGpdu( NwGtpv1uStackT *thiz,
|
||||
" G-PDU ltid %u size %u",
|
||||
tunnelEndPointKey.teid,
|
||||
gpduLen);
|
||||
GTPU_ERROR("Received T-PDU over non-existent tunnel end-point '%x' from "NW_IPV4_ADDR"\n",
|
||||
GTPU_DEBUG("Received T-PDU over non-existent tunnel end-point '%x' from "NW_IPV4_ADDR"\n",
|
||||
ntohl(msgHdr->teid), NW_IPV4_ADDR_FORMAT((peerIp)));
|
||||
}
|
||||
|
||||
|
||||
@@ -185,12 +185,11 @@ int main (int argc, const char* argv[])
|
||||
usim_data.imsi.u.num.digit15 = 0b1111;
|
||||
#endif
|
||||
#if (SELECTED_PLMN == OAI_LTEBOX)
|
||||
#warning "IMSI 208.93.00001111"
|
||||
/*
|
||||
* International Mobile Subscriber Identity
|
||||
* IMSI = MCC + MNC + MSIN = 208 (France) + 10 (SFR) + 00001234
|
||||
*/
|
||||
#warning "IMSI 208.93.0100001110"
|
||||
#warning "IMSI 208.93.0100001111"
|
||||
usim_data.imsi.length = 8;
|
||||
usim_data.imsi.u.num.parity = ODD_PARITY; // Parity: even
|
||||
usim_data.imsi.u.num.digit1 = 2; // MCC digit 1
|
||||
|
||||
@@ -49,7 +49,7 @@ Description Implements the API used by the NAS layer to read/write
|
||||
#include "usim_api.h"
|
||||
#include "nas_log.h"
|
||||
#include "memory.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include "aka_functions.h"
|
||||
#include <string.h> // memcpy, memset
|
||||
#include <stdlib.h> // malloc, free
|
||||
|
||||
@@ -49,5 +49,7 @@ int s1ap_eNB_initial_ctxt_resp(
|
||||
int s1ap_eNB_ue_capabilities(instance_t instance,
|
||||
s1ap_ue_cap_info_ind_t *ue_cap_info_ind_p);
|
||||
|
||||
int s1ap_eNB_e_rab_setup_resp(instance_t instance,
|
||||
s1ap_e_rab_setup_resp_t *e_rab_setup_resp_p);
|
||||
|
||||
#endif /* S1AP_ENB_NAS_PROCEDURES_H_ */
|
||||
|
||||
@@ -233,7 +233,7 @@ int trx_brf_reset_stats(openair0_device* device) {
|
||||
* \param card the hardware to use
|
||||
* \returns 0 in success
|
||||
*/
|
||||
int trx_brf_stop(int card) {
|
||||
int trx_brf_stop(openair0_device* device) {
|
||||
|
||||
return(0);
|
||||
|
||||
|
||||
@@ -179,6 +179,8 @@ int openair_device_ioctl(struct inode *inode,struct file *filp, unsigned int cmd
|
||||
|
||||
int tmp;
|
||||
|
||||
unsigned int user_args[4];
|
||||
|
||||
static unsigned int update_firmware_command;
|
||||
static unsigned int update_firmware_address;
|
||||
static unsigned int update_firmware_length;
|
||||
@@ -328,15 +330,38 @@ int openair_device_ioctl(struct inode *inode,struct file *filp, unsigned int cmd
|
||||
acknowledge with no limit */
|
||||
|
||||
#define MAX_IOCTL_ACK_CNT 500
|
||||
update_firmware_command = *((unsigned int*)arg);
|
||||
|
||||
/* 'arg' is an unsigned long and is supposed to be big enough
|
||||
* to hold an address - this hypothesis is okay for i386 and x86_64
|
||||
* maybe not somewhere else
|
||||
* this will probably fail with older kernels
|
||||
* (works with 3.17 on x86_64)
|
||||
*/
|
||||
tmp = copy_from_user(&user_args, (void*)arg, 4*sizeof(unsigned int));
|
||||
if (tmp) {
|
||||
printk("[openair][IOCTL] UPDATE_FIRMWARE: error copying parameters to kernel-space (%d bytes uncopied).\n", tmp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
update_firmware_command = user_args[0];
|
||||
|
||||
switch (update_firmware_command) {
|
||||
case UPDATE_FIRMWARE_TRANSFER_BLOCK:
|
||||
update_firmware_address = ((unsigned int*)arg)[1];
|
||||
update_firmware_length = ((unsigned int*)arg)[2];
|
||||
update_firmware_address = user_args[1];
|
||||
update_firmware_length = user_args[2];
|
||||
|
||||
/* This is totally wrong on x86_64: a pointer is 64 bits and
|
||||
* unsigned int is 32 bits. The userspace program has to ensure
|
||||
* that its buffer address fits into 32 bits.
|
||||
* If it proves a too strong requirement, we may change things
|
||||
* in the future.
|
||||
* The compiler emits a warning here. Do not remove this warning!
|
||||
* This is to clearly remember this problem.
|
||||
* If you require the compilation to work with zero warning,
|
||||
* consider this one as an exception and find a proper workaround.
|
||||
*/
|
||||
update_firmware_ubuffer = user_args[3];
|
||||
|
||||
update_firmware_ubuffer = (unsigned int*)((unsigned int*)arg)[3];
|
||||
update_firmware_kbuffer = (unsigned int*)kmalloc(update_firmware_length * 4 /* 4 because kmalloc expects bytes */,
|
||||
GFP_KERNEL);
|
||||
|
||||
@@ -390,8 +415,8 @@ int openair_device_ioctl(struct inode *inode,struct file *filp, unsigned int cmd
|
||||
|
||||
case UPDATE_FIRMWARE_CLEAR_BSS:
|
||||
|
||||
update_firmware_bss_address = ((unsigned int*)arg)[1];
|
||||
update_firmware_bss_size = ((unsigned int*)arg)[2];
|
||||
update_firmware_bss_address = user_args[1];
|
||||
update_firmware_bss_size = user_args[2];
|
||||
sparc_tmp_0 = update_firmware_bss_address;
|
||||
sparc_tmp_1 = update_firmware_bss_size;
|
||||
|
||||
@@ -411,8 +436,8 @@ int openair_device_ioctl(struct inode *inode,struct file *filp, unsigned int cmd
|
||||
|
||||
case UPDATE_FIRMWARE_START_EXECUTION:
|
||||
|
||||
update_firmware_start_address = ((unsigned int*)arg)[1];
|
||||
update_firmware_stack_pointer = ((unsigned int*)arg)[2];
|
||||
update_firmware_start_address = user_args[1];
|
||||
update_firmware_stack_pointer = user_args[2];
|
||||
sparc_tmp_0 = update_firmware_start_address;
|
||||
sparc_tmp_1 = update_firmware_stack_pointer;
|
||||
|
||||
|
||||
@@ -774,6 +774,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg) {
|
||||
openair0_cfg[card].rxbase[ant] = (int32_t*)openair0_exmimo_pci[card].adc_head[ant];
|
||||
openair0_cfg[card].txbase[ant] = (int32_t*)openair0_exmimo_pci[card].dac_head[ant];
|
||||
}
|
||||
openair0_cfg[card].mmapped_dma = 1;
|
||||
}
|
||||
|
||||
create_watchdog(device);
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <getopt.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include "openair_device.h"
|
||||
@@ -239,6 +240,18 @@ void find_and_transfer_section(char* section_name, unsigned int verboselevel) {
|
||||
/* Dynamically allocate a chunk of memory to store the section into. */
|
||||
section_content = (char*)malloc(elf_Shdr.sh_size);
|
||||
|
||||
/* Fail if the address returned by malloc does not fit in 32 bits.
|
||||
* The kernel driver gets this address as 32 bits and uses it to copy
|
||||
* from userspace. If the address does not fit into 32 bits the kernel
|
||||
* will copy garbage or fail to copy completely.
|
||||
* To be reworked if things do not work on some setups.
|
||||
*/
|
||||
if (sizeof(char*) > 4 && (((uintptr_t)section_content)>>32)) {
|
||||
fprintf(stderr, "FATAL ERROR: an internal serious problem has been encountered.\n");
|
||||
fprintf(stderr, "Contact the authors so as to solve this issue.\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if (!section_content) {
|
||||
fprintf(stderr, "Error: could not dynamically allocate %d bytes for section %s.\n",
|
||||
elf_Shdr.sh_size, SecNameStnTable + elf_Shdr.sh_name);
|
||||
@@ -281,6 +294,13 @@ void find_and_transfer_section(char* section_name, unsigned int verboselevel) {
|
||||
ioctl_params[0] = UPDATE_FIRMWARE_TRANSFER_BLOCK;
|
||||
ioctl_params[1] = elf_Shdr.sh_addr;
|
||||
ioctl_params[2] = elf_Shdr.sh_size / 4;
|
||||
/* This is wrong on x86_64 because a pointer is 64 bits and
|
||||
* an unsigned int is only 32 bits.
|
||||
* The compiler emits a warning, but the test
|
||||
* above on the value of section_content makes it work
|
||||
* (hopefully).
|
||||
* To be changed if things do not work.
|
||||
*/
|
||||
ioctl_params[3] = (unsigned int)((unsigned int*)section_content);
|
||||
//invert4(ioctl_params[1]);
|
||||
//invert4(ioctl_params[2]);
|
||||
|
||||
@@ -632,7 +632,7 @@ extern "C" {
|
||||
|
||||
} else {
|
||||
printf("Found USRP B200");
|
||||
args += ",num_send_frames=256,num_recv_frames=256, send_frame_size=4096, recv_frame_size=4096" ;
|
||||
args += ",num_send_frames=256,num_recv_frames=256, send_frame_size=15360, recv_frame_size=15360" ;
|
||||
s->usrp = uhd::usrp::multi_usrp::make(args);
|
||||
|
||||
// s->usrp->set_rx_subdev_spec(rx_subdev);
|
||||
|
||||
Binary file not shown.
@@ -22,7 +22,11 @@ eNBs =
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
{
|
||||
node_function = "eNodeB_3GPP";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
|
||||
@@ -23,6 +23,9 @@ eNBs =
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
node_function = "eNodeB_3GPP";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
|
||||
@@ -50,7 +50,7 @@ eNBs =
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -33;
|
||||
pdsch_referenceSignalPower = -30;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
|
||||
@@ -49,7 +49,7 @@ eNBs =
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -24;
|
||||
pdsch_referenceSignalPower = -23;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
|
||||
@@ -50,7 +50,7 @@ eNBs =
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -30;
|
||||
pdsch_referenceSignalPower = -27;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
|
||||
@@ -49,7 +49,7 @@ eNBs =
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -21;
|
||||
pdsch_referenceSignalPower = -19;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
|
||||
@@ -50,7 +50,7 @@ eNBs =
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -27;
|
||||
pdsch_referenceSignalPower = -24;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
|
||||
@@ -49,7 +49,7 @@ eNBs =
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -18;
|
||||
pdsch_referenceSignalPower = -16;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
|
||||
@@ -0,0 +1,294 @@
|
||||
Active_eNBs = ( "eNB_Eurecom_LTEBox");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
eNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
eNB_ID = 0xe00;
|
||||
|
||||
cell_type = "CELL_MACRO_ENB";
|
||||
|
||||
eNB_name = "eNB_Eurecom_LTEBox";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = "1";
|
||||
|
||||
mobile_country_code = "208";
|
||||
|
||||
mobile_network_code = "93";
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
//First carrier -> Master
|
||||
{
|
||||
node_function = "NGFI_RCC_IF4p5";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 7;
|
||||
downlink_frequency = 2660000000L;
|
||||
uplink_frequency_offset = -120000000;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antenna_ports = 1;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 125;
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -29;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 1;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -90;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -96;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -108;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
|
||||
ue_TransmissionMode = 1;
|
||||
},
|
||||
// second carrier-> for ERCOM
|
||||
{
|
||||
node_function = "eNodeB_3GPP_BBU" # should be verified
|
||||
//node_function = "NGFI_RCC_IF5" # should be verified
|
||||
node_timing = "synch_to_other";
|
||||
node_synch_ref = 0; #should
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 7;
|
||||
downlink_frequency = 2660000000L;
|
||||
uplink_frequency_offset = -120000000;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antenna_ports = 1;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 125;
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -29;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 1;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -90;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -96;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -108;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
|
||||
ue_TransmissionMode = 1;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
srb1_parameters :
|
||||
{
|
||||
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||
timer_poll_retransmit = 80;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||
timer_reordering = 35;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||
timer_status_prohibit = 0;
|
||||
|
||||
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||
poll_pdu = 4;
|
||||
|
||||
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||
poll_byte = 99999;
|
||||
|
||||
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||
max_retx_threshold = 4;
|
||||
}
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "127.0.0.3";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "lo";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "127.0.0.2/24";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "lo";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "127.0.0.4/24";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
|
||||
rrh_gw_config = (
|
||||
{
|
||||
local_if_name = "eth2";
|
||||
remote_address = "00:13:95:1f:a0:af"; #Conga's MAC
|
||||
local_address = "90:e2:ba:c5:fc:04";
|
||||
local_port = 50000; #for raw option local port must be the same to remote
|
||||
remote_port = 50000;
|
||||
rrh_gw_active = "yes";
|
||||
tr_preference = "raw_if4p5";
|
||||
rf_preference = "usrp_b200";
|
||||
iq_txshift = 4;
|
||||
tx_sample_advance = 80;
|
||||
tx_scheduling_advance = 9;
|
||||
},
|
||||
//second config for Ercom
|
||||
{
|
||||
local_if_name = "eth1.300";
|
||||
remote_address = "00:21:5e:91:5c:7e"; # should be updated with ERCOM's MAC
|
||||
local_address = "f0:1f:af:db:b9:c8";
|
||||
local_port = 50000; #for raw option local port must be the same to remote
|
||||
remote_port = 50000;
|
||||
rrh_gw_active = "yes";
|
||||
tr_preference = "raw_if5_mobipass";
|
||||
rf_preference = "usrp_b200";
|
||||
iq_txshift = 4;
|
||||
tx_sample_advance = 80;
|
||||
tx_scheduling_advance = 9;
|
||||
}
|
||||
);
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ eNBs =
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -29;
|
||||
pdsch_referenceSignalPower = -24;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
|
||||
@@ -38,6 +38,7 @@ eNBs =
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
nb_antenna_ports = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 125;
|
||||
prach_root = 0;
|
||||
@@ -49,7 +50,7 @@ eNBs =
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -29;
|
||||
pdsch_referenceSignalPower = -24;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
@@ -67,29 +68,29 @@ eNBs =
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -90;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -96;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
pusch_p0_Nominal = -96;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -103;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -108;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -104;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
@@ -100,7 +101,7 @@ eNBs =
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
|
||||
ue_TransmissionMode = 1;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
Active_eNBs = ( "eNB_Eurecom_LTEBox");
|
||||
# Asn1_verbosity, choice in: none, info, annoying
|
||||
Asn1_verbosity = "none";
|
||||
|
||||
eNBs =
|
||||
(
|
||||
{
|
||||
////////// Identification parameters:
|
||||
eNB_ID = 0xe00;
|
||||
|
||||
cell_type = "CELL_MACRO_ENB";
|
||||
|
||||
eNB_name = "eNB_Eurecom_LTEBox";
|
||||
|
||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||
tracking_area_code = "1";
|
||||
|
||||
mobile_country_code = "208";
|
||||
|
||||
mobile_network_code = "93";
|
||||
|
||||
////////// Physical parameters:
|
||||
|
||||
component_carriers = (
|
||||
{
|
||||
node_function = "NGFI_RRU_IF4p5";
|
||||
node_timing = "synch_to_ext_device";
|
||||
node_synch_ref = 0;
|
||||
frame_type = "FDD";
|
||||
tdd_config = 3;
|
||||
tdd_config_s = 0;
|
||||
prefix_type = "NORMAL";
|
||||
eutra_band = 7;
|
||||
downlink_frequency = 2660000000L;
|
||||
uplink_frequency_offset = -120000000;
|
||||
Nid_cell = 0;
|
||||
N_RB_DL = 50;
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antenna_ports =1 ;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 125;
|
||||
prach_root = 0;
|
||||
prach_config_index = 0;
|
||||
prach_high_speed = "DISABLE";
|
||||
prach_zero_correlation = 1;
|
||||
prach_freq_offset = 2;
|
||||
pucch_delta_shift = 1;
|
||||
pucch_nRB_CQI = 1;
|
||||
pucch_nCS_AN = 0;
|
||||
pucch_n1_AN = 32;
|
||||
pdsch_referenceSignalPower = -29;
|
||||
pdsch_p_b = 0;
|
||||
pusch_n_SB = 1;
|
||||
pusch_enable64QAM = "DISABLE";
|
||||
pusch_hoppingMode = "interSubFrame";
|
||||
pusch_hoppingOffset = 0;
|
||||
pusch_groupHoppingEnabled = "ENABLE";
|
||||
pusch_groupAssignment = 0;
|
||||
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||
pusch_nDMRS1 = 1;
|
||||
phich_duration = "NORMAL";
|
||||
phich_resource = "ONESIXTH";
|
||||
srs_enable = "DISABLE";
|
||||
/* srs_BandwidthConfig =;
|
||||
srs_SubframeConfig =;
|
||||
srs_ackNackST =;
|
||||
srs_MaxUpPts =;*/
|
||||
|
||||
pusch_p0_Nominal = -90;
|
||||
pusch_alpha = "AL1";
|
||||
pucch_p0_Nominal = -96;
|
||||
msg3_delta_Preamble = 6;
|
||||
pucch_deltaF_Format1 = "deltaF2";
|
||||
pucch_deltaF_Format1b = "deltaF3";
|
||||
pucch_deltaF_Format2 = "deltaF0";
|
||||
pucch_deltaF_Format2a = "deltaF0";
|
||||
pucch_deltaF_Format2b = "deltaF0";
|
||||
|
||||
rach_numberOfRA_Preambles = 64;
|
||||
rach_preamblesGroupAConfig = "DISABLE";
|
||||
/*
|
||||
rach_sizeOfRA_PreamblesGroupA = ;
|
||||
rach_messageSizeGroupA = ;
|
||||
rach_messagePowerOffsetGroupB = ;
|
||||
*/
|
||||
rach_powerRampingStep = 4;
|
||||
rach_preambleInitialReceivedTargetPower = -108;
|
||||
rach_preambleTransMax = 10;
|
||||
rach_raResponseWindowSize = 10;
|
||||
rach_macContentionResolutionTimer = 48;
|
||||
rach_maxHARQ_Msg3Tx = 4;
|
||||
|
||||
pcch_default_PagingCycle = 128;
|
||||
pcch_nB = "oneT";
|
||||
bcch_modificationPeriodCoeff = 2;
|
||||
ue_TimersAndConstants_t300 = 1000;
|
||||
ue_TimersAndConstants_t301 = 1000;
|
||||
ue_TimersAndConstants_t310 = 1000;
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
|
||||
ue_TransmissionMode = 1;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
srb1_parameters :
|
||||
{
|
||||
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||
timer_poll_retransmit = 80;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||
timer_reordering = 35;
|
||||
|
||||
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||
timer_status_prohibit = 0;
|
||||
|
||||
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||
poll_pdu = 4;
|
||||
|
||||
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||
poll_byte = 99999;
|
||||
|
||||
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||
max_retx_threshold = 4;
|
||||
}
|
||||
|
||||
# ------- SCTP definitions
|
||||
SCTP :
|
||||
{
|
||||
# Number of streams to use in input/output
|
||||
SCTP_INSTREAMS = 2;
|
||||
SCTP_OUTSTREAMS = 2;
|
||||
};
|
||||
|
||||
|
||||
////////// MME parameters:
|
||||
mme_ip_address = ( { ipv4 = "192.168.12.155";
|
||||
ipv6 = "192:168:30::17";
|
||||
active = "yes";
|
||||
preference = "ipv4";
|
||||
}
|
||||
);
|
||||
|
||||
NETWORK_INTERFACES :
|
||||
{
|
||||
|
||||
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.155/24";
|
||||
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.155/24";
|
||||
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||
};
|
||||
|
||||
rrh_gw_config = (
|
||||
{
|
||||
local_if_name = "eth0";
|
||||
remote_address = "90:e2:ba:c5:fc:04";
|
||||
local_address = "00:13:95:1f:a0:af";
|
||||
local_port = 50000; #for raw option local port must be the same to remote
|
||||
remote_port = 50000;
|
||||
rrh_gw_active = "yes";
|
||||
tr_preference = "raw_if4p5";
|
||||
rf_preference = "usrp_b200";
|
||||
iq_txshift = 4;
|
||||
tx_sample_advance = 80;
|
||||
tx_scheduling_advance = 9;
|
||||
}
|
||||
);
|
||||
|
||||
log_config :
|
||||
{
|
||||
global_log_level ="info";
|
||||
global_log_verbosity ="medium";
|
||||
hw_log_level ="info";
|
||||
hw_log_verbosity ="medium";
|
||||
phy_log_level ="info";
|
||||
phy_log_verbosity ="medium";
|
||||
mac_log_level ="info";
|
||||
mac_log_verbosity ="high";
|
||||
rlc_log_level ="info";
|
||||
rlc_log_verbosity ="medium";
|
||||
pdcp_log_level ="info";
|
||||
pdcp_log_verbosity ="medium";
|
||||
rrc_log_level ="info";
|
||||
rrc_log_verbosity ="medium";
|
||||
};
|
||||
}
|
||||
);
|
||||
@@ -38,6 +38,7 @@ eNBs =
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
nb_antenna_ports = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 125;
|
||||
prach_root = 0;
|
||||
@@ -100,7 +101,7 @@ eNBs =
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
|
||||
ue_TransmissionMode = 1;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ eNBs =
|
||||
Nid_cell_mbsfn = 0;
|
||||
nb_antennas_tx = 1;
|
||||
nb_antennas_rx = 1;
|
||||
nb_antenna_ports = 1;
|
||||
tx_gain = 90;
|
||||
rx_gain = 125;
|
||||
prach_root = 0;
|
||||
@@ -100,7 +101,7 @@ eNBs =
|
||||
ue_TimersAndConstants_t311 = 10000;
|
||||
ue_TimersAndConstants_n310 = 20;
|
||||
ue_TimersAndConstants_n311 = 1;
|
||||
|
||||
ue_TransmissionMode = 1;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -161,7 +162,7 @@ eNBs =
|
||||
local_port = 50000; #for raw option local port must be the same to remote
|
||||
remote_port = 50000;
|
||||
rrh_gw_active = "yes";
|
||||
tr_preference = "raw_if4";
|
||||
tr_preference = "raw_if4p5";
|
||||
rf_preference = "usrp_b200";
|
||||
iq_txshift = 4;
|
||||
tx_sample_advance = 80;
|
||||
|
||||
+69
-30
@@ -145,6 +145,8 @@ time_stats_t softmodem_stats_rx_sf; // total rx time
|
||||
int32_t **rxdata;
|
||||
int32_t **txdata;
|
||||
|
||||
uint8_t seqno; //sequence number
|
||||
|
||||
static int time_offset[4] = {0,0,0,0};
|
||||
|
||||
/* mutex, cond and variable to serialize phy proc TX calls
|
||||
@@ -288,6 +290,7 @@ void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB) {
|
||||
((phy_vars_eNB->frame_parms.Ncp==1) ? 6 : 7);
|
||||
int len,len2;
|
||||
int16_t *txdata;
|
||||
// int CC_id = phy_vars_eNB->proc.CC_id;
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_SFGEN , 1 );
|
||||
|
||||
@@ -406,11 +409,15 @@ void do_OFDM_mod_rt(int subframe,PHY_VARS_eNB *phy_vars_eNB) {
|
||||
}
|
||||
|
||||
void tx_fh_if5(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) {
|
||||
uint8_t seqno;
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST, proc->timestamp_tx&0xffffffff );
|
||||
send_IF5(eNB, proc->timestamp_tx, proc->subframe_tx, &seqno, IF5_RRH_GW_DL);
|
||||
}
|
||||
|
||||
void tx_fh_if5_mobipass(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) {
|
||||
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_TRX_TST, proc->timestamp_tx&0xffffffff );
|
||||
send_IF5(eNB, proc->timestamp_tx, proc->subframe_tx, &seqno, IF5_MOBIPASS);
|
||||
}
|
||||
|
||||
void tx_fh_if4p5(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) {
|
||||
send_IF4p5(eNB,proc->frame_tx, proc->subframe_tx, IF4p5_PDLFFT, 0);
|
||||
}
|
||||
@@ -552,7 +559,7 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
|
||||
// run PHY TX procedures the one after the other for all CCs to avoid race conditions
|
||||
// (may be relaxed in the future for performance reasons)
|
||||
// *****************************************
|
||||
if (wait_CCs(proc)<0) return(-1);
|
||||
//if (wait_CCs(proc)<0) return(-1);
|
||||
|
||||
if (oai_exit) return(-1);
|
||||
|
||||
@@ -879,6 +886,7 @@ void rx_rf(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
|
||||
|
||||
proc->frame_rx = (proc->timestamp_rx / (fp->samples_per_tti*10))&1023;
|
||||
proc->subframe_rx = (proc->timestamp_rx / fp->samples_per_tti)%10;
|
||||
proc->timestamp_tx = proc->timestamp_rx+(4*fp->samples_per_tti);
|
||||
// printf("trx_read <- USRP TS %llu (sf %d, first_rx %d)\n", proc->timestamp_rx,proc->subframe_rx,proc->first_rx);
|
||||
|
||||
if (proc->first_rx == 0) {
|
||||
@@ -965,7 +973,12 @@ void rx_fh_if4p5(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
|
||||
}
|
||||
|
||||
} while( (symbol_mask != symbol_mask_full) || (prach_rx == 1));
|
||||
|
||||
|
||||
//caculate timestamp_rx, timestamp_tx based on frame and subframe
|
||||
proc->timestamp_rx = ((proc->frame_rx * 10) + proc->subframe_rx ) * fp->samples_per_tti ;
|
||||
proc->timestamp_tx = proc->timestamp_rx + (4*fp->samples_per_tti);
|
||||
|
||||
|
||||
if (proc->first_rx == 0) {
|
||||
if (proc->subframe_rx != *subframe){
|
||||
LOG_E(PHY,"Received Timestamp doesn't correspond to the time we think it is (proc->subframe_rx %d, subframe %d)\n",proc->subframe_rx,*subframe);
|
||||
@@ -1073,7 +1086,8 @@ void wakeup_slaves(eNB_proc_t *proc) {
|
||||
slave_proc->frame_rx = proc->frame_rx;
|
||||
slave_proc->subframe_rx = proc->subframe_rx;
|
||||
slave_proc->timestamp_rx = proc->timestamp_rx;
|
||||
|
||||
slave_proc->timestamp_tx = proc->timestamp_tx;
|
||||
|
||||
pthread_mutex_unlock( &slave_proc->mutex_FH );
|
||||
|
||||
if (cnt_slave == 0) {
|
||||
@@ -1270,15 +1284,16 @@ static void* eNB_thread_single( void* param ) {
|
||||
|
||||
T(T_ENB_MASTER_TICK, T_INT(0), T_INT(proc->frame_rx), T_INT(proc->subframe_rx));
|
||||
|
||||
proc_rxtx->subframe_rx = proc->subframe_rx;
|
||||
proc_rxtx->frame_rx = proc->frame_rx;
|
||||
proc_rxtx->subframe_tx = (proc->subframe_rx+4)%10;
|
||||
proc_rxtx->frame_tx = (proc->subframe_rx < 6) ? proc->frame_rx : (proc->frame_rx+1)&1023;
|
||||
proc_rxtx->timestamp_tx = proc->timestamp_tx;
|
||||
|
||||
// At this point, all information for subframe has been received on FH interface
|
||||
// If this proc is to provide synchronization, do so
|
||||
wakeup_slaves(proc);
|
||||
|
||||
proc_rxtx->subframe_rx = proc->subframe_rx;
|
||||
proc_rxtx->frame_rx = proc->frame_rx;
|
||||
proc_rxtx->subframe_tx = (proc->subframe_rx+4)%10;
|
||||
proc_rxtx->frame_tx = (proc->subframe_rx < 6) ? proc->frame_rx : (proc->frame_rx+1)&1023;
|
||||
if (rxtx(eNB,proc_rxtx,"eNB_thread_single") < 0) break;
|
||||
}
|
||||
|
||||
@@ -1383,7 +1398,23 @@ void init_eNB_proc(int inst) {
|
||||
pthread_setname_np( proc->pthread_single, name );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//for multiple CCs: setup master and slaves
|
||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
eNB = PHY_vars_eNB_g[inst][CC_id];
|
||||
|
||||
if (eNB->node_timing == synch_to_ext_device) { //master
|
||||
eNB->proc.num_slaves = MAX_NUM_CCs-1;
|
||||
eNB->proc.slave_proc = (eNB_proc_t**)malloc(eNB->proc.num_slaves*sizeof(eNB_proc_t*));
|
||||
|
||||
for (i=0; i< eNB->proc.num_slaves; i++) {
|
||||
if (i < CC_id) eNB->proc.slave_proc[i] = &(PHY_vars_eNB_g[inst][i]->proc);
|
||||
if (i >= CC_id) eNB->proc.slave_proc[i] = &(PHY_vars_eNB_g[inst][i+1]->proc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* setup PHY proc TX sync mechanism */
|
||||
pthread_mutex_init(&sync_phy_proc.mutex_phy_proc_tx, NULL);
|
||||
pthread_cond_init(&sync_phy_proc.cond_phy_proc_tx, NULL);
|
||||
@@ -1598,14 +1629,14 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
eNB->start_rf = start_rf;
|
||||
eNB->start_if = start_if;
|
||||
eNB->fh_asynch = fh_if5_asynch_DL;
|
||||
ret = openair0_device_load(&eNB->rfdevice, &openair0_cfg[0]);
|
||||
ret = openair0_device_load(&eNB->rfdevice, &openair0_cfg[CC_id]);
|
||||
if (ret<0) {
|
||||
printf("Exiting, cannot initialize rf device\n");
|
||||
exit(-1);
|
||||
}
|
||||
eNB->rfdevice.host_type = RRH_HOST;
|
||||
eNB->ifdevice.host_type = RRH_HOST;
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[0], (eth_params+CC_id));
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], (eth_params+CC_id));
|
||||
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
|
||||
if (ret<0) {
|
||||
printf("Exiting, cannot initialize transport protocol\n");
|
||||
@@ -1614,7 +1645,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
break;
|
||||
case NGFI_RRU_IF4p5:
|
||||
eNB->do_prach = do_prach;
|
||||
eNB->fep = (single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||
eNB->fep = eNB_fep_full;//(single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||
eNB->td = NULL;
|
||||
eNB->te = NULL;
|
||||
eNB->proc_uespec_rx = NULL;
|
||||
@@ -1624,14 +1655,14 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
eNB->fh_asynch = fh_if4p5_asynch_DL;
|
||||
eNB->start_rf = start_rf;
|
||||
eNB->start_if = start_if;
|
||||
ret = openair0_device_load(&eNB->rfdevice, &openair0_cfg[0]);
|
||||
ret = openair0_device_load(&eNB->rfdevice, &openair0_cfg[CC_id]);
|
||||
if (ret<0) {
|
||||
printf("Exiting, cannot initialize rf device\n");
|
||||
exit(-1);
|
||||
}
|
||||
eNB->rfdevice.host_type = RRH_HOST;
|
||||
eNB->ifdevice.host_type = RRH_HOST;
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[0], (eth_params+CC_id));
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], (eth_params+CC_id));
|
||||
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
|
||||
if (ret<0) {
|
||||
printf("Exiting, cannot initialize transport protocol\n");
|
||||
@@ -1643,7 +1674,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
break;
|
||||
case eNodeB_3GPP:
|
||||
eNB->do_prach = do_prach;
|
||||
eNB->fep = (single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||
eNB->fep = eNB_fep_full;//(single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||
eNB->td = ulsch_decoding_data;//(single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||
eNB->te = dlsch_encoding;//(single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
||||
@@ -1653,7 +1684,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
eNB->start_rf = start_rf;
|
||||
eNB->start_if = NULL;
|
||||
eNB->fh_asynch = NULL;
|
||||
ret = openair0_device_load(&eNB->rfdevice, &openair0_cfg[0]);
|
||||
ret = openair0_device_load(&eNB->rfdevice, &openair0_cfg[CC_id]);
|
||||
if (ret<0) {
|
||||
printf("Exiting, cannot initialize rf device\n");
|
||||
exit(-1);
|
||||
@@ -1663,14 +1694,22 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
break;
|
||||
case eNodeB_3GPP_BBU:
|
||||
eNB->do_prach = do_prach;
|
||||
eNB->fep = (single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||
eNB->td = (single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||
eNB->te = (single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||
eNB->fep = eNB_fep_full;//(single_thread_flag==1) ? eNB_fep_full_2thread : eNB_fep_full;
|
||||
eNB->td = ulsch_decoding_data;//(single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||
eNB->te = dlsch_encoding;//(single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
||||
eNB->proc_tx = proc_tx_full;
|
||||
eNB->tx_fh = tx_fh_if5;
|
||||
eNB->rx_fh = rx_fh_if5;
|
||||
eNB->fh_asynch = (eNB->node_timing == synch_to_other) ? fh_if5_asynch_UL : NULL;
|
||||
if (eNB->node_timing == synch_to_other) {
|
||||
eNB->tx_fh = tx_fh_if5_mobipass;
|
||||
eNB->rx_fh = rx_fh_slave;
|
||||
eNB->fh_asynch = fh_if5_asynch_UL;
|
||||
|
||||
}
|
||||
else {
|
||||
eNB->tx_fh = tx_fh_if5;
|
||||
eNB->rx_fh = rx_fh_if5;
|
||||
eNB->fh_asynch = NULL;
|
||||
}
|
||||
|
||||
eNB->start_rf = NULL;
|
||||
eNB->start_if = start_if;
|
||||
@@ -1678,7 +1717,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
|
||||
eNB->ifdevice.host_type = BBU_HOST;
|
||||
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[0], (eth_params+CC_id));
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], (eth_params+CC_id));
|
||||
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
|
||||
if (ret<0) {
|
||||
printf("Exiting, cannot initialize transport protocol\n");
|
||||
@@ -1688,8 +1727,8 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
case NGFI_RCC_IF4p5:
|
||||
eNB->do_prach = do_prach;
|
||||
eNB->fep = NULL;
|
||||
eNB->td = (single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||
eNB->te = (single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||
eNB->td = ulsch_decoding_data;//(single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||
eNB->te = dlsch_encoding;//(single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
||||
eNB->proc_tx = proc_tx_high;
|
||||
eNB->tx_fh = tx_fh_if4p5;
|
||||
@@ -1699,7 +1738,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
eNB->fh_asynch = (eNB->node_timing == synch_to_other) ? fh_if4p5_asynch_UL : NULL;
|
||||
eNB->rfdevice.host_type = BBU_HOST;
|
||||
eNB->ifdevice.host_type = BBU_HOST;
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[0], (eth_params+CC_id));
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], (eth_params+CC_id));
|
||||
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
|
||||
if (ret<0) {
|
||||
printf("Exiting, cannot initialize transport protocol\n");
|
||||
@@ -1712,8 +1751,8 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
eNB->do_prach = do_prach;
|
||||
eNB->fep = NULL;
|
||||
|
||||
eNB->td = (single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||
eNB->te = (single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||
eNB->td = ulsch_decoding_data;//(single_thread_flag==1) ? ulsch_decoding_data_2thread : ulsch_decoding_data;
|
||||
eNB->te = dlsch_encoding;//(single_thread_flag==1) ? dlsch_encoding_2threads : dlsch_encoding;
|
||||
eNB->proc_uespec_rx = phy_procedures_eNB_uespec_RX;
|
||||
eNB->proc_tx = proc_tx_high;
|
||||
eNB->tx_fh = tx_fh_if4p5;
|
||||
@@ -1724,7 +1763,7 @@ void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst
|
||||
|
||||
eNB->rfdevice.host_type = BBU_HOST;
|
||||
eNB->ifdevice.host_type = BBU_HOST;
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[0], (eth_params+CC_id));
|
||||
ret = openair0_transport_load(&eNB->ifdevice, &openair0_cfg[CC_id], (eth_params+CC_id));
|
||||
printf("openair0_transport_init returns %d for CC_id %d\n",ret,CC_id);
|
||||
if (ret<0) {
|
||||
printf("Exiting, cannot initialize transport protocol\n");
|
||||
@@ -1736,7 +1775,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[inst])!=0) {
|
||||
if (setup_eNB_buffers(PHY_vars_eNB_g[inst],&openair0_cfg[CC_id])!=0) {
|
||||
printf("Exiting, cannot initialize eNodeB Buffers\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
@@ -108,6 +108,7 @@ unsigned short config_frames[4] = {2,9,11,13};
|
||||
# include "s1ap_eNB.h"
|
||||
#ifdef PDCP_USE_NETLINK
|
||||
# include "SIMULATION/ETH_TRANSPORT/proto.h"
|
||||
extern int netlink_init(void);
|
||||
#endif
|
||||
# endif
|
||||
#endif
|
||||
@@ -200,7 +201,7 @@ double tx_gain[MAX_NUM_CCs][4] = {{20,0,0,0},{20,0,0,0}};
|
||||
double rx_gain[MAX_NUM_CCs][4] = {{110,0,0,0},{20,0,0,0}};
|
||||
#endif
|
||||
|
||||
|
||||
double rx_gain_off = 0.0;
|
||||
|
||||
double sample_rate=30.72e6;
|
||||
double bw = 10.0e6;
|
||||
@@ -380,6 +381,7 @@ void help (void) {
|
||||
printf(" --calib-prach-tx run normal prach with maximum power, but don't continue random-access\n");
|
||||
printf(" --no-L2-connect bypass L2 and upper layers\n");
|
||||
printf(" --ue-rxgain set UE RX gain\n");
|
||||
printf(" --ue-rxgain-off external UE amplifier offset\n");
|
||||
printf(" --ue-txgain set UE TX gain\n");
|
||||
printf(" --ue-scan_carrier set UE to scan around carrier\n");
|
||||
printf(" --loop-memory get softmodem (UE) to loop through memory instead of acquiring from HW\n");
|
||||
@@ -684,6 +686,7 @@ static void get_options (int argc, char **argv)
|
||||
LONG_OPTION_NO_L2_CONNECT,
|
||||
LONG_OPTION_CALIB_PRACH_TX,
|
||||
LONG_OPTION_RXGAIN,
|
||||
LONG_OPTION_RXGAINOFF,
|
||||
LONG_OPTION_TXGAIN,
|
||||
LONG_OPTION_SCANCARRIER,
|
||||
LONG_OPTION_MAXPOWER,
|
||||
@@ -709,6 +712,7 @@ static void get_options (int argc, char **argv)
|
||||
{"no-L2-connect", no_argument, NULL, LONG_OPTION_NO_L2_CONNECT},
|
||||
{"calib-prach-tx", no_argument, NULL, LONG_OPTION_CALIB_PRACH_TX},
|
||||
{"ue-rxgain", required_argument, NULL, LONG_OPTION_RXGAIN},
|
||||
{"ue-rxgain-off", required_argument, NULL, LONG_OPTION_RXGAINOFF},
|
||||
{"ue-txgain", required_argument, NULL, LONG_OPTION_TXGAIN},
|
||||
{"ue-scan-carrier", no_argument, NULL, LONG_OPTION_SCANCARRIER},
|
||||
{"ue-max-power", required_argument, NULL, LONG_OPTION_MAXPOWER},
|
||||
@@ -776,6 +780,7 @@ static void get_options (int argc, char **argv)
|
||||
|
||||
case LONG_OPTION_CALIB_PRACH_TX:
|
||||
mode = calib_prach_tx;
|
||||
printf("Setting mode to calib_prach_tx (%d)\n",mode);
|
||||
break;
|
||||
|
||||
case LONG_OPTION_RXGAIN:
|
||||
@@ -784,6 +789,10 @@ static void get_options (int argc, char **argv)
|
||||
|
||||
break;
|
||||
|
||||
case LONG_OPTION_RXGAINOFF:
|
||||
rx_gain_off = atof(optarg);
|
||||
break;
|
||||
|
||||
case LONG_OPTION_TXGAIN:
|
||||
for (i=0; i<4; i++)
|
||||
tx_gain[0][i] = atof(optarg);
|
||||
@@ -1064,7 +1073,7 @@ static void get_options (int argc, char **argv)
|
||||
|
||||
if (enb_properties->properties[i]->rrh_gw_config[j].active == 1 ) {
|
||||
local_remote_radio = BBU_REMOTE_RADIO_HEAD;
|
||||
(eth_params+j)->local_if_name = enb_properties->properties[i]->rrh_gw_if_name;
|
||||
(eth_params+j)->local_if_name = enb_properties->properties[i]->rrh_gw_config[j].rrh_gw_if_name;
|
||||
(eth_params+j)->my_addr = enb_properties->properties[i]->rrh_gw_config[j].local_address;
|
||||
(eth_params+j)->my_port = enb_properties->properties[i]->rrh_gw_config[j].local_port;
|
||||
(eth_params+j)->remote_addr = enb_properties->properties[i]->rrh_gw_config[j].remote_address;
|
||||
@@ -1304,10 +1313,10 @@ void init_openair0() {
|
||||
|
||||
|
||||
if (local_remote_radio == BBU_REMOTE_RADIO_HEAD) {
|
||||
openair0_cfg[card].remote_addr = eth_params->remote_addr;
|
||||
openair0_cfg[card].remote_port = eth_params->remote_port;
|
||||
openair0_cfg[card].my_addr = eth_params->my_addr;
|
||||
openair0_cfg[card].my_port = eth_params->my_port;
|
||||
openair0_cfg[card].remote_addr = (eth_params+card)->remote_addr;
|
||||
openair0_cfg[card].remote_port = (eth_params+card)->remote_port;
|
||||
openair0_cfg[card].my_addr = (eth_params+card)->my_addr;
|
||||
openair0_cfg[card].my_port = (eth_params+card)->my_port;
|
||||
}
|
||||
|
||||
printf("HW: Configuring card %d, nb_antennas_tx/rx %d/%d\n",card,
|
||||
@@ -1351,7 +1360,7 @@ void init_openair0() {
|
||||
openair0_cfg[card].rx_gain[i] = PHY_vars_eNB_g[0][0]->rx_total_gain_dB;
|
||||
}
|
||||
else {
|
||||
openair0_cfg[card].rx_gain[i] = PHY_vars_UE_g[0][0]->rx_total_gain_dB;
|
||||
openair0_cfg[card].rx_gain[i] = PHY_vars_UE_g[0][0]->rx_total_gain_dB - rx_gain_off;
|
||||
}
|
||||
|
||||
|
||||
@@ -1363,7 +1372,7 @@ void init_openair0() {
|
||||
|
||||
int main( int argc, char **argv )
|
||||
{
|
||||
int i,aa,card=0;
|
||||
int i,aa;
|
||||
#if defined (XFORMS)
|
||||
void *status;
|
||||
#endif
|
||||
@@ -1574,6 +1583,7 @@ int main( int argc, char **argv )
|
||||
UE[CC_id]->UE_scan = UE_scan;
|
||||
UE[CC_id]->UE_scan_carrier = UE_scan_carrier;
|
||||
UE[CC_id]->mode = mode;
|
||||
printf("UE[%d]->mode = %d\n",CC_id,mode);
|
||||
|
||||
compute_prach_seq(&UE[CC_id]->frame_parms.prach_config_common,
|
||||
UE[CC_id]->frame_parms.frame_type,
|
||||
@@ -1584,7 +1594,7 @@ int main( int argc, char **argv )
|
||||
else
|
||||
UE[CC_id]->pdcch_vars[0]->crnti = 0x1235;
|
||||
|
||||
UE[CC_id]->rx_total_gain_dB = (int)rx_gain[CC_id][0];
|
||||
UE[CC_id]->rx_total_gain_dB = (int)rx_gain[CC_id][0] + rx_gain_off;
|
||||
UE[CC_id]->tx_power_max_dBm = tx_max_power[CC_id];
|
||||
UE[CC_id]->N_TA_offset = 0;
|
||||
|
||||
|
||||
+51
-19
@@ -187,6 +187,9 @@ void init_UE(int nb_inst) {
|
||||
UE = PHY_vars_UE_g[inst][0];
|
||||
|
||||
ret = openair0_device_load(&(UE->rfdevice), &openair0_cfg[0]);
|
||||
if (ret !=0){
|
||||
exit_fun("Error loading device library");
|
||||
}
|
||||
UE->rfdevice.host_type = BBU_HOST;
|
||||
// UE->rfdevice.type = NONE_DEV;
|
||||
error_code = pthread_create(&UE->proc.pthread_ue, &UE->proc.attr_ue, UE_thread, NULL);
|
||||
@@ -448,7 +451,7 @@ static void *UE_thread_synch(void *arg)
|
||||
|
||||
case pbch:
|
||||
|
||||
LOG_I(PHY,"[UE thread Synch] Running Initial Synch\n");
|
||||
LOG_I(PHY,"[UE thread Synch] Running Initial Synch (mode %d)\n",UE->mode);
|
||||
if (initial_sync( UE, UE->mode ) == 0) {
|
||||
|
||||
hw_slot_offset = (UE->rx_offset<<1) / UE->frame_parms.samples_per_tti;
|
||||
@@ -493,7 +496,7 @@ static void *UE_thread_synch(void *arg)
|
||||
break;
|
||||
}
|
||||
|
||||
//UE->rfdevice.trx_set_freq_func(&openair0,&openair0_cfg[0],0);
|
||||
UE->rfdevice.trx_set_freq_func(&UE->rfdevice,&openair0_cfg[0],0);
|
||||
//UE->rfdevice.trx_set_gains_func(&openair0,&openair0_cfg[0]);
|
||||
UE->rfdevice.trx_stop_func(&UE->rfdevice);
|
||||
sleep(1);
|
||||
@@ -801,7 +804,7 @@ static void *UE_thread_rxn_txnp4(void *arg)
|
||||
(subframe_select( &UE->frame_parms, proc->subframe_tx ) == SF_S)) {
|
||||
|
||||
if (UE->mode != loop_through_memory) {
|
||||
phy_procedures_UE_TX(UE,proc,0,0,normal_txrx,no_relay);
|
||||
phy_procedures_UE_TX(UE,proc,0,0,UE->mode,no_relay);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -995,7 +998,7 @@ void *UE_thread(void *arg) {
|
||||
if (UE->mode != loop_through_memory) {
|
||||
|
||||
if (UE->no_timing_correction==0) {
|
||||
LOG_I(PHY,"Resynchronizing RX by %d samples\n",UE->rx_offset);
|
||||
LOG_I(PHY,"Resynchronizing RX by %d samples (mode = %d)\n",UE->rx_offset,UE->mode);
|
||||
rxs = UE->rfdevice.trx_read_func(&UE->rfdevice,
|
||||
×tamp,
|
||||
(void**)rxdata,
|
||||
@@ -1036,21 +1039,6 @@ void *UE_thread(void *arg) {
|
||||
UE->proc.proc_rxtx[1].frame_rx++;
|
||||
|
||||
for (int sf=0;sf<10;sf++) {
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 1 );
|
||||
// prepare tx buffer pointers
|
||||
|
||||
for (i=0; i<UE->frame_parms.nb_antennas_tx; i++)
|
||||
txp[i] = (void*)&UE->common_vars.txdata[i][((sf+4)%10)*UE->frame_parms.samples_per_tti];
|
||||
|
||||
txs = UE->rfdevice.trx_write_func(&UE->rfdevice,
|
||||
timestamp+(4*UE->frame_parms.samples_per_tti)-UE->frame_parms.ofdm_symbol_size-UE->frame_parms.nb_prefix_samples0-openair0_cfg[0].tx_sample_advance,
|
||||
txp,
|
||||
UE->frame_parms.samples_per_tti,
|
||||
UE->frame_parms.nb_antennas_tx,
|
||||
1);
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 0 );
|
||||
|
||||
for (i=0; i<UE->frame_parms.nb_antennas_rx; i++)
|
||||
rxp[i] = (void*)&rxdata[i][UE->frame_parms.ofdm_symbol_size+UE->frame_parms.nb_prefix_samples0+(sf*UE->frame_parms.samples_per_tti)];
|
||||
// grab signal for subframe
|
||||
@@ -1062,6 +1050,28 @@ void *UE_thread(void *arg) {
|
||||
rxp,
|
||||
UE->frame_parms.samples_per_tti,
|
||||
UE->frame_parms.nb_antennas_rx);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 1 );
|
||||
// prepare tx buffer pointers
|
||||
|
||||
for (i=0; i<UE->frame_parms.nb_antennas_tx; i++)
|
||||
txp[i] = (void*)&UE->common_vars.txdata[i][((sf+2)%10)*UE->frame_parms.samples_per_tti];
|
||||
|
||||
txs = UE->rfdevice.trx_write_func(&UE->rfdevice,
|
||||
timestamp+
|
||||
(2*UE->frame_parms.samples_per_tti) -
|
||||
UE->frame_parms.ofdm_symbol_size-UE->frame_parms.nb_prefix_samples0 -
|
||||
openair0_cfg[0].tx_sample_advance,
|
||||
txp,
|
||||
UE->frame_parms.samples_per_tti,
|
||||
UE->frame_parms.nb_antennas_tx,
|
||||
1);
|
||||
if (txs != UE->frame_parms.samples_per_tti) {
|
||||
LOG_E(PHY,"TX : Timeout (sent %d/%d)\n",txs, UE->frame_parms.samples_per_tti);
|
||||
exit_fun( "problem transmitting samples" );
|
||||
}
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 0 );
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
@@ -1070,6 +1080,27 @@ void *UE_thread(void *arg) {
|
||||
rxp,
|
||||
UE->frame_parms.samples_per_tti-UE->frame_parms.ofdm_symbol_size-UE->frame_parms.nb_prefix_samples0,
|
||||
UE->frame_parms.nb_antennas_rx);
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 1 );
|
||||
// prepare tx buffer pointers
|
||||
|
||||
for (i=0; i<UE->frame_parms.nb_antennas_tx; i++)
|
||||
txp[i] = (void*)&UE->common_vars.txdata[i][((sf+2)%10)*UE->frame_parms.samples_per_tti];
|
||||
|
||||
txs = UE->rfdevice.trx_write_func(&UE->rfdevice,
|
||||
timestamp+
|
||||
(2*UE->frame_parms.samples_per_tti) -
|
||||
UE->frame_parms.ofdm_symbol_size-UE->frame_parms.nb_prefix_samples0 -
|
||||
openair0_cfg[0].tx_sample_advance,
|
||||
txp,
|
||||
UE->frame_parms.samples_per_tti - rx_off_diff,
|
||||
UE->frame_parms.nb_antennas_tx,
|
||||
1);
|
||||
if (txs != UE->frame_parms.samples_per_tti - rx_off_diff) {
|
||||
LOG_E(PHY,"TX : Timeout (sent %d/%d)\n",txs, UE->frame_parms.samples_per_tti-rx_off_diff);
|
||||
exit_fun( "problem transmitting samples" );
|
||||
}
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE, 0 );
|
||||
|
||||
// read in first symbol of next frame and adjust for timing drift
|
||||
rxs = UE->rfdevice.trx_read_func(&UE->rfdevice,
|
||||
×tamp1,
|
||||
@@ -1149,6 +1180,7 @@ void *UE_thread(void *arg) {
|
||||
} // UE->is_synchronized==1
|
||||
|
||||
} // while !oai_exit
|
||||
return NULL;
|
||||
} // UE_thread
|
||||
|
||||
/*
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
[*]
|
||||
[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI
|
||||
[*] Sat Aug 6 15:00:27 2016
|
||||
[*]
|
||||
[dumpfile] "/tmp/openair_dump_eNB.vcd"
|
||||
[dumpfile_mtime] "Sat Aug 6 14:59:21 2016"
|
||||
[dumpfile_size] 991809002
|
||||
[savefile] "/home/fourmi/openairinterface5g/targets/RT/USER/rcc_if4.gtkw"
|
||||
[timestart] 0
|
||||
[size] 1301 716
|
||||
[pos] 309 0
|
||||
*-19.793451 7382528436 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
|
||||
[sst_width] 284
|
||||
[signals_width] 262
|
||||
[sst_expanded] 1
|
||||
[sst_vpaned_height] 294
|
||||
@24
|
||||
variables.trx_ts[63:0]
|
||||
variables.trx_tst[63:0]
|
||||
@28
|
||||
functions.recv_if4
|
||||
functions.send_if4
|
||||
functions.eNB_thread_rxtx0
|
||||
@24
|
||||
variables.frame_number_RX0_eNB[63:0]
|
||||
variables.subframe_number_RX0_eNB[63:0]
|
||||
variables.frame_number_TX0_eNB[63:0]
|
||||
variables.subframe_number_TX0_eNB[63:0]
|
||||
@28
|
||||
functions.phy_procedures_eNb_tx0
|
||||
functions.phy_procedures_eNb_rx_common0
|
||||
functions.phy_procedures_eNb_rx_uespec0
|
||||
functions.eNB_thread_rxtx1
|
||||
@24
|
||||
variables.frame_number_RX1_eNB[63:0]
|
||||
variables.subframe_number_RX1_eNB[63:0]
|
||||
variables.frame_number_TX1_eNB[63:0]
|
||||
variables.subframe_number_TX1_eNB[63:0]
|
||||
@29
|
||||
functions.phy_procedures_eNb_tx1
|
||||
@28
|
||||
functions.phy_procedures_eNb_rx_common1
|
||||
functions.phy_procedures_eNb_rx_uespec1
|
||||
functions.phy_enb_sfgen
|
||||
functions.phy_eNB_slot_fep
|
||||
functions.phy_enb_prach_rx
|
||||
@24
|
||||
variables.dci_info[63:0]
|
||||
variables.ue0_BO[63:0]
|
||||
@420
|
||||
variables.ue0_BSR[63:0]
|
||||
variables.ue0_timing_advance[63:0]
|
||||
@28
|
||||
functions.macxface_initiate_ra_proc
|
||||
functions.macxface_terminate_ra_proc
|
||||
functions.phy_enb_ulsch_msg3
|
||||
functions.macxface_SR_indication
|
||||
@420
|
||||
variables.ue0_SR_ENERGY[63:0]
|
||||
variables.ue0_SR_THRES[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding0
|
||||
@24
|
||||
variables.ue0_res0[63:0]
|
||||
@420
|
||||
variables.ue0_rssi0[63:0]
|
||||
variables.ue0_MCS0[63:0]
|
||||
variables.ue0_RB0[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND0[63:0]
|
||||
variables.ue0_SFN0[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding1
|
||||
@24
|
||||
variables.ue0_res1[63:0]
|
||||
@420
|
||||
variables.ue0_rssi1[63:0]
|
||||
variables.ue0_MCS1[63:0]
|
||||
variables.ue0_RB1[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND1[63:0]
|
||||
variables.ue0_SFN1[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding2
|
||||
@24
|
||||
variables.ue0_res2[63:0]
|
||||
@420
|
||||
variables.ue0_rssi2[63:0]
|
||||
variables.ue0_MCS2[63:0]
|
||||
variables.ue0_RB2[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND2[63:0]
|
||||
variables.ue0_SFN2[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding3
|
||||
@24
|
||||
variables.ue0_res3[63:0]
|
||||
@420
|
||||
variables.ue0_rssi3[63:0]
|
||||
variables.ue0_MCS3[63:0]
|
||||
variables.ue0_RB3[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND3[63:0]
|
||||
variables.ue0_SFN3[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding4
|
||||
@420
|
||||
variables.ue0_rssi4[63:0]
|
||||
@24
|
||||
variables.ue0_res4[63:0]
|
||||
@420
|
||||
variables.ue0_MCS4[63:0]
|
||||
variables.ue0_RB4[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND4[63:0]
|
||||
variables.ue0_SFN4[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding5
|
||||
@24
|
||||
variables.ue0_res5[63:0]
|
||||
@420
|
||||
variables.ue0_rssi5[63:0]
|
||||
variables.ue0_MCS5[63:0]
|
||||
variables.ue0_RB5[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND5[63:0]
|
||||
variables.ue0_SFN5[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding6
|
||||
@24
|
||||
variables.ue0_res6[63:0]
|
||||
@420
|
||||
variables.ue0_rssi6[63:0]
|
||||
variables.ue0_MCS6[63:0]
|
||||
variables.ue0_RB6[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND6[63:0]
|
||||
variables.ue0_SFN6[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding7
|
||||
@24
|
||||
variables.ue0_res7[63:0]
|
||||
@420
|
||||
variables.ue0_rssi7[63:0]
|
||||
variables.ue0_MCS7[63:0]
|
||||
variables.ue0_RB7[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND7[63:0]
|
||||
variables.ue0_SFN7[63:0]
|
||||
@28
|
||||
functions.phy_enb_prach_rx
|
||||
functions.phy_eNB_dlsch_encoding
|
||||
functions.phy_eNB_dlsch_modulation
|
||||
functions.phy_eNB_dlsch_scrambling
|
||||
functions.phy_enb_pdcch_tx
|
||||
functions.phy_enb_rs_tx
|
||||
functions.rrc_mac_config_req
|
||||
functions.rlc_data_req
|
||||
functions.udp_enb_task
|
||||
[pattern_trace] 1
|
||||
[pattern_trace] 0
|
||||
@@ -0,0 +1,154 @@
|
||||
[*]
|
||||
[*] GTKWave Analyzer v3.3.58 (w)1999-2014 BSI
|
||||
[*] Sun Jul 31 13:30:42 2016
|
||||
[*]
|
||||
[dumpfile] "/tmp/openair_dump_eNB.vcd"
|
||||
[dumpfile_mtime] "Sun Jul 31 13:21:59 2016"
|
||||
[dumpfile_size] 18273240
|
||||
[savefile] "/home/fourmi/openairinterface5g/targets/RT/USER/rcc_if5.gtkw"
|
||||
[timestart] 24070893000
|
||||
[size] 1301 716
|
||||
[pos] 309 0
|
||||
*-19.793451 29026062100 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
|
||||
[sst_width] 284
|
||||
[signals_width] 262
|
||||
[sst_expanded] 1
|
||||
[sst_vpaned_height] 294
|
||||
@24
|
||||
variables.trx_ts[63:0]
|
||||
variables.trx_tst[63:0]
|
||||
@28
|
||||
functions.send_if5
|
||||
functions.recv_if5
|
||||
functions.eNB_thread_rxtx0
|
||||
@24
|
||||
variables.frame_number_RX0_eNB[63:0]
|
||||
variables.subframe_number_RX0_eNB[63:0]
|
||||
variables.frame_number_TX0_eNB[63:0]
|
||||
variables.subframe_number_TX0_eNB[63:0]
|
||||
@28
|
||||
functions.eNB_thread_rxtx1
|
||||
@24
|
||||
variables.frame_number_RX1_eNB[63:0]
|
||||
variables.subframe_number_RX1_eNB[63:0]
|
||||
variables.frame_number_TX1_eNB[63:0]
|
||||
variables.subframe_number_TX1_eNB[63:0]
|
||||
@28
|
||||
functions.phy_enb_sfgen
|
||||
functions.phy_eNB_slot_fep
|
||||
functions.phy_enb_prach_rx
|
||||
@24
|
||||
variables.dci_info[63:0]
|
||||
variables.ue0_BO[63:0]
|
||||
@420
|
||||
variables.ue0_BSR[63:0]
|
||||
variables.ue0_timing_advance[63:0]
|
||||
@28
|
||||
functions.macxface_initiate_ra_proc
|
||||
functions.macxface_terminate_ra_proc
|
||||
functions.phy_enb_ulsch_msg3
|
||||
functions.macxface_SR_indication
|
||||
@420
|
||||
variables.ue0_SR_ENERGY[63:0]
|
||||
variables.ue0_SR_THRES[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding0
|
||||
@24
|
||||
variables.ue0_res0[63:0]
|
||||
@420
|
||||
variables.ue0_rssi0[63:0]
|
||||
variables.ue0_MCS0[63:0]
|
||||
variables.ue0_RB0[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND0[63:0]
|
||||
variables.ue0_SFN0[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding1
|
||||
@24
|
||||
variables.ue0_res1[63:0]
|
||||
@420
|
||||
variables.ue0_rssi1[63:0]
|
||||
variables.ue0_MCS1[63:0]
|
||||
variables.ue0_RB1[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND1[63:0]
|
||||
variables.ue0_SFN1[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding2
|
||||
@24
|
||||
variables.ue0_res2[63:0]
|
||||
@420
|
||||
variables.ue0_rssi2[63:0]
|
||||
variables.ue0_MCS2[63:0]
|
||||
variables.ue0_RB2[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND2[63:0]
|
||||
variables.ue0_SFN2[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding3
|
||||
@24
|
||||
variables.ue0_res3[63:0]
|
||||
@420
|
||||
variables.ue0_rssi3[63:0]
|
||||
variables.ue0_MCS3[63:0]
|
||||
variables.ue0_RB3[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND3[63:0]
|
||||
variables.ue0_SFN3[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding4
|
||||
@420
|
||||
variables.ue0_rssi4[63:0]
|
||||
@24
|
||||
variables.ue0_res4[63:0]
|
||||
@420
|
||||
variables.ue0_MCS4[63:0]
|
||||
variables.ue0_RB4[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND4[63:0]
|
||||
variables.ue0_SFN4[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding5
|
||||
@24
|
||||
variables.ue0_res5[63:0]
|
||||
@420
|
||||
variables.ue0_rssi5[63:0]
|
||||
variables.ue0_MCS5[63:0]
|
||||
variables.ue0_RB5[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND5[63:0]
|
||||
variables.ue0_SFN5[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding6
|
||||
@24
|
||||
variables.ue0_res6[63:0]
|
||||
@420
|
||||
variables.ue0_rssi6[63:0]
|
||||
variables.ue0_MCS6[63:0]
|
||||
variables.ue0_RB6[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND6[63:0]
|
||||
variables.ue0_SFN6[63:0]
|
||||
@28
|
||||
functions.phy_enb_ulsch_decoding7
|
||||
@24
|
||||
variables.ue0_res7[63:0]
|
||||
@420
|
||||
variables.ue0_rssi7[63:0]
|
||||
variables.ue0_MCS7[63:0]
|
||||
variables.ue0_RB7[63:0]
|
||||
@24
|
||||
variables.ue0_ROUND7[63:0]
|
||||
variables.ue0_SFN7[63:0]
|
||||
@28
|
||||
functions.phy_enb_prach_rx
|
||||
functions.phy_eNB_dlsch_encoding
|
||||
functions.phy_eNB_dlsch_modulation
|
||||
functions.phy_eNB_dlsch_scrambling
|
||||
functions.phy_enb_pdcch_tx
|
||||
functions.phy_enb_rs_tx
|
||||
functions.rrc_mac_config_req
|
||||
functions.rlc_data_req
|
||||
functions.udp_enb_task
|
||||
[pattern_trace] 1
|
||||
[pattern_trace] 0
|
||||
@@ -212,6 +212,8 @@ sigh (void *arg);
|
||||
void
|
||||
oai_shutdown (void);
|
||||
|
||||
void reset_opp_meas_oaisim (void);
|
||||
|
||||
void
|
||||
help (void)
|
||||
{
|
||||
@@ -444,9 +446,6 @@ static Data_Flow_Unit omv_data;
|
||||
#endif //ALU
|
||||
static module_id_t UE_inst = 0;
|
||||
static module_id_t eNB_inst = 0;
|
||||
#ifdef Rel10
|
||||
static module_id_t RN_id = 0;
|
||||
#endif
|
||||
|
||||
Packet_OTG_List_t *otg_pdcp_buffer;
|
||||
|
||||
@@ -470,13 +469,8 @@ l2l1_task (void *args_p)
|
||||
// Framing variables
|
||||
int32_t sf;
|
||||
|
||||
#ifdef Rel10
|
||||
relaying_type_t r_type = no_relay; // no relaying
|
||||
#endif
|
||||
|
||||
char fname[64], vname[64];
|
||||
|
||||
protocol_ctxt_t ctxt;
|
||||
//#ifdef XFORMS
|
||||
// current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0)
|
||||
// at eNB 0, an UL scope for every UE
|
||||
|
||||
@@ -1011,8 +1011,6 @@ int eNB_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
|
||||
int CC_id = device->CC_id;
|
||||
|
||||
int subframe;
|
||||
int ready_for_new_subframe=0;
|
||||
int subframe_eNB_mask_local;
|
||||
int sample_count=0;
|
||||
|
||||
*ptimestamp = last_eNB_rx_timestamp[eNB_id][CC_id];
|
||||
@@ -1064,8 +1062,6 @@ int UE_trx_read(openair0_device *device, openair0_timestamp *ptimestamp, void **
|
||||
int UE_id = device->Mod_id;
|
||||
int CC_id = device->CC_id;
|
||||
int subframe;
|
||||
int ready_for_new_subframe=0;
|
||||
int subframe_UE_mask_local;
|
||||
int sample_count=0;
|
||||
int read_size;
|
||||
|
||||
@@ -1329,8 +1325,6 @@ void init_openair1(void)
|
||||
void init_openair2(void)
|
||||
{
|
||||
#ifdef OPENAIR2
|
||||
module_id_t enb_id;
|
||||
module_id_t UE_id;
|
||||
int CC_id;
|
||||
//#warning "eNB index is hard coded to zero"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user