Customizing OVS using P4 Muhammad Shahbaz with Sean Choi, Ben Pfaff, Chaitanya Kodeboyina, Changhoon Kim, Nick McKeown, Nick Feamster, and Jen Rexford.

Slides:



Advertisements
Similar presentations
IP Router Architectures. Outline Basic IP Router Functionalities IP Router Architectures.
Advertisements

IPS: Implementation of Protocol Stacks for Embedded Systems Yan Wang Halmstad University, Sweden The Second Internal EPC Workshop IPS, Halmstad University,
Programming Protocol-Independent Packet Processors
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.
Slick: A control plane for middleboxes Bilal Anwer, Theophilus Benson, Dave Levin, Nick Feamster, Jennifer Rexford Supported by DARPA through the U.S.
OpenFlow Switch Specification-v part1 Speaker: Hsuan-Ling Weng Date: 2014/12/02.
.NET Database Technologies: Open-Source Frameworks.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
The Case for an Intermediate Representation for Programmable Data Planes Muhammad Shahbaz and Nick Feamster Princeton University.
Introduction to IPv6 NSS Wing,BSNL Mobile Services, Ernakulam 1.
Building Compilers for Reconfigurable Switches Lavanya Jose, Lisa Yan, Nick McKeown, and George Varghese 1 Research funded by AT&T, Intel, Open Networking.
Network Architecture and Protocol Concepts. Network Architectures (1) The network provides one or more communication services to applications –A service.
© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Multicast routing.
Floodless in SEATTLE : A Scalable Ethernet ArchiTecTure for Large Enterprises. Changhoon Kim, Matthew Caesar and Jenifer Rexford. Princeton University.
Generative Programming. Automated Assembly Lines.
Review 1.Lexical Analysis 2.Syntax Analysis 3.Semantic Analysis 4.Code Generation 5.Code Optimization.
CE Operating Systems Lecture 14 Memory management.
COP 5611 Operating Systems Spring 2010 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 2:00-3:00 PM.
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Routing Fundamentals and Subnets Introduction to IT and Communications Technology CE
CS 598 Scripting Languages Design and Implementation 14. Self Compilers.
Slide 1 Simple, Flexible Programming of Data Movement Paths using Algorithmic Policies PIs: Y. Richard Yang, Robert Bjornson, Andrew Sherman Architect:
Control System Design Process Planning Documentation.
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.
Multiple Protocol Support: Multiprotocol Level Switching.
Forwarding Programming in Protocol- Oblivious Instruction Set Author : Jingzhou Yu, Xiaozhong Wang, Jian Song, Yuanming Zheng, Haoyu Song Conference: 2014.
Proposal for a Proximity-2 Protocol Ed Greenberg Greg Kazz May /11/20161.
CSCI-383 Object-Oriented Programming & Design Lecture 25.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 10 Routing Fundamentals and Subnets.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 10 Routing Fundamentals and Subnets Claes Larsen, CCAI.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
VIRTUAL NETWORK PIPELINE PROCESSOR Design and Implementation Department of Communication System Engineering Presented by: Mark Yufit Rami Siadous.
PISCES: A Programmable, Protocol-Independent Software Switch
Nick McKeown (Many thanks to Lisa and Lavanya) CS244 Programmable Switches Forwarding metamorphosis: fast programmable match-action processing … Pat Bosshart,
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
The architecture of the P416 compiler
Muhammad Shahbaz Nick Feamster Jennifer Rexford Sean Choi Nick McKeown
P4 (Programming Protocol-independent Packet Processors)
PISCES: A Programmable, Protocol-Independent Software Switch
April 28, 2017 SUMIT MAHESHWARI INES UGALDE
Ben Pfaff Open vSwitch Commiter
PISCES: A Programmable, Protocol-Independent Software Switch
P5: Policy-driven optimization of P4 pipeline
Programmable Networks
Automated Parser Generation for High-Speed NIDS
CCNA 1 v3.1 Module 10 Routing Fundamentals and Subnets
DC.p4: Programming the forwarding plane of a datacenter switch
Software Defined Networking (SDN)
P4-to-VHDL: Automatic Generation of 100 Gbps Packet Parsers
Multimedia and Networks
Debugging P4 Programs with Vera
Implementing an OpenFlow Switch on the NetFPGA platform
P4FPGA : A Rapid Prototyping Framework for P4
Enabling Programmable Infrastructure for Multi-Tenant Data Centers
Linux Network Programming with P4
Programmable Switches
Project proposal: Questions to answer
Ch 17 - Binding Protocol Addresses
Taurus: An Intelligent Data Plane
Design principles for packet parsers
Chapter 9: Implementation
Presentation transcript:

Customizing OVS using P4 Muhammad Shahbaz with Sean Choi, Ben Pfaff, Chaitanya Kodeboyina, Changhoon Kim, Nick McKeown, Nick Feamster, and Jen Rexford

Customizing OVS is Hard! Protocols Features Changes -Adding protocols and features requires - manual changes throughout the source tree - maintaining changes across newer versions -e.g., adding a new field required touching 12 files adding a new action required touching 10 files

Customizing OVS is Hard! Protocols Features -Manual changes are time-consuming and error prone Changes applied manually

Customizing OVS is Hard! Protocols Features -What if we describe these changes as programs ? Changes specified as a program -This has many benefits: a. Rapid addition of new protocols and features b. Automated testing and debugging c. Backward compatibility

Which language should we use for writing these programs

Should we use P4 ? -It’s an open-source language -Describes different aspects of a packet processor a. Header and Fields b. Parser c. Actions d. Match-Action Tables e. Control-Flow

Compiling P4 to ? -There are two main aspects: 1. Efficient mapping from P4 to OVS? 2. Cost of programmability on performance?

Fast-Path Slow-Path A (Magnified) View of Architecture Flow Extraction Flow Struct Cache Lookup Match-Action (MA) Pipeline Actions Hit Miss ingress egress Fast-Path Slow-Path Runtime Configurations

Mapping P4 to ? Flow Struct Header, Metadata, Valids, Stacks, Field Refs Flow Extraction Parsed Representation Match-Action Pipeline add/remove_header drop, no_op, add,add_to_field modify_field Actions deparsing, Calculated Fields, generate_digest Runtime Configurations Field Lists, Action Defs, Table Decls, Control-Flow

Mapping P4 to ? Flow Struct Header, Metadata, Valids, Stacks, Field Refs Flow Extraction Parsed Representation Match-Action Pipeline add/remove_header drop, no_op, add,add_to_field modify_field Actions deparsing, Calculated Fields, generate_digest Runtime Configurations Field Lists, Action Defs, Table Decls, Control-Flow

Add/Remove Header and Deparsing -P4 provides primitive actions for arbitrarily adding/removing headers to/from packets a. add_header b. remove_header - e.g., for packet encapsulation and decapsulation -Deparser operation serializes the packet - Its algorithm is inferred from the parse graph

Add/Remove Header and Deparsing -In OVS, changes are applied directly on the packet using set_field() action in the Fast-Path Actions Hit egress (packet) Fast-Path [set_field() …]

Add/Remove Header and Deparsing -Thus, multiple set_field() operations can lead to no change, if header’s valid bit is not set at the time of deparsing -Whereas, in P4, each header has a valid bit a. If it’s set, changes are written to the packet by the deparser b. Otherwise, packet is not modified

Add/Remove Header and Deparsing -This requires keeping a separate copy of each header (or flow) in the Fast-Path -Changes are applied directly to this header -At deparsing stage, if the header is valid it’s written to the packet else it’s discarded Actions Hit egress (packet, flow)(packet) Fast-Path [set_field(flow) …, deparse]

Cost of Programmability on Performance? -There are three main factors that primarily affect the performance: 1. Packet Parsing 2. Packet Deparsing 3. Fast-Path Actions

Cost of Programmability on Performance? a. Layer2 learning switch b. Layer3 simple router

Future Work -Implement optimizations to avoid extra copies of the header (or flow) in the fast-path - using dead-code elimination and liveness analysis etc. -Provide support for general fast-path actions like add_to_field etc.

Questions? Source Code Muhammad Shahbaz