wineslab / colosseum-scope

Source code for the paper L. Bonati, S. D'Oro, S. Basagni, and T. Melodia, "SCOPE: An Open and Softwarized Prototyping Platform for NextG Systems," in Proceedings of ACM MobiSys, June 2021.
https://dl.acm.org/doi/10.1145/3458864.3466863
GNU General Public License v3.0
35 stars 14 forks source link

SCOPE

SCOPE is a development environment for softwarized and virtualized NextG cellular networks based on srsLTE (now srsRAN). It provides: (i) A ready-to-use portable open-source cellular container with flexible 5G-oriented functionalities; (ii) data collection tools, such as dataset generation functions for recording cellular performance and metrics, and for facilitating data analysis; (iii) a set of APIs to control and reprogram key functionalities of the full cellular stack at run time, without requiring redeploying the network, and (iv) an emulation environment with diverse cellular scenarios closely matching real-world deployments for precise prototyping NextG network solutions. SCOPE has been prototyped and benchmarked on the Colosseum wireless network emulator, where an LXC container of SCOPE has been made available, and it is portable to LXC-enabled testbeds.

If you use SCOPE, its APIs or scenarios, please reference the following paper:

L. Bonati, S. D'Oro, S. Basagni, and T. Melodia, "SCOPE: An Open and Softwarized Prototyping Platform for NextG Systems," in Proceedings of ACM MobiSys, June 2021. [pdf] [bibtex]

This work was partially supported by the U.S. National Science Foundation under Grant CNS-1923789 and the U.S. Office of Naval Research, Grants N00014-19-1-2409 and N00014-20-1-2132.

Structure

SCOPE directory structure is organized as follows

root 
|
└──radio_api
|   
└──radio_code
|  |
|  └──scope_config
|  |
|  └──srsGUI
|  |
|  └──srsLTE
|  |
|  └──srslte_config

radio_api

The radio_api directory contains SCOPE API script, examplary scripts, configuration files, and support files for Colosseum.

Quick start on Colosseum with base configuration:

SCOPE API configuration parameters

A list of the configuration parameters accepted by SCOPE APIs follows.

radio_code

The radio_code directory contains a modified version of srsLTE (now srsRAN) that implements the 5G-oriented functionalities enabled by SCOPE, configuration files and support applications.

SCOPE Cellular Scenarios for Colosseum Network Emulator

These are a set of RF cellular scenarios to use with the Colosseum wireless network emulator (see Section 4 of [1]). Scenarios have been designed in three different urban setups: (i) Rome, Italy; (ii) Boston, MA, US, and (iii) Salt Lake City, UT, US (POWDER scenario). For the Rome and Boston scenarios, the locations of the base station reflect real cell tower deployments taken from the OpenCelliD database. For the POWDER scenario, locations mirror the coordinates of the rooftop base stations deployed in the POWDER testbed in Salt Lake City.

Different versions of the above scenarios have been created for different number of base stations and users, different distance from the base stations users are deployed, and different mobility speed of the users. The available distances between users and base stations are: close, users are deployed within 20 m from the base stations, medium, within 50 m, and far, within 100 m. The available user mobility speeds are: static, users do not move for the whole duration of the scenario, moderate, users move at 3 m/s, and fast, users move at 5 m/s.

Terrain UE-BS Distance UE Mobility BS # UEs/BS Node # Duration [s] Scenario ID Available on Colosseum
Rome close static 10 4 50 600 1017 :heavy_check_mark:
Rome close moderate 10 4 50 600 1018 :heavy_check_mark:
Rome close fast 10 4 50 600 1028 :x:
Rome medium static 10 4 50 600 1035 :heavy_check_mark:
Rome far static 10 4 50 600 1019 :heavy_check_mark:
Boston close static 10 4 50 600 1031 :heavy_check_mark:
Boston close moderate 10 4 50 600 1033 :heavy_check_mark:
Boston close fast 10 4 50 600 1034 :x:
Boston medium static 10 4 50 600 1036 :heavy_check_mark:
Boston far static 10 4 50 600 1024 :heavy_check_mark:
POWDER close static 8 4 40 600 1025 :heavy_check_mark:
POWDER close moderate 8 4 40 600 1026 :heavy_check_mark:
POWDER close fast 8 4 40 600 1030 :x:
POWDER medium static 8 4 40 600 1041 :heavy_check_mark:
POWDER far static 8 4 40 600 1027 :heavy_check_mark:

Due to space limitations, only a selection of these scenarios is currently available on Colosseum. The remaining scenarios can be built and installed upon request.

Running on Testbeds External to Colosseum

The command line option --generic-testbed should facilitate running SCOPE outside the Colosseum environment.

Troubleshooting

References

[1] L. Bonati, S. D'Oro, S. Basagni, and T. Melodia, "SCOPE: An Open and Softwarized Prototyping Platform for NextG Systems," in Proceedings of ACM MobiSys, June 2021. [pdf] [bibtex]


1. These parameters are periodically reloaded from file. The frequency at which they are reloaded can be modified through the variable line_change_frequency_ms in ../radio_code/srsLTE/srsenb/src/stack/mac/scheduler_metric.cc, function dl_metric_rr::sched_users. \ 2. This parameter is ignored if network slicing is enabled (network_slicing_enabled). In such case, the scheduling policy can be specified through the slicing/slice_scheduling_policy.txt configuration file. \ 3. When adding a new user to the core network database, the relative IMSI needs to be added to this configuration files as well.