on polynomial time congestion free software defined
play

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


  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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  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 � 10

  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 � 11

  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 � 12

  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 � 13

  14. 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

  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

  16. 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

  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 e ffi ciently? � 17

  18. 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

  19. 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

  20. 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

  21. 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

  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: Update all blocks that correspond to the sink vertices of D. 1) 2) Remove all the sink vertices from D. � 22

  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

  24. Hardness The complexity for 3 to 5 flows remains open. � 24

  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

  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 Thank you! � 26

  27. Backup slides � 27

  28. 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

  29. Loop-free Rerouting 1 2 S 3 T Let’s update S first ! Solid: old route Dashed: new route � 29

  30. 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

  31. Loop-free Rerouting 1 2 S 3 T Then update 3 ? Not consistent! Solid: old route Dashed: new route � 31

  32. Loop-free Rerouting 1 2 No loop would occur if the union was acyclic . S 3 T Solid: old route Dashed: new route � 32

  33. Let’s update S, v first! S T w rerouting the old route to the new route Solid: old route Dashed: new route � 33

  34. 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

  35. v S T w first update W rerouting the old route to the new route Solid: old route Dashed: new route � 35

  36. v S T w first update W rerouting the old route to the new route Solid: old route Dashed: new route � 36

  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 � 37

  38. 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