Fast Reroute in P4: Keep Calm and Enjoy Programmability

Slides:



Advertisements
Similar presentations
Nanxi Kang Princeton University
Advertisements

Fast Firewall Implementation for Software and Hardware-based Routers Lili Qiu, Microsoft Research George Varghese, UCSD Subhash Suri, UCSB 9 th International.
Fundamentals of Computer Networks ECE 478/578 Lecture #13: Packet Switching (2) Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
PortLand: A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric. Presented by: Vinuthna Nalluri Shiva Srivastava.
Flowspace revisited OpenFlow Basics Flow Table Entries Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot L4 sport L4 dport Rule Action.
Mobile and Wireless Computing Institute for Computer Science, University of Freiburg Western Australian Interactive Virtual Environments Centre (IVEC)
1 Switching and Forwarding Bridges and Extended LANs.
1 A Tree Based Router Search Engine Architecture With Single Port Memories Author: Baboescu, F.Baboescu, F. Tullsen, D.M. Rosu, G. Singh, S. Tullsen, D.M.Rosu,
A General approach to MPLS Path Protection using Segments Ashish Gupta Ashish Gupta.
Or, Providing Scalable, Decentralized Location and Routing Network Services Tapestry: Fault-tolerant Wide-area Application Infrastructure Motivation and.
A General approach to MPLS Path Protection using Segments Ashish Gupta Ashish Gupta.
Chapter 9 Classification And Forwarding. Outline.
Introduction to Computer Networks 09/23 Presenter: Fatemah Panahi.
Performance and Power Efficient On-Chip Communication Using Adaptive Virtual Point-to-Point Connections M. Modarressi, H. Sarbazi-Azad, and A. Tavakkol.
Workshop on Software Defined Networks Spring 2014.
1 Efficient packet classification using TCAMs Authors: Derek Pao, Yiu Keung Li and Peng Zhou Publisher: Computer Networks 2006 Present: Chen-Yu Lin Date:
Russ White IP Fast reroute Russ White
ECE 526 – Network Processing Systems Design Network Processor Architecture and Scalability Chapter 13,14: D. E. Comer.
Profiles and Multi-Topology Routing in Highly Heterogeneous Ad Hoc Networks Audun Fosselie Hansen Tarik Cicic Paal Engelstad Audun Fosselie Hansen – Poster,
ORange: Multi Field OpenFlow based Range Classifier Liron Schiff Tel Aviv University Yehuda Afek Tel Aviv University Anat Bremler-Barr Inter Disciplinary.
Palette: Distributing Tables in Software-Defined Networks Yossi Kanizo (Technion, Israel) Joint work with Isaac Keslassy (Technion, Israel) and David Hay.
Hierarchies Ethernet Switches Must be Arranged in a Hierarchy –Root is the top-level Ethernet Switch Root.
StrideBV: Single chip 400G+ packet classification Author: Thilan Ganegedara, Viktor K. Prasanna Publisher: HPSR 2012 Presenter: Chun-Sheng Hsueh Date:
Fast recovery in IP networks using Multiple Routing Configurations Amund Kvalbein Simula Research Laboratory.
P. Bosshart, D. Daly, G. Gibb, M. Izzard, N. McKeown, J. Rexford, C. Schlesinger, D. Talayco, A. Vahdat, G. Varghese, D. Walker SIGCOMM CCR, 2014 Presented.
Shadow MACs: Scalable Label- switching for Commodity Ethernet Author: Kanak Agarwal, John Carter, Eric Rozner and Colin Dixon Publisher: HotSDN 2014 Presenter:
Updating Designed for Fast IP Lookup Author : Natasa Maksic, Zoran Chicha and Aleksandra Smiljani´c Conference: IEEE High Performance Switching and Routing.
Describe basic routing concepts. Routers Interconnect Networks Router is responsible for forwarding packets from network to network, from the original.
5: DataLink Layer 5a-1 Bridges and spanning tree protocol Reference: Mainly Peterson-Davie.
Packet Classification Using Multidimensional Cutting Sumeet Singh (UCSD) Florin Baboescu (UCSD) George Varghese (UCSD) Jia Wang (AT&T Labs-Research) Reviewed.
Lecture 17: Dynamic Reconfiguration I November 10, 2004 ECE 697F Reconfigurable Computing Lecture 17 Dynamic Reconfiguration I Acknowledgement: Andre DeHon.
BUFFALO: Bloom Filter Forwarding Architecture for Large Organizations Minlan Yu Princeton University Joint work with Alex Fabrikant,
RuleTris: Minimizing Rule Update Latency for TCAM-based SDN Switches Xitao Wen*, Bo Yang #, Yan Chen*, Li Erran Li $, Kai Bu #, Peng Zheng &, Yang Yang*,
P4: Programming Protocol-Independent Packet Processors
SDN and Security Security as a service in the cloud
SDN Network Updates Minimum updates within a single switch
EE384Y: Packet Switch Architectures Scaling Crossbar Switches
Exams hints The exam will cover the same topics covered in homework. If there was no homework problem on the topic, then there will not be any exam question.
Data Center Network Architectures
Ch 13 WAN Technologies and Routing
Advanced Computer Networks
IP Routers – internal view
April 28, 2017 SUMIT MAHESHWARI INES UGALDE
Implementation of GPU based CCN Router
Switching and Forwarding Bridges and Extended LANs
NTHU CS5421 Cloud Computing
18-WAN Technologies and Dynamic routing
Intra-Domain Routing Jacob Strauss September 14, 2006.
CS 31006: Computer Networks – The Routers
2018/11/19 Source Routing with Protocol-oblivious Forwarding to Enable Efficient e-Health Data Transfer Author: Shengru Li, Daoyun Hu, Wenjian Fang and.
Yotam Harchol The Hebrew University of Jerusalem, Israel
Implementing an OpenFlow Switch on the NetFPGA platform
EE 122: Lecture 7 Ion Stoica September 18, 2001.
Programmable Switches
Wide Area Networks (WANs), Routing, and Shortest Paths
Project proposal: Questions to answer
Wide Area Networks (WANs), Routing, and Shortest Paths
Bridges and Link Layer Switches
Yotam Harchol The Hebrew University of Jerusalem, Israel
Bridges Neil Tang 10/10/2008 CS440 Computer Networks.
Taurus: An Intelligent Data Plane
COMPUTER NETWORKS CS610 Lecture-16 Hammad Khalid Khan.
Author: Xianghui Hu, Xinan Tang, Bei Hua Lecturer: Bo Xu
Achieving Resilient Routing in the Internet
Design principles for packet parsers
Toward Self-Driving Networks
Toward Self-Driving Networks
A SRAM-based Architecture for Trie-based IP Lookup Using FPGA
Authors: Ding-Yuan Lee, Ching-Che Wang, An-Yeu Wu Publisher: 2019 VLSI
Elmo Muhammad Shahbaz Lalith Suresh, Jennifer Rexford, Nick Feamster,
Presentation transcript:

Fast Reroute in P4: Keep Calm and Enjoy Programmability Marco Chiesa KTH Royal Institute of Technology Joint project with: Roshan Sedar Michael Borokhovich Gianni Antichi Stefan Schmid Image credits: The Noun Project: Switch By Opher Aloni, Detour 2 By Pierre-Luc Auclair, CA, Right arrow By heri sugianto, ID, Fast clock By Piero Borgo, IT, Small table By IconMark, PH, Brain By Symbolon, IT Right arrow 2 By Roy, NL, Redo By Bluetip Design, US

Fast Reroute (FRR) What is FRR? forwarding rules conditional on port status e.g., IP Loop-Free Alternates primary paths D

Fast Reroute (FRR) What is FRR? forwarding rules conditional on port status e.g., IP Loop-Free Alternates Pros: reduce network downtime ( 50ms) no need to invoke control-plane Cons: increase forwarding space occupancy proactively stores backup forwarding rules 2nd backup out port backup out port S ≤ primary out port D

How do we implement FRR in P4? FRR entails solving two orthogonal problems: computing network-wide conditional rules supporting conditional forwarding in each switch P4 switch match/actions 1 tcp-port = 179 >> FRR1 tcp-port = 179 >> FRR1 2 tcp-port = 22 >> FRR2 tcp-port = 22 >> FRR2 header/metadata FRR actions parser deparser FRR1 >> fwd 1 2 3 FRR1 >> fwd 1 2 3 controller FRR2 >> fwd 2 3 1 FRR2 >> fwd 2 3 1 packet pipeline

How do we implement FRR in P4? Supporting conditional forwarding in a P4 switch FRR entails solving two orthogonal problems: computing network-wide conditional rules supporting conditional forwarding in each switch Input Output P4 switch match/actions 1 tcp-port = 179 >> FRR1 2 tcp-port = 22 >> FRR2 header/metadata parser deparser packet pipeline FRR1 >> fwd 1 2 3 FRR2 >> fwd 2 3 1 FRR actions FRR1 >> fwd 1 2 3 FRR2 >> fwd 2 3 1 No P4 built-in FRR primitive but… a programmable pipeline: many approaches are possible! controller

1st approach: recirculation match out action fwd write & recirculate 1 out := 2 2 out := 3 3 out := 4 4 out := 1 Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 port 2 fails port 3 fails a set of circular FRR actions throughput reduction

1st requirement for FRR primitive high throughput

Second approach: sequential search Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action FRR = 1 fwd(1) match action FRR = 1 fwd(2) match action FRR = 1 fwd(3) match action FRR = 1 fwd(4)

Second approach: sequential search Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action FRR = 1 fwd(1) FRR = 2 fwd(2) match action FRR = 1 fwd(2) FRR = 2 fwd(3) match action FRR = 1 fwd(3) FRR = 2 fwd(4) match action FRR = 1 fwd(4) FRR = 2 fwd(1)

Second approach: sequential search Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action FRR = 1 fwd(1) FRR = 2 fwd(2) FRR = 3 fwd(3) match action FRR = 1 fwd(2) FRR = 2 fwd(3) FRR = 3 fwd(4) match action FRR = 1 fwd(3) FRR = 2 fwd(4) FRR = 3 fwd(1) match action FRR = 1 fwd(4) FRR = 2 fwd(1) FRR = 3 fwd(2)

Second approach: sequential search Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action FRR = 1 fwd(1) FRR = 2 fwd(2) FRR = 3 fwd(3) FRR = 4 fwd(4) match action FRR = 1 fwd(2) FRR = 2 fwd(3) FRR = 3 fwd(4) FRR = 4 fwd(1) match action FRR = 1 fwd(3) FRR = 2 fwd(4) FRR = 3 fwd(1) FRR = 4 fwd(2) match action FRR = 1 fwd(4) FRR = 2 fwd(1) FRR = 3 fwd(2) FRR = 4 fwd(3)

Second approach: sequential search Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action FRR = 1 fwd(1) FRR = 2 fwd(2) FRR = 3 fwd(3) FRR = 4 fwd(4) match action FRR = 1 fwd(2) FRR = 2 fwd(3) FRR = 3 fwd(4) FRR = 4 fwd(1) match action FRR = 1 fwd(3) FRR = 2 fwd(4) FRR = 3 fwd(1) FRR = 4 fwd(2) match action FRR = 1 fwd(4) FRR = 2 fwd(1) FRR = 3 fwd(2) FRR = 4 fwd(3) port 2 fails increased latency waste of resources at each stage port 3 fails

2nd requirements for FRR primitive high throughput low forwarding latency

Parallelism needed! Naïve TCAM approach Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action FRR port status fwd FRR = 2 * 1 * * 2 * * 1 * 3 * * * 1 4 1 * * * 1 packet metadata FRR = 2 port 1 is active port 2 is active port status 1 1 1 1 port status 1 1 1 1 P4 register

Parallelism needed! Naïve TCAM approach Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 port 2 fails match action FRR port status fwd FRR = 2 * 1 * * 2 * * 1 * 3 * * * 1 4 1 * * * 1 packet metadata FRR = 2 port status 1 0 1 1 port status 1 0 1 1 P4 register

Parallelism needed! Naïve TCAM approach Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 ports 2 and 3 fail match action FRR port status fwd FRR = 2 * 1 * * 2 * * 1 * 3 * * * 1 4 1 * * * 1 packet metadata FRR = 2 port status 1 0 0 1 port status 1 0 0 1 P4 register

Parallelism needed! Naïve TCAM approach Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action FRR port status fwd FRR = 1 1 * * * 1 * 1 * * 2 * * 1 * 3 * * * 1 4 … FRR = 4 packet metadata FRR = 4 port status 1 0 0 1 port status 1 0 0 1 P4 register

Final requirements for FRR primitive high throughput low forwarding latency efficient reroute small forwarding state ”port status” P4 register

How much state for “naïve TCAM”? Input: switch with k ports 10 circular set of FRR actions Naïve TCAM FRR: k2 number of TCAM entries With encoding: k-1 number of TCAM entries For k = 24 5.760 TCAM entries! For k = 48 23.040 TCAM entries! 10 pods in a datacenter with F10 FRR [nsdi-13] 10 destinations with the "k arc-disjoint" FRR mechanism [ton-16] [nsdi-13] V. Liu et al. "F10: A Fault-Tolerant Engineered Network" in NSDI 2013 [ton-16] M. Chiesa et al. "On the Resiliency of Randomized Routing Against Multiple Edge Failures" in Transactions on Networking 2016

Encoding FRR in the packet metadata Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 packet metadata FRR = 2 port status 1 1 1 1 Encoding FRR input: add a packet metadata field frr_ports map bits to the switch ports match action write frr_ports FRR = 1 b1b2b3b4b5b6b7 FRR = 2 0 1 1 1 1 0 0 FRR = 3 0 0 1 1 1 1 0 FRR = 4 0 0 0 1 1 1 1 bit-to-port mapping is 1 2 3 4 1 2 3

Encoding FRR in the packet metadata Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 packet metadata FRR = 2 port status 1 1 1 1 Encoding FRR input: add a packet metadata field frr_ports map bits to the switch ports set bit to 1 to include a port set bit to 0 to skip a port match action write frr_ports FRR = 1 0 1 1 1 1 0 0 FRR = 2 FRR = 3 0 0 1 1 1 1 0 FRR = 4 0 0 0 1 1 1 1 frr_ports b1b2b3b4b5b6b7 bit-to-port mapping is 1 2 3 4 1 2 3

Encoding FRR in the packet metadata Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 packet metadata FRR = 2 port status 1 1 1 1 Encoding FRR input: add a packet metadata field frr_ports map bits to the switch ports set bit to 1 to include a port set bit to 0 to skip a port match action write frr_ports FRR = 1 1 1 1 1 0 0 0 FRR = 2 0 1 1 1 1 0 0 FRR = 3 0 0 1 1 1 1 0 FRR = 4 0 0 0 1 1 1 1 bit-to-port mapping is: 1 2 3 4 1 2 3

Encoding FRR in the packet metadata Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action frr_ports port status fwd 1 * * * * * * 1 * * * 1 * 1 * * * * * * 1 * * 2 * * 1 * * * * * * 1 * 3 * * * 1 * * * * * * 1 4 * * * * 1 * * * * * * * 1 * * * * * * * 1 packet metadata FRR = 2 port status 1 1 1 1 match action write frr_ports FRR = 1 1 1 1 1 0 0 0 FRR = 2 0 1 1 1 1 0 0 FRR = 3 0 0 1 1 1 1 0 FRR = 4 0 0 0 1 1 1 1 bit-to-port mapping is: 1 2 3 4 1 2 3

Encoding FRR in the packet metadata Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action frr_ports port status fwd 1 * * * * * * 1 * * * 1 * 1 * * * * * * 1 * * 2 * * 1 * * * * * * 1 * 3 * * * 1 * * * * * * 1 4 * * * * 1 * * * * * * * 1 * * * * * * * 1 packet metadata FRR = 2 port status 1 1 1 1 match action write frr_ports FRR = 1 1 1 1 1 0 0 0 FRR = 2 0 1 1 1 1 0 0 FRR = 3 0 0 1 1 1 1 0 FRR = 4 0 0 0 1 1 1 1 bit-to-port mapping is: 1 2 3 4 1 2 3

Encoding FRR in the packet metadata Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action frr_ports port status fwd 1 * * * * * * 1 * * * 1 * 1 * * * * * * 1 * * 2 * * 1 * * * * * * 1 * 3 * * * 1 * * * * * * 1 4 * * * * 1 * * * * * * * 1 * * * * * * * 1 packet metadata FRR = 2 port status 1 0 1 1 port 2 fails match action write frr_ports FRR = 1 1 1 1 1 0 0 0 FRR = 2 0 1 1 1 1 0 0 FRR = 3 0 0 1 1 1 1 0 FRR = 4 0 0 0 1 1 1 1 bit-to-port mapping is: 1 2 3 4 1 2 3

Encoding FRR in the packet metadata Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action frr_ports port status fwd 1 * * * * * * 1 * * * 1 * 1 * * * * * * 1 * * 2 * * 1 * * * * * * 1 * 3 * * * 1 * * * * * * 1 4 * * * * 1 * * * * * * * 1 * * * * * * * 1 packet metadata FRR = 2 port status 1 0 0 1 ports 2 and 3 fail match action write frr_ports FRR = 1 1 1 1 1 0 0 0 FRR = 2 0 1 1 1 1 0 0 FRR = 3 0 0 1 1 1 1 0 FRR = 4 0 0 0 1 1 1 1 bit-to-port mapping is: 1 2 3 4 1 2 3

Encoding FRR in the packet metadata Input FRR1 = 1 2 3 4 FRR2 = 2 3 4 1 FRR3 = 3 4 1 2 FRR4 = 4 1 2 3 match action frr_ports port status fwd 1 * * * * * * 1 * * * 1 * 1 * * * * * * 1 * * 2 * * 1 * * * * * * 1 * 3 * * * 1 * * * * * * 1 4 * * * * 1 * * * * * * * 1 * * * * * * * 1 packet metadata FRR = 4 port status 1 1 1 1 match action write frr_ports FRR = 1 1 1 1 1 0 0 0 FRR = 2 0 1 1 1 1 0 0 FRR = 3 0 0 1 1 1 1 0 FRR = 4 0 0 0 1 1 1 1 bit-to-port mapping is: 1 2 3 4 1 2 3

How much space does this encoding save? Input: switch with k ports 10 circular set of FRR actions Without encoding: k2 number of TCAM entries With encoding: 2k-1 number of TCAM entries For k = 24 92% less TCAM entries 470 instead of 5.760 For k = 48 96% less TCAM entries 950 instead of 23.040

Implementing existing FRR mechanisms Why circular FRR sequences? Provide resiliency to multiple link failures with small overhead F10 FRR [NSDI’13]: iterates through upward and downward datacenter links Depth-First-Search FRR [HotSDN’13]: iterates through children nodes K-arc disjoint FRR [Infocom’16]: iterates through k spanning trees [nsdi-13] V. Liu et al. "F10: A Fault-Tolerant Engineered Network" in NSDI 2013 [HotSDN’13] Borokhovich et al ””Graph exploration algorithms” in HotSDN 2013 [ton-16] M. Chiesa et al. "On the Resiliency of Randomized Routing Against Multiple Edge Failures" in Transactions on Networking 2016

Implementing existing FRR mechanisms Why circular FRR sequences? Provide resiliency to multiple link failures with small overhead Depth-First-Search FRR [HotSDN’13]: iterates through children nodes caution: skip parent node OpenFlow vs P4 (k = 48): 56.448 vs 190 TCAM entries 99.7% reduction Preliminary Mininet evaluation: encoding/1F encoding/2F recirculation/1F recirculation/2F

Towards a P4 FRR primitive high throughput low forwarding latency efficient reroute small forwarding state Transform FRR input into a P4 program: based on a mix of naïve and encoding TCAM-based approaches many challenging optimization problems

Summary Fast Reroute is a critical functionality in today’s network requires high throughput, low latency, fast reactivity, small state overhead P4 does not define an FRR built-in primitive compilers must program the P4 pipeline We propose a relatively simple TCAM-based FRR primitive based on bit-level mapping of ports no FRR-tailored hardware support future work: optimize mapping computation evaluation on real switches R. Sedar et al. ”Supporting Emerging Applications With Low-Latency Failover in P4” In ACM SIGCOMM workshop NEAT 2018 Thank you!