Git Product home page Git Product logo

srsran_4g's Introduction

srsRAN

Build Status CodeQL Coverity

srsRAN is an open source 4G software radio suite developed by SRS. For 5G RAN, see our new O-RAN CU/DU solution - srsRAN Project.

See the srsRAN 4G project pages for information, guides and project news.

The srsRAN suite includes:

  • srsUE - a full-stack SDR 4G UE application with prototype 5G features
  • srsENB - a full-stack SDR 4G eNodeB application
  • srsEPC - a light-weight 4G core network implementation with MME, HSS and S/P-GW

For application features, build instructions and user guides see the srsRAN 4G documentation.

For license details, see LICENSE file.

Support

Mailing list: https://lists.srsran.com/mailman/listinfo/srsran-users

srsran_4g's People

Contributors

agmagor avatar alaial avatar aleksander0m avatar alvasman avatar andrepuschmann avatar carlo-gal avatar davidrupprecht avatar dvdgrgrtt avatar fabianeckermann avatar falkenber9 avatar faluco avatar frankist avatar guillemforeman avatar herlesupreeth avatar ismagom avatar jgiovatto avatar joaquim-srs avatar laf0rge avatar matan1008 avatar mrlnc avatar ninjab3s avatar paul-srs avatar pespin avatar pgawlowicz avatar robertfalkenberg avatar srs-codebot avatar suttonpd avatar velichkov avatar xavierarteaga avatar yagoda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

srsran_4g's Issues

Check VOLK API version at Cmake

In GNU Radio 3.6.3 accumulator_u and index_max_16_u functions are not available while in 3.7.2 they are.

Need to check available VOLK functions at compile time and then use them or not.

EPC that can work with srsLTE

Thanks for the wonderful project.
It seems to make the two parts srsue/srsENB work together and have a complete LTE system, EPC part is still missing. Could you suggest a EPC software to work with both srsue and srsENB? Is there any open source implementation available?

Thanks!

CFI length is wrong for cell.nof_prb == 10 (phch/regs.c)

From 5164850208df663cb92ad6365f5504b9bf314726 Mon Sep 17 00:00:00 2001
From: Mikko Markus Torni <[email protected]>
Date: Sat, 1 Apr 2017 10:44:17 +0300
Subject: [PATCH] CFI length is wrong for nof_prb == 10

---
 srslte/lib/phch/regs.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srslte/lib/phch/regs.c b/srslte/lib/phch/regs.c
index 8ada33e7..8641a7ca 100644
--- a/srslte/lib/phch/regs.c
+++ b/srslte/lib/phch/regs.c
@@ -89,7 +89,7 @@ int regs_pdcch_init(srslte_regs_t *h) {
   bzero(&h->pdcch, sizeof(srslte_regs_ch_t));
 
   for (cfi=0;cfi<3;cfi++) {
-    if (h->cell.nof_prb < 10) {
+    if (h->cell.nof_prb <= 10) {
       nof_ctrl_symbols = cfi+2;
     } else {
       nof_ctrl_symbols = cfi+1;
@@ -673,7 +673,7 @@ void srslte_regs_free(srslte_regs_t *h) {
 int srslte_regs_set_cfi(srslte_regs_t *h, uint32_t cfi) {  
   if (cfi > 0 && cfi <= 3) {
     if (h->phich_len == SRSLTE_PHICH_EXT &&
-        ((h->cell.nof_prb < 10 && cfi < 2) || (h->cell.nof_prb >= 10 && cfi < 3))) {
+        ((h->cell.nof_prb <= 10 && cfi < 2) || (h->cell.nof_prb >= 10 && cfi < 3))) {
       fprintf(stderr, "PHICH length is extended. The number of control symbols should be at least 3.\n");
       return SRSLTE_ERROR_INVALID_INPUTS;
     } else {
@@ -705,7 +705,7 @@ int srslte_regs_init(srslte_regs_t *h, srslte_cell_t cell) {
     bzero(h, sizeof(srslte_regs_t));
     ret = SRSLTE_ERROR;
     
-    max_ctrl_symbols = cell.nof_prb<10?4:3;
+    max_ctrl_symbols = cell.nof_prb<=10?4:3;
     vo = cell.id % 3;
     h->cell = cell;
     h->max_ctrl_symbols = max_ctrl_symbols;
-- 
2.11.0

Improve Synchronization

During cell attachment, sample at 0.96 MHz to capture the central 64 carriers (PSS and PBCH). Correlate using 64-FFT only.

Use UHD timestamps to synchronize and then change the sampling bandwidth according to the bandwidth given by the MIB.

For PSS tracking, take the RE directly after the initial FFT.

FPGA

Is there any thought towards / plan to push some performance hungry components to the FPGA-- (talking B210 but they all have them)? Could push SRS into smaller footprint, battery powered applications, besides making better general use of the hardware.

Error during UE attachment

Branch: Master
Commit: 242fe9a

This error occurs just after the RACH procedures, and appears randomly (it's not very common).

Setting Sampling frequency 5.76 MHz
Setting TX/RX offset 93 samples, 16.15 us

==== eNodeB started ===
Type <t> to view trace
RACH:  tti=8091, preamble=10, offset=0, temp_crnti=0x46

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffd8d10700 (LWP 11065)]
0x00000000005d9b1a in _mm256_load_si256 (__P=0x7fffde328390) at /usr/lib/gcc/x86_64-linux-gnu/4.9/include/avxintrin.h:880
880       return *__P;
(gdb) bt
#0  0x00000000005d9b1a in _mm256_load_si256 (__P=0x7fffde328390) at /usr/lib/gcc/x86_64-linux-gnu/4.9/include/avxintrin.h:880
#1  srslte_vec_dot_prod_sss_avx2 (x=0x7fffde328390, y=0x7fffd8d0f700, len=20)
    at /home/empower/src/srsLTE/lib/src/phy/utils/vector_simd.c:105
#2  0x00000000005ade83 in srslte_vec_dot_prod_sss (x=0x7fffde328390, y=0x7fffd8d0f700, len=20)
    at /home/empower/src/srsLTE/lib/src/phy/utils/vector.c:665
#3  0x00000000005d11fb in srslte_uci_decode_cqi_pucch (q=0x7fffde328190, b_bits=0x7fffd8d0f700, cqi_data=0x7fffd8d0fbb0 "", cqi_len=4)
    at /home/empower/src/srsLTE/lib/src/phy/phch/uci.c:152
#4  0x000000000059e399 in srslte_pucch_decode (q=0x7fffde328128, format=SRSLTE_PUCCH_FORMAT_2, n_pucch=0, sf_idx=0, rnti=70,
    sf_symbols=0x5e38900, ce=0x5e40d00, noise_estimate=0.00436232565, bits=0x7fffd8d0fbb0 "")
    at /home/empower/src/srsLTE/lib/src/phy/phch/pucch.c:810
#5  0x00000000005ba0de in get_pucch (q=0x7fffde318fc8, rnti=70, pdcch_n_cce=0, sf_rx=0, uci_data=0x7fffd8d0fc70, bits=0x7fffd8d0fbb0 "")
    at /home/empower/src/srsLTE/lib/src/phy/enb/enb_ul.c:238
#6  0x00000000005ba17c in srslte_enb_ul_get_pucch (q=0x7fffde318fc8, rnti=70, pdcch_n_cce=0, sf_rx=0, uci_data=0x7fffd8d0fc70)
    at /home/empower/src/srsLTE/lib/src/phy/enb/enb_ul.c:254
#7  0x000000000057fb78 in srsenb::phch_worker::decode_pucch (this=0x7fffde30a010, tti_rx=8120)
    at /home/empower/src/srsLTE/srsenb/src/phy/phch_worker.cc:497
#8  0x000000000057e1b2 in srsenb::phch_worker::work_imp (this=0x7fffde30a010)
    at /home/empower/src/srsLTE/srsenb/src/phy/phch_worker.cc:252
#9  0x000000000058a439 in srslte::thread_pool::worker::run_thread (this=0x7fffde30a010)
    at /home/empower/src/srsLTE/lib/src/common/thread_pool.cc:61
#10 0x00000000005484e5 in thread::thread_function_entry (_this=0x7fffde30a010)
    at /home/empower/src/srsLTE/lib/include/srslte/common/threads.h:73
#11 0x00007ffff7586064 in start_thread (arg=0x7fffd8d10700) at pthread_create.c:309
#12 0x00007ffff519962d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

core dump issue with the srsue binary

I tried to setup an LTE test environment with both:

  • the srsUE program using a limeSDR for the UE part
  • the Amarisoft LTE 100EPC for the EPC part

I installed all the dependencies and everything compiled successfully, but during the cell attachment, just after the SIB2 has been received, I got a core dump error from the srsue binary...

I tried with both VM (Ubuntu 17.04 kernel classic & lowlatency) and a bare computer (Ubuntu 16.04 kernel lowlatency).

Here is the log from the srsue binary : https://pastebin.com/jrMjinWU
And here is the end of the log file provided in debug mode : https://pastebin.com/d5uAwUgX
I can provide you the full file if you want to, but it's pretty huge...

So I don't have a clue about where does the issue can come from... Maybe you'll be able to help me with that ?

ip_test_enb Segmentation Fault

I'm getting a segmentation fault when I run ip_test_enb.

Under srsenb/phy/phy.cc, starting line 92:

std::vector<void*> log_vec;
for (int i=0;inof_phy_threads;i++) {
log_vec[i] = (void*) log_h;
}

log_vec declaration should be: std::vector<void*> log_vec(MAX_WORKERS);

This fixes the problem.

srsenb: ue will disconnect in a few minutes after connecting to the srsenb

We have added custom hardware rf_xxx_imp.c to srsLTE and tested our SDR hardware with SRSENB; The current test environment is Amarisoft EPC <---> SRSENB <----> UE;
During the test, we found that the UE would disconnect in about a few minutes after connecting to the SRSENB, and filtering out a lot of warning information in ENB. Log, for example:
20:57:26.508541 [MAC ] Warning [03861] SCHED: discarting TB pid=5, tti=3861, maximum number of retx exceeded (4)
20:57:56.705789 [RRC ] Warning User rnti=0x46 expired Activity deadline: 30:8565>30:0 us

Can anyone give advice on how to solve this issue?
thanks

uhd_tx_streamer_recv_async_msg String manipulation throws SIGABRT

While using version 242fe9a of the master branch, sometimes, when I leave the eNB open for some minutes where an UE is connected and registered with the Core Network (OpenAirInterface), the base station just crash with the following trace:

terminate called after throwing an instance of 'std::length_error'
  what():  basic_string::_S_create

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffd96fe700 (LWP 9861)]
0x00007ffff50f3067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56      ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff50f3067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff50f4448 in __GI_abort () at abort.c:89
#2  0x00007ffff59e0b3d in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff59debb6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff59dec01 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff59dee19 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff5a34ac6 in std::__throw_length_error(char const*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007ffff5a3eeb2 in std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#8  0x00007ffff5a3ef14 in std::string::_M_mutate(unsigned long, unsigned long, unsigned long) ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x00007ffff5f32403 in uhd_tx_streamer_recv_async_msg () from /usr/local/lib/libuhd.so.3
#10 0x00007ffff681669d in async_thread () from /home/empower/src/srsLTE/build/lib/src/phy/rf/libsrslte_rf.so
#11 0x00007ffff7586064 in start_thread (arg=0x7fffd96fe700) at pthread_create.c:309
#12 0x00007ffff51a662d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Link error with libvolk.so

If VOLK is NOT installed, then the whole process is good. However, if volk is compiled and installed, we have follow error message when we make srsLTE

[ 51%] Building C object lib/src/phy/mimo/test/CMakeFiles/layermap_test.dir/layermap_test.c.o
Linking C executable layermap_test
/usr/local/lib/libvolk.so: undefined reference to tanhf' /usr/local/lib/libvolk.so: undefined reference to sinf'
/usr/local/lib/libvolk.so: undefined reference to powf' /usr/local/lib/libvolk.so: undefined reference to hypotf'
/usr/local/lib/libvolk.so: undefined reference to tanf' /usr/local/lib/libvolk.so: undefined reference to atanf'
/usr/local/lib/libvolk.so: undefined reference to cosf' /usr/local/lib/libvolk.so: undefined reference to acosf'
/usr/local/lib/libvolk.so: undefined reference to expf' /usr/local/lib/libvolk.so: undefined reference to log2f'
/usr/local/lib/libvolk.so: undefined reference to rintf' /usr/local/lib/libvolk.so: undefined reference to sqrtf'
/usr/local/lib/libvolk.so: undefined reference to pow' /usr/local/lib/libvolk.so: undefined reference to log10f'
/usr/local/lib/libvolk.so: undefined reference to sqrt' /usr/local/lib/libvolk.so: undefined reference to sincosf'
/usr/local/lib/libvolk.so: undefined reference to asinf' /usr/local/lib/libvolk.so: undefined reference to atan2f'
collect2: error: ld returned 1 exit status
make[2]: *** [lib/src/phy/mimo/test/layermap_test] Error 1
make[1]: *** [lib/src/phy/mimo/test/CMakeFiles/layermap_test.dir/all] Error 2
make: *** [all] Error 2

It seems that -lm is missing.
However taking a look at lib/src/phy/mimo/test/CMakeFiles/layermap_test.dir/link.txt, -lm has indeed been included into the linking command.

It is quite confusing.

Get rid of B2XX frame* args

Hi,

I experienced a lot of situations (using cell_search and patched srsUE for SIB decoding) where I completely loose SDR control with errors like :

############
Error opening RX stream: 33
No compatible RF frontend found
Error opening RF device
Failed to find device auto with args auto
############

I then need to issue a b2xx_fx3_utils -U (USB subsystem reset) command to regain SDR functionnality

I never encountered the same error after removing the recv_frame_size=9232,send_frame_size=9232 in rf_uhd_imp.cpp ; without affecting my basic usage of srsLTE / srsUE

AFAIK ; the only context in which I needed to tweak USB frame settings with the B200 was working with Amarisoft eNB for bandwidths <= 5MHz (and the frame sizes were tweaked with much lower values).

FYI the USB controller is an Intel / C230

[Bug] 20% PDCCH-Miss with USRP B210

The pdsch_enodeb/pdsch_ue examples always report 20% of PDCCH misses using the most recent release (release_001_003_000), the last version of master (ed35015) and the next branch (17d5ebc).
Meanwhile, this does not happen using release_001_002_000.

To reproduce, simply run the pdsch_enodeb example in one machine with an USRP B210 and the pdsch_ue example in another machine/USRP, the number of PRBs/MCS does not matter much, it is observable with all values.

What strikes me as relevant is the fact that the number is always 20% (except at higher number of PRBs/MCS when it's higher as expected - can't decode fast enough).

Did you came across this issue in the past?

testing the srsLTE tools: ./mac_test

Hello huys, I hope I can find your knowledge in good mood for a little bit of help here :D
Once installed, I was testing all the srsLTE executables like for example:

srsue/test/phy$ sudo ./ue_itf_test_prach -c -f xxxx -F xxxx
srsue/test/mac$ sudo ./mac_test -G 70 -f xxxx -F xxxx

but I always get the error "Segmentation fault" after it prompts "Searching for cell..."
I am able to run the main executables like ./srsue o ./srsenb with zero problems and also I dont think Segmentatio Fault is a syntax message ... what am I doing wrong?

Thanks

uhd: B200 warns about odd decimation/interpolation

Harmless warning is shown at startup with B200 due to discrepancy between default clocking and sample rates. Warning can be avoided by delaying streamer construction until after clocking and sample rates are set or by explicitly setting defaults that do not trigger the condition during initialization.

[INFO] [B200] Actually got clock rate 23.040000 MHz.
[INFO] [CORES] Performing timer loopback test... 
[INFO] [CORES] Timer loopback test passed
[WARNING] [CORES] The requested decimation is odd; the user should expect CIC rolloff.
Select an even decimation to ensure that a halfband filter is enabled.
decimation = dsp_rate/samp_rate -> 23 = (23.040000 MHz)/(1.000000 MHz)

Frequency scan with the B210

On Tue, Jun 10, 2014 at 9:52 PM, Keith E. Fleming [email protected] wrote:

Based on what Marcus confirmed on the USRP mailing list, is it possible to
slow down the changing of frequency? Introduce some sort of delay or better
yet, wait for the B200 to confirm that it has tuned and calibrated itself
and is ready to start delivering samples?

Ultimately this is a UHD error. Even if the AD9361 takes its time to
tune, the delay shouldn't clobber the packet handling. Hopefully a fix
is in the works. In the meantime, a blunt approach to what you
describe is to simply turn off streaming before tuning and restart
afterwards with some number of sleep cycles inserted. Timestamps, if
necessary, can accommodate the discontinuity.

Support for UHD's new logging API

A month ago, EttusResearch brought new logging API replacing msg API, since then builds with master branch of the UHD lib is failing with:

~/dev/srsLTE/srslte/lib/rf/uhd_c_api.cpp:14:29: error: variable or field ‘translate_handler’ declared void
 void translate_handler(uhd::msg::type_t type, const std::string & msg)
                             ^
~/dev/srsLTE/srslte/lib/rf/uhd_c_api.cpp:14:29: error: ‘uhd::msg’ has not been declared
~/dev/srsLTE/srslte/lib/rf/uhd_c_api.cpp:14:47: error: expected primary-expression before ‘const’
 void translate_handler(uhd::msg::type_t type, const std::string & msg)
                                               ^
~/dev/srsLTE/srslte/lib/rf/uhd_c_api.cpp: In function ‘void rf_uhd_register_msg_handler_c(void (*)(const char*))’:
~/dev/srsLTE/srslte/lib/rf/uhd_c_api.cpp:23:8: error: ‘uhd::msg’ has not been declared
   uhd::msg::register_handler(translate_handler);
        ^
~/dev/srsLTE/srslte/lib/rf/uhd_c_api.cpp:23:30: error: ‘translate_handler’ was not declared in this scope
   uhd::msg::register_handler(translate_handler);
                              ^
srslte/lib/rf/CMakeFiles/srslte_rf.dir/build.make:134: recipe for target 'srslte/lib/rf/CMakeFiles/srslte_rf.dir/uhd_c_api.cpp.o' failed
make[2]: *** [srslte/lib/rf/CMakeFiles/srslte_rf.dir/uhd_c_api.cpp.o] Error 1
CMakeFiles/Makefile2:2662: recipe for target 'srslte/lib/rf/CMakeFiles/srslte_rf.dir/all' failed
make[1]: *** [srslte/lib/rf/CMakeFiles/srslte_rf.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

I'm leaving a note for the googlers, you can use UHD 3.9 LTS branch for srsLTE until the new version of UHD is released.

Analyze my own signal file with pdsch_ue.c?

Hey there,

I've successfully generated a signal file using ./pdsch_enodeb and demodulated it using ,/pdsch_ue. I would now like to be able to demodulate my own custom signal using ./pdsch_ue. To clarify, I have a binary file that contains a signal generated from separate software. I have tried to feed this input file into the ./pdsch_ue, however it is unable to decode the MIB. I have tried several different input methods (binary, normal ASCII) as well as altering some input flags, however it does not work. Can you please suggest another approach to doing this or if I'm missing something.

Additionally, is there anyway to display PSS/SSS/CRS info on the pdsch_ue side, after the signal is demodulated?

Thank you!

How Do I find SNR from pdsch_enodeb.c?

Hi, I was working on the code and using it for transmitting a video file, which I have done successfully. But I want to find the SNR and bit error rate to find the loss. What code should I use?
Ps. I am very new to coding C.

Compilation on non-Intel Ubuntu machines?

Hi - I am not sure if this is an issue, or a request, but I wanted to run srsLTE on a small fast ARM board (The Odroid XU4), and using limeSDR. The processor board runs other gnuradio based software successfully, and soapy seems to work with UHD software (like tx_samples_from_file).

The compile proceeds with no issues, but when I run the first test example, I get a Bus Error:
I guess my question is: Should I give up now, or is there some possibility that, through some debugging, this set of hardware could run srsLTE?
Cheers Hugh
I have attached a file messages.txt showing the full output of the first example command. In short, it ends like this:
-- SoapyLMS7::setSampleRate(Rx, 0, 1.92 MHz), CGEN=30.72 MHz, ADC=7.68 MHz, decim=4
ConnectionSTREAM::ConfigureFPGA_PLL(tx=3.84MHz, rx=1.92MHz)
Warning popping from TX, samples popped 0/1360
----- FPGA PLL #0 CONFIG -----
M=136, N=1, Fvco=1044.480 MHz
Configured phase: 0.0 (steps 0)
Configured phase: 91.7 (steps 277)
Rx pktLoss@4 - ts diff: 1232507136 pktLoss: 0.0
Rx pktLoss@7 - ts diff: 1206153216 pktLoss: 0.0
Bus error

Sync Test Failing

Hello, I ran make test and I am getting these results:

*** stack smashing detected ***: /home/cewgroup/srsLTE/build/lib/src/phy/sync/test/sync_test terminated
93/131 Test #93: sync_test_100 ....................***Exception: Other 0.88 sec
Start 94: sync_test_400
*** stack smashing detected ***: /home/cewgroup/srsLTE/build/lib/src/phy/sync/test/sync_test terminated
94/131 Test #94: sync_test_400 ....................***Exception: Other 0.87 sec
Start 95: sync_test_100_e
*** stack smashing detected ***: /home/cewgroup/srsLTE/build/lib/src/phy/sync/test/sync_test terminated
95/131 Test #95: sync_test_100_e ..................***Exception: Other 0.87 sec
Start 96: sync_test_400_e
*** stack smashing detected ***: /home/cewgroup/srsLTE/build/lib/src/phy/sync/test/sync_test terminated
96/131 Test #96: sync_test_400_e ..................***Exception: Other 0.88 sec

The sync function seems to fail. This is with SRSLTE 2.0.

prach: Repeated offset miss with certain UE devices

Huawei E398 USB modem (Qualcomm MDM9200) shows consistent and repeated PRACH measurement offset. Behavior may be device/chipset specific; identical measurements are obtained with two separate modems of the same model.

Expected PRACH offset is seen with a Google Nexus 4. Errant timing behavior not seen with Amarisoft eNode.

Hauwei E398 (Qualcomm MDM9200)

15:04:47.821276 [PHY0] Info    [01340] PRACH: 0/1, preamble=41, offset=87.7 us, peak2avg=834.0, max_offset=30.0 us
15:04:47.841231 [PHY0] Info    [01360] PRACH: 0/1, preamble=32, offset=87.7 us, peak2avg=833.9, max_offset=30.0 us
15:04:47.861188 [PHY0] Info    [01380] PRACH: 0/1, preamble=47, offset=87.7 us, peak2avg=833.7, max_offset=30.0 us
15:04:47.881238 [PHY0] Info    [01400] PRACH: 0/1, preamble=39, offset=87.7 us, peak2avg=834.6, max_offset=30.0 us
15:04:47.901235 [PHY0] Info    [01420] PRACH: 0/1, preamble=13, offset=87.7 us, peak2avg=834.2, max_offset=30.0 us
15:04:47.921252 [PHY0] Info    [01440] PRACH: 0/1, preamble=41, offset=87.7 us, peak2avg=830.0, max_offset=30.0 us
15:04:47.941208 [PHY0] Info    [01460] PRACH: 0/1, preamble=51, offset=87.7 us, peak2avg=835.3, max_offset=30.0 us
15:04:47.961266 [PHY0] Info    [01480] PRACH: 0/1, preamble=34, offset=87.7 us, peak2avg=831.1, max_offset=30.0 us
15:04:47.981220 [PHY0] Info    [01500] PRACH: 0/1, preamble=35, offset=87.7 us, peak2avg=830.6, max_offset=30.0 us
15:04:48.001275 [PHY0] Info    [01520] PRACH: 0/1, preamble=22, offset=87.7 us, peak2avg=831.4, max_offset=30.0 us
15:04:48.021235 [PHY0] Info    [01540] PRACH: 0/1, preamble=48, offset=87.7 us, peak2avg=831.2, max_offset=30.0 us
15:04:48.041232 [PHY0] Info    [01560] PRACH: 0/1, preamble=25, offset=87.7 us, peak2avg=824.6, max_offset=30.0 us
15:04:48.061252 [PHY0] Info    [01580] PRACH: 0/1, preamble=17, offset=87.7 us, peak2avg=824.7, max_offset=30.0 us
15:04:48.101259 [PHY0] Info    [01620] PRACH: 0/1, preamble=14, offset=87.7 us, peak2avg=825.1, max_offset=30.0 us
15:04:48.121213 [PHY0] Info    [01640] PRACH: 0/1, preamble=35, offset=87.7 us, peak2avg=824.1, max_offset=30.0 us

Google Nexus 4 (Qualcomm APQ8064)

15:20:35.484196 [PHY0] Info    [09721] PRACH: 0/1, preamble=19, offset=0.0 us, peak2avg=692.6, max_offset=30.0 us
15:20:35.486039 [MAC ] Info    [09722] SCHED: Added user rnti=0x46
15:20:35.486057 [MAC ] Info    [09722] SCHED: Set bearer config lc_id=0, direction=3
15:20:35.486111 [RRC ] Info    Added new user rnti=0x46
15:20:35.486117 [MAC ] Info    [09723] RACH:  tti=9721, preamble=19, offset=0, temp_crnti=0x46
15:20:35.487045 [MAC ] Info    [09724] SCHED: RAR, ra_id=0, rnti=0x46, rarnti_idx=2, start_rb=0, n_rb=3, rar_grant_rba=202, rar_grant_mcs=0
15:20:35.487073 [PHY1] Info    [09724] PDCCH: DL DCI Format1A rnti=0x2, cce_index=0, L=4, tti_tx=9728
15:20:35.487082 [PHY1] Info    [09724] PDSCH: rnti=0x2, l_crb= 3, rb_start=0, harq=0, tbs=7, mcs=0, rv=0, tti_tx=9728
             0000: 53 00 01 94 0c 00 46 
15:20:35.489073 [MAC ] Info    [09726] SCHED: RAR tx rnti=0x46, pid=6, dci=0,0, grant=2,3, n_rtx=0, tbs=7, bsr=0 (0)
15:20:35.497103 [PHY1] Info    [09734] PUSCH: rnti=0x46, prb=(2,5), tbs=7, mcs=0, rv=0, snr=20.9 dB, n_iter=1, crc=OK, dec_time=  37 us
             0000: 00 58 0d 3b 14 dc 96 
15:20:35.497132 [PHY1] Info    [09734] PHICH: rnti=0x46, hi=1, I_lowest=2, n_dmrs=0, tti_tx=9738
15:20:35.497322 [PDCP] Info    RX SRB0 PDU
             0000: 58 0d 3b 14 dc 96 
15:20:35.497362 [RRC ] Info    Rx SRB0 PDU
             0000: 58 0d 3b 14 dc 96 
15:20:35.497373 [RRC ] Info    SRB0 - Rx: RRC Connection Request
             0000: 58 0d 3b 14 dc 96 
15:20:35.497380 [RRC ] Info    Allocated SR resources for time-frequency slot (0, 0), N_pucch_sr=0, I_sr=16
15:20:35.497384 [RRC ] Info    Allocated CQI resources for time-frequency slot (0, 0), n_pucch_2=0, pmi_cfg_idx=37
15:20:35.497387 [MAC ] Info    [09734] Registering rnti=0x46 to PHY...
15:20:35.510933 [MAC ] Info    [09747] Done registering rnti=0x46 to PHY...

Configuration

Amarisoft MME (2016-10-13)
SRS eNodeB (00be4a5de7840)
SRS default configuration (ex. dl_earfcn=300, tx_gain = 0)
RF isolated environment (>90 dB @ 2 GHz)
UE - Huawei E398, LG Nexus 4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.