snabb switch simple and fast packet networking / luke gorrie (snabbco)
TRANSCRIPT
![Page 1: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/1.jpg)
Snabb Switch:Simple and fast packet networkingLuke Gorrie
![Page 2: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/2.jpg)
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 networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/3.jpg)
Overview
• What’s this all about?
• What is the software architecture?
• How do some real applications work?
![Page 4: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/4.jpg)
Network infrastructure
• Switch, router, firewall, traffic shaper, NAT, VPN, DDoS-protector, ...
• Over $100 billion each year.
• How about open source on x86 servers?
![Page 5: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/5.jpg)
Server
![Page 6: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/6.jpg)
Software?
![Page 7: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/7.jpg)
Snabb Switch
• packetblaster: infinite load generator.
• VPLS: Virtual Private LAN Service.
• NFV: Fast Virtio-net for KVM/OpenStack.
• lwAFTR: Lightweight IPv4/IPv6 translation.
• LISPER: Locator/ID Separation Protocol.
• Snabbwall: Stateful firewall appliance.
![Page 8: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/8.jpg)
Community
• Network operators.
• Professional open source developers.
• Creative people on the internet.
![Page 9: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/9.jpg)
How does it work?
![Page 10: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/10.jpg)
Style
• High-level: written in Lua (LuaJIT).
• Low-level: built-in device drivers.
• Avoids slow and complicated things:threads, locks, interrupts, kernel modules.
![Page 11: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/11.jpg)
Less is more
• 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 networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/12.jpg)
Architecture
![Page 13: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/13.jpg)
Packet
struct packet {
char data[10240];
int length;
};
![Page 14: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/14.jpg)
Link
struct link {
struct packet *packets[256];
int read, write;
};
![Page 15: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/15.jpg)
App
MyApp = {}
function MyApp:pull () ... end
function MyApp:push () ... end
![Page 16: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/16.jpg)
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 networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/17.jpg)
packetblaster
![Page 18: Snabb Switch simple and fast packet networking / Luke Gorrie (SnabbCo)](https://reader034.vdocuments.site/reader034/viewer/2022052117/58ade1551a28abeb2e8b4b13/html5/thumbnails/18.jpg)
snabbnfv