SlideShare a Scribd company logo
1 of 43
Download to read offline
Consistent Updates in
Software-Defined Networks
Nate Foster
Mark Reitblatt
Cole Schlesinger
Jennifer Rexford
David Walker
Network Updates
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Network Updates
• Routine maintenance
• Unexpected failures
• Traffic engineering
• Updated ACL
Network Updates
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Desired Invariants
• No lost packets
• No broken connections
• No forwarding loops
• No security holes
Network Updates
• Routine maintenance
• Unexpected failures
• Traffic engineering
• Updated ACL
At 12:47 AM PDT on April 21st, a network change
was performed as part of our normal scaling
activities...
During the change, one of the steps is to shift
traffic off of one of the redundant routers...
The traffic shift was executed incorrectly and the
traffic was routed onto the lower capacity
redundant network.
This led to a “re-mirroring storm”...
During this re-mirroring storm, the volume of
connection attempts was extremely high and nodes
began to fail, resulting in more volumes left
needing to re-mirror. This added more requests to
the re-mirroring storm...
The trigger for this event was a network
configuration change.
At 12:47 AM PDT on April 21st, a network change
was performed as part of our normal scaling
activities...
During the change, one of the steps is to shift
traffic off of one of the redundant routers...
The traffic shift was executed incorrectly and the
traffic was routed onto the lower capacity
redundant network.
This led to a “re-mirroring storm”...
During this re-mirroring storm, the volume of
connection attempts was extremely high and nodes
began to fail, resulting in more volumes left
needing to re-mirror. This added more requests to
the re-mirroring storm...
The trigger for this event was a network
configuration change.
Prior Work
Prior Work
Prior Work
Prior Work
Prior Work
Prior Work
Prior Work
Prior Work
Prior Work
Prior Work
Controller
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Software Abstractions
Controller
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Software Abstractions
PL Abstractions
By designing the right software abstractions, we can
solve the network update problem once and for all!
Controller
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Software Abstractions
PL Abstractions
Discovery
Monitoring
Routing
By designing the right software abstractions, we can
solve the network update problem once and for all!
OpenFlow Switch
Example: Distributed Access Control
Controller
Application
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
F2
F3
Src Traffic Action
Web Allow
Non-web Drop
Any Allow
Security Policy
F1
I
Traffic
OpenFlow Switch
Example: Distributed Access Control
Controller
Application
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
F2
F3
Src Traffic Action
Web Allow
Non-web Drop
Any Allow
Security Policy
Configuration A
Process black-hat traffic on F1
Process white-hat traffic on {F2,F3}
F1
I
Traffic
OpenFlow Switch
Example: Distributed Access Control
Controller
Application
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
F2
F3
Src Traffic Action
Web Allow
Non-web Drop
Any Allow
Security Policy
Configuration A
Process black-hat traffic on F1
Process white-hat traffic on {F2,F3}
F1
I
Traffic
OpenFlow Switch
Example: Distributed Access Control
Controller
Application
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
F2
F3
Src Traffic Action
Web Allow
Non-web Drop
Any Allow
Security Policy
Configuration A
Process black-hat traffic on F1
Process white-hat traffic on {F2,F3}
Configuration B
Process black-hat traffic on {F1,F2}
Process white-hat traffic on F3
?
F1
I
Traffic
Abstractions for Network Update
Challenge
•The network is a distributed system
•Can only update one element at a time
Our Approach
•Provide programmers with constructs for
updating the entire network at once
•Design semantics to ensure “reasonable”behavior
•Engineer efficient implementation mechanisms
- Compiler constructs low-level update protocols
- Automatically applies optimizations
update(config,	
  topo)
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Consistent Updates in Action
#	
  Configuration	
  A
I_configA	
  =	
  [Rule({IN_PORT:1},[forward(5)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({IN_PORT:2},[forward(5)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({IN_PORT:3},[forward(6)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({IN_PORT:4},[forward(7)])])
F1_configA	
  =	
  [Rule({TP_DST:80},	
  [forward(2)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({TP_DST:22},	
  [])])
F2_configA	
  =	
  [Rule({},[forward(2)])]
F3_configA	
  =	
  [Rule({},[forward(2)])]
configA	
  =	
  {I:SwitchConfiguration(I_configA),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  F1:SwitchConfiguration(F1_configA),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  F2:SwitchConfiguration(F2_configA),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  F3:SwitchConfiguration(F3_configA)}
#	
  Configuration	
  B
I_configB	
  =	
  [Rule({IN_PORT:1},[forward(5)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({IN_PORT:2},[forward(6)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({IN_PORT:3},[forward(7)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({IN_PORT:4},[forward(7)])])
F1_configB	
  =	
  [Rule({TP_DST:80},	
  [forward(2)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({TP_DST:22},	
  [])])
F2_configB	
  =	
  [Rule({TP_DST:80},	
  [forward(2)]),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Rule({TP_DST:22},	
  [])])
F3_configB	
  =	
  [Rule({},[forward(2)])]
configB	
  =	
  {I:SwitchConfiguration(I_configB),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  F1:SwitchConfiguration(F1_configB),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  F2:SwitchConfiguration(F2_configB),
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  F3:SwitchConfiguration(F3_configB)}
#	
  Main	
  Function
topo	
  =	
  Topo(...)
update(configA,	
  topo)
...wait	
  for	
  traffic	
  load	
  to	
  shift...
update(configB,	
  topo)
Src Traffic Action
Web Allow
Non-web Drop
Any Allow
Security Policy
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Semantics of Network Updates
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Atomic Updates
• Seem sensible...
• but costly to implement
• and difficult to reason about effects on
packets already in-flight
Semantics of Network Updates
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Atomic Updates
• Seem sensible...
• but costly to implement
• and difficult to reason about effects on
packets already in-flight
Per-Packet Consistent Updates
Every packet processed with old or new
configuration, but not a mixture of the two
Implementation Mechanisms
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
NOX Controller
Frenetic Run-Time System
Frenetic Application
update(config,topo)
Calculate rules,
generate messsages
Raw OpenFlow
control messages
Two-phase commit
• Construct versioned internal and edge
configurations
• Phase 1: Install internal configuration
• Phase 2: Install edge configuration
Pure Extension
• Update strictly adds paths
Pure Retraction
• Update strictly removes paths
Slice Update
• Update affects a small number of switches
(Ask me for a demo!)
(Ask me for a demo!)
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
(Ask me for a demo!)
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Formal Verification
Global
Config
Packet
Queue
Update
hC, Qi
u
! hC0
, Q0
i
Theorem
An update u C1 to C2 is per-packet consistent if and only if it
preserves all properties satisfied by C1 and C2.
Formal Verification
Global
Config
Packet
Queue
Update
hC, Qi
u
! hC0
, Q0
i
Theorem
An update u C1 to C2 is per-packet consistent if and only if it
preserves all properties satisfied by C1 and C2.
Formal Verification
Global
Config
Packet
Queue
Update
hC, Qi
u
! hC0
, Q0
i
Verified
Formal Verification
Corollary
To verify that a property is invariant, simply check
that the old and new configurations satisfy it
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Formal Verification
Corollary
To verify that a property is invariant, simply check
that the old and new configurations satisfy it
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Kripke Structure
Formal Verification
Corollary
To verify that a property is invariant, simply check
that the old and new configurations satisfy it
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Model Checker
Kripke Structure
CTL Property
Formal Verification
Corollary
To verify that a property is invariant, simply check
that the old and new configurations satisfy it
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Model Checker
✓
Kripke Structure
CTL Property
✘
Formal Verification
Corollary
To verify that a property is invariant, simply check
that the old and new configurations satisfy it
OpenFlow Switch
OpenFlow Switch
OpenFlow Switch
Model Checker
✓
Kripke Structure
CTL Property
Properties
• Connectivity
• Loop freedom
• Blackhole freedom
• Access control
•Waypointing
• Totality
✘
Per-Flow Consistency
Use Cases
• Load balancer
• Flow affinity
• In-order delivery
Per-flow consistent updates
Every set of related packets processed
with old or new configuration, but not
a mixture of the two.
Implementation mechanisms
• Need to identify active flows
• Rules with soft timeouts
• DevoFlow wildcard cloning
• End-host feedback
OpenFlow Switch
OpenFlow Switch
Ongoing Work
Other abstractions
• Loop-freedom
• Affinity preserving
Update Synthesis
• Programmer specifies an invariant
• Compiler constructs an update protocol
Enhanced fault tolerance
• Rapid response when failures occur
• Compiler“hardens”configurations
• Pre-loads backup policy
Leverage end hosts
• Help identify active flows
Thank You!
Collaborators
Shrutarshi Basu (Cornell)
Mike Freedman (Princeton)
Rob Harrison (West Point)
Chris Monsanto (Princeton)
Mark Reitblatt (Cornell)
Gün Sirer (Cornell)
Cole Schlesinger (Princeton)
Alec Story (Cornell)
Jen Rexford (Princeton)
Dave Walker (Princeton)
Funding
http://frenetic-lang.org

More Related Content

What's hot

Topic 5 nx os management-ver 0.2
Topic 5 nx os management-ver 0.2Topic 5 nx os management-ver 0.2
Topic 5 nx os management-ver 0.2Krunal Shah
 
SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016Koan-Sin Tan
 
Cef based switching
Cef based switchingCef based switching
Cef based switchingIsrael Umana
 
(2) documents e books_cisco_networking_books_training_materials_cnap_-_ont_v5...
(2) documents e books_cisco_networking_books_training_materials_cnap_-_ont_v5...(2) documents e books_cisco_networking_books_training_materials_cnap_-_ont_v5...
(2) documents e books_cisco_networking_books_training_materials_cnap_-_ont_v5...Lary Onyeka
 
2009-03-13 Atlanda System z Council Meeting
2009-03-13 Atlanda System z Council Meeting2009-03-13 Atlanda System z Council Meeting
2009-03-13 Atlanda System z Council MeetingShawn Wells
 
Why my network does not work? Networking Quiz 2017
Why my network does not work? Networking Quiz 2017Why my network does not work? Networking Quiz 2017
Why my network does not work? Networking Quiz 2017Andriy Berestovskyy
 
225735365 ccna-study-guide-a
225735365 ccna-study-guide-a225735365 ccna-study-guide-a
225735365 ccna-study-guide-ahomeworkping10
 
Cisco CCNA- How to Configure Multi-Layer Switch
Cisco CCNA- How to Configure Multi-Layer SwitchCisco CCNA- How to Configure Multi-Layer Switch
Cisco CCNA- How to Configure Multi-Layer SwitchHamed Moghaddam
 
Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands sandeep kumar
 
EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)Netwax Lab
 
Cisco CCNA IPV6 Static Configuration
Cisco CCNA  IPV6 Static ConfigurationCisco CCNA  IPV6 Static Configuration
Cisco CCNA IPV6 Static ConfigurationHamed Moghaddam
 
Route Redistribution
Route RedistributionRoute Redistribution
Route RedistributionNetwax Lab
 
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PROIDEA
 
Juniper JNCIA – Juniper RIP Route Configuration
Juniper JNCIA – Juniper RIP Route ConfigurationJuniper JNCIA – Juniper RIP Route Configuration
Juniper JNCIA – Juniper RIP Route ConfigurationHamed Moghaddam
 
Cisco CCNA GRE Tunnel Configuration
Cisco CCNA GRE Tunnel ConfigurationCisco CCNA GRE Tunnel Configuration
Cisco CCNA GRE Tunnel ConfigurationHamed Moghaddam
 

What's hot (19)

Topic 5 nx os management-ver 0.2
Topic 5 nx os management-ver 0.2Topic 5 nx os management-ver 0.2
Topic 5 nx os management-ver 0.2
 
SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016SoC Idling for unconf COSCUP 2016
SoC Idling for unconf COSCUP 2016
 
Cef based switching
Cef based switchingCef based switching
Cef based switching
 
(2) documents e books_cisco_networking_books_training_materials_cnap_-_ont_v5...
(2) documents e books_cisco_networking_books_training_materials_cnap_-_ont_v5...(2) documents e books_cisco_networking_books_training_materials_cnap_-_ont_v5...
(2) documents e books_cisco_networking_books_training_materials_cnap_-_ont_v5...
 
Networking
NetworkingNetworking
Networking
 
2009-03-13 Atlanda System z Council Meeting
2009-03-13 Atlanda System z Council Meeting2009-03-13 Atlanda System z Council Meeting
2009-03-13 Atlanda System z Council Meeting
 
Ccnpswitch
CcnpswitchCcnpswitch
Ccnpswitch
 
Why my network does not work? Networking Quiz 2017
Why my network does not work? Networking Quiz 2017Why my network does not work? Networking Quiz 2017
Why my network does not work? Networking Quiz 2017
 
The Spectre of Meltdowns
The Spectre of MeltdownsThe Spectre of Meltdowns
The Spectre of Meltdowns
 
225735365 ccna-study-guide-a
225735365 ccna-study-guide-a225735365 ccna-study-guide-a
225735365 ccna-study-guide-a
 
Cisco CCNA- How to Configure Multi-Layer Switch
Cisco CCNA- How to Configure Multi-Layer SwitchCisco CCNA- How to Configure Multi-Layer Switch
Cisco CCNA- How to Configure Multi-Layer Switch
 
Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands Junos vs ios Troubleshooting comands
Junos vs ios Troubleshooting comands
 
EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)
 
Cisco CCNA IPV6 Static Configuration
Cisco CCNA  IPV6 Static ConfigurationCisco CCNA  IPV6 Static Configuration
Cisco CCNA IPV6 Static Configuration
 
Route Redistribution
Route RedistributionRoute Redistribution
Route Redistribution
 
Ccna command
Ccna commandCcna command
Ccna command
 
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
PLNOG 13: P. Kupisiewicz, O. Pelerin: Make IOS-XE Troubleshooting Easy – Pack...
 
Juniper JNCIA – Juniper RIP Route Configuration
Juniper JNCIA – Juniper RIP Route ConfigurationJuniper JNCIA – Juniper RIP Route Configuration
Juniper JNCIA – Juniper RIP Route Configuration
 
Cisco CCNA GRE Tunnel Configuration
Cisco CCNA GRE Tunnel ConfigurationCisco CCNA GRE Tunnel Configuration
Cisco CCNA GRE Tunnel Configuration
 

Similar to Consistent Updates in Software-De!ned Networks

Ccna 4 Chapter 7 V4.0 Answers
Ccna 4 Chapter 7 V4.0 AnswersCcna 4 Chapter 7 V4.0 Answers
Ccna 4 Chapter 7 V4.0 Answersccna4discovery
 
Tech Talk: ONOS- A Distributed SDN Network Operating System
Tech Talk: ONOS- A Distributed SDN Network Operating SystemTech Talk: ONOS- A Distributed SDN Network Operating System
Tech Talk: ONOS- A Distributed SDN Network Operating Systemnvirters
 
Mr201304 open flow_security_eng
Mr201304 open flow_security_engMr201304 open flow_security_eng
Mr201304 open flow_security_engFFRI, Inc.
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlowJoel W. King
 
Ccna icnd1-labs - exercices
Ccna icnd1-labs - exercicesCcna icnd1-labs - exercices
Ccna icnd1-labs - exercicessaqrjareh
 
Interconnecting cisco networking devices part-1
Interconnecting cisco networking devices part-1Interconnecting cisco networking devices part-1
Interconnecting cisco networking devices part-1DAVID RAUDALES
 
SDN Fundamentals - short presentation
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentationAzhar Khuwaja
 
Ccna icnd2-labs exercices
Ccna icnd2-labs exercicesCcna icnd2-labs exercices
Ccna icnd2-labs exercicessaqrjareh
 
Interconnecting cisco networking devices part-2
Interconnecting cisco networking devices part-2Interconnecting cisco networking devices part-2
Interconnecting cisco networking devices part-2DAVID RAUDALES
 
FlexVPNLabHandbook-SAMPLE
FlexVPNLabHandbook-SAMPLEFlexVPNLabHandbook-SAMPLE
FlexVPNLabHandbook-SAMPLETariq Sheikh
 
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
[AMD] Novel Use of Perforce for Software Auto-updates and File TransferPerforce
 
Cisco Network Proposal Part 1by Jesse HolmesSubmission d.docx
Cisco Network Proposal Part 1by Jesse HolmesSubmission d.docxCisco Network Proposal Part 1by Jesse HolmesSubmission d.docx
Cisco Network Proposal Part 1by Jesse HolmesSubmission d.docxclarebernice
 
Looking at SDN with DDS Glasses
Looking at SDN with DDS GlassesLooking at SDN with DDS Glasses
Looking at SDN with DDS GlassesAngelo Corsaro
 
Exercise 4c stp rapid pvst+ question
Exercise 4c   stp rapid pvst+ questionExercise 4c   stp rapid pvst+ question
Exercise 4c stp rapid pvst+ questionsufi1248
 
operating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS deviceoperating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS devicescooby_doo
 

Similar to Consistent Updates in Software-De!ned Networks (20)

Ccna 4 Chapter 7 V4.0 Answers
Ccna 4 Chapter 7 V4.0 AnswersCcna 4 Chapter 7 V4.0 Answers
Ccna 4 Chapter 7 V4.0 Answers
 
Tech Talk: ONOS- A Distributed SDN Network Operating System
Tech Talk: ONOS- A Distributed SDN Network Operating SystemTech Talk: ONOS- A Distributed SDN Network Operating System
Tech Talk: ONOS- A Distributed SDN Network Operating System
 
Mr201304 open flow_security_eng
Mr201304 open flow_security_engMr201304 open flow_security_eng
Mr201304 open flow_security_eng
 
Introduction to OpenFlow
Introduction to OpenFlowIntroduction to OpenFlow
Introduction to OpenFlow
 
OpenFlow
OpenFlowOpenFlow
OpenFlow
 
Ccna icnd1-labs - exercices
Ccna icnd1-labs - exercicesCcna icnd1-labs - exercices
Ccna icnd1-labs - exercices
 
Interconnecting cisco networking devices part-1
Interconnecting cisco networking devices part-1Interconnecting cisco networking devices part-1
Interconnecting cisco networking devices part-1
 
SDN Fundamentals - short presentation
SDN Fundamentals -  short presentationSDN Fundamentals -  short presentation
SDN Fundamentals - short presentation
 
Ccna icnd2-labs exercices
Ccna icnd2-labs exercicesCcna icnd2-labs exercices
Ccna icnd2-labs exercices
 
Interconnecting cisco networking devices part-2
Interconnecting cisco networking devices part-2Interconnecting cisco networking devices part-2
Interconnecting cisco networking devices part-2
 
Sgnog openflow demo-v1.0
Sgnog openflow demo-v1.0Sgnog openflow demo-v1.0
Sgnog openflow demo-v1.0
 
Router commands
Router commandsRouter commands
Router commands
 
FlexVPNLabHandbook-SAMPLE
FlexVPNLabHandbook-SAMPLEFlexVPNLabHandbook-SAMPLE
FlexVPNLabHandbook-SAMPLE
 
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
[AMD] Novel Use of Perforce for Software Auto-updates and File Transfer
 
PROYECTO VLANS
PROYECTO VLANSPROYECTO VLANS
PROYECTO VLANS
 
Cisco Network Proposal Part 1by Jesse HolmesSubmission d.docx
Cisco Network Proposal Part 1by Jesse HolmesSubmission d.docxCisco Network Proposal Part 1by Jesse HolmesSubmission d.docx
Cisco Network Proposal Part 1by Jesse HolmesSubmission d.docx
 
Looking at SDN with DDS Glasses
Looking at SDN with DDS GlassesLooking at SDN with DDS Glasses
Looking at SDN with DDS Glasses
 
Aruba OS 7.3 Command Line Interface Reference Guide
Aruba OS 7.3 Command Line Interface Reference GuideAruba OS 7.3 Command Line Interface Reference Guide
Aruba OS 7.3 Command Line Interface Reference Guide
 
Exercise 4c stp rapid pvst+ question
Exercise 4c   stp rapid pvst+ questionExercise 4c   stp rapid pvst+ question
Exercise 4c stp rapid pvst+ question
 
operating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS deviceoperating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS device
 

More from Open Networking Summits

CORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a DatacenterCORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a DatacenterOpen Networking Summits
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4Open Networking Summits
 
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...Open Networking Summits
 
Software Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile WorkplaceSoftware Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile WorkplaceOpen Networking Summits
 
Software Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal TechnologiesSoftware Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal TechnologiesOpen Networking Summits
 
Spreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use casesSpreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use casesOpen Networking Summits
 
Ranges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlowRanges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlowOpen Networking Summits
 
On the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDNOn the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDNOpen Networking Summits
 
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...Open Networking Summits
 
ESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDNESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDNOpen Networking Summits
 
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATIONSDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATIONOpen Networking Summits
 
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANsSoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANsOpen Networking Summits
 
RadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access NetworksRadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access NetworksOpen Networking Summits
 
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsEnabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsOpen Networking Summits
 

More from Open Networking Summits (20)

CORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a DatacenterCORD: Central Office Re-architected as a Datacenter
CORD: Central Office Re-architected as a Datacenter
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
 
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
OPNFV Webinar – No Time to Wait: Accelerating NFV Time to Market Through Open...
 
Learnings from Carrier SDN Deployments
Learnings from Carrier SDN DeploymentsLearnings from Carrier SDN Deployments
Learnings from Carrier SDN Deployments
 
Software Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile WorkplaceSoftware Defined Networking: Enabling The Mobile Workplace
Software Defined Networking: Enabling The Mobile Workplace
 
Application Driven SDN
Application Driven SDNApplication Driven SDN
Application Driven SDN
 
Software Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal TechnologiesSoftware Defined Networks Network Function Virtualization Pivotal Technologies
Software Defined Networks Network Function Virtualization Pivotal Technologies
 
NFV & SDN Customer Deployments
NFV & SDN Customer DeploymentsNFV & SDN Customer Deployments
NFV & SDN Customer Deployments
 
Automation of end-to-end QOS
Automation of end-to-end QOSAutomation of end-to-end QOS
Automation of end-to-end QOS
 
Building a Digital Telco
Building a Digital TelcoBuilding a Digital Telco
Building a Digital Telco
 
Spreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use casesSpreading NFV through the Network: the ETSI NFV use cases
Spreading NFV through the Network: the ETSI NFV use cases
 
BeHop : SDN for Dense WiFi Networks
BeHop : SDN for Dense WiFi NetworksBeHop : SDN for Dense WiFi Networks
BeHop : SDN for Dense WiFi Networks
 
Ranges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlowRanges & Cross-Entrance Consistency with OpenFlow
Ranges & Cross-Entrance Consistency with OpenFlow
 
On the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDNOn the Necessity of Time-based Updates in SDN
On the Necessity of Time-based Updates in SDN
 
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
Control Exchange Points: Providing QoS-en abled End-to-End Services via SDN-b...
 
ESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDNESPRES: Easy Scheduling and Prioritization for SDN
ESPRES: Easy Scheduling and Prioritization for SDN
 
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATIONSDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
SDN & OPTICAL FLOW STEERING FOR NETWORK FUNCTION VIRTUALIZATION
 
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANsSoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
SoftMoW: A Dynamic and Scalable Software Defined Architecture for Cellular WANs
 
RadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access NetworksRadioVisor - A Slicing Plane for Radio Access Networks
RadioVisor - A Slicing Plane for Radio Access Networks
 
Enabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing ProtocolsEnabling SDN in old school networks with Software-Controlled Routing Protocols
Enabling SDN in old school networks with Software-Controlled Routing Protocols
 

Recently uploaded

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Consistent Updates in Software-De!ned Networks

  • 1.
  • 2.
  • 3. Consistent Updates in Software-Defined Networks Nate Foster Mark Reitblatt Cole Schlesinger Jennifer Rexford David Walker
  • 4. Network Updates OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch Network Updates • Routine maintenance • Unexpected failures • Traffic engineering • Updated ACL
  • 5. Network Updates OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch Desired Invariants • No lost packets • No broken connections • No forwarding loops • No security holes Network Updates • Routine maintenance • Unexpected failures • Traffic engineering • Updated ACL
  • 6. At 12:47 AM PDT on April 21st, a network change was performed as part of our normal scaling activities... During the change, one of the steps is to shift traffic off of one of the redundant routers... The traffic shift was executed incorrectly and the traffic was routed onto the lower capacity redundant network. This led to a “re-mirroring storm”... During this re-mirroring storm, the volume of connection attempts was extremely high and nodes began to fail, resulting in more volumes left needing to re-mirror. This added more requests to the re-mirroring storm... The trigger for this event was a network configuration change.
  • 7. At 12:47 AM PDT on April 21st, a network change was performed as part of our normal scaling activities... During the change, one of the steps is to shift traffic off of one of the redundant routers... The traffic shift was executed incorrectly and the traffic was routed onto the lower capacity redundant network. This led to a “re-mirroring storm”... During this re-mirroring storm, the volume of connection attempts was extremely high and nodes began to fail, resulting in more volumes left needing to re-mirror. This added more requests to the re-mirroring storm... The trigger for this event was a network configuration change.
  • 19. Controller OpenFlow Switch OpenFlow Switch OpenFlow Switch Software Abstractions PL Abstractions By designing the right software abstractions, we can solve the network update problem once and for all!
  • 20. Controller OpenFlow Switch OpenFlow Switch OpenFlow Switch Software Abstractions PL Abstractions Discovery Monitoring Routing By designing the right software abstractions, we can solve the network update problem once and for all!
  • 21. OpenFlow Switch Example: Distributed Access Control Controller Application OpenFlow Switch OpenFlow Switch OpenFlow Switch F2 F3 Src Traffic Action Web Allow Non-web Drop Any Allow Security Policy F1 I Traffic
  • 22. OpenFlow Switch Example: Distributed Access Control Controller Application OpenFlow Switch OpenFlow Switch OpenFlow Switch F2 F3 Src Traffic Action Web Allow Non-web Drop Any Allow Security Policy Configuration A Process black-hat traffic on F1 Process white-hat traffic on {F2,F3} F1 I Traffic
  • 23. OpenFlow Switch Example: Distributed Access Control Controller Application OpenFlow Switch OpenFlow Switch OpenFlow Switch F2 F3 Src Traffic Action Web Allow Non-web Drop Any Allow Security Policy Configuration A Process black-hat traffic on F1 Process white-hat traffic on {F2,F3} F1 I Traffic
  • 24. OpenFlow Switch Example: Distributed Access Control Controller Application OpenFlow Switch OpenFlow Switch OpenFlow Switch F2 F3 Src Traffic Action Web Allow Non-web Drop Any Allow Security Policy Configuration A Process black-hat traffic on F1 Process white-hat traffic on {F2,F3} Configuration B Process black-hat traffic on {F1,F2} Process white-hat traffic on F3 ? F1 I Traffic
  • 25. Abstractions for Network Update Challenge •The network is a distributed system •Can only update one element at a time Our Approach •Provide programmers with constructs for updating the entire network at once •Design semantics to ensure “reasonable”behavior •Engineer efficient implementation mechanisms - Compiler constructs low-level update protocols - Automatically applies optimizations update(config,  topo) OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch
  • 26. Consistent Updates in Action #  Configuration  A I_configA  =  [Rule({IN_PORT:1},[forward(5)]),                          Rule({IN_PORT:2},[forward(5)]),                          Rule({IN_PORT:3},[forward(6)]),                          Rule({IN_PORT:4},[forward(7)])]) F1_configA  =  [Rule({TP_DST:80},  [forward(2)]),                            Rule({TP_DST:22},  [])]) F2_configA  =  [Rule({},[forward(2)])] F3_configA  =  [Rule({},[forward(2)])] configA  =  {I:SwitchConfiguration(I_configA),                      F1:SwitchConfiguration(F1_configA),                      F2:SwitchConfiguration(F2_configA),                      F3:SwitchConfiguration(F3_configA)} #  Configuration  B I_configB  =  [Rule({IN_PORT:1},[forward(5)]),                          Rule({IN_PORT:2},[forward(6)]),                          Rule({IN_PORT:3},[forward(7)]),                          Rule({IN_PORT:4},[forward(7)])]) F1_configB  =  [Rule({TP_DST:80},  [forward(2)]),                            Rule({TP_DST:22},  [])]) F2_configB  =  [Rule({TP_DST:80},  [forward(2)]),                            Rule({TP_DST:22},  [])]) F3_configB  =  [Rule({},[forward(2)])] configB  =  {I:SwitchConfiguration(I_configB),                      F1:SwitchConfiguration(F1_configB),                      F2:SwitchConfiguration(F2_configB),                      F3:SwitchConfiguration(F3_configB)} #  Main  Function topo  =  Topo(...) update(configA,  topo) ...wait  for  traffic  load  to  shift... update(configB,  topo) Src Traffic Action Web Allow Non-web Drop Any Allow Security Policy OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch
  • 27. Semantics of Network Updates OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch Atomic Updates • Seem sensible... • but costly to implement • and difficult to reason about effects on packets already in-flight
  • 28. Semantics of Network Updates OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch Atomic Updates • Seem sensible... • but costly to implement • and difficult to reason about effects on packets already in-flight Per-Packet Consistent Updates Every packet processed with old or new configuration, but not a mixture of the two
  • 29. Implementation Mechanisms OpenFlow Switch OpenFlow Switch OpenFlow Switch NOX Controller Frenetic Run-Time System Frenetic Application update(config,topo) Calculate rules, generate messsages Raw OpenFlow control messages Two-phase commit • Construct versioned internal and edge configurations • Phase 1: Install internal configuration • Phase 2: Install edge configuration Pure Extension • Update strictly adds paths Pure Retraction • Update strictly removes paths Slice Update • Update affects a small number of switches
  • 30. (Ask me for a demo!)
  • 31. (Ask me for a demo!) OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch
  • 32. (Ask me for a demo!) OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch
  • 34. Theorem An update u C1 to C2 is per-packet consistent if and only if it preserves all properties satisfied by C1 and C2. Formal Verification Global Config Packet Queue Update hC, Qi u ! hC0 , Q0 i
  • 35. Theorem An update u C1 to C2 is per-packet consistent if and only if it preserves all properties satisfied by C1 and C2. Formal Verification Global Config Packet Queue Update hC, Qi u ! hC0 , Q0 i Verified
  • 36. Formal Verification Corollary To verify that a property is invariant, simply check that the old and new configurations satisfy it OpenFlow Switch OpenFlow Switch OpenFlow Switch
  • 37. Formal Verification Corollary To verify that a property is invariant, simply check that the old and new configurations satisfy it OpenFlow Switch OpenFlow Switch OpenFlow Switch Kripke Structure
  • 38. Formal Verification Corollary To verify that a property is invariant, simply check that the old and new configurations satisfy it OpenFlow Switch OpenFlow Switch OpenFlow Switch Model Checker Kripke Structure CTL Property
  • 39. Formal Verification Corollary To verify that a property is invariant, simply check that the old and new configurations satisfy it OpenFlow Switch OpenFlow Switch OpenFlow Switch Model Checker ✓ Kripke Structure CTL Property ✘
  • 40. Formal Verification Corollary To verify that a property is invariant, simply check that the old and new configurations satisfy it OpenFlow Switch OpenFlow Switch OpenFlow Switch Model Checker ✓ Kripke Structure CTL Property Properties • Connectivity • Loop freedom • Blackhole freedom • Access control •Waypointing • Totality ✘
  • 41. Per-Flow Consistency Use Cases • Load balancer • Flow affinity • In-order delivery Per-flow consistent updates Every set of related packets processed with old or new configuration, but not a mixture of the two. Implementation mechanisms • Need to identify active flows • Rules with soft timeouts • DevoFlow wildcard cloning • End-host feedback OpenFlow Switch OpenFlow Switch
  • 42. Ongoing Work Other abstractions • Loop-freedom • Affinity preserving Update Synthesis • Programmer specifies an invariant • Compiler constructs an update protocol Enhanced fault tolerance • Rapid response when failures occur • Compiler“hardens”configurations • Pre-loads backup policy Leverage end hosts • Help identify active flows
  • 43. Thank You! Collaborators Shrutarshi Basu (Cornell) Mike Freedman (Princeton) Rob Harrison (West Point) Chris Monsanto (Princeton) Mark Reitblatt (Cornell) Gün Sirer (Cornell) Cole Schlesinger (Princeton) Alec Story (Cornell) Jen Rexford (Princeton) Dave Walker (Princeton) Funding http://frenetic-lang.org