incremental update for a compositional sdn hypervisor xin jin jennifer rexford, david walker
TRANSCRIPT
![Page 1: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/1.jpg)
Incremental Update for a Compositional SDN Hypervisor
Xin JinJennifer Rexford, David Walker
![Page 2: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/2.jpg)
2
• Centralized control with open APIs
Software-Defined Networking
Network
Controller
Application
OpenFlow
![Page 3: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/3.jpg)
3
• Hard to develop and maintain a monolithic application
Multiple Management Tasks
Network
Controller
Load Balancing + Routing + Monitoring
OpenFlow
![Page 4: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/4.jpg)
4
• Frenetic: composition operators to combine multiple applications
• Limitation: need to adopt Frenetic language and runtime system
Modular SDN Applications
Network
Frenetic Controller
Routing MonitoringLoad Balancing
OpenFlow
![Page 5: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/5.jpg)
5
Frenetic is Not Enough
• “Best of breed” applications are developed by different parties– Use different programming languages– Run on different controllers
Monitoring
FloodlightPOX
Load Balancing Routing
Ryu
Network
Administrator
![Page 6: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/6.jpg)
6
Slicing is Not Enough
• Controllers work on disjoint parts of traffic– Useful for multi-tenancy
• But we want them to collaboratively work on the same traffic
Network
Monitoring
FloodlightPOX
Load Balancing Routing
Ryu
Administrator
![Page 7: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/7.jpg)
7
• A transparent layer between switches and controllers• Combine controllers with Frenetic-like composition operators
– Parallel operator (+)– Sequential operator (>>)
Our Solution: Compositional Hypervisor
Monitoring
FloodlightOpenFlow
POX
Load Balancing
OpenFlow
Routing
RyuOpenFlow
Network
OpenFlow
Compositional Hypervisor
![Page 8: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/8.jpg)
8
Policy Compilation
• Policy: a list of rules• Each controller outputs a policy• Hypervisor compiles them to a single policy
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)0. * drop
Routing
Priority Match Action
![Page 9: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/9.jpg)
9
Policy Compilation
• Policy: a list of rules• Each controller outputs a policy• Hypervisor compiles them to a single policy
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)0. * drop
Routing
?. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)
![Page 10: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/10.jpg)
10
Policy Compilation
• Policy: a list of rules• Each controller outputs a policy• Hypervisor compiles them to a single policy
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)0. * drop
Routing
?. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)?. srcip=1.0.0.0/24 count?. dstip=2.0.0.0/30 fwd(1)?. * drop
![Page 11: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/11.jpg)
11
Key challenge: Efficient data plane update
• Controllers continuously update their policies• Hypervisor recompiles them and update switches
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)3. dstip=2.0.0.0/26 fwd(2)0. * drop
Routing
?. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)?. srcip=1.0.0.0/24 count?. dstip=2.0.0.0/30 fwd(1)?. * drop
![Page 12: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/12.jpg)
12
Key challenge: Efficient data plane update
• Computation overhead– The computation to recompile the new policy
• Rule-update overhead– The rule-updates to update switches to the new policy
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)3. dstip=2.0.0.0/26 fwd(2)0. * drop
Routing
?. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)?. srcip=1.0.0.0/24 count?. dstip=2.0.0.0/30 fwd(1)?. * drop
![Page 13: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/13.jpg)
13
Naïve Solution
• Assign priorities from top to bottom by decrement of 1
3. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)2. srcip=1.0.0.0/24 count1. dstip=2.0.0.0/30 fwd(1)0. * drop
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)0. * drop
Routing
![Page 14: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/14.jpg)
14
Naïve Solution
• Assign priorities from top to bottom by decrement of 1
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)3. dstip=2.0.0.0/26 fwd(2)0. * drop
Routing
5. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)4. srcip=1.0.0.0/24, dstip=2.0.0.0/26 count, fwd(2)3. srcip=1.0.0.0/24 count2. dstip=2.0.0.0/30 fwd(1)1. dstip=2.0.0.0/26 fwd(2)0. * drop
![Page 15: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/15.jpg)
15
Naïve Solution
• Assign priorities from top to bottom by decrement of 1
Update
3. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)2. srcip=1.0.0.0/24 count1. dstip=2.0.0.0/30 fwd(1)0. * drop
5. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)4. srcip=1.0.0.0/24, dstip=2.0.0.0/26 count, fwd(2)3. srcip=1.0.0.0/24 count2. dstip=2.0.0.0/30 fwd(1)1. dstip=2.0.0.0/26 fwd(2)0. * drop
Computation overhead• Recompute the whole switch
table and assign priorities
Rule-update overhead• Only 2 new rules, but 3 more
rules change priority
![Page 16: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/16.jpg)
16
Incremental Update
• Add priorities for parallel composition
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)0. * drop
Routing
9+7 = 16. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)
![Page 17: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/17.jpg)
17
Incremental Update
• Add priorities for parallel composition
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)0. * drop
Routing
9+7=16. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)9+0=9. srcip=1.0.0.0/24 count0+7=7. dstip=2.0.0.0/30 fwd(1)0+0=0. * drop
![Page 18: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/18.jpg)
18
Incremental Update
• Add priorities for parallel composition
9. srcip=1.0.0.0/24 count0. * drop
Monitoring
7. dstip=2.0.0.0/30 fwd(1)3. dstip=2.0.0.0/26 fwd(2)0. * drop
Routing
9+7=16. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)9+3=12. srcip=1.0.0.0/24, dstip=2.0.0.0/26 count, fwd(1)9+0=9. srcip=1.0.0.0/24 count0+7=7. dstip=2.0.0.0/30 fwd(1)0+3=3. dstip=2.0.0.0/26 fwd(1)0+0=0. * drop
![Page 19: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/19.jpg)
19
Incremental Update
• Add priorities for parallel composition
Update
16. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)12. srcip=1.0.0.0/24, dstip=2.0.0.0/26 count, fwd(2)9. srcip=1.0.0.0/24 count7. dstip=2.0.0.0/30 fwd(1)3. dstip=2.0.0.0/26 fwd(2)0. * drop
16. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)9. srcip=1.0.0.0/24 count7. dstip=2.0.0.0/30 fwd(1)0. * drop
Computation overhead• Only compose the new rule
with rules in monitoring
Rule-update overhead• Add 2 new rules
![Page 20: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/20.jpg)
20
Incremental Update
• Add priorities for parallel composition• Concatenate priorities for sequential composition
3. srcip=0.0.0.0/2, dstip=3.0.0.0 dstip=2.0.0.11. dstip=3.0.0.0 dstip=2.0.0.20. * drop
Load Balancing Routing
1. dstip=2.0.0.1 fwd(1)1. dstip=2.0.0.2 fwd(2)0. * drop
. srcip=0.0.0.0/2, dstip=3.0.0.0 dstip=2.0.0.1, fwd(1)
.
.
3 >> 1 = 25,011 001HighBits
LowBits
![Page 21: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/21.jpg)
21
Incremental Update
• Add priorities for parallel composition• Concatenate priorities for sequential composition
3. srcip=0.0.0.0/2, dstip=3.0.0.0 dstip=2.0.0.11. dstip=3.0.0.0 dstip=2.0.0.20. * drop
Load Balancing Routing
1. dstip=2.0.0.1 fwd(1)1. dstip=2.0.0.2 fwd(2)0. * drop
25. srcip=0.0.0.0/2, dstip=3.0.0.0 dstip=2.0.0.1, fwd(1)9. dstip=3.0.0.0 dstip=2.0.0.2, fwd(2)0. * drop
![Page 22: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/22.jpg)
23
Evaluation
Monitoring + Routing Load balancing >> Routing
Naive Incremental Naive Incremental
![Page 23: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/23.jpg)
24
Evaluation
Monitoring + Routing Load balancing >> Routing
Reduce computation overhead by 4x, rule updates by 5x
Naive Incremental Naive Incremental
![Page 24: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/24.jpg)
25
Conclusion
• Compositional network hypervisor
• Novel algorithm to efficiently update the data plane
• Ongoing work: prototype in OpenVirteX
![Page 25: Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker](https://reader034.vdocument.in/reader034/viewer/2022051819/551c4dd15503467b488b511e/html5/thumbnails/25.jpg)
26
Thanks!