the zen of consistent distributed network updates · forward to p1, learn (h3,p3) h1 sends to h3:...
TRANSCRIPT
![Page 1: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/1.jpg)
The Zen of Consistent Distributed Network Updates
Stefan Schmid
TU Berlin & Telekom Innovation Labs (T-Labs)
![Page 2: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/2.jpg)
SDN outsources andconsolidates control over multiple devices toa software controller.
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
2
Global Network View
Control
Programs
Control
Programs
Control
Programs
Controller
Just a little bit of background: SDN in a Nutshell
![Page 3: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/3.jpg)
SDN outsources andconsolidates control over multiple devices toa software controller.
Just a little bit of background: SDN in a Nutshell
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Global Network View
Control
Programs
Control
Programs
Control
Programs
ControllerQuestion 1:What are the benefits?
![Page 4: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/4.jpg)
SDN outsources andconsolidates control over multiple devices toa software controller.
SDN in a Nutshell
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Global Network View
Control
Programs
Control
Programs
Control
Programs
Controller
Benefit 1: Decoupling! Control plane can evolve independently of data plane: innovation at speed of software development. Software trumps hardware for fast implementation and deployment.
Benefit 2: Simpler network management through logically centralized view. Let’s face it: many network management tasksare inherently non-local. Simplified formal verification.
![Page 5: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/5.jpg)
5
SDN in a Nutshell
SDN outsources andconsolidates control over multiple devices to a software controller.
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Global Network View
Control
Programs
Control
Programs
Control
Programs
Controller
Benefit 3: Standard API OpenFlow is about generalization!• Generalize devices (L2-L4: switches, routers, middleboxes)• Generalize routing and traffic engineering (not only
destination-based)• Generalize flow-installation: coarse-grained rules and
wildcards okay, proactive vs reactive installation• Provide general and logical network views to the
application / tenant
![Page 6: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/6.jpg)
SDN in a Nutshell
SDN outsources andconsolidates control over multiple devices to a software controller.
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Global Network View
Control
Programs
Control
Programs
Control
Programs
ControllerQuestion 2:But is this not a step backward?
And bad news for the PODC community…!
![Page 7: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/7.jpg)
7
SDN in a Nutshell
SDN outsources andconsolidates control over multiple devices to a software controller.
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Ctrl
Global Network View
Control
Programs
Control
Programs
Control
Programs
Controller
Careful! Controller is only logicallycentralized but actually distributed!
![Page 8: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/8.jpg)
8
For example: Handle frequent events close to data path, shield global controllers.
loc
al
SP
EC
TR
UM e.
g., r
ou
tin
g, s
pan
nin
g tr
eee.
g., l
oca
l po
licy
enfo
rcer
, el
eph
ant
flo
w d
etec
tio
n
glo
ba
lDistributed Challenge 1:
What can and should be controlled locally?
![Page 9: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/9.jpg)
9
For example: Handle frequent events close to data path, shield global controllers.
loc
al
SP
EC
TR
UM e.
g., r
ou
tin
g, s
pan
nin
g tr
eee.
g., l
oca
l po
licy
enfo
rcer
, el
eph
ant
flo
w d
etec
tio
n
glo
ba
lDistributed Challenge 1:
What can and should be controlled locally?
Exploiting Locality in Distributed
SDN Control
Stefan Schmid and Jukka Suomela.
ACM SIGCOMM HotSDN 2013.
![Page 10: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/10.jpg)
10
In charge
of tunnels
In charge
of ACLs
Mid
dle
war
e
Co
mp
ose
&
Inst
all
Distributed Challenge 2: How to deal with concurrency?
![Page 11: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/11.jpg)
11
Problem: Conflict free, per-packet consistent policy composition andinstallation
Holy Grails: Linearizability (Safety), Wait-freedom (Liveness)
Equivalent linearized schedule!Need to abort p3’s “transaction”.
Distributed Challenge 2: How to deal with concurrency?
![Page 12: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/12.jpg)
12
Problem: Conflict free, per-packet consistent policy composition andinstallation
Holy Grails: Linearizability (Safety), Wait-freedom (Liveness)
Equivalent linearized schedule!Need to abort p3’s “transaction”.
Distributed Challenge 2: How to deal with concurrency?
A Distributed and Robust SDN Control Plane for Transactional Network Updates
Marco Canini, Petr Kuznetsov, Dan Levin, and Stefan Schmid.
34th IEEE Conference on Computer Communications (INFOCOM), Hong Kong, April 2015..
![Page 13: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/13.jpg)
Focus of this talk: Consistent Network Updates
Important, e.g., in Cloud
What if your traffic was not isolated from other tenants during periods of routine maintenance?
![Page 14: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/14.jpg)
Example: OutagesEven technically sophisticated companies are struggling to build networks that provide reliable performance.
We discovered a misconfiguration on thispair of switches that caused what's called a“bridge loop” in the network.
A network change was […] executed incorrectly […] more “stuck” volumes and added more requests to the re-mirroring storm
Service outage was due to a series of internalnetwork events that corrupted router data tables
Experienced a network connectivity issue […]interrupted the airline's flight departures,airport processing and reservations systems
Thanks to Nate Foster for examples (at PODC 2014)!
![Page 15: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/15.jpg)
The SDN Hello World:MAC Learning
(Distributed Challenge 3 resp. Fail)
![Page 16: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/16.jpg)
Distributed Computing Fail: Updating a Single Switch
Already updating a single switch from a single controlleris non-trivial!
❏ Fundamental networking task: MAC learning❏ Flood packets sent to unknown destinations
❏ Learn host’s location when it sends packets
❏ Example❏ h1 sends to h2:
❏ h3 sends to h1:
❏ h1 sends to h3:
h1
h2h3
Thanks to Jennifer Rexford for example!
1
23
![Page 17: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/17.jpg)
Already updating a single switch from a single controlleris non-trivial!
❏ Fundamental networking task: MAC learning❏ Flood packets sent to unknown destinations
❏ Learn host’s location when it sends packets
❏ Example❏ h1 sends to h2:
flood, learn (h1,p1)
❏ h3 sends to h1:
❏ h1 sends to h3:
h1
h2h3
Thanks to Jennifer Rexford for example!
1
2
Distributed Computing Fail: Updating a Single Switch
3
![Page 18: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/18.jpg)
Already updating a single switch from a single controlleris non-trivial!
❏ Fundamental networking task: MAC learning❏ Flood packets sent to unknown destinations
❏ Learn host’s location when it sends packets
❏ Example❏ h1 sends to h2:
flood, learn (h1,p1)
❏ h3 sends to h1:
forward to p1, learn (h3,p3)
❏ h1 sends to h3:
h1
h2h3
Thanks to Jennifer Rexford for example!
1
23
Distributed Computing Fail: Updating a Single Switch
![Page 19: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/19.jpg)
Already updating a single switch from a single controlleris non-trivial!
❏ Fundamental networking task: MAC learning❏ Flood packets sent to unknown destinations
❏ Learn host’s location when it sends packets
❏ Example❏ h1 sends to h2:
flood, learn (h1,p1)
❏ h3 sends to h1:
forward to p1, learn (h3,p3)
❏ h1 sends to h3:
h1
h2h3
Thanks to Jennifer Rexford for example!
1
23
Distributed Computing Fail: Updating a Single Switch
![Page 20: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/20.jpg)
Already updating a single switch from a single controlleris non-trivial!
❏ Fundamental networking task: MAC learning❏ Flood packets sent to unknown destinations
❏ Learn host’s location when it sends packets
❏ Example❏ h1 sends to h2:
flood, learn (h1,p1)
❏ h3 sends to h1:
forward to p1, learn (h3,p3)
❏ h1 sends to h3:
forward to p3
h1
h2h3
Thanks to Jennifer Rexford for example!
1
23
Distributed Computing Fail: Updating a Single Switch
![Page 21: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/21.jpg)
Already updating a single switch from a single controlleris non-trivial!
❏ Fundamental task: MAC learning❏ Flood packets sent to unknown destinations
❏ Learn host’s location when it sends packets
❏ Example❏ H1 sends to h2:
flood, learn (h1,p1)
❏ h3 sends to h1:
forward to p1, learn (h3,p3)
❏ h1 sends to h3:
forward to p3
h1
h2h3
Thanks to Jennifer Rexford for example!
1
23
Controller
OpenFlowswitch
Now: how to do via controller?Install rules as you learn!And match on host address and port.
Distributed Computing Fail: Updating a Single Switch
![Page 22: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/22.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1
h2h3
1
23
Controller
OpenFlow
switch
❏ What happens when h1 sends to h2?
![Page 23: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/23.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1
h2h3
1
23
Controller
❏ What happens when h1 sends to h2?
❏ Controller learns that h1@p1 and installs rule on switch!
OpenFlow
switch
![Page 24: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/24.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1 sends to h2
h1
h2h3
1
23
Controller
❏ What happens when h1 sends to h2?
❏ Controller learns that h1@p1 and installs rule on switch!
OpenFlow
switch
![Page 25: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/25.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1 sends to h2
h1
h2h3
1
23
Controller
❏ What happens when h2 sends to h1?
OpenFlow
switch
![Page 26: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/26.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1 sends to h2
h1
h2h3
1
23
Controller
❏ What happens when h2 sends to h1?
❏ Switch knows destination: message forwarded to h1
❏ No controller interaction, no new rule for h2
OpenFlow
switch
![Page 27: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/27.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1 sends to h2
h1
h2h3
1
23
Controller
❏ What happens when h2 sends to h1?
❏ Switch knows destination: message forwarded to h1
❏ No controller interaction, no new rule for h2
❏ What happens when h3 sends to h2?
OpenFlow
switch
![Page 28: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/28.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1 sends to h2
h1
h2h3
1
23
Controller
❏ What happens when h2 sends to h1?
❏ Switch knows destination: message forwarded to h1
❏ No controller interaction, no new rule for h2
❏ What happens when h3 sends to h2?
❏ Flooded! Controller did not put the rule to h2!
OpenFlow
switch
![Page 29: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/29.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1 sends to h2
h1
h2h3
1
23
Controller
❏ What happens when h2 sends to h1?
❏ Switch knows destination: message forwarded to h1
❏ No controller interaction, no new rule for h2
❏ What happens when h3 sends to h2?
❏ Flooded! Controller did not put the rule to h2!
Controller however does learn about h3.Then answer from h2 missed bycontroller too: all future requests to h2 flooded?!?
OpenFlow
switch
![Page 30: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/30.jpg)
Example: SDN MAC Learning Done Wrong
❏ Initial rule *: Send everything to controller
h1 sends to h2
h1
h2h3
1
23
Controller
❏ What happens when h2 sends to h1?
❏ Switch knows destination: message forwarded to h1
❏ No controller interaction, no new rule for h2
❏ What happens when h3 sends to h2?
❏ Flooded! Controller did not put the rule to h2!
A bug in early controller software. Hard to catch! A performance issue, not a consistency one
(arguably a key strength of SDN?).
OpenFlow
switch
![Page 31: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/31.jpg)
Distributed Challenge 4: Multi-Switch Updates
insecure
Internetsecure
zone
![Page 32: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/32.jpg)
insecure
Internetsecure
zone
Controller Platform
Distributed Challenge 4: Multi-Switch Updates
![Page 33: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/33.jpg)
insecure
Internetsecure
zone
Controller Platform
asynchronous
Distributed Challenge 4: Multi-Switch Updates
![Page 34: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/34.jpg)
An Asynchronous Distributed System!
Measurement studies…
He et al., ACM SOSR 2015:
without network latency
![Page 35: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/35.jpg)
What Can Go Wrong?
insecure
Internetsecure
zone
Controller Platform
asynchronous
![Page 36: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/36.jpg)
Example 2.1: Bypassed Waypoint
insecure
Internetsecure
zone
Controller Platform
![Page 37: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/37.jpg)
Example 2.2: Loop
insecure
Internetsecure
zone
Controller Platform
![Page 38: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/38.jpg)
The Spectrum of Consistency
Strong Weak
weak, transient consistency
(loop-freedom,
waypoint enforced)Ratul M. and Roger W., HotSDN 2014
Ludwig et al., HotNets 2014
correct network
virtualizationGhorbani and Godfrey, HotSDN 2014
per-packet consistencyReitblatt et al., SIGCOMM 2012
![Page 39: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/39.jpg)
Example: Per-Packet Consistency
Definition: Any packet should either traverse theold route, or the new route, but not a mixture
Implementation:
❏ 2-Phase installation
❏ Tagging at ingress port
tag red
redred
![Page 40: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/40.jpg)
Example: Per-Packet Consistency
Definition: Any packet should either traverse theold route, or the new route, but not a mixture
Implementation:
❏ 2-Phase installation
❏ Tagging at ingress port
tag red
redred
blue
blue
Start preparing new route!
![Page 41: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/41.jpg)
Example: Per-Packet Consistency
Definition: Any packet should either traverse theold route, or the new route, but not a mixture
Implementation:
❏ 2-Phase installation
❏ Tagging at ingress port
tag blue
redred
blue
blue
And then tag newly arriving packets!
![Page 42: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/42.jpg)
Example: Per-Packet Consistency
Definition: Any packet should either traverse theold route, or the new route, but not a mixture
Implementation:
Disadvantages:
❏ 2-Phase installation
❏ Tagging at ingress port
tag blue
redred
blue
blue
❏ Tagging: memory
❏ Late effects
![Page 43: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/43.jpg)
The Spectrum of Consistency
Strong Weak
weak, transient consistency
(loop-freedom,
waypoint enforced)Ratul M. and Roger W., HotSDN 2014
Ludwig et al., HotNets 2014
correct network
virtualizationGhorbani and Godfrey, HotSDN 2014
per-packet consistencyReitblatt et al., SIGCOMM 2012
![Page 44: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/44.jpg)
Implementing weaker transient consistency?
❏ Idea: Avoid tagging and keep consistent byupdating in multiple rounds❏ No tagging needed
❏ Focus here: replacing rules, not adding rules
❏ No synchronous clocks / triggers
(no guarantees: not perfect, failures, …)
Controller Platform
Controller Platform
Round 1
Round 2
![Page 45: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/45.jpg)
Going Back to Our Examples: LF Update?
insecure
Internet
secure
zone
![Page 46: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/46.jpg)
Going Back to Our Examples: LF Update!
insecure
Internet
secure
zone
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2:
![Page 47: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/47.jpg)
Going Back to Our Examples: LF Update!
insecure
Internet
secure
zone
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2:
LF ok! But:- Q1: Does a LF schedule always exist? Ideas?
![Page 48: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/48.jpg)
Going Back to Our Examples: LF Update!
insecure
Internet
secure
zone
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2:
LF ok! But:- Q1: Does a LF schedule always exist? Ideas? - Q2: What about WPE?
![Page 49: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/49.jpg)
Going Back to Our Examples: LF Update!
insecure
Internet
secure
zone
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2:
LF ok! But:- Q1: Does a LF schedule always exist? Ideas? - Q2: What about WPE? Violated in Round 1!
![Page 50: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/50.jpg)
Going Back to Our Examples: WPE Update?
insecure
Internet
secure
zone
![Page 51: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/51.jpg)
Going Back to Our Examples: WPE Update!
insecure
Internet
secure
zone
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2:
![Page 52: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/52.jpg)
Going Back to Our Examples: WPE Update!
insecure
Internet
secure
zone
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2: … ok but may violate LF in Round 1!
![Page 53: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/53.jpg)
Going Back to Our Examples: Both WPE+LF?
insecure
Internet
secure
zone
![Page 54: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/54.jpg)
Going Back to Our Examples: WPE+LF!
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2:
insecure
Internet
secure
zoneR3:
![Page 55: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/55.jpg)
Going Back to Our Examples: WPE+LF!
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2:
insecure
Internet
secure
zoneR3: Is there always a WPE+LF schedule?
![Page 56: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/56.jpg)
What about this one?
![Page 57: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/57.jpg)
LF and WPE may conflict!
❏ Cannot update any forward edge in R1: WP
❏ Cannot update any backward edge in R1: LF
No schedule exists!
![Page 58: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/58.jpg)
LF and WPE may conflict!
❏ Cannot update any forward edge in R1: WP
❏ Cannot update any backward edge in R1: LF
No schedule exists!Good Network Updates for Bad Packets: Waypoint Enforcement Beyond Destination-Based Routing Policies
Arne Ludwig, Matthias Rost, Damien Foucard, and Stefan Schmid.
13th ACM Workshop on Hot Topics in Networks (HotNets), Los Angeles, California, USA, October 2014...
![Page 59: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/59.jpg)
How about this one?
![Page 60: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/60.jpg)
How about this one?
1
❏ Forward edge after the waypoint: safe!
❏ No loop, no WPE violation
![Page 61: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/61.jpg)
How about this one?
2
❏ Now this backward is safe too!
❏ No loop because exit through 1
1
![Page 62: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/62.jpg)
How about this one?
1
2
3
❏ Now this is safe: ready back to WP!
❏ No waypoint violation
2
![Page 63: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/63.jpg)
How about this one?
1
2
3
4
4
❏ Ok to update as not on the path (goes to d via )1
![Page 64: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/64.jpg)
How about this one?
1
2
3
❏ Ok to update as not on the path (goes to d via )
4
4
1
![Page 65: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/65.jpg)
How about this one?
1
2
3
4
4
5
❏ Ok to update as not on the path (goes to d via )1
![Page 66: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/66.jpg)
Back to the start: What if….
1
![Page 67: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/67.jpg)
Back to the start: What if…. also this one?!
1
1
![Page 68: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/68.jpg)
Back to the start: What if…. also this one?!
1
1
❏ Update any of the 2 backward edges? LF
![Page 69: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/69.jpg)
Back to the start: What if…. also this one?!
1
1
❏ Update any of the 2 backward edges? LF
![Page 70: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/70.jpg)
Back to the start: What if…. also this one?!
1
1
❏ Update any of the 2 backward edges? LF
![Page 71: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/71.jpg)
Back to the start: What if…. also this one?!
1
1
❏ Update any of the 2 backward edges? LF
❏ Update any of the 2 other forward edges? WPE
❏ What about a combination? Nope…
![Page 72: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/72.jpg)
Back to the start: What if…. also this one?!
1
1
![Page 73: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/73.jpg)
Back to the start: What if…. also this one?!
1
1
To update or not to update in the first round? This is the question which leads to NP-hardness!
![Page 74: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/74.jpg)
Remark on WPE: ACKs are not enough!
❏ I may never be able to update this edge!
❏ Packets may be waiting right before x
❏ So rounds require waiting (upper bound on latency)
x
![Page 75: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/75.jpg)
Let‘s forget about Waypoint Enforcement for a moment:Then loop-free update schedules always exist!
![Page 76: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/76.jpg)
Let‘s forget about Waypoint Enforcement for a moment:Then loop-free update schedules always exist!
Why? Trivial strategy?
![Page 77: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/77.jpg)
Let‘s forget about Waypoint Enforcement for a moment:Then loop-free update schedules always exist!
Why? Trivial strategy? E.g., start from end?
![Page 78: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/78.jpg)
LF Update: Start from end…
insecure
Internet
secure
zone
insecure
Internet
secure
zone
insecure
Internet
secure
zone
R1:
R2:
1
1
2
1
2
3
![Page 79: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/79.jpg)
Let‘s forget about Waypoint Enforcement for a moment:Then loop-free update schedules always exist!
How many rounds are requiredin the worst case?
![Page 80: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/80.jpg)
How to update LF?
…
s dv2 v3 vi-1vi-2vi-3
![Page 81: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/81.jpg)
How to update LF?
…
s dv2 v3 vi-1vi-2vi-3
![Page 82: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/82.jpg)
How to update LF?
…
s dv2 v3 vi-1vi-2vi-3
❏Must update vi before vi+1
![Page 83: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/83.jpg)
How to update LF?
…
s dv2 v3 vi-1vi-2vi-3
❏Must update vi before vi+1
![Page 84: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/84.jpg)
How to update LF?
…
s dv2 v3 vi-1vi-2vi-3
❏Must update vi before vi+1
![Page 85: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/85.jpg)
How to update LF?
…
s dv2 v3 vi-1vi-2vi-3
❏Must update vi before vi+1
![Page 86: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/86.jpg)
How to update LF?
…
s dv2 v3 vi-1vi-2vi-3
❏Must update vi before vi+1
![Page 87: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/87.jpg)
Ω(n) rounds to be loop-free!
…
s dv2 v3 vi-1vi-2vi-3
❏Must update vi before vi+1
❏ Takes Ω(n) rounds: v3 v4 v5 v6 …
![Page 88: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/88.jpg)
However: It can be good to relax!
…
s dv2 v3 vi-1vi-2vi-3
❏ However: Topological loops may not be a problem ifthey do not occur on the active (s,d) path
![Page 89: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/89.jpg)
However: It can be good to relax!
…
s dv2 v3 vi-1vi-2vi-3
❏ However: Topological loops may not be a problem ifthey do not occur on the active (s,d) pathFor this example: Only oldpackets may loop here, newpackets from s go via v2 to d.
![Page 90: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/90.jpg)
However: It can be good to relax!
…
s dv2 v3 vi-1vi-2vi-3
❏ However: Topological loops may not be a problem if theydo not occur on the active (s,d) path
❏ Schedule: (1) forward edges, (2) backward edges exceptlast one, (3) last backward edge
![Page 91: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/91.jpg)
…
s dv2 v3 vi-1vi-2vi-3
…
s dv2 v3 vi-1vi-2vi-3
…
s dv2 v3 vi-1vi-2vi-3
![Page 92: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/92.jpg)
…
s dv2 v3 vi-1vi-2vi-3
…
s dv2 v3 vi-1vi-2vi-3
…
s dv2 v3 vi-1vi-2vi-3
Update safe: no new traffic here!
Now safe too: backward path ready!
![Page 93: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/93.jpg)
However: It can be good to relax!
…
s dv2 v3 vi-1vi-2vl-3
❏ Topological loops may not be a problem if theydo not occur on the active (s,d) path
❏ Schedule: (1) forward edges, (2) backwardedges except last one, (3) last backward edge
Relaxed LF in 3 rounds, whereStrong LF requires n rounds: Worst possible!
![Page 94: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/94.jpg)
Why did we consider the line only?Model & Simplification
❏ Given old (solid) and new path(dashed)
❏ We can focus on nodes which needto be updated and lie on both paths(others trivial)
❏ Can be represented as a line
❏ Convention: old path solid from leftto right
![Page 95: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/95.jpg)
Why did we consider the line only?Model & Simplification
❏ Given old (solid) and new path(dashed)
❏ We can focus on nodes which needto be updated and lie on both paths(others trivial)
❏ Can be represented as a line
❏ Convention: old path solid from leftto right
Easy to update new nodes whichdo not appear in old policy.And just keep nodes which arenot on new path.
![Page 96: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/96.jpg)
Good Algorithms to Schedule (Strong) LF Updates?
![Page 97: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/97.jpg)
Idea: Greedy
❏ Greedy: Schedule a maximum number of nodesin each round!
❏ However, it turns out that this is bad:❏ A single greedy round can force the best possible schedule
to go from O(1) to Ω(n) rounds
❏ Moreover, being greedy in NP-hard: a (hard) special variant of Feedback Arc Set Problem (out-degree 2, 2 valid paths)
![Page 98: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/98.jpg)
Less Ambitious: Algorithms for 2-Round Instances?
![Page 99: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/99.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
![Page 100: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/100.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path? F F F B B B
![Page 101: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/101.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
❏ F, B: Does the (solid) old edge point forwardor backwart wrt(dashed) new path?
Old policy from left to right!
New policy from left to right!
![Page 102: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/102.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
❏ F, B: Does the (solid) old edge point forwardor backwart wrt(dashed) new path?
? ?? ?
![Page 103: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/103.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
❏ F, B: Does the (solid) old edge point forwardor backwart wrt(dashed) new path?
FF BB FB BF
![Page 104: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/104.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
❏ F, B: Does the (solid) old edge point forwardor backwart wrt(dashed) new path?
FF BB FB
Insight 1: In the 1st round, I can safely update all
forwarding (F) edges! For sure loopfree.
BF FB
![Page 105: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/105.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
❏ F, B: Does the (solid) old edge point forwardor backwart wrt(dashed) new path?
Insight 1: In the 1st round, I can safely update all
forwarding (F) edges! For sure loopfree.
Insight 2: Valid schedules are reversible! A valid
schedule from old to new used backward is a valid schedule for new to old!
![Page 106: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/106.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
❏ F, B: Does the (solid) old edge point forwardor backwart wrt(dashed) new path?
FF BB FB
Insight 1: In the 1st round, I can safely update all
forwarding (F) edges! For sure loopfree.
BF
Insight 3: Hence in the last round, I can safely update all forwarding (F) edges!
For sure loopfree.FB
Insight 2: Valid schedules are reversible! A valid
schedule from old to new used backward is a valid schedule for new to old!
![Page 107: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/107.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
❏ F, B: Does the (solid) old edge point forwardor backwart wrt(dashed) new path?
Insight 1: In the 1st round, I can safely update all
forwarding (F) edges! For sure loopfree.
Insight 3: Hence in the last round, I can safely update all forwarding (F) edges!
For sure loopfree.
2-Round Schedule: If and only ifthere are no BB edges! Then I can
update F edges in first roundand F edges in second round!
Insight 2: Valid schedules are reversible! A valid
schedule from old to new used backward is a valid schedule for new to old!
![Page 108: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/108.jpg)
Less Ambitious: Algorithms for 2-Round Instances
❏ Classify nodes/edges with 2-letter code:
❏ F, B: Does (dashed) new edge point forwardor backward wrt (solid) old path?
❏ F, B: Does the (solid) old edge point forwardor backwart wrt(dashed) new path?
Insight 1: In the 1st round, I can safely update all
forwarding (F) edges! For sure loopfree.
Insight 3: Hence in the last round, I can safely update all forwarding (F) edges!
For sure loopfree.
2-Round Schedule: If and only ifthere are no BB edges! Then I can
update F edges in first roundand F edges in second round!
Insight 2: Valid schedules are reversible! A valid
schedule from old to new used backward is a valid schedule for new to old!
That is, FB must be in first round, BF must bein second round, and FF are flexible!
![Page 109: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/109.jpg)
What about 3 rounds?
![Page 110: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/110.jpg)
What about 3 rounds?
❏ Structure of a 3-round schedule:
Round 1 Round 2 Round 3
F edges:
FF,FB
F edges:
FF,BF
all edges:
FF,FB,BF,BB
![Page 111: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/111.jpg)
What about 3 rounds?
❏ Structure of a 3-round schedule:
Round 1 Round 2 Round 3
F edges:
FF,FB
F edges:
FF,BF
all edges:
FF,FB,BF,BB
Round 1 Round 2 Round 3
FB BFBB
WLOG
Boilsdown to: FF
??
W.l.o.g., can do FB in R1 and BF in R3.
![Page 112: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/112.jpg)
Proof
Claim: If there exists 3-round schedule, then also one where FB are onlyupdated in Round 1.
Reason: Can move FB tofirst round!
FF FB FB FB BB BF BF
S1: as early
as possible
S2: as late
as possible
R1 R2
R2 R3
![Page 113: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/113.jpg)
Proof
Claim: If there exists 3-round schedule, then also one where FB are onlyupdated in Round 1.
Reason: Can move FB tofirst round!
FF FB FB FB BB BF BF
S1: as early
as possible
S2: as late
as possible
R1 R2
R2 R3
Fowarding edges do not introduce loops in G(t=1).
![Page 114: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/114.jpg)
Proof
Claim: If there exists 3-round schedule, then also one where FB are onlyupdated in Round 1.
Reason: Can move FB tofirst round!
FF FB FB FB BB BF BF
S1: as early
as possible
S2: as late
as possible
R1 R2
R2 R3
Updating edges earliermakes G(t=2) only sparser, so will still work in 3 rounds.
Fowarding edges do not introduce loops in G(t=1).
![Page 115: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/115.jpg)
Proof
Claim: If there exists 3-round schedule, then also one where FB are onlyupdated in Round 1.
Reason: Can move FB tofirst round!
FF FB FB FB BB BF BF
S1: as early
as possible
S2: as late
as possible
R1 R2
R2 R3
Updating edges earliermakes G(t=2) only sparser, so will still work in 3 rounds.
Fowarding edges do not introduce loops in G(t=1).
… but moving FF nodes across BB-node-Round-2 is tricky! Why?
Similar argument for BF nodes (for R2 and R3)…
![Page 116: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/116.jpg)
NP-hardness
A hard decision problem: when to update FF?
❏ We know: BB node v6 can only be updated in R2
BB
![Page 117: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/117.jpg)
NP-hardness
A hard decision problem: when to update FF?
❏ We know: BB node v6 can only be updated in R2
❏ Updating FF-node v4 in R1 allows to update BB node v6 in R2
Exit from loop
BB
![Page 118: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/118.jpg)
NP-hardness
A hard decision problem: when to update FF?
❏ We know: BB node v6 can only be updated in R2
❏ Updating FF-node v4 in R1 allows to update BB node v6 in R2
❏ Updating FF-node v3 as well in R1 would be bad: cannot update v6 in next round: potential loop
No exit from loop!
BB
![Page 119: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/119.jpg)
NP-hardness
A hard decision problem: when to update FF?
❏ We know: BB node v6 can only be updated in R2
❏ Updating FF-node v4 in R1 allows to update BB node v6 in R2
❏ Updating FF-node v3 as well in R1 would be bad: cannot update v6 in next round: potential loop
No exit from loop!
BB
![Page 120: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/120.jpg)
NP-hardness
A hard decision problem: when to update FF?
❏ We know: BB node v6 can only be updated in R2
❏ Updating FF-node v4 in R1 allows to update BB node v6 in R2
❏ Updating FF-node v3 as well in R1 would be bad: cannot update v6 in next round: potential loop
❏ Node v5 is B and cannot be updated in R1
BB
![Page 121: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/121.jpg)
NP-hardness
❏ Reduction from a 3-SAT version wherevariables appear only a small number of times
❏ Variable x appearing px times positively and nx
times negatively is replaced by:
❏ Gives low-degree requirements!
❏ Types of clauses
❏ Assignment clause:
❏ Implication clause:
❏ Exclusive Clause:
![Page 122: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/122.jpg)
NP-hardness
❏ Reduction from a 3-SAT version wherevariables appear only a small number of times
❏ Variable x appearing px times positively and nx
times negatively is replaced by:
❏ Gives low-degree requirements!
❏ Types of clauses
❏ Assignment clause:
❏ Implication clause:
❏ Exclusive Clause:
We need a low degree…
Connecting clones: consistent value fororiginal variable.
![Page 123: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/123.jpg)
Example: Gadget for Exclusive Clause
❏ Updating xl prevents Xl update and vice versa
❏ BB nodes v2 and v4 need to be updated in R2 and will introduce a cycle otherwise
❏ So only one of the two can be updated in R1
![Page 124: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/124.jpg)
Example: Gadget for Exclusive Clause
❏ Updating xl prevents Xl update and vice versa
❏ BB nodes v2 and v4 need to be updated in R2 and will introduce a cycle otherwise
❏ So only one of the two can be updated in R1
![Page 125: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/125.jpg)
Example: Gadget for Exclusive Clause
❏ Updating xl prevents Xl update and vice versa
❏ BB nodes v2 and v4 need to be updated in R2 and will introduce a cycle otherwise
❏ So only one of the two can be updated in R1
![Page 126: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/126.jpg)
Example: Gadget for Clause
❏ Need to update (satisfy) at least one of theliterals in the clause…
❏ … so to escape thepotential loop
![Page 127: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/127.jpg)
Example: Gadget for Clause
❏ Need to update (satisfy) at least one of theliterals in the clause…
❏ … so to escape thepotential loop
![Page 128: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/128.jpg)
NP-hardness
❏ Eventually everything has to be connected…
❏ … to form a valid path
![Page 129: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/129.jpg)
Relaxed Loopfreedom
❏ Recall: relaxed loop-freedom can reduce number ofrounds by a factor O(n)
❏ But how many rounds are needed for relaxed loop-free update in the worst case?
❏ We don’t know…
❏ … what we do know: next slide
![Page 130: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/130.jpg)
Peacock: Relaxed Updates in O(log n) Rounds
First some concepts:
❏ Node merging: a node which is updated is irrelevant for the future, so merge it with subsequent one
❏ Directed tree: while initial network consists of twodirected paths (in-degree=out-degree=2), duringupdate rounds, situation can become a directed tree
❏ in-degree can increase due to merging
❏ dashed in- and out-degree however stays one
![Page 131: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/131.jpg)
Example
Initially: Twovalid paths!
After updating v4.
![Page 132: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/132.jpg)
Example
Initially: Twovalid paths!
After updating v4.
v4 irrelevant, can merge
![Page 133: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/133.jpg)
Example
Initially: Twovalid paths!
After updating v4.
In-degreenow 2: to v4
and v9.
![Page 134: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/134.jpg)
Example
Initially: Twovalid paths!
After updating v4.
Forward andbackward edgesnow defined wrt
tree!
![Page 135: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/135.jpg)
Example
Initially: Twovalid paths!
After updating v4.
New type of edge:
horizontal edge!
![Page 136: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/136.jpg)
Ideas of Peacock Algorithm
❏ Rounds come in pairs: Try to update (and hencemerge) as much as possible in every other round
❏ Round 1 (odd rounds): Shortcut
❏ Move source close to destination
❏ Generate many «independent subtrees» which are easy toupdate!
❏ Round 2 (even rounds): Prune
❏ Update independent subtrees
❏ Brings us back to a chain!
![Page 137: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/137.jpg)
Ideas of Peacock Algorithm
❏ Rounds come in pairs: Try to update (and hencemerge) as much as possible in every other round
❏ Round 1 (odd rounds): Shortcut
❏ Move source close to destination
❏ Generate many «independent subtrees» which are easy toupdate!
❏ Round 2 (even rounds): Prune
❏ Update independent subtrees
❏ Brings us back to a chain!
Don‘t update all FF edges!
![Page 138: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/138.jpg)
Peacock in Action
138
Shortcut Prune PruneShortcut
![Page 139: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/139.jpg)
Peacock in Action
139
Shortcut Prune PruneShortcut
Greedily choosefar-reaching(independent) forward edges.
update
![Page 140: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/140.jpg)
Peacock in Action
140
Shortcut Prune PruneShortcutR1 generatedmany nodes in branches whichcan be updatedsimultaneously!
update
![Page 141: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/141.jpg)
Peacock in Action
141
Shortcut Prune PruneShortcut
Line re-established!(all merged with a node on the s-d-path)
![Page 142: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/142.jpg)
Peacock in Action
142
Shortcut Prune PruneShortcutPeacock orders nodes wrt to distance: edgeof length x can block at most 2 edges of
length x, so distance 2x.
![Page 143: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/143.jpg)
Peacock in Action
143
Shortcut Prune PruneShortcut
At least 1/3 of nodes merged in each roundpair (shorter s-d path): logarithmic runtime!
![Page 144: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/144.jpg)
Peacock in Action
144
Shortcut Prune PruneShortcut
![Page 145: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/145.jpg)
Peacock in Action
145
Shortcut Prune PruneShortcut
Question:When does Peacock terminate?
![Page 146: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/146.jpg)
Peacock in Action
146
Shortcut Prune PruneShortcut
Question:When does Peacock terminate?
Answer:Only in odd rounds: then s-d merged
![Page 147: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/147.jpg)
Why not update two non-independent edges?
…
s
short edge looooong edge
❏ Don’t update all FF edges: A short edge may not reduce distance to source if it jumps over a long edge
…
s not on s-d path
independent edge
❏ Can update all fwd edges starting in interval
![Page 148: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/148.jpg)
Conclusion
• SDN offers fundamental distributed problems
• So far we know:
• Strong LF:
•Greedy arbitrarily bad (up to n rounds) and NP-hard
• 2 rounds easy
• 3 rounds hard
• Relaxed LF:
• Peacock solves any scenario in O(log n) rounds
• Computational results indicate that # rounds grows
• LF and WPE may conflict
Thank you!
And thanks to co-authors: Arne Ludwig, Jan Marcinkowski
as well as Marco Canini, Damien Foucard, Petr Kuznetsov, Dan Levin, Matthias Rost, Jukka Suomela
and more recently Saeed Amiri, Szymon Dudycz, Felix Widmaier
![Page 149: The Zen of Consistent Distributed Network Updates · forward to p1, learn (h3,p3) h1 sends to h3: forward to p3 h1 h2 h3 Thanks to Jennifer Rexford for example! 1 2 3 Controller OpenFlow](https://reader035.vdocuments.mx/reader035/viewer/2022063015/5fd2d5a11ebc0d2de5518c3e/html5/thumbnails/149.jpg)
Own References
Scheduling Loop-free Network Updates: It's Good to Relax!
Arne Ludwig, Jan Marcinkowski, and Stefan Schmid.
ACM Symposium on Principles of Distributed Computing (PODC),
Donostia-San Sebastian, Spain, July 2015.
A Distributed and Robust SDN Control Plane for Transactional Network
Updates
Marco Canini, Petr Kuznetsov, Dan Levin, and Stefan Schmid.
34th IEEE Conference on Computer Communications (INFOCOM), Hong
Kong, April 2015.
Good Network Updates for Bad Packets: Waypoint Enforcement Beyond
Destination-Based Routing Policies
Arne Ludwig, Matthias Rost, Damien Foucard, and Stefan Schmid.
13th ACM Workshop on Hot Topics in Networks (HotNets), Los Angeles,
California, USA, October 2014.