programming the network data plane
play

Programming The Network Data Plane Changhoon Kim Beautiful ideas: - PowerPoint PPT Presentation

Programming The Network Data Plane Changhoon Kim Beautiful ideas: What if you could Realize a small, but super-fast DNS cache Perform TCP SYN authentication for billions of SYNs per sec Build a replicated key-value store ensuring


  1. Programming The Network Data Plane Changhoon Kim

  2. Beautiful ideas: What if you could … • Realize a small, but super-fast DNS cache • Perform TCP SYN authentication for billions of SYNs per sec • Build a replicated key-value store ensuring RW ops in a few usecs • Improve your consensus service performance by ~100x • Boost your Memcached cluster’s throughput by ~10x • Speed up your DNN training dramatically by realizing parameter servers … using switches in your network? 2

  3. You couldn’t do any of those so far because … • No DIY – must work with vendors at feature level • Excruciatingly complicated and involved process to build consensus and pressure for features • Painfully long and unpredictable lead time • To use new features, you must get new switches • What you finally get != what you asked for 3

  4. This is very unnatural to developers • Because you all know how to realize your own ideas by “programming” CPUs – Programs used in every phase (implement, test, and deploy) – Extremely fast iteration and differentiation – You own your own ideas – A sustainable ecosystem where all participants benefit Can we replicate this healthy, sustainable ecosystem for networking? 4

  5. Reality: Packet forwarding speeds 6.4Tb/s 100000 10000 Switch Chip 1000 CPU 100 Gb/s (per chip) 10 1 0.1 1990 1995 2000 2005 2010 2015 2020 5

  6. Reality: Packet forwarding speeds 6.4Tb/s 100000 10000 Switch Chip 80x 1000 CPU 100 Gb/s (per chip) 10 1 0.1 1990 1995 2000 2005 2010 2015 2020 6

  7. What does a typical switch look like? A switch is just a Linux box with a high-speed switching chip Switch OS Protocol Daemons Other Mgmt ( Linux variant ) Just S/W -- You can … (BGP, OSPF, etc.) Apps freely change this Control plane Run-time API PCIe Chip Driver Fixed-function H/W -- There’s nothing Data plane you can change here … L2 L3 ACL Forwarding Routing Table Table Table packets packets 7

  8. Networking systems have been built “bottoms-up” Switch OS in English API “This is roughly how I process packets …” Fixed-function switch

  9. Turning the tables “top-down” Switch OS in P4 API “This is precisely how you must process packets” Programmable Switch

  10. “ Programmable switches are 10 -100x slower than fixed-function switches. They cost more and consume more power. ” Conventional wisdom in networking

  11. Evidence: Tofino 6.5Tb/s switch (arrived Dec 2016) The world’s fastest and most programmable switch. No power, cost, or power penalty compared to fixed-function switches. An incarnation of PISA (Protocol Independent Switch Architecture)

  12. Domain-specific processors Machine Signal Computers Graphics Networking Learning Processing Java OpenCL Matlab Language TensorFlow >>> Compiler Compiler Compiler Compiler Compiler ? ? TPU CPU GPU DSP

  13. Domain-specific processors Machine Signal Computers Graphics Networking Learning Processing P4 Java OpenCL Matlab TensorFlow >>> Compiler Compiler Compiler Compiler Compiler ? PISA TPU CPU GPU DSP

  14. PISA: An architecture for high-speed programmable packet forwarding 14

  15. PISA: Protocol Independent Switch Architecture Match Action Memory ALU Programmable Parser 15

  16. PISA: Protocol Independent Switch Architecture Ingress Buffer Egress Programmable Parser 16

  17. PISA: Protocol Independent Switch Architecture Match Logic Action Logic (Mix of SRAM and TCAM for lookup tables, (ALUs for standard boolean and arithmetic operations, Programmable counters, meters, generic hash tables) header modification operations, hashing operations, etc.) Packet Generator Buffer Programmable M A M A Parser … … Ingress match-action stages (pre-switching) Egress match-action stages (post-switching) Recirculation CPU (Control plane) Generalization of RMT [sigcomm’13] 17

  18. Why we call it protocol-independent packet processing 18

  19. Device does not understand any protocols until it gets programmed IPv4 L2 ACL IPv6 Logical Data-plane View (your P4 program) Switch Pipeline packet packet packet packet Programmable Action ALUs Action ALUs Action ALUs Action ALUs Match Table Match Table Match Table Match Table Queues Fixed Action Parser CLK 19

  20. (your P4 program) Logical Data-plane View Switch Pipeline Programmable Parser Mapping logical data-plane design to Match Table L2 Table L2 L2 Action ALUs L2 Action Macro physical resources Match Table IPv4 Table Action ALUs v4 Action Macro IPv4 IPv4 IPv6 IPv6 Match Table IPv6 Table Action ALUs v6 Action Macro ACL ACL Match Table ACL Table Action ALUs ACL Action Macro CLK Queues 20

  21. Switch Pipeline (your P4 program) Logical Data-plane View Programmable Parser L2 Table L2 L2 Action Macro Re-program in the field MyEncap MyEncap My IPv4 IPv4 Table Encap v4 Action Macro Action Action IPv6 IPv6 Table IPv4 IPv6 IPv4 IPv6 Action Action v6 Action Macro ACL Table ACL Action Macro CLK ACL Queues 21

Recommend


More recommend