DC.p4: Programming the forwarding plane of a datacenter switch

Slides:



Advertisements
Similar presentations
Programming Protocol-Independent Packet Processors
Advertisements

P4 demo: a basic L2/L3 switch in 170 LOC
How to tell your plumbing what to do Protocol Independent Forwarding
P4: specifying data planes
ENGINEERING WORKSHOP Compute Engineering Workshop P4: specifying data planes Mihai Budiu San Jose, March 11, 2015.
Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN Pat Bosshart, Glen Gibb, Hun-Seok Kim, George Varghese, Nick.
OpenFlow overview Joint Techs Baton Rouge. Classic Ethernet Originally a true broadcast medium Each end-system network interface card (NIC) received every.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Flow Space Virtualization on Shared Physical OpenFlow Networks Hiroaki Yamanaka, Shuji Ishii, Eiji Kawai (NICT), Masayoshi Shimamura, Katsuyoshi Iida (TITECH),
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
Software-Defined Networking, OpenFlow, and how SPARC applies it to the telecommunications domain Pontus Sköldström - Wolfgang John – Elisa Bellagamba November.
An Overview of Software-Defined Network
The Case for an Intermediate Representation for Programmable Data Planes Muhammad Shahbaz and Nick Feamster Princeton University.
Building Compilers for Reconfigurable Switches Lavanya Jose, Lisa Yan, Nick McKeown, and George Varghese 1 Research funded by AT&T, Intel, Open Networking.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Formal checkings in networks James Hongyi Zeng with Peyman Kazemian, George Varghese, Nick McKeown.
Information-Centric Networks10b-1 Week 13 / Paper 1 OpenFlow: enabling innovation in campus networks –Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru.
IT253: Computer Organization Lecture 4: Instruction Set Architecture Tonga Institute of Higher Education.
LOGO 未来移动互联网研究项目 Software Defined Networking 中科大移动云计算系统实验室 孟宁
Open networking w/ Marist College Software Defined Networks.
XStream: Rapid Generation of Custom Processors for ASIC Designs Binu Mathew * ASIC: Application Specific Integrated Circuit.
Arbitrary Packet Matching in Openflow
Customizing OVS using P4 Muhammad Shahbaz with Sean Choi, Ben Pfaff, Chaitanya Kodeboyina, Changhoon Kim, Nick McKeown, Nick Feamster, and Jen Rexford.
Programmable Packet Scheduling at Line Rate
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.
Information-Centric Networks Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics.
OpenFlow MPLS and the Open Source Label Switched Router Department of Computer Science and Information Engineering, National Cheng Kung University, Tainan,
Forwarding Programming in Protocol- Oblivious Instruction Set Author : Jingzhou Yu, Xiaozhong Wang, Jian Song, Yuanming Zheng, Haoyu Song Conference: 2014.
Introduction to Mininet, Open vSwitch, and POX
CSci8211: SDN Controller Design 1 Overview of SDN Controller Design  SDN Re-cap  SDN Controller Design: Case Studies  NOX Next Week:  ONIX  ONOS 
Fabric: A Retrospective on Evolving SDN Presented by: Tarek Elgamal.
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
PISCES: A Programmable, Protocol-Independent Software Switch
LISA Linux Switching Appliance Radu Rendec Ioan Nicu Octavian Purdila Universitatea Politehnica Bucuresti 5 th RoEduNet International Conference.
Nick McKeown (Many thanks to Lisa and Lavanya) CS244 Programmable Switches Forwarding metamorphosis: fast programmable match-action processing … Pat Bosshart,
InterVLAN Routing 1. InterVLAN Routing 2. Multilayer Switching.
P4: Programming Protocol-Independent Packet Processors
COS 561: Advanced Computer Networks
P4 Language and Software Switches
Programmable switches
HULA: Scalable Load Balancing Using Programmable Data Planes
SLC/VER1.0/OS CONCEPTS/OCT'99
The architecture of the P416 compiler
Muhammad Shahbaz Nick Feamster Jennifer Rexford Sean Choi Nick McKeown
P4 (Programming Protocol-independent Packet Processors)
ODL SFC, Implementing IETF SFC November 14, 2016
PISCES: A Programmable, Protocol-Independent Software Switch
Key Ideas from day 1 slides
Why to use the assembly and why we need this course at all?
April 28, 2017 SUMIT MAHESHWARI INES UGALDE
Overview of SDN Controller Design
of Dynamic NFV-Policies
Overview Introduction General Register Organization Stack Organization
PISCES: A Programmable, Protocol-Independent Software Switch
P5: Policy-driven optimization of P4 pipeline
SDN Overview for UCAR IT meeting 19-March-2014
Converging Approaches in Software Switches
Software Defined Networking
Debugging P4 Programs with Vera
Fast Reroute in P4: Keep Calm and Enjoy Programmability
P4FPGA : A Rapid Prototyping Framework for P4
Mastering Memory Modes
Linux Network Programming with P4
Programmable Switches
Project proposal: Questions to answer
October 29 Review for 2nd Exam Ask Questions! 4/26/2019
Re- engineeniering.
Taurus: An Intelligent Data Plane
Oriented Design and Abstract Data Type
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

DC.p4: Programming the forwarding plane of a datacenter switch Anirudh Sivaraman*, Changhoon Kim†, Ramkumar Krishnamoorthy†, Advait Dixit†, Mihai Budiu† * Massachusetts Institute of Technology † Barefoot Networks

The case for programmable forwarding planes Programmable switch architectures: RMT, FlexPipe, XPliant Languages for packet processing: P4, POF, packetC, PX Open interfaces: OpenFlow, SAI

This talk: Programming a large forwarding plane in P4 Successfully programmed a datacenter forwarding plane in P4 Language features contributed to P4 specification Lessons learned in the process Chang: P4 position paper about a year ago with several high-level abstractions but the details weren’t clear. This talk is about the delta between the current P4 spec and the original paper at a high level of abstraction. What are the deltas and why? Jonathan question: How do you design a language for a switch? Hari: Make two points: We implemented a commodity datacenter switch in P4. (I ‘ll tell you about how that’s done.) What we learned from doing that. (This is what we learned.) We tried to implement  we got there  we reflect on what we learned. Jonathan: P4 is a high-level language only relative to assemblu and Verilog, not Java.

P4 in one slide Header Fields Match: On Arbitrary Header fields Parser Header Fields Ingress Stages Queues Egress Stages Match Action Match Action TCP IPv4 IPv6 Eth Amy: Arithmetic ops or other ops name of instructions Jonathan: DPDK.org has match-action abstractions as well. RTE_pipeline Match: On Arbitrary Header fields Actions: Primitives: Arithmetic ops on fields Read/Write fields Add/remove fields Combine primitives into larger actions

The P4 development environment Compiler: compiles P4 to a software switch target Also generates control-plane API to the switch Switch plugs into Mininet through virtual interfaces

DC.p4: A datacenter switch in P4 Feature set comparable to shared-memory switches VLANs, ACLs, Tunnels, ECMP, Link Aggregation, L2/L3 forwarding Program available at http://git.io/sosr15-p4 Shows how features map to code Substantial P4 program 2500 lines of P4 25 ingress and 12 egress tables

Features that were easy to express L2/L3 forwarding Packet validation Most actions can be composed from existing primitives

Features that drove language changes ECMP: Dynamically select action from a set of actions ACLs: Packet cloning primitive Seemed pretty abstract to Amy. Don’t mention leaf-spine in ECMP here.

Lessons learned P4 has the right level of abstraction No bit offset manipulation Rides on OpenFlow’s success with match-action tables What can be improved Modularity Removing undefined behavior Adding new primitives may be unsustainable

A proposal to evolve P4: P4 should target other Packet-Processing Engines (PPEs) Move switch model out of language

Summary Expressed a datacenter forwarding plane in P4 Lessons learned in the process P4 program described in the paper: http://git.io/sosr15-p4 Hari’s questions and my questions: Multicast. Why not clone to CPU and then cull out the digest there? Clone to CPU: what happens to the original packet? Clone vs. redirect to CPU? Where else is digest generation used?