This best practice aims at presenting a set of open source tools that can be utilized for deploying a lab-grade 5G network. They can be used for different purposes, for instance, (i) as practical lessons for HEI courses, (ii) to contribute to the research over specific 5G hardware or software components, or (iii) as custom network for lab-grade testing of applications. A 5G network implementation considers three domains: radio, network and core. Still, different layers can be found: the hardware layer, which includes all the radio, network and processing equipment needed by any network to be functional; the virtualization layer, which abstracts the computing resources to be easily managed and allows the execution of virtual machines and/or containers; and the 5G services layer, which comprises all those services needed to deploy a 5G network, mainly 5G Radio Access Network (RAN) and 5G Core (5GC), as well as other useful services
Let’s start with the basic equipment needed for having a functional lab-grade 5G network ongoing. To that end, we would need at least:
- A server of enough processing capacity to deploy the 5G RAN and 5G Core functions. Its requirements depend on the open source solutions adopted. Ideally, it would be better to have two servers in order to split the radio and core features, but in some cases, this is not needed.
- Dedicated radio equipment. This selection depends on the budget available and, again, for the open source solution considered to perform as RAN, but software-defined radio equipment such as the USRP family or the SYRTEM platform along with 5G compatible antennas can be considered.
- Then, an IP-based network connectivity among all the former devices and with access to the Internet is needed. A 10 Gb connection would be ideal, but not mandatory.
- Finally, the end devices. Apart from compatible smartphones, other great devices for testing are RaspberryPis. Although not inherently compatible with 5G, they can be adapted with specific kits, such as those from the Waveshare and Sixfab families. Regardless of the device considered, the key point is to select a compatible chipset with the open source solutions selected.
It is again important to highlight that the selection of the previous equipment depends on the open source solutions to consider. Particularly, the following are the two most important elements of a 5G network, which at this moment can be installed over the aforementioned server/s:
- 5GC: One can find many free open sources solutions available: Open5GS, OAI 5N, free5GC and magma. They may have different features implemented, but follow the official releases of the 3GPP.
- 5G RAN: One can find two main distributions: OAI 5G RAN and the srsRAN Project.
Putting all the previous pieces together is not trivial and require certain knowledge of 5G and networking concepts. Once the system is deployed, it should be tested with compatible devices. Therefore, if the system works correctly, a basic lab-grade system would be in place. However, it is important to highlight that spectrum is regulated, and depending on the country, tests might be done on reserved bandwidths or directly forbidden. In the latter case, the use of anechoic boxes or chambers is encouraged, to not disrupt commercial networks.
From now on, the rest of actions contribute to enhancing the system, but are complementary and not a requirement for making work a basic 5G stack. It is likely that, at this moment, at least Docker has been installed over an Operating System to deploy the 5G RAN and the 5GC. We can go a step further if specialized knowledge regarding virtualization technologies is available, by:
- Installing Kubernetes on top of the servers for deploying and managing the lifecycle of the virtualized 5G services (5G RAN, 5GC and others), in the form of containers;
- Installing OpenStack on top of the servers for managing the virtualized 5G services, in the form of virtual machines (5G RAN, 5GC and others).
In this way, we would be adding a more professional touch to the laboratory, and in the specific case of Kubernetes, it would add autonomous healing and scaling capabilities to the system and we would be able to deploy complementary technologies for gathering logs, metrics, add security, etc. There is a plethora of open source solutions available in the CNCF webpage, of interest because of the transformation of 5G software towards Cloud Native. Still, as mentioned, expertise is needed.
The two previous virtualization technologies are agnostic to 5G. However, the following ones are more specific to it, and can be used for managing specific aspects of the system:
- Software Defined Network (SDN) controller. It manages the flow control of the network switches for improving network management and application performance. This can be used if our network has switches compatible with the OpenFlow protocol, or if our virtualized network equipment has compatible virtual switches like Open vSwitch. Several solutions, most of them open source, can be found (see link).
- Management and Orchestration (MANO) framework. It manages and orchestrates the lifecycle of the 5G services deployed over our infrastructure, virtual or physical, following ETSI MANO specifications. It allows as well the provisioning of network slices. There are some open source solutions in place, but we highlight OSM as it stems directly from the ETSI, and EMCO as more complex but powerful management solution.
- Open RAN. This is a more complex concept that require very deep knowledge of 5G and may go beyond this best practice. Open RAN is a non-proprietary version of the Radio Access Network (RAN) system that allows interoperation between cellular network equipment provided by different vendors. The O-RAN Software Community is a collaboration between the O-RAN ALLIANCE and Linux Foundation with the mission to support the creation of open software for the RAN.
- Multi-access edge Computing (MEC) platform. Itis a type of network architecture that provides cloud computing capabilities and an IT service environment at the edge of the network. Operators can open their RAN to authorized third-parties, allowing them to deploy innovative applications and services towards mobile subscribers, enterprises and vertical segments. Among open source software, one can find EdgeGallery, the aforementioned EMCO platform, and OAI MEP.
- 5G NetApps. A Network Application (NetApp) is a software piece that interacts with the control plane of a mobile network by consuming exposed APIs (e.g., Northbound APIs of 5G core) in a standardized and trusted way to compose services for the vertical industries or to any other sector. One great set of resources have been produced by the EVOLVED-5G project, including an SDK, a NetApp template and a set of complementary tools to develop and validate NetApps.
The latter aspects are more complex and go beyond the basics, but it is important to be aware of all the 5G technological branches to enable the possibility to be innovative in the 5G arena. Apart from the solutions listed, there are much more open source solutions available, still these have been selected as they are one of the most updated and supported by the community.