1. 07 Mar, 2024 11 commits
    • Laurent THOMAS's avatar
      Remove useless declarations · 4245dd9b
      Laurent THOMAS authored
      4245dd9b
    • Robert Schmidt's avatar
      nr_fill_indication(): protect with mutex · 01289459
      Robert Schmidt authored
      nr_fill_indication() fills CRC and RX requests, to be sent from L1 to
      L2. Before this commit, nr_fill_indication() is called when
      - we finally decoded LDPC (or not)
      - low signal on PUSCH
      This might happen at the same time, i.e., nr_fill_indication() might try
      to fill both CRC and RX, in the same list, from different threads. This
      can lead to this assertion:
      
      Assertion (crc->rnti == rx->rnti) failed!
      In handle_nr_ulsch() ../../../openair2/NR_PHY_INTERFACE/NR_IF_Module.c:190
      mis-match between CRC RNTI e071 and RX RNTI 5e3b
      
      e.g., e071 is low energy, and while 5e3b related message are filled in
      one thread, e071 is being put into the message structure as well.
      
      At least that is my understanding. I could not actually reproduce this
      assertion; to be seen if it still happens.
      01289459
    • Robert Schmidt's avatar
      delete dead code · e80d8a01
      Robert Schmidt authored
      e80d8a01
    • Robert Schmidt's avatar
    • Robert Schmidt's avatar
    • Robert Schmidt's avatar
      get_phy_stats(): full list is non-fatal · 8d87f0c4
      Robert Schmidt authored
      Do not assert if the list of phy statistics is full; instead return
      NULL.
      
      In most places, this is handled appropriately (we do not store anything
      if we can't). In nr_decode_pucch0(), the return value of get_phy_stats()
      is used a little bit all over the function, and a constant
        if (uci_stats)
          uci_stats->variable++;
      would look ugly, so make uci_stats point to the stack if we cannot store
      in the phy_stats.
      8d87f0c4
    • Robert Schmidt's avatar
      Refactor nr_decode_pucch0() to not rely on uci_stats · 98c309ff
      Robert Schmidt authored
      the uci_stats variable (pointing to per-UE statistics for UCI) is used
      in function nr_decode_pucch0() to store information which is important
      beyond statistics, e.g., uci_stats->pucch0_thres as a threshold (which
      comes from somewhere else)
      
      This commit refactors to use original or intermediate variables to not
      mix uci_stats usage with actual processing.
      
      Also, group uci_stats a bit more.
      98c309ff
    • Robert Schmidt's avatar
      711518ba
    • Robert Schmidt's avatar
      Use MAX_MOBILES_PER_GNB in 5G NR code · 7ea88335
      Robert Schmidt authored
      NUMBER_OF_UE_MAX is a 4G constant, use 5G one instead
      7ea88335
    • Robert Schmidt's avatar
      remove unused UE_PF_PO and ue_pf_po_mutex · 70be0538
      Robert Schmidt authored
      They use 4G NUMBER_OF_UE_MAX, which is not supposed to be present in 5G.
      Further, the mutex and variable are global state; for Paging, we should
      use F1.
      70be0538
    • Robert Schmidt's avatar
      SRS config: make explicit that > 30 UEs don't work, handle gracefully at runtime · 885611cd
      Robert Schmidt authored
      We can only support up to 30 UEs for SRS. In this commit, we change:
      - if the total number of UEs is > 32, throw error during compilation to
        raise awareness (32 so that a multiple of two still works, everything
        else is confusing, see also next point)
      - during runtime, handle gracefully if UID is 30 or 31 to not abort (we
        can simply not allocate SRS resources)
      
      Also, refactor config_srs() to always give back new memory; the code is
      shorter and clearer. Rename to get_contig_srs() to make it explicit.
      885611cd
  2. 05 Mar, 2024 20 commits
  3. 04 Mar, 2024 9 commits