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
Why reroute? • many reasons, including security and policy changes • tra ffi c 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
SDN controller issues update commands update(node, Red/Blue) w w S T S T u v u v old routes new routes Task: reroute red and blue flows to their new route Solid: old route Dashed: new route � 3
update(node, Red/Blue) Let’s reroute! update(u, Blue) update(S, Blue) 1 2 w update(w, Red) update(S, Red) S T 1 1 update(u, Red) update(v, Red) 2 1 update(v, Blue) u v update(w, Blue) 1 Task: reroute red and blue flows to their new route Solid: old route Dashed: new route � 4
1-update(w, Red) 1 2 w update(S, Blue) update(w, Red) S T update(S, Red) 1 1 update(u, Red) 2 1 update(v, Red) update(v, Blue) u v 1 update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 5
congestion! 1-update(w, Red) 1 2 w 2-update(S, Red) update(w, Red) S T update(S, Red) 1 1 update(u, Red) 2 1 update(v, Red) update(v, Blue) u v 1 update(w, Blue) infeasible transient state Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 6
Let’s try again! 1-update(u, Blue) 1 2 w 2-update(S, Blue) 3-update(w, Red) S T 4-update(S, Red) 1 1 5-update(u, Red) 2 1 6-update(v, Red) 7-update(v, Blue) u v 1 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 7
one update per round 1-update(u, Blue) 1 2 w 2-update(S, Blue) 3-update(w, Red) S T 4-update(S, Red) 1 1 5-update(u, Red) 2 1 6-update(v, Red) 7-update(v, Blue) u v 1 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 8
1-update(u, Blue) 1-update(u, Blue) 1 2 w 2-update(S, Blue) 3-update(w, Red) S T 4-update(S, Red) 1 1 5-update(u, Red) 2 1 6-update(v, Red) 7-update(v, Blue) u v 1 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 9
1-update(u, Blue) 1 2 w 2-update(S, Blue) 3-update(w, Red) S T 4-update(S, Red) 1 1 5-update(u, Red) 2 1 6-update(v, Red) 7-update(v, Blue) u v 1 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 10
1-update(u, Blue) 1 2 w 2-update(S, Blue) 3-update(w, Red) S T 4-update(S, Red) 1 1 5-update(u, Red) 2 1 6-update(v, Red) 7-update(v, Blue) u v 1 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 11
1-update(u, Blue) 1 2 w 2-update(S, Blue) 3-update(w, Red) S T 4-update(S, Red) 1 1 5-update(u, Red) 2 1 6-update(v, Red) 7-update(v, Blue) u v 1 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 12
1-update(u, Blue) 1 2 w 2-update(S, Blue) 3-update(w, Red) S T 4-update(S, Red) 1 1 5-update(u, Red) 2 1 6-update(v, Red) 7-update(v, Blue) u v 1 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 13
1-update(u, Blue) 1 2 w 2-update(S, Blue) 3-update(w, Red) S T 4-update(S, Red) 1 1 5-update(u, Red) 2 1 6-update(v, Red) 7-update(v, Blue) u v 1 8-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 14
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
Feasible Transient States 1-update(u, Blue) 1 2 w 2-update(S, Blue) 2-update(v, Blue) S T 1 1 2-update(w, Red) 2 1 3-update(S, Red) u v 4-update(u, Red) 1 4-update(v, Red) 2^3=8 possible transient states for round 2 4-update(w, Blue) Rerouting red and blue flows to their new route, congestion-free ! Solid: old route Dashed: new route � 16
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 e ffi ciently? � 17
Block Decomposition the union of the old and new routes S block1 v1 block2 v2 block3 v3 Block4 block4 T Block1 Block2 Block3 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 Solid: old route Dashed: new route � 18
Block Update Block i u v block update in 3 rounds (1) activate all new route links not incident to u start of block (2) update( u , blue ) (3) deactivate links on the old route Solid: old route Dashed: new route � 19
Towards an Efficient Algorithm • 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 di ff erent flows may have dependencies block1 v1 block2 v2 block3 v3 block4 S Block4 T Block1 Block2 Block3 � 20
Towards an Efficient Algorithm for 2 Flows L dependency Block A Block B L • 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 Solid: old route Dashed: new route � 21
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: Update all blocks that correspond to the sink vertices of D. 1) 2) Remove all the sink vertices from D. � 22
# 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
Hardness The complexity for 3 to 5 flows remains open. � 24
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
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 Thank you! � 26
Backup slides � 27
60 60 50 50 Percentage 40 40 30 30 20 20 10 10 0 0 2 3 4 5 6 2 3 4 5 6 7 8 9 1011121314 The frequency of each possible number of rounds arbitrary feasible schedules from Algorithm 1 (in %) in optimal schedules from Algorithm 2 200 180 Runtime (per update pair) 160 140 120 100 80 60 40 Distribution of runtime (in microsecond) over all the problem 20 instances from some of the evaluated graphs 0 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 ISP Topologies (Zoo) � 28
Loop-free Rerouting 1 2 S 3 T Let’s update S first ! Solid: old route Dashed: new route � 29
Loop-free Rerouting so far so good! 1 2 S 3 T Let’s update S first ! Then update 3 ? Solid: old route Dashed: new route � 30
Loop-free Rerouting 1 2 S 3 T Then update 3 ? Not consistent! Solid: old route Dashed: new route � 31
Loop-free Rerouting 1 2 No loop would occur if the union was acyclic . S 3 T Solid: old route Dashed: new route � 32
Let’s update S, v first! S T w rerouting the old route to the new route Solid: old route Dashed: new route � 33
S first, is not v consistent ! S T w Dead end! rerouting the old route to the new route Solid: old route Dashed: new route � 34
v S T w first update W rerouting the old route to the new route Solid: old route Dashed: new route � 35
v S T w first update W rerouting the old route to the new route Solid: old route Dashed: new route � 36
v S T w then update S first update W rerouting the old route to the new route Solid: old route Dashed: new route � 37
v S T w then update S first update W rerouting the old route to the new route Solid: old route Dashed: new route � 38
Recommend
More recommend