OpenAirInterface configuration

Hi Guys,
Im trying to set up OAI v0.5 with LimeSDR v1.2s card as demo setup,
I faced with problem that this kind of setup doesn’t described anywhere, but there video with working demo available, which is impressive: https://www.crowdsupply.com/lime-micro/limesdr/updates/oai-lte-demo

So first general questions regardin OAI and LimeSDR setup:

  1. Do we need to setup LimeSDR board somehow to use it with OAI eNB software?
  2. Do we need to upload any special FW on board?
  3. Does anybody plan to describe this setup?

Second question is particular one, regarding “Failed to load configuration file (null)” during eNB startup with LimeSDR.
During lte_modem startup, looks like LimeSDR driver complains that “Failed to load configuration file (null)”.

My configuration:
$ lsb_release -d
Description: Ubuntu 14.04.3 LTS
$ uname -a
Linux ilebedevubuntu 3.19.0-61-lowlatency
69~14.04.1-Ubuntu SMP PREEMPT Thu Jun 9 10:15:00 UTC 2016 x86_64 x86_64
x86_64 GNU/Linux
OAI build command:
“build_oai --eNB -w LMSSDR -c”

OAI start command:
“sudo -E
./openairinterface5g/cmake_targets/lte_build_oai/build/lte-softmodem -O
./openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf”

eNodeB network interface:
eth0 Link encap:Ethernet HWaddr e0:3f:49:84:99:16
inet addr:192.168.10.221 Bcast:192.168.11.255 Mask:255.255.252.0

EPC (HSS+MME+SPGW) running on different machine with network interface:
eth0 Link encap:Ethernet HWaddr 20:cf:30:ab:dc:24
inet addr:192.168.9.183 Bcast:192.168.11.255 Mask:255.255.252.0

End of lte_modem startup log:
waiting for sync (eNB_thread)
Connecting to device: [0] USB 3.0 (LimeSDR-USB)
Claimed Interface
Configuring Si5351C
CLK0 fOut = 27 MHz Multisynth Divider 33 0/1 R divider = 1 source = PLLA
CLK1 fOut = 27 MHz Multisynth Divider 33 0/1 R divider = 1 source = PLLA
CLK2 fOut = 27 MHz Multisynth Divider 8 0/1 R divider = 1 source = PLLA
CLK3 fOut = 27 MHz Multisynth Divider 8 0/1 R divider = 1 source = PLLA
CLK4 fOut = 27 MHz Multisynth Divider 8 0/1 R divider = 1 source = PLLA
CLK5 fOut = 27 MHz Multisynth Divider 8 0/1 R divider = 1 source = PLLA
CLK6 fOut = 27 MHz Multisynth Divider 8 0/1 R divider = 1 source = PLLA
CLK7 fOut = 27 MHz Multisynth Divider 8 0/1 R divider = 1 source = PLLA
Si5351C : VCOA = 891 MHz Feedback Divider 35 41943/65536
Si5351C : VCOB = 891 MHz Feedback Divider 35 41943/65536
Failed to load configuration file (null)

My eNB config file is based on enb.band7.tm1.lmssdr.conf, just network interfaces corrected and “nb_antennas_ports” renamed to “nb_antenna_ports”.

Any help will be appreciated.
Thanks,
Ilya Lebedev.

Hi Ilya,

Any resolution to the above? We are working on the same setup. Just looking for basic OAI setup working using LimeSDR.

We are seeing similar error. At the moment we were testing with Master branch of OAI, we are switching to develop branch now(tomorrow). Any other tricks or special configurations you learned would be great to share here.

Thanks,
Joey

Hi Ilya, Joey,

Here are some instructions we received. I’d be grateful if you could give this a go and report back.

  1. checkout a fresh version of LimeSuite from https://github.com/myriadrf/LimeSuite.
  2. from the oai directory: git checkout calib-LimeSDR
  3. cd cmake_targets
  4. ./build_oai --eNB -x -w LMSSDR
  5. edit one of the three configuration files that are there : targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.XXPRB.lmssdr.conf for the EPC configuration
  6. cd lte_build_oai/build
  7. sudo ./lte-softmodem -O …/…/…/targets/PROJETS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.XXPRB.lmssdr.conf --rf-config-file …/…/…/targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini

Attached is a picture on how to wire your board (again for band 7). The TX port is TX1_2 and RX port is RX1_H.

1 Like

Andrew!

Awesome!

One edit to above, there appears to be a bad patch file in the calib-LimeSDR branch. the cmake_targets/tools/fix_asn1 file tries to patch NativeInteger.c and constr_SET_OF.c but they are already fixed in the branch it seems so the SHA1 fails causing the build to fail in step 4. After we remove these files from the patch, we build and run the eNB.

Also, our LimeSDRs appear to have shipped with older firmware, we had to update to FW 3 before things were happy. Did this using “LimeUtil --upgrade”

We now have S1AP established just need to verify RF side to UE.

Thanks for the pointers!

1 Like

Great to hear, Joey!

Do keep us posted with your progress. Also, I wondered if you might be willing to document a basic how-to guide on the wiki? If so I can create a wiki account for you.

Yes, definitely. Once we get things fully working we can share our “recipe” if you will. At the moment are seeing stability issues, the eNB crashes after about 5 minutes. We are double checking some configurations and will post logs of what we are seeing.

[EDIT] Actually, why wait. If you create me an account I can post what we have done, and what we are seeing, and we can use the comment area of the post to hopefully work through any remaining issues. I’m compiling my notes now to make sure I have all the steps we did documented.

Sorry Andrew, Joey.
Missed the Joey’s question.
So short answer for the “Failed to load configuration file (null)” problem is that additionally --rf-config-file flag should be provided with appropriate file under “./targets/ARCH/LMSSDR/” folder. This is low level board configuration file, as I understand.
Let me know if you will be stuck with the wiki: while been working on this, I did prepare instructions set to get working config with LIMESDR - just need to check is still actual and update it according latest changes.

Thanks, Ilya.

Hi Andrew and Ilya,

Thanks again for the help and replies.

Wonder if I can get further help.

We have eNB compiling and running on LMSSDR, however we still have issues achieving and maintaining attach complete with UE.

I can post section of eNB log below that looks pertinent to me, the whole log is 1200 lines, so I don’t want to post it all though happy to share.

As best I can tell it looks like we have unreliable uplink. If we boot the UE 5 times in a row, we see different variations of attach messaging with eNB giving the logs below often with no NAS messages getting to EPC.

[RRC][W][eNB 0] Removing UE RNTI 4bcb
MAC: remove UE 0 rnti 4bcb
[MAC][I][rrc_mac_remove_ue] Removing UE 0 from Primary CC_id 0 (rnti 4bcb)
[S1AP][W][s1ap_ue_context_release_req] Failed to find ue context associated with eNB ue s1ap id: 0
[S1AP][E][s1ap_eNB_task] Failed to find ue context associated with eNB ue s1ap id: 0
[RRC][I][FRAME 00000][eNB][MOD 00][RNTI 4bcb] Removed UE context
[PHY][I][eNB 0][RAPROC] Frame 723 Terminating ra_proc for harq 4, UE 0
[MAC][I][rx_sdu] [eNB 723] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 731 Terminating ra_proc for harq 4, UE 0
[MAC][I][rx_sdu] [eNB 731] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 742 Terminating ra_proc for harq 0, UE 0
[MAC][I][rx_sdu] [eNB 742] Frame 4, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 751 Terminating ra_proc for harq 4, UE 0
[MAC][I][rx_sdu] [eNB 751] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 759 Terminating ra_proc for harq 4, UE 0
[MAC][I][rx_sdu] [eNB 759] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 767 Terminating ra_proc for harq 4, UE 0
[MAC][I][rx_sdu] [eNB 767] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 775 Terminating ra_proc for harq 4, UE 0
[MAC][I][rx_sdu] [eNB 775] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 783 Terminating ra_proc for harq 4, UE 0
[MAC][I][rx_sdu] [eNB 783] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 793 Terminating ra_proc for harq 0, UE 0
[MAC][I][rx_sdu] [eNB 793] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I][eNB 0][RAPROC] Frame 801 Terminating ra_proc for harq 0, UE 0
[MAC][I][rx_sdu] [eNB 801] Frame 6, Subframe 0 CC_id 0 MAC CE_LCID 27 (ce 0/2): CRNTI 4bcb (UE_id -1) in Msg3
[MAC][I][rx_sdu] [eNB 0] CC_id 0 MAC CE_LCID 29 : Received short BSR LCGID = 0 bsr = 12
[PHY][I]UE 0 : rnti 5c22
[PHY][I]UE 1 : rnti c964
[RRC][I]UE rnti a0b6 failure timer 14131/20000
[RRC][I]Removing UE a0b6 instance
[RRC][W][eNB 0] Removing UE RNTI a0b6
MAC: cannot remove UE rnti a0b6

This appears to be when UE is failing to complete attached.

Then if UE does succeed and reach attache complete, with default bearer, after anywhere from 30 to 90 seconds we see the UE disconnect with messages in eNB that look like

RRC][N][eNB 0] Frame 792: received a DCCH 1 message on SRB 1 with Size 81 from UE 5452
[RRC][I][FRAME 00000][eNB][MOD 00][RNTI 5452] Received on DCCH 1 RRC_DCCH_DATA_IND
[RRC][I][FRAME 00000][eNB][MOD 00][RNTI 5452] [RAPROC] Logical Channel UL-DCCH, processing RRCConnectionSetupComplete from UE (SRB1 Active)
[S1AP][I][rrc_eNB_send_S1AP_NAS_FIRST_REQ] [eNB 0] Build S1AP_NAS_FIRST_REQ adding in s_TMSI: GUMMEI mme_code 1 mme_group_id 2 ue 5452
[RRC][I][FRAME 00000][eNB][MOD 00][RNTI 5452] UE State = RRC_CONNECTED 
[S1AP][I][s1ap_eNB_handle_nas_first_req] Found usable eNB_ue_s1ap_id: 0x9a3065 10104933(10)
[S1AP][I][s1ap_eNB_handle_nas_first_req] GUMMEI_ID_PRESENT
[SCTP][I][sctp_send_data] Successfully sent 134 bytes on stream 1 for assoc_id 8
[SCTP][I][sctp_eNB_flush_sockets] Found data for descriptor 39
[SCTP][I][sctp_eNB_read_from_socket] Received notification for sd 39, type 32777
[PHY][I]UE 0 : rnti 5452
[MAC][I][eNB_dlsch_ulsch_scheduler] UE  rnti 5452 : in synch, PHR 40 dB
[RRC][I]UE rnti 5452 failure timer 0/20000
[PHY][I]UE 0 : rnti 5452
[MAC][I][eNB_dlsch_ulsch_scheduler] UE  rnti 5452 : in synch, PHR 40 dB
[RRC][I]UE rnti 5452 failure timer 0/20000
[PHY][W][eNB 0, CC 0] frame 310, subframe 2, UE 0: ULSCH consecutive error count reached 20, triggering UL Failure
[MAC][I][UL_failure_indication] [eNB 0][UE 0/5452] Frame 310 subframeP 2 Signaling UL Failure for UE 0 on CC_id 0 (timer 0)
[PHY][E]ERROR: Format 1A: rb_alloc (1ff) > RIV_max (144)
[PHY][E]ERROR: Format 1A: rb_alloc (1ff) > RIV_max (144)
[PHY][E]ERROR: Format 1A: rb_alloc (1ff) > RIV_max (144)
[PHY][E]ERROR: Format 1A: rb_alloc (1ff) > RIV_max (144)
[PHY][E]ERROR: Format 1A: rb_alloc (1ff) > RIV_max (144)
[MAC][I][eNB_dlsch_ulsch_scheduler] UE 0 rnti 5452: UL Failure after repeated PDCCH orders: Triggering RRC 
[RRC][I]Frame 330, Subframe 1: UE 5452 UL failure, activating timer
MAC: remove UE 0 rnti 5452
[MAC][I][rrc_mac_remove_ue] Removing UE 0 from Primary CC_id 0 (rnti 5452)
[RRC][I]UE rnti 5452 failure timer 6940/20000
[RRC][I]UE rnti 5452 failure timer 17180/20000
[RRC][I]Removing UE 5452 instance
[RRC][W][eNB 0] Removing UE RNTI 5452
MAC: cannot remove UE rnti 5452
[MAC][W][rrc_mac_remove_ue] rrc_mac_remove_ue: UE 5452 not found
[S1AP][W][s1ap_ue_context_release_req] Failed to find ue context associated with eNB ue s1ap id: 0
[S1AP][E][s1ap_eNB_task] Failed to find ue context associated with eNB ue s1ap id: 0
[RRC][I][FRAME 00000][eNB][MOD 00][RNTI 5452] Removed UE context
[INFO] L 4266779680
[INFO] L 4343611520

We start the eNB app using Andrew’s step 7 above, with 25PRB conf file and same .ini file. Any thoughts or advice on where to check welcomed.

Thanks,
Joey

Also curious, Tx_gain = 7 and Rx_gain = 116 in the conf file, what the allowed ranges of those parameters? What units are they in?

I wish I could take credit, but I received those instructions from the Eurecom guys. At this point it looks like you’re going to be best looking for support from the OpenAirInterface community.

Hi, Ilya, and team

I found that fold : there are

LimeSDR_above_1p8GHz_1v4.ini
LimeSDR_below_1p8GHz.ini

LimeSDR_above_1p8GHz.ini
LimeSDR.ini

LimeSDR_below_1p8GHz_1v4.ini
USERSPAC

When install the develop ( i use the fisrt one, but I get alarms : Assertion (0) failed!
In enb_config_init() /home/success/openairinterface5g/openair2/ENB_APP/enb_config.c:691
Failed to parse eNB configuration file …/…/…/targets/PROJETS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf!

second time, i try to install the master version for basic function verification. the fold has

enb_sodera_highband_10MHz_rx19dB_txfull.ini

enb_sodera_highband_5MHz_rx19dB_txfull.ini

enb_sodera_lowband_Lrx_10MHz_rx19dB_txfull.ini

enb_sodera_lowband_Lrx_5MHz_rx19dB_txfull.ini

enb_sodera_lowband_Wrx_10MHz_rx19dB_txfull.ini

enb_sodera_lowband_

I also use the first one, still get the same alarms. ( can not parse, C:691)

----so what is the possible reason for the error ?

Thanks,

Prac

also I followed the suggested 7 steps, added source oaienv before compiling.

Just tried install LimeSDR.

use the develop branch, after step 4.
get this error,
and checked the log, – at the end of openairinterface5g/cmake_targets/log/lte-softmodem.Rel14.txt
:

openairinterface5g/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp:39:28: fatal error: lime/LimeSuite.h: No such file or directory
#include <lime/LimeSuite.h>

Did I miss someting of install the RF? when i check the LimeSDR in ubuntu, I can connect to it, and can do gui-chip. Any suggestion? thanks,
Prac

Hi Prac,

I had the same issue when I used apt-get to install LimeSuite. I then removed LimeSuite using apt-get, and rebuilt from source and the issue went away.

FYI to build LimeSuite from source you need cmake 3.x, we use 3.7.2 that we also build from source.

Hope that helps.
Joey

(We have step-by-step build guide coming shortly of what works for us.)

1 Like

Hi, have you been able to resolve the disconnection problem? Suffering from that too.

Thanks.

Hi,

We switched to using the rf-config file

–rf-config-file = LimeSDR_above_1p8GHz.ini

instead of

–rf-config-file = LimeSDR_above_1p8GHz**_1v4**.ini

and found it to be MUCH more stable. We’ve has UE up for over 2hrs with stable throughput throughput.

EDIT: I can’t make the _1v4 bold… I keep failing.

Hi,

Thanks for the info.

I was thinking about trying that, thanks for confirming, :slight_smile:
Glad that it works for you.

I’m still getting some timer error with the new config file. Maybe I need a more powerful PC.
Are your antennas connected as in this thread?

Are you using iperf for the throughput tests? I can’t browse the internet but can send whatsapp messages. I guess this has to do with the MTU but not rooting this phone as it is my personal one.

Keep up the good work,
Frederic.

Thanks for your help.

Can you post the error message you are seeing? Or put the eNB log in a dropbox and post the link?

We had one Gigabyte PC, with i7 5775R CPU, that had issues with USB bus/interface and caused us a lot of grief as it was the first PC we tried. Turns out it was a HW problem… after much consternation, and our other units all perform fine.

The error we were seeing was something like “expected 7380 samples from USRP and only received xxxx samples” where xxxx was always <7380 and fluctuated between 0 and 7379.

Is that the error you are seeing?

Also, FYI, we see this timing error mentioned a lot after eNB comes up, not sure if it’s “normal” but at the very least it seems non-detrimental.

[PHY][I]rx_rf: rfdevice timing drift of -7680 samples (ts_off 0)
[PHY][I]rx_rf: rfdevice timing drift of -2240 samples (ts_off 15360)

Also also, we see this message when the eNB is up and operational over and over, about once every 5 seconds I think.

[MAC][I]UE rnti 146c : in synch, PHR 38 dB
[RRC][I]UE rnti 146c failure timer 0/20000
[PHY][I]UE 0 : rnti 146c

Similar to above, not sure it’s “normal” but it seems to not effect our stability or performance, so far at least.

Good luck,
-Joey

Hi Joey,

Managed to get it to work as your setup. Thanks a lot!!!

I increased the MTU (now 1536) on the interfaces between the eNodeB and EPC components, everything works now. It has been running Youtube videos for the last 10mins, :slight_smile: .

I still get the errors you mentioned but it’s running.

I can try more interesting things now.

Thanks again,
Frederic.

Hi Joey,

If you can and have time, can you test the throughput?

I tested the throughput to external servers:
Trial No.-------------ping latency (divided by 2 by the App)](ms)------------Downlink(Mbps)------------------Uplink(Mbps)
1-----------------------21---------------------------------------------------------------------------6.52-------------------------------7.82
2-----------------------27---------------------------------------------------------------------------7.46-------------------------------7.92
3-----------------------27---------------------------------------------------------------------------3.64-------------------------------9.30

On WiFi:
1-----------------------8-----------------------------------------------------------------------------99.37-----------------------------77.11

Probably needs to contact OAI to see how the optimization is done.

Thanks,
Frederic.

Hi Frederic,

We just used www.speedtest.net, chose a local server (Denver, CO, USA) and ran speed tests on that every 30 minutes or so. We were getting consistent 15 Mbps DL, 8 Mbps UL, with pings around 25ms.

We are currently using 5 MHz and based on the OAI Wiki under I think “Features” page that looks basically inline with what we should expect.

We are switching to 10 MHz soon to see if we can double the throughput and stay stable.

Looks like your ping times are reasonable if they are RTT, if they are indeed halved they look high. UL throughput looks right if you are using 5MHz BW, that matches our results. DL throughput looks poor.

Can you see the RSSI of the DL on your UE? I wonder if you are just having link quality issues and dropping to a low MCS/I_tbs.

Are you using a duplexer and antenna for your band?

Also what PC HW are you running on, what % cpu do you see when you do top command when eNB is running?

Just throwing out stuff I can think of, sorry if any are insulting (none meant that way) or far fetched.

-Joey