reclaiming the brain useful openflow functions in the
play

Reclaiming the Brain: Useful OpenFlow Functions in the Data Plane - PowerPoint PPT Presentation

Reclaiming the Brain: Useful OpenFlow Functions in the Data Plane Liron Schiff (Tel Aviv Uni, Israel) Michael Borokhovich (UT Austin, United States) Stefan Schmid (TU Berlin & T-Labs, Germany) 1 My Talk in One Slide Separation of the


  1. Reclaiming the Brain: Useful OpenFlow Functions in the Data Plane Liron Schiff (Tel Aviv Uni, Israel) Michael Borokhovich (UT Austin, United States) Stefan Schmid (TU Berlin & T-Labs, Germany) 1

  2. My Talk in One Slide Separation of the planes enables: simplified network management and operation faster innovation ctrl plane N S data plane 2

  3. My Talk in One Slide Separation of the planes enables: simplified network management and operation faster innovation ctrl plane However: N controller may miss certain data plane events indirection => latency S data plane 2

  4. My Talk in One Slide Separation of the planes enables: simplified network management and operation faster innovation ctrl plane However: N controller may miss certain data plane events indirection => latency S What functionality should be kept in data plane? — A big question! data plane 2

  5. My Talk in One Slide Separation of the planes enables: simplified network management and operation faster innovation ctrl plane However: N controller may miss certain data plane events indirection => latency S What functionality should be kept in data plane? — A big question! In this talk: example of functions data plane that can be kept in the data plane. 2

  6. SDN and OpenFlow Controller OpenFlow Actions Match OpenFlow - - - - - - Set VLAN = 11 IP.src=10.0.*.* - - Forward port 3 … … Drop TCP.port = 23 IP.dst=192.*.*.* Send Controller and VLAN=13 … … 3

  7. OpenFlow in a Nutshell Switch pipeline Table 2 Table 1 Table n Packet Packet - - - - - - Out In - - - - - - - - - - - - … … … … … … Basic Actions Set a field Append a label Forward to a port/controller/flood Goto Table x 4

  8. OpenFlow in a Nutshell Switch pipeline Table 2 Table 1 Table n Packet Packet - - - - - - Out In - - - - - - - - - - - - … … … … … … Basic Actions Set a field Append a label Forward to a port/controller/flood Goto Table x Failover Group Action1 Port-1 Advanced/optional Actions Table 1 Link state based Action2 Port-2 Gr1 - Round-robin selection - - … … Gr2 - Action-k Port-k … … 4

  9. OpenFlow in a Nutshell Switch pipeline Table 2 Table 1 Table n Packet Packet - - - - - - Out In - - - - - - - - - - - - … … … … … … Basic Actions Set a field Append a label Forward to a port/controller/flood Goto Table x Failover Group Round Robin Group Action1 Port-1 Advanced/optional Actions Table 1 Link state based Action1 Action2 Port-2 Gr1 - Round-robin selection - - … … Action2 Gr2 - Action-k Port-k … … … Action-k 4

  10. Fast Failover - Adding Brains to the South Proactive reaction to link failures Failover Group Port 1 Fwd ctrl plane N Port 3 Fwd … … Action-k Port-k S 1 3 data plane 5

  11. Fast Failover - Adding Brains to the South Proactive reaction to link failures Failover Group Port 1 Fwd ctrl plane N Port 3 Fwd … … Action-k Port-k S 1 3 data plane 5

  12. Fast Failover - Adding Brains to the South Proactive reaction to link failures Failover Group Port 1 Fwd ctrl plane N Port 3 Fwd … … Action-k Port-k S Non-trivial to use 1 May quickly introduce loops May introduce high load 3 Much better with Tags data plane Tag 5

  13. Fast Failover - Adding Brains to the South Proactive reaction to link failures Failover Group Port 1 Fwd ctrl plane N Port 3 Fwd … … Action-k Port-k S Non-trivial to use 1 May quickly introduce loops May introduce high load 3 Much better with Tags data plane Tag 5

  14. Fast Failover - Adding Brains to the South Proactive reaction to link failures Failover Group Port 1 Fwd ctrl plane N Port 3 Fwd … … Action-k Port-k S Non-trivial to use 1 May quickly introduce loops May introduce high load 3 Much better with Tags data plane Tag 5

  15. Functions in the South Reduce interactions with the control plane Make data plane more robust Monitoring functions: Topology snapshot Blackhole detection N Critical node detection S Communication functions: Anycast 6

  16. How it is possible? SmartSouth template. SmartSouth — in-band graph DFS traversal State of each node stored in the packet: parent current neighbor the node traverses Implemented using a simple match-action paradigm Uses Fast Failover technique. … payload par, cur par, cur par, cur 7

  17. How it is possible? SmartSouth template. Pseudocode —> Match&Action tables Algorithm 1 Algorithm SmartSouth – Template Input: current node: v i , input port: in , packet global params: pkt.start , packet tag array: { pkt.v j } j ∈ [ n ] Output: output port: out 1: if pkt.start = 0 then 2: pkt.start ← 1 3: out ← 1 4: else 5: if pkt.v i .cur = 0 then 6: pkt.v i .par ← in ; out ← 1; First visit () 7: else if in = pkt.v i .cur then 8: out ← pkt.v i .cur + 1; V isit from cur () 9: else 10: out ← in ; V isit not from cur () 11: goto 26 12: if out = ∆ i + 1 then 13: out ← pkt.v i .par 14: goto 22 15: while out failed or out = pkt.v i .par do 16: out ← out + 1 17: if out = ∆ i + 1 then 18: out ← pkt.v i .par 19: goto 22 20: Send next neighbor () 21: goto 23 22: Send parent () … 23: pkt.v i .cur ← out payload par, cur par, cur par, cur 24: if out = 0 then 25: Finish () 26: return out 8

  18. How it is possible? SmartSouth template. Pseudocode —> Match&Action tables Flow Table B Match if pkt.v i .cur = 0 then Instructions in pkt.v i .cur pkt.v i .par ∆ i � 1 ∆ i � 1 Table C ∆ i pkt.v i .par ← in ; out ← 1; Fi ⇤ 0 ⇤ pkt.v i .par in , Table 1 else if in = pkt.v i .cur then 1 1 ⇤ Table 2 2 2 ⇤ Table 3 out ← pkt.v i .cur + 1; V isit 3 3 ⇤ Table 4 else . . . . . . . . . . . . … payload par, cur par, cur par, cur 9

  19. How it is possible? SmartSouth template. Pseudocode —> Match&Action tables Flow Table B Match if pkt.v i .cur = 0 then Instructions in pkt.v i .cur pkt.v i .par ∆ i � 1 ∆ i � 1 Table C ∆ i pkt.v i .par ← in ; out ← 1; Fi ⇤ 0 ⇤ pkt.v i .par in , Table 1 else if in = pkt.v i .cur then 1 1 ⇤ Table 2 2 2 ⇤ Table 3 out ← pkt.v i .cur + 1; V isit 3 3 ⇤ Table 4 else . . . . . . . . . . . . Flow Table 2 Flow Table 1 15: while out failed Match Match Instructions Instructions … sb sb 16: out ← out + 1 0 Gr 1, Table 2 0 Gr 2, Table 3 1 Drop 1 Drop Group Actions h i Gr 0.1 Gr 1 h sb 1 , Fwd Route (1) i h sb 1 , pkt.v i .cur 1 , pkt.start 1 , Fwd 1 i Gr 2 h sb 1 , pkt.v i .cur 2 , pkt.start 1 , Fwd 2 i . . . . . . port 1 … payload par, cur par, cur par, cur port 2 9

  20. Functions in the South: Topology Snapshot Fault tolerant No connectivity assumption Requires a single connection to controller Unlike built-in “Topology service” in OpenFlow N t o h s p a n S s a e m e v i g 10

  21. Functions in the South: Topology Snapshot Fault tolerant No connectivity assumption Requires a single connection to controller Unlike built-in “Topology service” in OpenFlow N t o h s p a n During the DFS traversal, topology S s information is written to the packet a e header m e v i g … snapshot data par, next par, next par, next 10

  22. Functions in the South: Blackhole Detection Detects connectivity loss regardless of the cause physical failure configuration errors unsupervised carrier network errors N ? e l o h k c a S l b a e r e h t s I 11

  23. Functions in the South: Blackhole Detection Detects connectivity loss regardless of the cause physical failure configuration errors unsupervised carrier network errors Two possible implementations: N ? e l o h k c a S l b a e r e h t s I 11

  24. Functions in the South: Blackhole Detection Detects connectivity loss regardless of the cause physical failure configuration errors unsupervised carrier network errors Two possible implementations: N ? e DFS traversal with TTL l o (log n) DFS traversals (binary search) h k c a S l b a DFS failed e r e h t s DFS failed I Blackhole found … TTL par, next par, next par, next 11

  25. Functions in the South: Blackhole Detection Smart “In-band” Counters General counters - access only by controller Our counters: access during packet processing N counter value can be written to packet or ? metadata e l o implemented using Round-Robin action group h k c a S l b Round Robin Group a e Action1 r e Table 2 Table 1 h t Action2 1 - - - s I 2 - - - … … … - - K Action-k . … … 12

  26. Functions in the South: Blackhole Detection Blackhole detection with SmartCounters Install SmartCounter for each port Only two DFS traversals required: First - back&forth on each link N ? 3 e 3 l o h k c a S l b a e 1 0 r e h t s I 13

  27. Functions in the South: Blackhole Detection Blackhole detection with SmartCounters Install SmartCounter for each port Only two DFS traversals required: First - back&forth on each link N ? 3 e 3 l o h k c a S l b a e 1 0 r e h t s I 3 3 3 Second - find port with counter value 1 3 3 3 1 13

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend