An error occurred fetching the project authors.
  1. 17 Oct, 2023 1 commit
    • Rúben Soares da Silva's avatar
      Change PDU_Length and TLV length calculation to be inline with SCF 222.10.02 · bfd12e4a
      Rúben Soares da Silva authored
      PDU Length is as per SCF 222.10.02: The total length (in bytes) of the
      PDU description and  PDU data, without the padding bytes. From
      TX_DATA.request we get 8 (2 bytes PDU_Length + 2 bytes PDU_Index + 4
      bytes num_TLV ) and from each TLV we get 4 + value size ( 2 bytes tag +
      2 bytes length + value size without pading)
      
      Therefore, add function to compute PDU_length() value for
      TX_Data.request, taking into account how many TLVs there are.
      compute_PDU_length() does not rely on access to `nfapi_nr_pdu_t`.
      Put it into nr_mac_common.c to avoid introducing dependencies.
      bfd12e4a
  2. 22 Sep, 2023 3 commits
    • Robert Schmidt's avatar
      Move radio configuration parameters to MAC, SIB1 not initialized! · c9305639
      Robert Schmidt authored
      !SIB1 is not correctly filled! This commit does not work with COTS UEs!
      The next commit fixes this.
      
      - Move radio config (e.g., minRXTXTIME, SIB1 TDA, do_SRS, etc) down to
        MAC.
      - Some parameters in MAC are redundant: delete them.
      - Remove call to nr_mac_config_scc() from RRC and simulators, the MAC
        initialization routine calls it implicitly
      c9305639
    • Robert Schmidt's avatar
      Move SIB1 to MAC · a44a54f3
      Robert Schmidt authored
      The SystemInformationBlock 1 is handled at the DU and sent to the CU in
      the F1 Setup Request. Hence, move it down to the MAC.
      a44a54f3
    • Robert Schmidt's avatar
      Move MIB to MAC · 5d0ae84a
      Robert Schmidt authored
      The MasterInformationBlock is handled at the DU and sent to the CU in
      the F1 Setup Response. Hence, move it down to the MAC. Furthermore:
      
      - Change type because MIB_PDU_t is 4G type
      - Simplify schedule_nr_mib()
      5d0ae84a
  3. 07 Sep, 2023 1 commit
  4. 27 Jul, 2023 1 commit
  5. 13 Jul, 2023 2 commits
  6. 03 May, 2023 2 commits
    • Robert Schmidt's avatar
      Introduce mutex for MAC scheduler · 31a10033
      Robert Schmidt authored
      Different threads (e.g., RRC, DU tasks) might access the scheduler at
      the same time as the thread that drivers the scheduler itself
      (ru_thread). To avoid data races, introduce this mutex.
      
      Most functions of the scheduler are only used internally and have been
      marked static in the previous commit. The remaining ones, in this
      commit, either lock the scheduler mutex sched_lock, or a comment has
      been added of the assumption of how such function is to be locked (e.g.,
      if it might be called from different places, or if it is called by a
      function that already locks the scheduler).
      31a10033
    • Robert Schmidt's avatar
      NR MAC: make many functions static · e7a8eb95
      Robert Schmidt authored
      To know which functions are used from outside and which are
      module-local, make many functions static. This will allow us to protect
      only those functions with a mutex for which it is necessary.
      e7a8eb95
  7. 24 Apr, 2023 1 commit
  8. 11 Apr, 2023 2 commits
  9. 05 Apr, 2023 1 commit
    • Cedric Roux's avatar
      bugfix: change memory management of interface between PHY and MAC scheduler · 733c7e5e
      Cedric Roux authored
      This commit fixes a bug caused by global variables in the gNB_MAC_INST
      structure used to transfer MAC scheduler's results to the PHY layer.
      
      When using several threads in the PHY layer, it may happen that the
      MAC scheduler is called a second time by the second PHY thread for the
      next slot before the content of the global variables in the gNB_MAC_INST
      structure used to store the result of the MAC scheduler for the current
      slot have been consumed by the first thread, leading to unpredictable
      results (all of them certainly wrong).
      
      The solution is to introduce a small memory management module for the
      interface between the PHY threads and the MAC scheduler. The MAC
      scheduler now fills the data structures passed to it, and not a
      global variable anymore. The PHY layer manages the structures and
      ensures that no data is overwritten before being fully consumed by
      the various threads of the PHY layer.
      
      Some care has to be taken because several PHY threads will access the
      same structures at the same time for a given slot (in read mode, so
      it's okay). A mechanism of reference counting has thus been introduced.
      
      Only one CC is supported. This restriction should not be too hard
      to remove if/when needed. (The code before this commit does not seem
      to work for more than one CC anyway.)
      733c7e5e
  10. 27 Mar, 2023 1 commit
    • Robert Schmidt's avatar
      Make separate header for nr_pdcp instead of using 4G pdcp · 2ac2a7f0
      Robert Schmidt authored
      Creates function that have nr_pdcp_ prepended to their name, and change
      the signature of some functions for the 5G PDCP:
      
      - nr_pdcp_layer_init()
      - nr_pdcp_data_req()
      - nr_pdcp_remove_UE()
      - nr_pdcp_config_set_security()
      - nr_pdcp_remove_UE()
      - Make separate functions for nr_pdcp_data_req_srb/drb()
      2ac2a7f0
  11. 11 Mar, 2023 1 commit
  12. 23 Feb, 2023 1 commit
  13. 27 Dec, 2022 1 commit
  14. 26 Sep, 2022 2 commits
  15. 25 Aug, 2022 1 commit
  16. 16 Aug, 2022 2 commits
  17. 04 Aug, 2022 1 commit
  18. 01 Aug, 2022 2 commits
  19. 28 Jul, 2022 1 commit
  20. 07 Jul, 2022 1 commit
  21. 17 Jun, 2022 1 commit
  22. 15 Jun, 2022 1 commit
  23. 14 Jun, 2022 1 commit
  24. 10 Jun, 2022 1 commit
  25. 12 May, 2022 1 commit
  26. 28 Apr, 2022 1 commit
  27. 30 Mar, 2022 1 commit
  28. 26 Mar, 2022 1 commit
  29. 18 Mar, 2022 1 commit
  30. 17 Feb, 2022 1 commit
  31. 04 Feb, 2022 1 commit
  32. 31 Jan, 2022 1 commit