Converging Approaches in Software Switches

Slides:



Advertisements
Similar presentations
1 Building a Fast, Virtualized Data Plane with Programmable Hardware Bilal Anwer Nick Feamster.
Advertisements

P4: specifying data planes
ENGINEERING WORKSHOP Compute Engineering Workshop P4: specifying data planes Mihai Budiu San Jose, March 11, 2015.
Layer 3 Switching. Routers vs Layer 3 Switches Both forward on the basis of IP addresses But Layer 3 switches are faster and cheaper However, Layer 3.
Forwarding Metamorphosis: Fast Programmable Match-Action Processing in Hardware for SDN Pat Bosshart, Glen Gibb, Hun-Seok Kim, George Varghese, Nick.
Autonomic Systems Justin Moles, Winter 2006 Enabling autonomic behavior in systems software with hot swapping Paper by: J. Appavoo, et al. Presentation.
Intel ® Ethernet Depths of the Cloud: How Linux Networking needs to evolve Peter (PJ) Waskiewicz Shannon Nelson.
Performance Evaluation of Open Virtual Routers M.Siraj Rathore
Outlines Backgrounds Goals Implementation Performance Evaluation
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
An Overlay Data Plane for PlanetLab Andy Bavier, Mark Huang, and Larry Peterson Princeton University.
CS 300 – Lecture 22 Intro to Computer Architecture / Assembly Language Virtual Memory.
Chapter 13 Embedded Systems
Hosted VMM Architecture Advantages: –Installs and runs like an application –Portable – host OS does I/O access –Coexists with applications running on.
Data Center Virtualization: Open vSwitch Hakim Weatherspoon Assistant Professor, Dept of Computer Science CS 5413: High Performance Systems and Networking.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
1 Chapter 13 Embedded Systems Embedded Systems Characteristics of Embedded Operating Systems.
Using FPGAs with Embedded Processors for Complete Hardware and Software Systems Jonah Weber May 2, 2006.
Cisc Complex Instruction Set Computing By Christopher Wong 1.
1 Instant replay  The semester was split into roughly four parts. —The 1st quarter covered instruction set architectures—the connection between software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Data Center Network Redesign using SDN
Extreme Networks Confidential and Proprietary. © 2010 Extreme Networks Inc. All rights reserved.
Networking Virtualization Using FPGAs Russell Tessier, Deepak Unnikrishnan, Dong Yin, and Lixin Gao Reconfigurable Computing Group Department of Electrical.
Hosting Virtual Networks on Commodity Hardware VINI Summer Camp.
 Configuring a vSwitch Cloud Computing (ISM) [NETW1009]
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Networks big switch Hard Problems in SDN Rob Sherwood SDNRG – Atlanta, November 2012.
02/09/2010 Industrial Project Course (234313) Virtualization-aware database engine Final Presentation Industrial Project Course (234313) Virtualization-aware.
A summary by Nick Rayner for PSU CS533, Spring 2006
XStream: Rapid Generation of Custom Processors for ASIC Designs Binu Mathew * ASIC: Application Specific Integrated Circuit.
Routers Operate in a Mesh –Many possible alternative routes between two stations Only One of Many Possible Alternative Routes Packet.
Arbitrary Packet Matching in Openflow
Extending OVN Forwarding Pipeline Topology-based Service Injection
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Introduction to Mininet, Open vSwitch, and POX
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
PISCES: A Programmable, Protocol-Independent Software Switch
Network Virtualization Ben Pfaff Nicira Networks, Inc.
LISA Linux Switching Appliance Radu Rendec Ioan Nicu Octavian Purdila Universitatea Politehnica Bucuresti 5 th RoEduNet International Conference.
Advanced Network Labs & Remote Network Agent
Converging Approaches in Software Switches
P4: Programming Protocol-Independent Packet Processors
Shaopeng, Ho Architect of Chinac Group
Mohit Aron Peter Druschel Presenter: Christopher Head
P4 Language and Software Switches
Ready-to-Deploy Service Function Chaining for Mobile Networks
Unix Server Consolidation
Virtualization.
BESS: A Virtual Switch Tailored for NFV
Kernel Design & Implementation
Muhammad Shahbaz Nick Feamster Jennifer Rexford Sean Choi Nick McKeown
PISCES: A Programmable, Protocol-Independent Software Switch
A Closer Look at Instruction Set Architectures
Part 3 Design What does design mean in different fields?
Overview Introduction General Register Organization Stack Organization
PISCES: A Programmable, Protocol-Independent Software Switch
Programmable Logic Controllers (PLCs) An Overview.
The Stanford Clean Slate Program
DC.p4: Programming the forwarding plane of a datacenter switch
Objects First with Java
Characteristics of Reconfigurable Hardware
Enabling TSO in OvS-DPDK
Reprogrammable packet processing pipeline
All or Nothing The Challenge of Hardware Offload
Network Processors for a 1 MHz Trigger-DAQ System
CS 111 – Sept. 20 Operating Systems Commitment: definition origin
Elmo Muhammad Shahbaz Lalith Suresh, Jennifer Rexford, Nick Feamster,
Flow Processing for Fast Path & Inline Acceleration
Presentation transcript:

Converging Approaches in Software Switches Combining code- and data-driven approaches to achieve a better result Ben Pfaff blp@ovn.org August 4, 2016

Agenda 1 2 3 4 5 6 The Point Definitions and Distractions Code-Driven Switches 4 Data-Driven Switches 5 Code-Driven → Data-Driven 6 Data-Driven → Code-Driven

There are two main ways to build software switches: "code-driven" and The Point There are two main ways to build software switches: "code-driven" and "data-driven" Usually, these are considered to be alternatives. They can actually be complementary.

What's a Software Switch? A software switch forwards Ethernet packets among physical or virtual ports. Necessary for VMs to share physical Ethernet ports. An old idea. Many exist today, including the following developed at VMware (and many others): vSphere Distributed Switch (VDS) NSX Edge Switch Open vSwitch Software Switch VM2 VM1 eth0

Distractions These choices affect implementation and performance, but they are not related to the architectural distinction I'm talking about. Kernel vs. Userspace All-kernel All-userspace Mix Packet I/O method Custom kernel module AF_PACKET sockets DPDK (kernel or userspace) Netmap It's unfair to compare software switches against packet I/O methods, but advocates of packet I/O methods often do it.

Code-Driven Switch Pipeline Executes series of code fragments ("stages") per packet. code code code code ingress egress code Obvious Loose coupling CONFIDENTIAL

Code-Driven Pipeline Stages Can do anything or nothing Each stage increases per-packet latency Near-zero fixed overhead Therefore: null pipeline is very fast. CONFIDENTIAL

Some Code-Driven Switches Linux bridge + iptables + ebtables + … Click VSphere Distributed Switch (VDS) NSX Edge Switch VPP BESS CONFIDENTIAL

This super-dramatic slide was in the corporate slide template and I felt I had to use it somewhere.

Data-Driven Switch Pipeline A single engine drives each packet through all the stages, each of which is a data table. data data data data parser ingress egress data - Unnatural for programmers - Limited by engine's capabilities - Parsing is expensive + Parsing only happens once per pipeline. CONFIDENTIAL

Data-Driven Pipeline Stages N stages can be cross-producted into 1 stage (see NSDI 2015 paper): data data data data data ×∙∙∙× × = × N stages High fixed cost. Adding stages adds little per-packet latency. Therefore: null pipeline is slow, complex pipeline is fast. Hardware classification offload is possible. CONFIDENTIAL

Some Data-Driven Switches Open vSwitch MidoNet CONFIDENTIAL

Code-Driven ↔ Data-Driven Crossover Can we combine the strengths of both approaches? Code-Driven: +Low fixed overhead +Flexibility. Data-Driven: +Low per-stage overhead. +Common parser. I don't have a complete answer but I have some thoughts. CONFIDENTIAL

Code-Driven → Data-Driven Are you skeptical? "If a data-driven pipeline is faster than a code-driven pipeline, for some application, then the code-driven pipeline code is badly written." But I have two data points: VSphere Distributed Switch VMware NSX Edge CONFIDENTIAL

Data-Driven → Code-Driven Attack sources of fixed overhead: Cost of parsing, by parsing less. Cost of classification, by hardware offload (which can really be real on common hardware). Increase flexibility: Integrate arbitrary code, via eBPF/P4. Integrate external code, e.g. kernel conntrack, NAT. Integrate into pipelines of middleboxes: SoftFlow. CONFIDENTIAL

Two seemingly different software switch pipelines, Conclusion Two seemingly different software switch pipelines, "code-driven" and "data-driven," may ultimately move closer to one another than they started out. CONFIDENTIAL

Thank You Ben Pfaff blp@ovn.org For more information about Open vSwitch, please visit openvswitch.org.