PISCES: A Programmable, Protocol-Independent Software Switch

Similar documents
PVPP: A Programmable Vector Packet Processor. Sean Choi, Xiang Long, Muhammad Shahbaz, Skip Booth, Andy Keep, John Marshall, Changhoon Kim

Programmable Packet Processing With

Backend for Software Data Planes

PISCES:'A'Programmable,'Protocol4 Independent'So8ware'Switch' [SIGCOMM'2016]'

Introduc)on to P4 Programming Protocol-Independent Packets Processors. Ronald van der Pol SURFnet

Experiences with Programmable Dataplanes

In-band Network Telemetry (INT)

Linux Network Programming with P4. Linux Plumbers 2018 Fabian Ruffy, William Tu, Mihai Budiu VMware Inc. and University of British Columbia

Be Fast, Cheap and in Control with SwitchKV. Xiaozhou Li

OSI Network Layer. Network Fundamentals Chapter 5. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Programming Network Data Planes

Building Efficient and Reliable Software-Defined Networks. Naga Katta

Overview of Software Defined Networking

Building a Fast, Virtualized Data Plane with Programmable Hardware. Bilal Anwer Nick Feamster

Professor Yashar Ganjali Department of Computer Science University of Toronto.

Packet Transactions: High-Level Programming for Line-Rate Switches Anirudh Sivaraman, Alvin Cheung, Mihai Budiu, Changhoon Kim, Mohammad Alizadeh,

Research on DPDK Based High-Speed Network Traffic Analysis. Zihao Wang Network & Information Center Shanghai Jiao Tong University

This chapter describes how to configure NetFlow Data Export (NDE).

Programmable Data Plane at Terabit Speeds

P4 Language Tutorial. Copyright 2017 P4.org

This chapter describes how to configure NetFlow Data Export (NDE).

Programmable NICs. Lecture 14, Computer Networks (198:552)

CS344 Lecture 2 P4 Language Overview. Copyright 2018 P4.org

CSE 461 Module 10. Introduction to the Transport Layer

T4P4S: When P4 meets DPDK. Sandor Laki DPDK Summit Userspace - Dublin- 2017

The Internetworking Problem. Internetworking. A Translation-based Solution

Programmable Dataplane

Packet Header Formats

Lecture 9: Internetworking

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

SmartNIC Programming Models

Network Virtualization in Multi-tenant Datacenters

Introduction to Routers and LAN Switches

p4v Practical Verification for Programmable Data Planes Jed Liu Bill Hallahan Cole Schlesinger Milad Sharif Jeongkeun Lee

Dataplane Programming

& the architecture along the way!

Server virtualization

P51: High Performance Networking

HY436: Network Virtualization

Ref: A. Leon Garcia and I. Widjaja, Communication Networks, 2 nd Ed. McGraw Hill, 2006 Latest update of this lecture was on

Tutorial S TEPHEN IBANEZ

SmartNIC Programming Models

Pflua. Filtering packets with LuaJIT FOSDEM 2015 Andy Wingo.

Optimizing your virtual switch for VXLAN. Ron Fuller, VCP-NV, CCIE#5851 (R&S/Storage) Staff Systems Engineer NSBU

Gateware Defined Networking (GDN) for Ultra Low Latency Trading and Compliance

Configuring NetFlow and NDE

Software Techniques for Programmable Data Plane Virtualization

Routing, Routers, Switching Fabrics

The IP Data Plane: Packets and Routers

Agilio OVS Software Architecture

Design and Demonstration of High-Throughput Protocol Oblivious Packet Forwarding to Support Software-Defined Vehicular Networks

FastReact. In-Network Control and Caching for Industrial Control Networks using Programmable Data Planes

CS 4226: Internet Architecture

Where we are in the Course

Internet. 1) Internet basic technology (overview) 3) Quality of Service (QoS) aspects

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

Cisco Virtual Networking Solution for OpenStack

An Industry view of IPv6 Advantages

Network Technology 1 5th - Transport Protocol. Mario Lombardo -

OpenStack and OVN What s New with OVS 2.7 OpenStack Summit -- Boston 2017

Networking at the Speed of Light

Programmable data planes, P4, and Trellis

Configuring NetFlow and NetFlow Data Export

CSCI Networking Name:

Da t e: August 2 0 th a t 9: :00 SOLUTIONS

SDN-enabled Internet Exchange Point

Advanced Computer Networking. Please make sure now that you received a complete copy of the exam.

Chapter 5 OSI Network Layer

P4FPGA Expedition. Han Wang

BESS: A Virtual Switch Tailored for NFV

New Approach to OVS Datapath Performance. Founder of CloudNetEngine Jun Xiao

Bringing SDN to the Internet, one exchange point at the time

Configuring Firewall Filters (J-Web Procedure)

Vorlesung Kommunikationsnetze

International Journal of Advance Engineering and Research Development. DPDK-Based Implementation Of Application : File Downloader

Container Adoption for NFV Challenges & Opportunities. Sriram Natarajan, T-Labs Silicon Valley Innovation Center

CCNA 1 Chapter 7 v5.0 Exam Answers 2013

Computer Networks. Homework #4: No Grading

Protocol Layers & Wireshark TDTS11:COMPUTER NETWORKS AND INTERNET PROTOCOLS

Fast packet processing in the cloud. Dániel Géhberger Ericsson Research

CPSC 441 COMPUTER COMMUNICATIONS MIDTERM EXAM SOLUTION

Network and Security: Introduction

Accelerating Contrail vrouter

Programming Netronome Agilio SmartNICs

IPv4 Lecture 10a. COMPSCI 726 Network Defence and Countermeasures. Muhammad Rizwan Asghar. August 14, 2017

Hybrid Information-Centric Networking

App. App. Master Informatique 1 st year 1 st term. ARes/ComNet Applications (7 points) Anonymous ID: stick number HERE

CSCI-GA Operating Systems. Networking. Hubertus Franke

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

High Performance Packet Processing with FlexNIC

IPv6 Protocol (RFC 2460 DS)

E : Internet Routing

Lecture 10: Internetworking"

Chapter 5 Network Layer

Ed Warnicke, Cisco. Tomasz Zawadzki, Intel

Building a Platform Optimized for the Network Edge

Design principles in parser design

P4 Language Design Working Group. Gordon Brebner

Datagram. Source IP address. Destination IP address. Options. Data

Data Center Virtualization: VirtualWire

Transcription:

PISCES: A Programmable, Protocol-Independent Software Switch Muhammad Shahbaz, Sean Choi, Ben Pfaff, Changhoon Kim, Nick Feamster, Nick McKeown, and Jennifer Rexford

Fixed Set of Protocols Fixed-Function Switch Chip TCP IPv4 IPv6 Ethernet UDP HTTP BGP TLS

Ease of Adding new protocols Ease of Removing unused protocols Gain greater Visibility into the network Fold network functions into the switch

Custom Protocols Programmable Switching Chip TCP IPv4 IPv6 Ethernet CUSTOM_P HTTP BGP TLS

VM VM Hypervisor Switch 3 Virtual Ports 1 Physical Port

60 Approx. Number of Physical Ports vs. Virtual Ports [1] 40 20 0 2010 2011 2012 2013 2014 2015 Phyical Ports Virtual Ports [1] Martin Casado, VMWorld 2013

It should be EASY to program software switches! Not really

Software Switch Kernel DPDK Fast Packet Forwarding

Software Switch Requires domain expertise in: - Network protocol design - Kernel development Packet Match-Action Processing Logic Pipeline Kernel DPDK Slow to release changes Specialized APIs

Software Switch Adding TCP Flag in Open vswitch required changes in Match-Action Pipeline Kernel DPDK 20 Files and 370 Lines of Code! [1] Weeks of Development and Test [1] https://github.com/openvswitch/ovs/commit/dc235f7fbcff

We can do this in 4 lines and within minutes with PISCES! header_type tcpv2_t { fields { srcport : 16; dstport : 16; seqno : 32; ackno : 32; dataoffset : 4; res : 4; tcp_flags : 12; window : 16; checksum : 16; urgentptr : 16; } } parser tcpv2 { extract(tcpv2); set_metadata(flow.tcp_flags, tcpv2.tcp_flags); return ingress; } header_type flow_t { fields {... tcp_flags_pad : 4; tcp_flags : 12;... } }

Software Switch Match-Action Pipeline Kernel DPDK

Domain-Specific Language (DSL) Software Switch Match-Action Pipeline Compile Match-Action Pipeline Kernel DPDK TCP Header header_type tcp_t { fields { srcport : 16; dstport : 16; seqno : 32; ackno : 32; dataoffset : 4; res : 4; window : 16; checksum : 16; urgentptr : 16; } } parser tcp { extract(tcp); return ingress; }...

Domain-Specific Language Domain-Specific Language 2 Match-Action Pipeline Match-Action Pipeline Compile PISCES is an implementation with a Specific Domain-Specific Language Software Switch Switch 2 Match-Action Pipeline Match-Action Pipeline Kernel Kernel DPDK DPDK Specific Software Switch Target

P4 [1] Match-Action Pipeline P4 is an open-source language. [1] OVS Compile Match-Action Pipeline Kernel DPDK Easy to express different aspects of a packet processor: - Packet headers and fields - - Actions - Match-Action Tables [1] http://p4.org

P4 Match-Action Pipeline 341 lines of code OVS Compile Match-Action Pipeline Kernel DPDK Native OVS Packet Processing Logic 14,535 lines of code

P4 Compiler parse match action OVS OVS Executable header_type tcp_t { fields header_type { tcpv2_t { srcport fields {: 16; dstport srcport : 16; : 16; seqno dstport : 32; : 16; ackno seqno : 32; : 32; dataoffset ackno : 32; : 4; res dataoffset : 4; : 4; window res :: 4; 16; checksum tcp_flags : 16; : 8; urgentptr window :: 16; 16; } checksum : 16; } urgentptr : 16; parser } tcp { extract(tcp); } return parser ingress; tcpv2 { }... }... extract(tcpv2); set_metadata(flow.tcp_flags, tcpv2.tcp_flags); return ingress;

P4 Match-Action Pipeline Compile Performance Overhead? OVS Match-Action Pipeline Kernel DPDK

Throughput (Gbps) Throughput on L2L3-ACL benchmark application 50 45 40 35 30 25 20 15 10 5 0 64 128 192 256 Packet Size (Bytes) PISCES v0.1 OVS Performance overhead of ~40%

Causes for the Cost on Performance Match-Action Tables Cache Misses Ingress Packet Checksum Verify Match-Action Cache Checksum Update Packet Deparser Egress CPU Cycles per Packet

Factors affecting CPU Cycles per Packet a. Fully-specified Checksum b. Parsing unused header fields and more

Checksum Verify ( version, ihl, diffserv, totallen, identification, flags, fragoffset, ttl, protocol, hdrchecksum, srcaddr, dstaddr) Checksum Update ( version, ihl, diffserv, totallen, identification, flags, fragoffset, ttl, protocol, hdrchecksum, srcaddr, dstaddr) Ingress Packet Checksum Verify Match-Action Pipeline Checksum Update Egress

Checksum Verify ( version, ihl, diffserv, totallen, identification, flags, fragoffset, ttl, protocol, hdrchecksum, srcaddr, dstaddr) Incremental Checksum Update (ttl) Ingress Packet Checksum Verify Decrement(ttl) Checksum Update Egress

Selective Parsing L3 L2 L4 L2 Ingress Packet Match-Action Pipeline Packet Deparser Egress

Throughput (Gbps) Throughput on L2L3-ACL benchmark application 16 14 12 10 8 6 PISCES v0.1 incremental Checksum Header Memory Locality Selective Parsing PISCES v1.0 Native OVS 4 2 0 64 Packet Size (Bytes) Performance overhead of < 2%

Summary P4 PISCES vswitch - Quickly develop and deploy new packet header format. - With hardly any performance cost! OVS

Questions? Learn more and Try PISCES here: http://pisces.cs.princeton.edu