Transcript
Page 1: SCOR: Constraint Programming-based Northbound Interface for SDN

1

SCOR: Constraint Programming-based

Northbound Interface for SDN

Siamak Layeghy, Farzaneh Pakzad and Marius Portmann

School of ITEE, The University of QueenslandBrisbane, Australia

Presented by Siamak Layeghy

26th International Telecommunication Networks and Applications Conference (ITNAC)7-9 December 2016, University of Otago, Dunedin, New Zealand

Page 2: SCOR: Constraint Programming-based Northbound Interface for SDN

2

• Background

• The problem

• Solution

• Implementation

• Evaluation and

Results

Page 3: SCOR: Constraint Programming-based Northbound Interface for SDN

MerchantSwitching

ChipsNetworking: Vertically integrated

Closed, proprietary

Slow innovation

App

App

App

App

Control

Plane B

Control

Plane C

Control

Plane A

or or

SpecializedControlPlane

SpecializedHardware

SpecializedFeatures

Innovative Networking ? 3

Page 4: SCOR: Constraint Programming-based Northbound Interface for SDN

App App App

App App App

App App App

Specialized Packet Forwarding Hardware

Specialized Packet Forwarding Hardware

Specialized Packet Forwarding Hardware

Specialized Packet Forwarding Hardware

OperatingSystem

OperatingSystem

OperatingSystem

OperatingSystem

Feature

Feature

Feature

Software Defined Networking (SDN):

Simple Packet Forwarding Hardware

Simple Packet Forwarding Hardware

Simple Packet Forwarding Hardware

Simple Packet Forwarding Hardware

Southbound interface

Northbound interface

App App App

Network Operating System

Feature

Feature

Feature

Feature

Feature

Feature

Feature

Feature

Feature

4

Page 5: SCOR: Constraint Programming-based Northbound Interface for SDN

How good are northbound interfaces?

• There is no Standard northbound interface

• Many controllers have their own northbound interfaces e.g. OpenDaylight, NOX, Onix and Floodlight (specific definitions)

• There is no northbound interface to provide specific facilities for developing QoS routing and TE applications

5

Page 6: SCOR: Constraint Programming-based Northbound Interface for SDN

2

3 4

6

5

C = 30 D = 2L = 1

C = 100

D = 1, L = 1

C = 30 D = 5 L = 1

C = 20 D = 1 L = 2

C= 20 D= 1L = 2

C = 10, D = 9, L = 21 7

Routing & Quality of Service (QoS) Routing

Shortest Path Routing

Widest Path Routing (maximum bandwidth path)

Minimum delay Path Routing

C: Capacity (Mb/s) D: Delay (sec)L: Loss (Percentage)

QoS Routing

6

Page 7: SCOR: Constraint Programming-based Northbound Interface for SDN

Link-optimization

routing

Link-constrained routing

Path-optimization

routing

Path-constrained routing

Link-constrained Path-optimization routing

Link-constrained Link-optimization routing

Multi-Path-constrained routing

Path-constrained Path-optimization routing

Path-constrained Link-optimization routing

Link-constrained Path-constrained routing

Multi-link-constrained routing

Basic QoS Routing Algorithms

Composite QoS Routing Algorithms

QoS Routing Algorithms[6]

Link Metric

Path Metric

7

Page 8: SCOR: Constraint Programming-based Northbound Interface for SDN

8

Routing Framework

Network Operating System

Applications

Network Operating System

Network Elements

Network State Monitor

Route Calculator- - - - - - - - - - - - - - - - - - - - - - - -

Flow InstallerHost

TrackerTopology Discovery

Network state

Monitoring

Flow Demand

Estimation

QoS Routing Interface

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MiniZinc (Language)

QoS Routing

Traffic Engineering

Link Utilization

Load Balancing . . .

NetworkState

Database

Service Chaining

OpenFlow

<---

Nor

thBo

und

API

--->

. . .<-------------------------Routing Fram

ework------------------------>

SCOR

Page 9: SCOR: Constraint Programming-based Northbound Interface for SDN

9

Solver

Constraint Programming

CP Pseudocode:

Variables:Puzzle (2D-array of integers, range: 1..9)

Constraints:Fill Puzzle with initial numbersAlldifferent RowsAlldifferent ColumnsAlldifferent Sub-Squares

Solve:Satisfy constraints

def findNextCellToFill(grid, i, j): for x in range(i,9): for y in range(j,9): if grid[x][y] == 0: return x, y for x in range(0,9): for y in range(0,9): if grid[x][y] == 0: return x, y return -1, -1

def isValid(grid, i, j, e): rowOk = all([e != grid[i][x] for x in range(9)]) if rowOk: columnOk = all([e != grid[x][j] for x in range(9)]) if columnOk: # finding the top left x, y co-ordinates of the section containing the i,j cell secTopX, secTopY = 3 *(i/3), 3 *(j/3) for x in range(secTopX, secTopX+3): for y in range(secTopY, secTopY+3): if grid[x][y] == e: return False return True return False

def solveSudoku(grid, i=0, j=0): i,j = findNextCellToFill(grid, i, j) if i == -1: return True for e in range(1,10): if isValid(grid,i,j,e): grid[i][j] = e if solveSudoku(grid, i, j): return True # Undo the current cell for backtracking grid[i][j] = 0 return False

Page 10: SCOR: Constraint Programming-based Northbound Interface for SDN

10

The new Northbound Interface

Network Operating System

Applications

Network Operating System

Network Elements

Network Stat monitor

Route calculator- - - - - - - - - - - - - - - - - - - - - - - -

Flow InstallerHost

TrackerTopology Discovery

Network state

Monitoring

Flow Demand

Estimation

QoS Routing Interface

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MiniZinc (Language)

QoS Routing

Traffic Engineering

Link Utilization

Load Balancing . . .

NetworkStat

database

Service chaining

OpenFlow

<---

Nor

thBo

und

API

--->

. . .

<-------------------------Routing Framew

ork------------------------>

Chosen Northbound Language:MiniZinc & Solvers (Gecode, Jacop, ECLiPSe, and many other solvers )

QoS Routing Interface:The Minimum set of needed primitives for implementation of QoS routing and Traffic Engineering applications.

Page 11: SCOR: Constraint Programming-based Northbound Interface for SDN

11

Capacity Guarante

ePredicate

Residual CapacityPredicate

Capacity Limit

Predicate

Path Cost

PredicateDelay

PredicateCongestio

nPredicate

Link Utilisatio

nPredicate

Northbound Interface

QoS Routing Interface:

NetworkPath

Predicate

Path Bottlenec

kPredicate

Page 12: SCOR: Constraint Programming-based Northbound Interface for SDN

Capacity Guarante

ePredicate

Residual CapacityPredicate

Capacity Limit

Predicate

Path Cost

PredicateDelay

PredicateCongestio

nPredicate

Link Utilisatio

nPredicate

Northbound Interface

QoS Routing Interface:

NetworkPath

Predicate

12

Path Bottlenec

kPredicate

Page 13: SCOR: Constraint Programming-based Northbound Interface for SDN

13

Network Path Predicate

Implemented using flow conservation:• Variables:: represents a set of nodes that constitutes a flow path and in which represents the network nodes• Constraints: •

if ‘source’, ; else if ‘destination’ , ;else,

• Objective:Find value of {} that satisfies constraints

Network Path Predicate

% Variables declarationarray[int,int] of var 0..1: LPM, % Link Path Membership,

% flow conservation constraintforall(i in 1.. number_of_nodes)(

node_flow_in[i] = sum(k in 1.. number_of_links ) (if Links[k, 2] = i then LPM[k] else 0 endif)∧ node_flow_out[i] = sum(k in 1.. number_of_links) (if Links[k, 1] = i then LPM[k] else 0 endif)∧ node_flow_in[i] + (if i = s then 1 else 0 endif) = node_flow_out[i] + (if i = t then 1 else 0 endif)∧ Node_flow_in[i] <= 1)

NetworkPath

Predicate

Page 14: SCOR: Constraint Programming-based Northbound Interface for SDN

14

Least Cost Path

QoS Routing & TE applications

Network Path

Predicate

Path Cost

Predicate

Least Cost Path in SCOR

% Variable declaration:array[1..number_of_links,1..number_of_flows] of var 0..1: LPM;array[1..number_of_flows] of var int: Cost;

% Constraints:constraint network_path( LPM, Link_Parameters, Nodes, Sources, Destinations); constraint path_cost( LPM, Link_Parameters, Cost);

% Solve:Solve minimize Cost[1]

Least Cost Path with Capacity Constraint

Network Path

Predicate

Path Cost

Predicate

Capacity Limit

Predicate

Least Cost Path with Capacity Constraint in SCOR

% Variable declaration:array[1..number_of_links,1..number_of_flows] of var 0..1: LPM;array[1..number_of_flows] of var int: Cost; array[1..number_of_flows] of var int: Limits;

% Constraints:constraint network_path( LPM, Link_Parameters, Nodes, Sources, Destinations); constraint path_cost( LPM, Link_Parameters, Cost);constraint capacity_limit(LPM, Link_Parameters, Flow_demands, Limits );

% Solve:Solve minimize Cost[1]

Page 15: SCOR: Constraint Programming-based Northbound Interface for SDN

15

𝑎𝑖𝑗𝜅∈ {0 ,1 } ∀ 𝑖∈𝑃 ; 𝑗∈𝐸 ;𝜋 𝑖

𝜅∈Π 𝑖 ,

QoS Routing & TE applications

∑𝜋 𝑖

𝜅 ∈Π 𝑖

𝑥𝑖𝜅=1 ∀ 𝑖∈ 𝑃 ,

𝑚𝑎𝑥 {𝑧 } ,

𝑥𝑖𝜅∈ {0 ,1 } ∀ 𝑖∈ 𝑃 ;𝜋 𝑖

𝜅∈Π 𝑖 ,

𝑓 𝑗=∑𝑖∈ 𝑃

∑𝜋 𝑖

𝜅 ∈𝛱 𝑖

𝑎𝑖𝑗𝜅 𝑥 𝑖

𝜅 𝑑𝑖 ;  ∀ 𝑗∈𝐸 ,

𝑓 𝑗≤𝑐 𝑗 ∀ 𝑗∈𝐸 ,

𝑧≤𝑐 𝑗− 𝑓 𝑗 ∀ 𝑗∈ 𝐸 ,

Maximum Residual Capacity

NetworkPath

Predicate

Capacity Guarante

e Predicate

Maximum Residual Capacity

Maximum Residual Capacity in SCOR

% Variables array[1..number_of_links,1..number_of_flows] of var 0..1: LPM; array[1..number_of_links] of var int: Residual;

% Constraintsconstraint network_path(LPM, Links, Nodes, sources, Destinations); constraint capacity_guarantee(LPM, Flow_demands, Link_Parameters, Residuals );

% Solvesolve maximize min(Residual);

Page 16: SCOR: Constraint Programming-based Northbound Interface for SDN

16

QoS Routing Problem SCOR Predicates # LinesShortest Path path cost 3Widest Path Path bottleneck 3

Minimum-Loss Path path cost 3Minimum-Fixed-Delay Path path cost 3

Fixed-Delay-Constrained Path path cost 3Least-Cost Path path cost 3Maximum-Residual-Capacity Path

capacity guarantee 3Delay-Constrained Least Cost Path

path cost x 2 4Delay-Delay jitter-Constrained Path

path cost x 2 4Bandwidth-Delay-Constrained Path

path cost – capacity limit

4Bandwidth-Constrained Least Delay Path

path cost – capacity limit

4

Evaluation: completeness

Bandwidth Constrained Path capacity limit 3Bandwidth Guaranteed Path capacity guarantee 3

Minimum-Dynamic-Delay Path delay 3

QoS Routing Algorithms and Predicates to model them in SCOR

Page 17: SCOR: Constraint Programming-based Northbound Interface for SDN

17

Evaluation: Various Network Topologies

Pod 0 Pod 1 Pod 2 Pod 3

Edge

Aggregation

Core

Simple fat-tree topology for k=4, nodes=36, link= 48

Grid topology for k=6, nodes=36, link= 60

Page 18: SCOR: Constraint Programming-based Northbound Interface for SDN

18

Evaluation: Various Number of nodes

0 50 100 150 200 250 300 350 40010

100

1000

10000

100000

SCOR, Grid topology LP, Grid topology

SCOR, Fat-Tree topology LP, Fat-Tree topology

Network Size (number of nodes)

Solv

e Ti

me

(ms)

0 50 100 150 200 250 300 350 4000

50100150200250300350400450500550600

Least Cost Path with Capacity Constraints, Grid Topology

Least Cost Path, Grid Topology

Least Cost Path with Capacity Constraint, Fat-Tree Topology

Least Cost Path, Fat-Tree Topology

Network Size (number of nodes)

Solv

e Ti

me

(ms)

Page 19: SCOR: Constraint Programming-based Northbound Interface for SDN

Conclusion:

19

• Introducing a new northbound interface for SDN to reduce the complexity of implementing QoS routing in SDN

• Using Constraint Programming, problem formulation is isolated from its solution

• The increased level of abstraction does not come at all at a cost of reduced efficiency

• Although SCOR is currently applied for routing problem, it has a wider applicability such as security etc.

Page 20: SCOR: Constraint Programming-based Northbound Interface for SDN

20

Q & A


Top Related