layeghy / SCOR

Software-defined Constrained Optimal Routing (SCOR) is a northbound interface for SDN (Software Defined Networking) which can be used with any SDN controller for creating QoS Routing applications based on Constraint Programming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SCOR: Software-defined Constrained Optimal Routing

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 Predicates

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:

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.



SCCM [ONOS]

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.

About

Software-defined Constrained Optimal Routing (SCOR) is a northbound interface for SDN (Software Defined Networking) which can be used with any SDN controller for creating QoS Routing applications based on Constraint Programming

License:GNU General Public License v2.0


Languages

Language:Java 100.0%