1. Architecture
The high-level architecture of the RAN simulator and its interface to ONAP is shown below.
2. Netconf server
- Honeycomb simulator shall be used to simulate the Netconf server. Suitable extensions will be made for it to communicate with the RANSim Controller.
- Each netconf server will run as standalone process or in a Docker container
- The netconf servers will be spawned by RANSim Controller based on the topology specified.
- Python scripts and client will seed the initial configuration for each Node.
- Each netconf server can send a mount request to SDN-R when it is spawned.
- ran-neighbor-list update notification will be sent by netconf server to SDN-R based on the trigger from RANSim Controller.
- The netconf server will be able to accept phy-cell-id update trigger from SDN-R and forward same to RANSim Controller.
- Maximum number of cells connected to a netconf server is configurable (currently configured as 16).
3. RANSim Controller
- This is a Springboot based micro-service
- RAN topology of ~2000 cells to be simulated is defined into a Config DB.
- RAN Simulator spawns the netconf servers based on this topology
- Exposes following rest APIs for GUI to:
- Retrieve the current topology
- Update phy-cell-id of a cell to simulate collision or confusion
- Update neighbor list to simulate collision or confusion (in the table view)
- Receive the new phy-cell-id set by SDN-R (after PCI optimization, or otherwise)
- Start/Stop the network simulation
- MariaDB will be used as the Config DB to store the topology
- Robot scripts will drive the test sequences
- Web GUI will show the current topology, phy-cell-id collision/confusions (using different color codes), ran-neighbor-list.
- Basic pictorial representation will be provided, improvements will be a stretch goal.
4. Simulation setup and sample test sequences
4.1. Setup
The topology of the RAN to be simulated along with the details of the cells to be provided as input. This can be done in 2 ways:
- RANSim controller obtains number of clusters, cluster size, PCI range available via GUI and sets up the network. This is currently being implemented.
- A config file is provided with the network topology. However, this should contain details such as cellID, neighbor list, (x,y) co-ordinates (grid position) of each cell also (for the display).
In either case, OOF shall get offline inputs of the network topology and neighbor list details to set up its own DB.
4.2. Test sequences
- A neighbor list change or PCI change is triggered via GUI. As a result, all impacted cells are identified and netconf notifications sent to ONAP (SDN-R). This triggers PCI optimization, and results are then fed back to RANSim. RANSim then displays the changed configuration.
- Different color codes are used for active cells, cells experiencing collision, confusion, etc.
Note: When a second change is triggered, any effect of the first change is also transmitted (i.e., neighbor list changes due to PCI optimization implementation) to ONAP.