SDN-Controller-Placement

This source code can be used to optimize SDN controller placement
449 Downloads
Updated 4 Aug 2020

SDN controller placement

The algorithms used are classical “unsupervised” machine learning algorithms namely Silhouette and Gap Statistic to determine the optimal number of controllers to deploy and PAM to find the optimal locations to place the controllers.Unsupervised algorithms learn from input data that has no labeled responses. These algorithms are classically used to analyze cluster quality through the metric of minimum distances between data points. In the context of controller placement, we leverage these algorithms to find the number of controllers that minimizes overall network propagation latency (i.e. switch-to-switch latency). To find the best locations for these controllers, we extend a facility location algorithm called Partition Around Medoids algorithm (PAM), with propagation latency (i.e. controller-to-switch latency) as our main objective function. The source code for this part of the experiment is in the folder named Controller Placement.tar.gz.

To match and verify the outcome from our mathematical formulation regarding the best locations to place the controller in a wide area network (WAN), we use an emulation orchestration platform called Mininet, critical to mimic a real SDN deployment. We use controller-to-node latency (propagation + queuing +processing latency) as a key performance indicator. The source code for this part of the experiment is in the folder named Controller-Placement-Emulation.tar.gz.

Cite As

Lusani Mamushiane (2026). SDN-Controller-Placement (https://github.com/Lusani/SDN-Controller-Placement), GitHub. Retrieved .

MATLAB Release Compatibility
Created with R2019a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Tags Add Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
1.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.