BESS: A Virtual Switch Tailored for NFV

Slides:



Advertisements
Similar presentations
Interconnection Networks: Flow Control and Microarchitecture.
Advertisements

RAMP Gold : An FPGA-based Architecture Simulator for Multiprocessors Zhangxi Tan, Andrew Waterman, David Patterson, Krste Asanovic Parallel Computing Lab,
Virtual Switching Without a Hypervisor for a More Secure Cloud Xin Jin Princeton University Joint work with Eric Keller(UPenn) and Jennifer Rexford(Princeton)
An Overview of Software-Defined Network Presenter: Xitao Wen.
Towards Virtual Routers as a Service 6th GI/ITG KuVS Workshop on “Future Internet” November 22, 2010 Hannover Zdravko Bozakov.
Keith Wiles DPACC vNF Overview and Proposed methods Keith Wiles – v0.5.
Network Implementation for Xen and KVM Class project for E : Network System Design and Implantation 12 Apr 2010 Kangkook Jee (kj2181)
An Overview of Software-Defined Network
Data Center Virtualization: Open vSwitch Hakim Weatherspoon Assistant Professor, Dept of Computer Science CS 5413: High Performance Systems and Networking.
Xen and the Art of Virtualization. Introduction  Challenges to build virtual machines Performance isolation  Scheduling priority  Memory demand  Network.
Microsoft Virtual Academy Module 4 Creating and Configuring Virtual Machine Networks.
QTIP Version 0.2 4th August 2015.
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.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
1 Liquid Software Larry Peterson Princeton University John Hartman University of Arizona
OFLOPS: An Open Framework for OpenFlow Switch Evaluation Haris Rotsos, Andrew W. Moore, University of Cambridge Nadi Sarrar, T-Labs/TU Berlin Steve Uhlig,
Srihari Makineni & Ravi Iyer Communications Technology Lab
VSPERF – Test and Performance Subgroup Demo 26/08/2015 Maryam Tahhan.
Intel Research & Development ETA: Experience with an IA processor as a Packet Processing Engine HP Labs Computer Systems Colloquium August 2003 Greg Regnier.
Gerald Kunzmann, DOCOMO Carlos Goncalves, NEC Ryota Mibu, NEC
Full and Para Virtualization
Introduction Why are virtual machines interesting?
Introduction to Mininet, Open vSwitch, and POX
Presented by: Xianghan Pei
NEWS: Network Function Virtualization Enablement within SDN Data Plane.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
An open source user space fast path TCP/IP stack and more…
NFP: Enabling Network Function Parallelism in NFV
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
The Holmes Platform and Applications
Shaopeng, Ho Architect of Chinac Group
/csit CSIT Readout to FD.io Board 08 February 2017
Instructor Materials Chapter 7: Network Evolution
TLDK Transport Layer Development Kit
New Approach to OVS Datapath Performance
NFV Compute Acceleration APIs and Evaluation
Univa Grid Engine Makes Work Management Automatic and Efficient, Accelerates Deployment of Cloud Services with Power of Microsoft Azure MICROSOFT AZURE.
/csit CSIT Readout to FD.io Board 09 February 2017
GPUNFV: a GPU-Accelerated NFV System
VPP overview Shwetha Bhandari
Heitor Moraes, Marcos Vieira, Italo Cunha, Dorgival Guedes
PISCES: A Programmable, Protocol-Independent Software Switch
Towards a single virtualized data path for VPP
6WIND MWC IPsec Demo Scalable Virtual IPsec Aggregation with DPDK for Road Warriors and Branch Offices Changed original subtitle. Original subtitle:
DPDK API and Virtual Infrastructure
Sebastian Solbach Consulting Member of Technical Staff
Are You Insured Against Your Noisy Neighbor - A VSPERF Use Case
NFV PoC update November, 2017 Wouter Huisman.
NPAR Dell - QLogic October 2011.
Red Hat User Group June 2014 Marco Berube, Cloud Solutions Architect
Networking overview Sujata
NFP: Enabling Network Function Parallelism in NFV
Converging Approaches in Software Switches
Overview Introduction VPS Understanding VPS Architecture
Indigo Doyoung Lee Dept. of CSE, POSTECH
GEN: A GPU-Accelerated Elastic Framework for NFV
NFP: Enabling Network Function Parallelism in NFV
Virtio Keith Wiles July 11, 2016.
Open vSwitch HW offload over DPDK
Cloud Web Filtering Platform
All or Nothing The Challenge of Hardware Offload
IP Control Gateway (IPCG)
NetCloud Hong Kong 2017/12/11 NetCloud Hong Kong 2017/12/11 PA-Flow:
Myrinet 2Gbps Networks (
Elmo Muhammad Shahbaz Lalith Suresh, Jennifer Rexford, Nick Feamster,
NitroSketch: Robust and General Sketch-based Monitoring in Software Switches Alan (Zaoxing) Liu Joint work with Ran Ben-Basat, Gil Einziger, Yaron Kassner,
Flow Processing for Fast Path & Inline Acceleration
A Closer Look at NFV Execution Models
Openstack Summit November 2017
Presentation transcript:

BESS: A Virtual Switch Tailored for NFV Sangjin Han, Aurojit Panda, Brian Kim, Keon Jang, Joshua Reich Sai Edupuganti, Christian Maciocco, Sylvia Ratnasamy, Scott Shenker

Why Another Virtual Switch? Does OpenVSwitch meet all the requirements for NFV? Performance OVS (~1Mpps)  OVS-DPDK (~15Mpps) cf. Vanilla DPDK (~59Mpps/core) Packet I/O is only half of the problem Flexibility Custom actions? Stateful packet processing? Extensibility Must enable NFV controller evolution Easily add support for new/niche protocols NF NF NF

Alternative Approach with BESS Modular pipeline as a dataflow graph Each module can run arbitrary code Not limited by Match/Action semantics Independently extensible & optimizable Everything is programmable, not just flow tables. You pay only for what you use. No performance cost for unused features NF

BESS: Berkeley Extensible Software Switch BESS is a programmable platform for vSwitch dataplane Clean-slate internal architecture with NFV in mind Highly extensible & customizable Readily deployable with backward compatibility … all with extreme performance: Sub-microsecond latency Line-rate 40Gbps with min-sized packets on two cores (> 2x faster than other virtual switches)

BESS in E2 VNF VNF VNF Per-server datapath configuration High-level NFV policy E2 controller BESS E.g., VNF Connection Forwarding Graph HW NIC HW NIC Flow table configuration HW Switch(es)

BESS Architecture Overview BESS daemon (running in user space)

BESS Architecture Overview APP APP OS OS VM VM Socket APP Native APP APP APP Linux VMM Host Zerocopy Container DPDK VHost BESS daemon (running in user space) Legacy DPDK PMD

BESS Architecture Overview APP APP OS OS VM VM Socket APP Native APP APP APP Linux VMM Host Zerocopy Container DPDK VHost Legacy DPDK PMD

BESS Architecture Overview APP APP OS OS Controller VM VM Socket APP Native APP APP APP Linux VMM Host Zerocopy Container DPDK VHost Legacy DPDK PMD

Modular Datapath Pipeline External ports are interconnected with “modules” in a dataflow graph (like the Click modular router). You can compose modules to implement your own datapath. Developing a new module is easy. Port Port Port Port

Resource-Aware CPU Scheduler BESS allows flexible scheduling policies for the data path. In terms of CPU utilization and bandwidth. Examples: Port Port Port Port

Resource-Aware CPU Scheduler BESS allows flexible scheduling policies for the data path. In terms of CPU utilization and bandwidth. Examples: “Run on core 0” Port Port Port Port “Run on core 1”

Resource-Aware CPU Scheduler BESS allows flexible scheduling policies for the data path. In terms of CPU utilization and bandwidth. Examples: “Higher priority” Port Port Port Port “Lower priority”

Resource-Aware CPU Scheduler BESS allows flexible scheduling policies for the data path. In terms of CPU utilization and bandwidth. Examples: Port Port Port Port “Limit by 1 Mpps / 5 Gbps”

Resource-Aware CPU Scheduler BESS allows flexible scheduling policies for the data path. In terms of CPU utilization and bandwidth. Examples: “Should not consume more then 30% of CPU” Port Port Port Port

Control Interface JSON-like structured messages between BESS and controller 3 ways to control the BESS datapath Python/C APIs Scriptable configuration language Cisco iOS-like CLI Everything is run-time configurable!

Control Interface Port initialization Controller / operator

Module initialization Control Interface Controller / operator Module initialization Dataflow setup

Module configuration (e.g., flow table update) Control Interface Module configuration (e.g., flow table update) Controller / operator Port stats monitoring

Performance?

Minimum Framework Overhead Packet buffer allocation/deallocation ~10 CPU cycles per packet CPU scheduling ~50 CPU cycles per round Scales well with thousands of traffic classes Dynamic per-packet metadata attributes Zero instruction overhead for access Optimal CPU cache-line usage

Performance Evaluation OPNFV VSPERF usage models

1. Phy-Phy Performance 40G line-rate Source: Irene Liew, Anbu Murugesan – Intel IOTG/NPG

1. Phy-Phy Performance Data sources: - BESS, Vanilla DPDK, VPP: measured on a 2.6GHz Xeon E5-2650 v2 machine - OVS, Linux L2/L3: Emmerich et al. “Performance Characteristics of Virtual Switching”, CloudNet 2014 - OVS-DPDK: Intel ONP 2.1 Performance Test Report - mSwitch: (link bottlenecked w/ large batch sizes @ 3.2GHz) Honda et al. “mSwitch: A Highly-Scalable, Modular Software Switch”, SOSR 2015

2. Phy-NF-Phy Performance VM bottleneck Source: Irene Liew, Anbu Murugesan – Intel IOTG/NPG

3. Phy-NF-NF-Phy Performance BESS outperforms OVS-DPDK by a factor of 4-5x* * Source: Intel ONP 2.1 Performance Test Report

Multi-Core/Thread Scalability

Round-Trip Latency RTT: 8.22us RTT: 8.82us NF NF DPDK DPDK RTT: 8.22us HW NIC HW NIC NF NF BESS BESS RTT: 8.82us Increase of 0.60us (0.15us per BESS traverse) DPDK DPDK HW NIC HW NIC

Summary BESS is an ideal vSwitch platform for NFV High performance Sub-microsecond latency/jitter Small packet 40Gbps throughput with only 1-2 cores Full flexibility and extensibility Available on GitHub: https://github.com/netsys/bess Under BSD3 License ~30k lines in C and Python, supporting Linux 3.x / 4.x (x86_64), DPDK 16.04 QEMU/KVM virtual machines, Docker/LXC containers