Software-defined Constrained Optimal Routing (SCOR) is a northbound interface for Software Defined Networking (SDN),
which can be used with any SDN controller.
This northbound interface is developed based on the Constraint Programming and is
implemented in MiniZinc constraint modelling language.
SCOR provides an interface for developing Quality of Service (QoS) routing applications in SDN such as
minimum cost path routing, maximum bandwidth path routing, maximum residual capacity routing,
constrained bandwidth minimum delay routing, etc.
SCOR consists of 9 predicates (which are similar to functions or methods in procedural programming) as below
- Flow path predicate
- Defined Capacity predicate
- Residual Capacity predicate
- apacity Constraint predicate
- Path Cost predicate
- Path Bottleneck predicate
- Link Delay predicate
- Link Utilisation predicate
- Node Capacity predicate
These 9 predicates, which are included in SCOR Predicates
folder,
constitutes the building blocks of the SCOR interface.
Each of these predicates models a constraint in networking except the first one, the flow path predicate,
which defines flow/network path.
SCOR models which implement various QoS routing problems are included in SCOR Models
folder.
These models are created by combining SCOR predicates and solving for an optimisation or constraint satisfaction.
While currently 22 files are included in this folder, which model 26 different QoS routing problems, there is no
limitation of models that can be created by combining SCOR predicates. The reason why 22 files model 26
QoS routing problem is because some of these files can be used for modelling of more than one
QoS routing algorithm. For instance, The bandwidth_constrained_least_cost_path.mzn
file can be used to model
- Minimum-Cost Bandwidth-Constrained Path
- Bandwidth-Constrained Least-(static) Delay Path
routing algorithms. Similarly, the least_cost_path.mzn
,
based on the definition of cost, can be used for the modelling of
- Least Cost Path
- Shortest Path
- Minimum Loss Path
- Minimum (static) Delay Path
routing problems.
SCOR accesses the network services via the SDN controller. As such, it needs a
controller specific module, SCOR Specific Controller Module (SCCM),
that should be implemented for each controller separately.
However, it is done only once, and all the up coming QoS routing algorithms modelled in that
controller, in SCOR, can use the implemented SCCM for that controller.
The SCCM [ONOS]
folder provides the SCCM implementation for the ONOS SDN controller.
It consists of 3 files that constitute the source code for an app in ONOS.
The methodology of developing apps in ONOS can be followed via its website.
Please notice:
The Sample Model Data
folder includes several example topologies that can be used to try modelled
QoS routing algorithms. However, there is no guarantee that there is a feasible path for each example data file via
each QoS routing model. For instance, the Cube.dzn
topology (example) file is designed to illustrate
the functionality of wireless_maximum_residual_capacity_path.mzn
model, and its
functionality has not been checked for other models. The Grid4.dzn
is tested with a few
models including, least_cost_path.mzn
, widest_path.mzn
, maximum_residual_capacity_path.mzn
, and
minmax_link_utilization_path.mzn
. Some of these files such as Grid4.dzn
are
written in parametric format to allow easily change the link parameters. In any case,
these files are only samples to tell the readers how to develop their own example topologies
and use the implemented models.