1. 08 Mar, 2018 2 commits
    • Cedric Roux's avatar
      cleanup - remove unnecessary calls to get_cpu_freq_GHz · 160a95dd
      Cedric Roux authored
      The one in lte-enb.c disrupts the realtime. Using a B200mini with
      20MHz bandwidth leads to the UE unable to connect for it seesms like
      the UL and DL are not properly time synched because of this sleep
      of one second that happens after the USRP streaming has started.
      We see some random access attempts but the decoded preamble is
      wrong.
      
      This may be dependant on the setup. I had sporadic errors with
      a B210, where sometimes the UE could connect and sometimes not.
      160a95dd
    • Cedric Roux's avatar
      cleanup MAC PDU generation (plus some general cleanup) · 3f397ad8
      Cedric Roux authored
      The code was very unclear and potentially buggy.
      This new version is more robust.
      
      We can waste up to 2 bytes because the last header in the MAC PDU
      does not contain a length field and when we request data from RLC
      we suppose a 3-bytes MAC header. This might be optimized at some
      point, but the benefit would be low.
      
      This commit also contains some general cleanup:
      - formatting
      - variables' types: let's use 'int' instead of trying to be clever
        by using small types that may generate bugs if the value is
        too big
      - remove 'tpc_accumulated' which was globally used for all UEs
        and has no purpose other than logging. We may want to rework
        a bit the TPC machinery at some point. As the code is today
        we may repeatedly send TPC over and over without caring about
        the 3GPP limits, in which case no one knows how the UE is
        supposed to behave: does it clamp the current max value or does
        it accumulate over and over and take the clamped value to compute
        its actual power? If we send a reverse TPC (reduce power instead
        of increase) does it do it immediately or does it have to decrease
        n+1 times if we previously ordered it to increase n times?)
      
      We do not address the problem of prioritizing LCIDs. As of today there
      is only one dedicated traffic channel (DTCH), so it's not a problem
      at this point.
      
      What has been tested:
      - monolithic eNB 5/10/20MHz with one cots UE, TCP/UDP UL/DL. At 20MHz the
        machine used was not capable of keeping up, generating lots of Us
        and Ls when the throughput reaches 60Mb/s. USRP B210 was used.
      3f397ad8
  2. 02 Mar, 2018 3 commits
    • Cedric Roux's avatar
    • Cedric Roux's avatar
    • Cedric Roux's avatar
      hotfix: fix bad RLC UM packet creation · 934f0bcf
      Cedric Roux authored
      Running TCP DL traffic with one connected UE showed a lot of
      fluctuations in throughput. After analysis it was found that
      sometimes the RLC UM PDU was not correct. It contained one byte
      more than it should. On the receiver side, the TCP packet
      contained in the RLC packet seems to be rejected by the TCP
      stack of the UE (it has one byte more than it should),
      leading to a brutal reduction of the throughput, probably due
      to some congestion detection in the TCP implementation.
      Or something.
      
      This hotfix seems to solve the problem. Using iperf in downlink
      with a 5MHz eNB, we see no more fluctuations, the traffic is
      very steady at 16.8Mb/s, as reported by the iperf server running
      on the phone. (17.5 in the PHY plot of the T tracer.)
      
      A rewrite of both the MAC and RLC UM packet generation is needed.
      The code is way too complex for what it does and may contain
      several similar problems that only trigger in specific rare
      conditions.
      934f0bcf
  3. 01 Mar, 2018 1 commit
  4. 26 Feb, 2018 2 commits
  5. 22 Feb, 2018 13 commits
  6. 20 Feb, 2018 1 commit
  7. 19 Feb, 2018 2 commits
  8. 18 Feb, 2018 3 commits
  9. 17 Feb, 2018 2 commits
  10. 16 Feb, 2018 2 commits
  11. 15 Feb, 2018 4 commits
  12. 14 Feb, 2018 5 commits