Melissa Elkadi 9b16c1d860 Merge branch 'eurecom-develop' into episys/merge_nsa_w_develop
At this point we are successfully able to build.
Additionally, we can run the scenario,
however, it does not pass. It seems that the gNB
is not connecting to the proxy correctly. Just
wanted to push the progress so far. FYI, the items
that had to be changed to correct the linking issues
were the following:

 - mac_rrc_data_ind_ue vs. nr_mac_rrc_data_ind_ue
 - rrc_data_req vs. nr_rrc_data_req
 - mac_rrc_data_req_ue vs. nr_mac_rrc_data_req_ue
 - rrc_data_req_ue vs. rrc_data_req_nr_ue
 - rrc_data_req vs. nr_rrc_data_req

The listed functions should be declard in the LTE/NR
UE directory depending on the functionality. Several
were mixed. i.e.: LTE functions being called in NR UE.

Also, removing siWindowLength, siWindowLength_int,
SIBType, SIBPeriod, and siPeriod_int from the NR UE RRC.
These variable were not used in the NR UE and are defined
for LTE only.

Lastly, in the NR_IF_Module.c of the NR UE, the global
variable def_dci_pdu_rel15 is not accessible. Need to
revisit this. For not it is commented out.
2021-08-11 10:23:42 -07:00
2021-02-08 18:05:29 +05:30
2021-06-02 19:11:04 +01:00
2021-04-16 15:56:30 +02:00
2021-03-13 13:09:34 -08:00
2021-02-12 16:26:22 +05:30
2019-07-26 10:33:34 +02:00
2021-03-03 17:07:49 +01:00

Description

The purpose of this repository is to provide an updated version of the original OAI code base. The original code base can be found here: https://gitlab.eurecom.fr/oai/openairinterface5g. 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. This proxy is available at: https://github.com/EpiSci/oai-lte-multi-ue-proxy. With this package, various multi-UE scenarios can be tested without the overhead of PHY-layer features of underlying radios. This proxy was created to allow users to test and utilize EpiSci's updated version of the OAI code.

Where this all began:

OAI code was used to baseline this work. The initial framework for this development was started from the following commit: https://gitlab.eurecom.fr/oai/openairinterface5g/-/commit/362da7c9205691a7314de56bbe8ec369f636da7b.

Included Fixes:

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

Where to Start

RAN repository structure

The OpenAirInterface (OAI) software is composed of the following parts:

openairinterface5g
├── ci-scripts        : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.
├── cmake_targets     : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files.
├── common            : Some common OAI utilities, other tools can be found at openair2/UTILS.
├── doc               : Contains an up-to-date feature set list and starting tutorials.
├── executables       : Top-level executable source files.
├── LICENSE           : License file.
├── maketags          : Script to generate emacs tags.
├── nfapi             : Contains the NFAPI code. A local Readme file provides more details.
├── openair1          : 3GPP LTE Rel-10/12 PHY layer / 3GPP NR Rel-15 layer. A local Readme file provides more details.
│   ├── PHY
│   ├── SCHED
│   ├── SCHED_NBIOT
│   ├── SCHED_NR
│   ├── SCHED_NR_UE
│   ├── SCHED_UE
│   └── SIMULATION    : PHY RF simulation.
├── openair2          : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP + LTE Rel-14 M2AP implementation. Also 3GPP NR Rel-15 RLC/MAC/PDCP/RRC/X2AP.
│   ├── COMMON
│   ├── DOCS
│   ├── ENB_APP
│   ├── F1AP
│   ├── GNB_APP
│   ├── LAYER2/RLC/   : with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0.
│   ├── LAYER2/PDCP/PDCP_v10.1.0
│   ├── M2AP
│   ├── MCE_APP
│   ├── NETWORK_DRIVER
│   ├── NR_PHY_INTERFACE
│   ├── NR_UE_PHY_INTERFACE
│   ├── PHY_INTERFACE
│   ├── RRC
│   ├── UTIL
│   └── X2AP
├── openair3          : 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE.
│   ├── COMMON
│   ├── DOCS
│   ├── GTPV1-U
│   ├── M3AP
│   ├── MME_APP
│   ├── NAS
│   ├── S1AP
│   ├── SCTP
│   ├── SECU
│   ├── TEST
│   ├── UDP
│   └── UTILS
└── targets           : Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW.
S
Description
No description provided
Readme
379 MiB
Languages
C 91.8%
CMake 2.9%
C++ 1.9%
TeX 1%
Python 1%
Other 1.1%