
Minimizing Rule Update Latency for TCAM-based SDN Switches
"Explore RuleTris, an approach aimed at minimizing rule update latency for TCAM-based SDN switches. Discover the motivation, motivating examples, key insights, challenges, and architecture involved in this innovative solution."
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
RuleTris: Minimizing Rule Update Latency for TCAM-based SDN Switches
Motivation Motivation Controller App App App Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Controller API 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 Flow Tables Controller / Policy Compiler Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Flow Table Updates 5 4 3 2 1 OpenFlow Switch Firmware Switch Internal API TCAM Updates TCAM Sw itch
Motivating Example Motivating Example Predicate Predicate Prio 00* 0*0 20 17 00* **0 0*1 **1 *** 1: 1: 0*0 6: 6: 2: **0 0*1 **1 *** 15 15 10 5 2: 3: 3: 4: 4: 5: 5:
Motivating Motivating Example (cont.) Example (cont.) Predicate Dependency Predicate 00* 0*0 1: 1 00* **0 0*1 **1 *** 1: 0*0 6: 6: 6 2: 0*1 **1 **0 *** 3 3: 3: 4: 4 4: 2: 2 5: 5 5:
Key Insight Key Insight Controller App App App Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Controller API 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 Flow Tables Controller / Policy Compiler Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Flow Table Updates 5 4 3 2 1 OpenFlow Switch Firmware Switch Internal API TCAM Updates TCAM Sw itch
Challenges Challenges
RuleTris RuleTris Architecture Architecture (Proactive) Front-end Back-end NAT Physical Flow Table + CacheFlow Manager Flow Table Dependency Graph Composition Compiler Monitor Update Scheduler + (Reactive) > $ Firewall + Redundancy Eliminator L3 Router Rule Update Dependency Update in controller in switch firmware
Front Front- -end end Controller App App App Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Controller API 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 Flow Tables Controller / Policy Compiler Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Flow Table Updates 5 4 3 2 1 OpenFlow Switch Firmware Switch Internal API TCAM Updates TCAM Sw itch
A A Bit More Background Bit More Background
Background: Flow Table Composition Background: Flow Table Composition
Background: Composition Compiler Background: Composition Compiler without DAG without DAG Router Monitor 7. dstip=2.0.0.0/30 fwd(1) 0. * drop 9. srcip=1.0.0.0/24 count 0. * drop Action Priority Match
Background: Composition Compiler Background: Composition Compiler without DAG without DAG Router Monitor 7. dstip=2.0.0.0/30 fwd(1) 0. * drop 9. srcip=1.0.0.0/24 count 0. * drop 16. srcip=1.0.0.0/24, dstip=2.0.0.0/30 count, fwd(1)
Background: Composition Compiler Background: Composition Compiler without DAG without DAG Router Monitor 7. dstip=2.0.0.0/30 fwd(1) 0. * drop 9. srcip=1.0.0.0/24 count 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 count 7. dstip=2.0.0.0/30 fwd(1) 0. * drop
RuleTris RuleTris Composition Compiler Composition Compiler
DAG Preservation for Parallel DAG Preservation for Parallel Composition Composition field2 field2 field2 A AM N M D DM C CM = M + D BN N AN B C B A field1 BM field1 field1 T1 T2 T3 D T3: DM DN BN DM T1: B C A += BM CM BN CN AN BM CM AM AN T2: M N AM
DAG Preservation for Parallel DAG Preservation for Parallel Composition (cont d) Composition (cont d) field2 field2 field2 A M AM D DN/DM/BN C N CN/CM/AN = + D N B C B M A BM field1 field1 field1 T1 T2 T3 D DN T3: DM DN T1: B C BN DM A += BM CM BN CN CN BM AN CM AM AN T2: M N AM
DAG Preservation for DAG Preservation for Sequential Composition Composition A B T1: Sequential idx Predicate Actions dst_port = 80 dst_port = 443 dst_ip = 1.0.0.0 src_ip = 2.0.0.0 * Drop C W X src_ip=2.*.*.*, dst_ip = 1.*.*.* src_ip=2.*.*.* Fwd(1) Fwd(2) T2: Y dst_ip = 1.*.*.* Fwd(3) * Drop Z AW src_ip=2.*.*.*, dst_port = 80 dst_ip = 1.0.0.0, Fwd(1) dst_port = 80 dst_ip = 1.0.0.0, Fwd(3) AY T3: BW dst_ip = 1.*.*.*, dst_port = 443 src_ip = 2.0.0.0, Fwd(1) dst_port = 443 src_ip = 2.0.0.0, Fwd(2) BX * Drop CZ AW BW A B T3: AW BW T1: BX BY AX AY C > = AZ AY BX BZ CW W T2: CZ X Y CX CY Z CZ
Optimality Guarantee Optimality Guarantee
Back Back- -end end Controller App App App Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Controller API 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 Flow Tables Controller / Policy Compiler Predicate Action Priority b1 as1 b2 as2 b3 as3 b4 as4 id as5 Flow Table Updates 5 4 3 2 1 OpenFlow Switch Firmware Switch Internal API TCAM Updates TCAM Sw itch
Update Update Scheduler Scheduler
Implementation Implementation
Evaluation Results Evaluation Results
Evaluation Results II Evaluation Results II
Conclusions Conclusions