1. 23 Mar, 2018 1 commit
    • Cedric Roux's avatar
      bugfix: fix a memory leak · 3a0d9339
      Cedric Roux authored
      When doing TCP downlink traffic with iperf for several
      hours, the memory consumption of lte-softmodem does not
      stop to grow.
      After analysis, this commit seems to be the only fix needed.
      To be checked somehow.
  2. 09 Mar, 2018 1 commit
    • Cedric Roux's avatar
      hack: try to avoid "buffer full" problem when pushing DL traffic · 71e7f971
      Cedric Roux authored
      This is hack-level development.
      With this commit you can do UDP DL traffic of say 100Mb/s over
      a 5MHz link with one connected UE and the eNB should not crash
      because of memory exhaustion. Of course on the receiver side
      you won't get 100Mb/s and many many lost packets. But the system
      should not crash. 1Gb/s does not work. So in any case try to
      remain within some reasonable limits. There is no reason to
      push more than twice the maximum achievable throughput of
      the link.
      This work is based on a patch proposed by Francesco Gringoli.
  3. 08 Mar, 2018 1 commit
  4. 05 Feb, 2018 1 commit
    • Cedric Roux's avatar
      bugfix: fix initialUEMessage criticality · f55cbe47
      Cedric Roux authored
      S1AP specs say:
          initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
              INITIATING MESSAGE      InitialUEMessage
              PROCEDURE CODE          id-initialUEMessage
              CRITICALITY             ignore
      So let's use "ignore", not "reject".
      The online decoder http://asn1-playground.oss.com/ did
      not decode a message encoded by the eNB because of this.
      Only the S1AP messages captured while doing a simple connection
      of one UE have been tested with the online decoder.
      So, not all the S1AP messages have been checked, maybe some
      instances of this problem are still there.
      It does not seem to harm the actual UE<->eNB<->EPC communication
      (because we don't check the integrity of messages or because
      asn1c does not do it), so it's not a big deal.
  5. 16 Jan, 2018 1 commit
  6. 15 Jan, 2018 2 commits
    • Mongazon's avatar
      Mongazon authored
    • Cedric Roux's avatar
      import NFAPI work from David Price from Cisco (non-working commit, do not use it) · 7757b9e7
      Cedric Roux authored
      It has been chosen to not include the full history of commits
      from David. He included a binary version of wireshark, probably
      a modified one that understands NFAPI. Wireshark is released under
      the GPL license, we cannot include it in the repository. We could
      have done a next commit to remove this binary. But then it would
      still be present in the history of commits, which may not be allowed.
      And it would take space on disk. We could edit the history to remove
      wireshark entirely. But this operation is too complicated.
      There was also a pcap capture file, which has nothing to do in
      the history of commits and would take space on disk. There again,
      it's too difficult to edit the history to remove it.
      There was a file .gitignore that was also removed.
      The original history can be found on David's repository:
      The branch is: nfapi-ru-rau-split.
      A copy of that branch has been included in the internal OAI
      repository, for those who have access to it.
      The branch is the same. The last commit ID is
      You can compare the current commit with the commit 9106...
      to see what differs.
      The current commit has to be considered non-working.
      The commit following the current commit will fix problems with
      the work in the current commit.
      If you use git bisect, don't spend time analyzing the current
  7. 08 Jan, 2018 1 commit
  8. 14 Dec, 2017 1 commit
  9. 28 Nov, 2017 1 commit
  10. 23 Oct, 2017 1 commit
  11. 19 Oct, 2017 1 commit
    • Cedric Roux's avatar
      remove gcc warnings · f1e8bff3
      Cedric Roux authored
      phy_init_lte_ue_signal was renamed init_lte_ue_signal in openair1/PHY/INIT/defs.h
      maybe it's the opposite that should have been done?
      Functions used in one file and defined in another may have been
      declared in the wrong header file.
  12. 28 Sep, 2017 1 commit
  13. 10 Aug, 2017 1 commit
  14. 19 Jul, 2017 1 commit
  15. 23 Jun, 2017 1 commit
    • Cedric Roux's avatar
      fix: let run_enb_ue_virt_s1 work with "default" openair-cn · 9adfa48d
      Cedric Roux authored
      - ue mcc/mnc 208.93
      - use correct key/opc for user
      - change addresses in conf file for them to be easier to understand
      With those changes, running:
         sudo ./run_enb_ue_virt_s1
      in cmake_targets/tools should work out of the box
      The user still has to configure correct IP addresses in
      We supposed oaisim (enb+ue) machine to be on IP address
      and EPC (hss, mme, spgw) machine to be on IP address
  16. 18 May, 2017 1 commit
    • Cedric Roux's avatar
      improve logging in oaisim · 5e323eef
      Cedric Roux authored
      - print current working directory
      - print git version (if available)
      - print security keys
        this last one is a security breach, but as of today
        it's not a problem
  17. 17 Apr, 2017 1 commit
  18. 23 Mar, 2017 1 commit
    • Cedric Roux's avatar
      fix issue 227 - UE IP settings disrupts realtime · cff91499
      Cedric Roux authored
      see oai/openairinterface5g#227
      When the UE connects to the eNodeB and receives its IP address from the
      network, it calls system() to set it in the linux kernel world. This call
      is not done in a realtime thread, but in the NAS, which uses its own thread,
      independent of the realtime processing.
      In some situations this totally disrupts realtime processing.
      It is difficult to know precisely why that happens, but it seems that calling
      fork(), as system() does, in a multi-threaded program is not a good idea. (So
      say several people on the internet.) It is not clear why the softmodem is
      impacted, but it seems that fork() is really what triggers the disruption.
      Several tests lead to that conclusion.
      To fix the problem, we create a child background process very early in main()
      (before anything else basically). Then instead of calling system(), the main
      process sends the string to the background process. The background process
      gets the string, passes it to system() and reports the success/failure back
      to the main process.
      This solution involves a lot of system calls, but calling system() in the
      first place is not cheap either. As long as no realtime thread uses this
      mechanism, things should be fine. Time will tell.
  19. 22 Mar, 2017 1 commit
  20. 20 Mar, 2017 1 commit
  21. 13 Mar, 2017 1 commit
  22. 08 Mar, 2017 4 commits
  23. 17 Feb, 2017 3 commits
    • Cedric Roux's avatar
      fix warnings: fix LOG_X problems when compiling lte-softmodem · 603c84c7
      Cedric Roux authored
      The compilation line was:
          ./build_oai --eNB -w USRP
      The file openairinterface5g/cmake_targets/log/lte-softmodem.Rel10.txt
      has been checked and all LOG_X (and 'msg') warnings have been fixed.
    • Cedric Roux's avatar
    • Cedric Roux's avatar
      Revert "fix nettle" · 76574a1a
      Cedric Roux authored
      This reverts commit d31634c3.
      Laurent Thomas had a problem on one machine with the build_oai
      way of checking for nettle.
      The problem with the alternative solution of including nettle/bignum.h
      is that it is very unclear.
      The problem with nettle is that the file nettle/config.h does not
      exist for version 2. It was introduced in version 3.
      We want to support both versions, but there is an API incompatibility.
      So we need an #if #else mechanism.
      The file nettle/bignum.h is present in both versions 2 and 3 and it
      includes nettle/version.h in the version 3.
      So by including this file, we can check for the existence of
      NETTLE_VERSION_MAJOR (that comes from nettle/config.h) in the
      But as you can see, the reasoning is way too complex.
      So it's better to keep the check in cmake_targets/CMakeLists.txt.
      As long as we support version 2 this will be the way to go.
      It is possible to force a given version in specific non-generic
      customized environments.
  24. 16 Feb, 2017 2 commits
    • Cedric Roux's avatar
      bugfix: make some functions thread safe · 9535e7a2
      Cedric Roux authored
      Those functions modify a global char array (a string).
      Let's pass a buffer to those functions, so that it's
      thread safe. The caller has been modified, with hopefully
      a buffer big enough (still bigger than what was there before,
      so should not break more than it did).
    • Cedric Roux's avatar
      fix UE default configuration file · 63c0ed70
      Cedric Roux authored
      - fix OPc key
      - clear EHPLMN_LIST, UE does not start the RA procedure when set
        to be fixed
  25. 15 Feb, 2017 1 commit
  26. 09 Feb, 2017 2 commits
  27. 02 Feb, 2017 2 commits
    • Cedric Roux's avatar
      fix gen_emm_data · d72294b9
      Cedric Roux authored
      It was not setting emm_data->eplmn.plmn[X], only emm_data->eplmn.n_plmns,
      leading to the UE to dig for PLMN 00000.
      (It's not the end of the story, seems like the PLMN selection
      does not work, the UE only tries one from what I've seen, but
      I didn't dig much, may be wrong.)
    • Cedric Roux's avatar
      better handle user input in hex_string_to_hex_value · ea6fb5c4
      Cedric Roux authored
      Adapt calling sites too.
      When data comes from the user, it is good to check that
      what we read is correct and warn the user if it's not.
  28. 01 Feb, 2017 1 commit
  29. 30 Jan, 2017 1 commit
  30. 27 Jan, 2017 2 commits
    • Cedric Roux's avatar
      update license information · 53e416be
      Cedric Roux authored
      Also included some source files not related to this branch.
      	modified:   openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c
      	modified:   openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c
      	modified:   openair1/PHY/MODULATION/beamforming.c
      	modified:   openair1/PHY/TOOLS/twiddle18432.h
      	modified:   openair1/SIMULATION/LTE_PHY/dlsim_tm7.c
      	modified:   openair3/NAS/TOOLS/nvram.c
      	modified:   openair3/NAS/TOOLS/usim.c
      	modified:   openair3/NAS/UE/user_defs.h
    • Cedric Roux's avatar
      fix compilation of oaisim · f6e42ce9
      Cedric Roux authored
      That's not the end of the story though.