SOL is a library that lets you rapidly prototype network management applications that require constructing an optimization. It is designed to work well with Software Defined Networking (SDN) as it makes use of the global view of the network to compute a globally optimal (or near-optimal) solution.
This repository contains the implementation of both the SOL libary, and its extension Chopin, which allows intent-driven composition of multiple SDN applications.
Optimization is incredibly common in the networking domain. Classic problems such as shortest path routing and maxflow can all be expressed as linear programs and solved efficiently.
Traffic engineering, middebox management, and other types of load balancing can also be expressed using optimizations.
- Fast prototyping of optimizations for network management
- Composition of multiple optimization applications using different fairness modes
- Flexible resource computation logic
- Integrations with ONOS SDN controller
- Novel optimization capabilities, reusable across different applications, (e.g., reconfiguration minimization)
SOL is desgined to be modular and could potentially integrate with multiple SDN controllers. This library contains the core optimization logic. It can be used on its own to quickly prototype applications, compose multiple optimizations and examine resulting solutions.
A rough view of the SOL library and integrations is as follows:
- SOL library (this repository)
- ONOS integration Allows use of the SOL library from the ONOS controller
- TMgen library A helper library for generating and manipulating traffic matrices.
SOL is a research project under development. Some APIs, integrations and documentation/links are subject to change.
- SOL
- Chopin (to appear in CoNEXT'2018)
Available at Read the Docs.