1. 27 Aug, 2018 4 commits
    • Cedric Roux's avatar
      bugfix: fix threading in the UE · 572ff37a
      Cedric Roux authored
      Various problems were found with the basic simulator.
      
      Variables used by various threads for synchronization need to
      be initialized properly. That is before the various threads
      start using them.
      
      This goes for:
      - UE->is_synchronized
      - UE->proc.instance_cnt_synch
      - UE->proc.instance_cnt_rxtx
      
      The function "UE->rfdevice.trx_start_func" was called in
      "UE_thread_synch" but should be called in "UE_thread" because
      "UE_thread" is the one that calls "UE->rfdevice.trx_read_func"
      and there is no guaranty that the call to "UE->rfdevice.trx_start_func"
      is done before as it has to (it's in another thread).
      
      And finally "pthread_cond_signal(&proc->cond_rxtx)" was called twice,
      which may not be a problem but was certainly not intended. Plus
      removing one call simplifies the code by removing some "if" logic,
      which is a good thing per se.
      
      This commit was not tested with a real UE and may thus introduce some
      issues. Hopefully not!
      572ff37a
    • Cedric Roux's avatar
      basic simulator: bugfix: do not put random data in DCI when not used · 81603fbc
      Cedric Roux authored
      With 50 RBs and 100 RBs the UE crashes in the basic simulator
      because of false detection of DCIs.
      
      Putting nothing in the unused REs in the DCI instead of random
      bits solves this issue and let the basic simulator run with 50 RBs
      and 100 RBs.
      
      Note that in the real UE the problem needs to be solved because
      the channel may lead to false DCI detection and the consequent
      crashes have to be solved. This commit sort of "hides" the issue
      to have the basic simulator functional.
      
      Note also that putting nothing in the unused REs in the DCI should
      be the normal general case. But it has not been tested with anything
      but the basic simulator so the previous code is left.
      81603fbc
    • Cedric Roux's avatar
      basic simulator: bugfix: wait for synch ready at the right time · a7da3282
      Cedric Roux authored
      Before this commit we were checking for UE->is_synchronized == 0
      then we were waiting for a potentially active synch routine to
      finish and then we were starting the synch routine again but the
      synch routine that was running may have set UE->is_synchronized
      to 1. This was leading to various problems, most notably the following
      message repeated over and over in the UE log and the UE unable to
      connect properly:
      
          [RRC]  [UE 0] Frame 377: OUT OF SYNC FROM eNB 0 (T310 active 0 : T310 0, N310 345, N311 0)
      
      So let's wait for a potentially active synch routine to finish
      before anything else.
      a7da3282
    • Cedric Roux's avatar
      889ecd1c
  2. 24 Aug, 2018 2 commits
  3. 22 Aug, 2018 2 commits
  4. 21 Aug, 2018 1 commit
  5. 20 Aug, 2018 1 commit
  6. 17 Aug, 2018 13 commits
  7. 16 Aug, 2018 2 commits
  8. 14 Aug, 2018 1 commit
  9. 13 Aug, 2018 4 commits
  10. 10 Aug, 2018 1 commit
  11. 09 Aug, 2018 1 commit
  12. 08 Aug, 2018 3 commits
    • Cedric Roux's avatar
      T: improve to_vcd tracer · 87415988
      Cedric Roux authored
      Make it compatible with 'template' gtwave files as found in openair's
      repository.
      
      The type VCD_NAME was added to the VCD IDs in T_messages.txt.
      The database processing code was adapted to use it.
      The tracer to_vcd was adapted to use it and render the produced vcd
      output compatible with the 'template' gtkwave files.
      
      When running to_vcd, do not forget to pass -vcd to use this feature.
      87415988
    • Cedric Roux's avatar
      T: add a 'multi' tracer · ec1b1e12
      Cedric Roux authored
      This tracer allows the connection of several tracers to one tracee.
      
      To use the multi tracer:
      - run the tracee as usual, eg. ./lte-softmodem -O xxxx.conf --T_stdout 0
      - run the multi tracer: ./multi -d ../T_messages.txt
      - connect other tracers to the multi tracer:
         - ./enb -d ../T_messages.txt -p 2022
         - ./textlog -d ../T_messages.txt -p 2022
         - etc.
      
      By default the multi tracer connects to the tracee to the port 2021,
      as for any other tracer.
      
      Then it accepts connections from other tracers on the port 2022.
      
      This can be changed with parameters on the command line.
      
      The tracee and the other tracers can be stopped/started at any time.
      ec1b1e12
    • Cedric Roux's avatar
      T: bugfix and cleanup · 627da1c2
      Cedric Roux authored
      - bug fixed in ue and enb tracer: the socket needs to be closed
        in case of restart
      - cleanup: fix spacing in T_messages.txt
      627da1c2
  13. 07 Aug, 2018 4 commits
  14. 06 Aug, 2018 1 commit