Skip to content

Multi-UE scalability with L2 Emulator

Melissa requested to merge episys-merge into develop

There are fundamental changes to the L2 emulation mechanism; these changes allow the user to run multiple UEs in separate Linux processes/machines/VMs/etc. They use a separate entity between the UE(s) and eNB; which uses nFAPI to communicate with the eNB. The updates to the OAI code base removed some latent bugs, added multi-UE scalability, and were tested with a standard bypass proxy between the UE(s) and eNB. The bypass proxy is publicly available on GitHub. With this package, various multi-UE scenarios can be tested without the overhead of PHY-layer features of underlying radios.

  1. Ease of use of gprof and address sanitizer for debugging purposes
  2. Updated json files to allow for GDB, real-time debugging capabilities
  3. Updated logging features to minimally log only key connection milestones. This improves scalability of multiple UEs.
  4. Updated logging to include time stamp for timing analysis
  5. Updated memory allocation procedures to correct size requirements
  6. Added debugging features to handle signal terminations
  7. nfapi.c pullarray8 fix invalid pointer math
  8. Overlapping destination and source memory in memcpy, so updated to memmove to check for this bug
  9. Advanced error checking mechanisms in critical pack and unpack functions
  10. Created option for CPU assignment to UE to improve scalability
  11. Added EPC integration to allow multiple individual UE entities to each have their USIM information parsed by the executables
  12. Updated random value seeds to minimize probability of error in generation of random values
  13. Enables capability round robin scheduler if desired
  14. Enables capability real time scheduler if desired
  15. Added new standalone functions to the UE phy-layer (phy_stub_ue.c) to incorporate individual UE entities
  16. Updated sending and packing functions in UE (lte_ue.c) to incorporate new standalone changes
  17. Incorporated semaphores to control timing of incoming downlink packets
  18. Implemented new queuing system to handle message exchange from UE to eNB and vice versa
  19. Updated global value in nFAPI for size of subframe
  20. Updated global value to increase scalability in system

Merge request reports