Snabb Switch: Simple and fast packet...

19
Snabb Switch: Simple and fast packet networking Luke Gorrie

Transcript of Snabb Switch: Simple and fast packet...

Page 1: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Snabb Switch: Simple and fast packet networkingLuke Gorrie

Page 2: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Hello

• Started Snabb Switch project.

• Many years in networking vendors/startups.

• Tech lover: Lua, Erlang, Lisp, Forth, ...

• Now 100% open source.

Page 3: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Overview

• What is the project all about?

• What is the software architecture?

• How do some real applications work?

Page 4: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Network industry

• Lots of wonderful products.

• Open to new ideas.

• How far can we push open source on x86?

Page 5: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

x86 server

Page 6: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Software?

Page 7: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Snabb Switch

• packetblaster: infinite load generator.

• VPLS: Virtual Private LAN Service.

• NFV: Fast Virtio-net for KVM/OpenStack.

• lwAFTR: Lightweight IPv4/IPv6 translation.

• LISP: Locator/ID Separation Protocol.

• Snabbwall: Stateful firewall appliance.

Page 8: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Community

• Network operators.

• Professional open source developers.

• Network equipment vendors.

• Creative people.

Page 9: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

How does it work?

Page 10: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Style

• High-level: written in Lua.

• Low-level: built-in device drivers.

• Avoids complicated things: threads, locks, interrupts, kernel modules.

Page 11: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Budget

• 10,000 lines of code.

• 1 second compile (1 minute with deps).

• 1 megabyte stand-alone executable.

Page 12: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Architecture

Page 13: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Packet

struct packet {

char data[10240];

int length;

};

Page 14: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

Link

struct link {

struct packet *packets[256];

int read, write;

};

Page 15: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

App

MyApp = {}

function MyApp:pull () ... end

function MyApp:push () ... end

Page 16: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

App CatalogueBasic I/O Processing

join intel10g flooding_bridge

repeater loadgen learning_bridge

sink pcap_reader keyed_ipv6_tunnel

source pcap_writer ipv6_nd

split raw_socket ipv6_ns

tee solarflare pcap_filter

vhost_user rate_limiter

Page 17: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

packetblaster

Page 18: Snabb Switch: Simple and fast packet networkingblog.zhaw.ch/icclab/files/2015/11/Snabb-Switch.pdf · Hello • Started Snabb Switch project. • Many years in networking vendors/startups.

snabbnfv