MARATHON (MAnagement of Radio Access neTwork slicing witH multi-applicatiON concurrency)
A quick Tutorial how to compile and start the MARATHON VNFs and Radio Slice Management Function experiment over the WINS_5G testbed using HyDRA
The MARATHON experiment designed and developed a Radio Slicing Management Function (RSMF) that extends the WINS_5G platform with radio slicing management capabilities.
It was conceived to investigate the practical implementation and management of network slicing in 5G systems.
The implementation of the MARATHON experiment consists of five Virtual Network Functions (VNFs) and four USRPs, as illustrated the figure. The VNFs are implemented using Linux Virtual Machines (VM).
Universitat Politecnica de Catalunya (UPC)
MARATHON VNFs from GitHub
The MARATHON VNFs are available at GitHub: https://github.com/annaumbert/Marathon/tree/master/vnfd_ansible
The build script creates all the following VNFD and NS files:
File 6 (marathon_ns.tar.gz) is the basic experiment consisting of a 1 Base Station, 1 Hydra Server and 3 User Equipments.
To execute the build script (in case you make modifications) just type:
The osm script is a simple utilitaria to easen the task of installing, uninstalling, creating, and deleting VNFDs and NSDs.
Type the following command to get a detailed usage of it:
To run the experiment type:
The IP addresses configured at slice.py are:
If the assigned VM IPs are different you must kill the rsmf process, change the IPs and run again with:
sudo python rsmf.py
- Connect to "marathon_vbs" (Virtual BS VNF), "marathon_vue1" (Virtual UE#1 VNF), "marathon_vue2" (Virtual UE#2 VNF) and "marathon_vue3" (Virtual UE#3 VNF) VMs using ssh.
- In "marathon_vbs" open a browser (Firefox is already installed) and type (with the vbs_ip):
The RSMF main page should appear in the browser, and you can start configuring Slices.
- From "marathon_vbs" ping the tap interfaces of "marathon_vue1" with IPs 188.8.131.52, and "marathon_vue2" with IPs 184.108.40.206, and "marathon_vue3" with IPs 220.127.116.11.
- From "marathon_vue1" ping the tap0 interface of "vbs", IP 18.104.22.168
- From "marathon_vue2" or "marathon_vue3" ping the tap1 interface of "vbs", IP 22.214.171.124
Access each VM and kill the python process.
- In machine "hydra-server" execute (replace 192.168.5.92 by the ip of iris2):
python ~/gr-hydra/grc_blocks/app/ansible_hydra_gr_server.py --ansibleIPPort 192.168.5.92:5000
- In machine "marathon_vbs" execute (replace 192.168.5.94 by the IP of iris2):
python ~/gr-hydra/grc_blocks/app/ansible_hydra_gr_client_2tx_2rx.py --ansibleIP 192.168.5.94
- In machine "marathon_vue1" execute:
- In machine "marathon_vue2" and "marathon_vue3" execute:
If all processes run correctly, but there is no ping connectivity, a tuning of the gain (mul & mul2) is required. This is due to the USRPs assigned are not always the same, and they have different locations.
A guide to do this can be requested to the Iris Testbed Manager (email@example.com).