On Polynomial-Time Congestion-Free Software-Defined Network Updates - - PowerPoint PPT Presentation

on polynomial time congestion free software defined
SMART_READER_LITE
LIVE PREVIEW

On Polynomial-Time Congestion-Free Software-Defined Network Updates - - PowerPoint PPT Presentation

On Polynomial-Time Congestion-Free Software-Defined Network Updates Saeed Akhoondian Amiri (MPI, Saarland, Germany) Szymon Dudycz ( 6 University of Wroclaw, Poland) Mahmoud Parham and Stefan Schmid (University of Vienna, Austria) Sebastian


slide-1
SLIDE 1

On Polynomial-Time Congestion-Free Software-Defined Network Updates

Saeed Akhoondian Amiri (MPI, Saarland, Germany) Szymon Dudycz (6 University of Wroclaw, Poland) Mahmoud Parham and Stefan Schmid (University of Vienna, Austria) Sebastian Wiederrecht (TU Berlin, Germany)

IFIP NETWORKING 2019, May 21, 2019 – Warsaw, Poland

  • 1
slide-2
SLIDE 2

Why reroute?

  • many reasons, including security and policy changes
  • traffic engineering, optimizations, demand changes etc.
  • rerouting involves distribution of new (forwarding) rules
  • while maintaining certain consistency properties
  • in a SDN, rules are distributed by a controller

2

slide-3
SLIDE 3

S w v u T S w v u T

  • ld routes

new routes Dashed: new route Solid: old route Task: reroute red and blue flows to their new route

SDN controller issues update commands

update(node, Red/Blue)

3

slide-4
SLIDE 4

Task: reroute red and blue flows to their new route

S w v u T

2 1 2 1 1 1 1 Dashed: new route Solid: old route Let’s reroute!

update(node, Red/Blue)

update(S, Red) update(w, Red) update(u, Blue) update(S, Blue) update(u, Red) update(v, Red) update(v, Blue) update(w, Blue)

4

slide-5
SLIDE 5

1-update(w, Red) Rerouting red and blue flows to their new route, congestion-free!

S w v u T

2 1 2 1 1 1 1 Dashed: new route Solid: old route update(S, Red) update(w, Red) update(S, Blue) update(u, Red) update(v, Red) update(v, Blue) update(w, Blue)

5

slide-6
SLIDE 6

1-update(w, Red)

S w v u T

2 1 2 1 1 1 1 2-update(S, Red)

congestion!

Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

infeasible transient state

update(S, Red) update(w, Red) update(u, Red) update(v, Red) update(v, Blue) update(w, Blue)

6

slide-7
SLIDE 7

S w v u T

2 1 2 1 1 1 1 Let’s try again! Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route 4-update(S, Red) 3-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 5-update(u, Red) 6-update(v, Red) 7-update(v, Blue) 8-update(w, Blue)

7

slide-8
SLIDE 8

S w v u T

2 1 2 1 1 1 1 4-update(S, Red) 3-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 5-update(u, Red) 6-update(v, Red) 7-update(v, Blue) 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

  • ne update per round

8

slide-9
SLIDE 9

S w v u T

2 1 2 1 1 1 1 1-update(u, Blue) 4-update(S, Red) 3-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 5-update(u, Red) 6-update(v, Red) 7-update(v, Blue) 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

9

slide-10
SLIDE 10

S w v u T

2 1 2 1 1 1 1 4-update(S, Red) 3-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 5-update(u, Red) 6-update(v, Red) 7-update(v, Blue) 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

10

slide-11
SLIDE 11

S w v u T

2 1 2 1 1 1 1 4-update(S, Red) 3-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 5-update(u, Red) 6-update(v, Red) 7-update(v, Blue) 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

11

slide-12
SLIDE 12

S w v u T

2 1 2 1 1 1 1 4-update(S, Red) 3-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 5-update(u, Red) 6-update(v, Red) 7-update(v, Blue) 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

12

slide-13
SLIDE 13

S w v u T

2 1 2 1 1 1 1 4-update(S, Red) 3-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 5-update(u, Red) 6-update(v, Red) 7-update(v, Blue) 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

13

slide-14
SLIDE 14

S w v u T

2 1 2 1 1 1 1 4-update(S, Red) 3-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 5-update(u, Red) 6-update(v, Red) 7-update(v, Blue) 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

14

slide-15
SLIDE 15

Observations

  • 8 updates, 8 rounds in this example
  • Multiple updates could be scheduled for a same round
  • Updates in a same round finish in arbitrary order ⇒ transient states
  • All transient states must respect capacity constraints
  • The example admits a feasible schedule in only 4 rounds

15

slide-16
SLIDE 16

3-update(S, Red) 2-update(w, Red) 1-update(u, Blue) 2-update(S, Blue) 4-update(u, Red) 4-update(v, Red) 2-update(v, Blue) 4-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free! Dashed: new route Solid: old route

S w v u T

2 1 2 1 1 1 1

Feasible Transient States

2^3=8 possible transient states for round 2

16

slide-17
SLIDE 17

Problem Definition

  • Input: two flow pairs (old,new), unit demands, unsplittable.
  • Task: reroute each flow, from its old route to its new route, consistently.
  • Consistent: Loop-free + Congestion-free.
  • For every pair, (old ∪ new) is a DAG ⇒ Loop-freedom for free!
  • Feasibility: is there a sequence of congestion-free updates?
  • Optimality: how to minimize the number of rounds efficiently?

17

slide-18
SLIDE 18

Dashed: new route Solid: old route

Block Decomposition

block1 block2 block3 block4 S T v1 v2 v3

Block1 Block2 Block3 Block4

the union of the old and new routes

1) Take the union of old and new routes => a DAG 2) Obtain its nodes in a topologically sorted oder 3) Intersections consecutive in that order are block’s endpoints

18

slide-19
SLIDE 19

Block Update

start of block

(1) activate all new route links not incident to u (2) update(u, blue) (3) deactivate links on the old route Dashed: new route Solid: old route

block update in 3 rounds

u v

Block i

19

slide-20
SLIDE 20
  • Update the whole flow route block by block
  • A block takes up to 3 rounds to update
  • Blocks of the same flow can be updated independently
  • Blocks of different flows may have dependencies

block1 block2 block3 block4 S T v1 v2 v3

Block1 Block2 Block3 Block4

Towards an Efficient Algorithm

20

slide-21
SLIDE 21

Towards an Efficient Algorithm for 2 Flows

Block B

L

Block A

L

dependency

  • Link L has capacity 1
  • Blue cannot reroute before Red reroutes away from L
  • Block A depends on Block B
  • Any feasible schedule updates B before A

Dashed: new route Solid: old route

21

slide-22
SLIDE 22

Overview of the Algorithm 1) Compute the block composition for the two flows. 2) Compute the dependency graph D of G. 3) If there is a cycle in D then terminate. 4) While D is not empty, repeat:

1) Update all blocks that correspond to the sink vertices of D. 2) Remove all the sink vertices from D.

22

slide-23
SLIDE 23

# of rounds

  • All sink blocks are updated together, in 3 rounds.
  • 3 rounds per iteration is not always necessary.
  • Allocating the necessary rounds yields the optimal schedule

23

slide-24
SLIDE 24

Hardness

The complexity for 3 to 5 flows remains open.

24

slide-25
SLIDE 25

Summary

  • NP-hard from 6 flows
  • special case: 2 flows, every route pair forms a DAG
  • optimal schedule for 2 flows, given acyclic pairs
  • congestion-free schedule for 3 ≤ k ≤ 5 flows? open

25

slide-26
SLIDE 26

Summary

  • NP-hard from 6 flows
  • special case: 2 flows, every route pair forms a DAG
  • optimal schedule for 2 flows, given acyclic pairs
  • congestion-free schedule for 3 ≤ k ≤ 5 flows? open

26

Thank you!

slide-27
SLIDE 27

Backup slides

27

slide-28
SLIDE 28

10 20 30 40 50 60 2 3 4 5 6 Percentage

The frequency of each possible number of rounds (in %) in optimal schedules from Algorithm 2

20 40 60 80 100 120 140 160 180 200 Dataxchange Airtel Garr199901 Garr199905 Garr200109 Garr200112 Belnet2003 Belnet2004 BtEurope Garr199904 Garr200404 Navigata Sprint Ans Arnes Esnet Garr201104 Garr201107 Geant2001 Internode Peer1 Cesnet201006 Cwix Garr201105 Garr201108 Runtime (per update pair) ISP Topologies (Zoo)

10 20 30 40 50 60 2 3 4 5 6 7 8 9 1011121314

arbitrary feasible schedules from Algorithm 1 Distribution of runtime (in microsecond) over all the problem instances from some of the evaluated graphs

28

slide-29
SLIDE 29

S 1 2 3 T Let’s update S first!

Loop-free Rerouting

Dashed: new route Solid: old route

29

slide-30
SLIDE 30

S 1 2 3 T Let’s update S first!

so far so good!

Then update 3?

Loop-free Rerouting

Dashed: new route Solid: old route

30

slide-31
SLIDE 31

S 1 2 3 T Then update 3? Not consistent!

Loop-free Rerouting

Dashed: new route Solid: old route

31

slide-32
SLIDE 32

S 1 2 3 T

Loop-free Rerouting

Dashed: new route Solid: old route

No loop would occur if the union was acyclic.

32

slide-33
SLIDE 33

S v w

Let’s update S, first!

rerouting the old route to the new route

T

Dashed: new route Solid: old route

33

slide-34
SLIDE 34

S v w

S first, is not consistent!

T

Dead end!

rerouting the old route to the new route Dashed: new route Solid: old route

34

slide-35
SLIDE 35

S v w

first update W

T

rerouting the old route to the new route Dashed: new route Solid: old route

35

slide-36
SLIDE 36

S v w

first update W

T

rerouting the old route to the new route Dashed: new route Solid: old route

36

slide-37
SLIDE 37

S v w

first update W

T

then update S

rerouting the old route to the new route Dashed: new route Solid: old route

37

slide-38
SLIDE 38

S v w

first update W

T

then update S

rerouting the old route to the new route Dashed: new route Solid: old route

38

slide-39
SLIDE 39

S v w

first update W

T

then update S

rerouting the old route to the new route

lastly, update V

Dashed: new route Solid: old route

39

slide-40
SLIDE 40

S v w

first update W

T

then update S lastly, update V

rerouting the old route to the new route Dashed: new route Solid: old route

40