- Notifications
You must be signed in to change notification settings - Fork298
Snabb: Simple and fast packet networking
License
snabbco/snabb
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Snabb (formerly "Snabb Switch") is a simple and fast packet networking toolkit.
We are also a grassroots community of programmers and networkengineers who help each other to build and deploy new networkelements. We care about practical applications and finding simplerways to do things.
The Snabb community are active inapplying modern programming techniques,do-it-yourself operator networking,high-level device drivers,fast userspace virtio networking,universal SIMD protocol offloads, andapplying compiler technology to networking.
You are welcome to join our community! Scroll down to the bottom fortips on how you can get involved.
Snabb is written using these main techniques:
- Lua, a high-level programming language that is easy to learn.
- LuaJIT, a just-in-time compiler that is competitive with C.
- Ethernet I/O with no kernel overhead ("kernel bypass" mode).
Snabb compiles into a stand-alone executable calledsnabb
. This single binary includes multiple applications and runs onany modernLinux/x86-64 distribution. (You couldthink of it as abusybox fornetworking.)
The first generation of Snabb applications include:
Snabb NFV makes QEMU/KVM networkingperformance practical for applications that require high packet rates,such as ISP core routers. This is intended for people who want toprocess up to 100 Gbps or 50 Mpps of Virtio-net network traffic perserver. We originally developed Snabb NFV to support DeutscheTelekom'sTeraStreamnetwork.
You can deploy Snabb NFV stand-alone with QEMU or you can integrate itwith a cloud computing platform such as OpenStack.
Snabb lwAFTR is the internet-facing component of"lightweight 4-over-6" (lw4o6), an IPv6 transition technology. An ISPcan use lwAFTR functions to provide its users with access to the IPv4internet while maintaining a simple IPv6-only internal network. An ISPdeploying Snabb lwAFTR can also configure lw4o6 to share IPv4 addressesbetween multiple different customers, ameliorating the IPv4 addressspace exhaustion problem and lowering costs. See thelwAFTRdocumentation for more details.
VPWS (Virtual Private Wire Service) is a Layer-2 VPN application beingdeveloped by Alexander Gall atSWITCH. His Githubvpn
branchis the master line of development.
packetblaster generates load byreplaying apcap format tracefile or synthesizing customizable packets onto any number of Intel 82599 10-Gigabit networkinterfaces. This is very efficient: only a small % of one core per CPUis required even for hundreds of Gbps of traffic. Because so littleCPU resources are required you can run packetblaster on a small serveror even directly on a Device Under Test.
snsh (Snabb Shell) is a tool for interactivelyexperimenting with Snabb. It provides direct access to all APIsusing a Lua shell. You can operate snsh either from script files orfrom an interactive shell.
Setting up a Snabb development environment takes around oneminute:
$ git clone https://github.com/SnabbCo/snabb$ cd snabb$ make -j$ sudo src/snabb --help
Thesnabb
binary is stand-alone, includes all of the applications,and can be copied between machines.
For example, to install on the local machine and use as a load generator:
$ cp src/snabb /usr/local/bin/$ sudo snabb packetblaster replay capture.pcap 01:00.0
Basic support for building and running snabb in a Docker container is available via
$ make docker
This will build a tiny snabb container (8MB), ready to be used:
$ docker run -ti --rm snabb --help
Or simply run snabb, as you would under linux. This is made possible by using a wrapper shell script thatgets linked to as part of 'make docker':
$ src/snabb --help
Here are the ways you can get involved:
- Use the Snabb applications in your network.
- Create your very own application:Getting Started.
- Create Github Issues with your ideas and questions and problems.
- Join theSnabb Slack chat to hang out and shoot the breeze.
About
Snabb: Simple and fast packet networking