snabb-libmoon-compat is a prototype fork/rewrite of the Snabb network function virtualization toolkit. It is designed to run Snabb programs on top of libmoon. It exposes DPDK NICs as Snabb apps. All NICs supported by libmoon work out of the box.
The repository can be found on GitHub.
snabb-libmoon-compat was written as part of my Bachelor's thesis. The thesis PDF can be downloaded here (presentation slides).
snabb-libmoon-compat is merely a prototype. It has not been tested. It is not production-ready.
The following instructions install snabb-libmoon-compat and launch an echo server on DPDK device 0.
Run dpdk-devbind.py --status to see which NICs are available and which drivers are loaded.
snabb-libmoon-compat was benchmarked using program/echo with different chain-lengths on a variety of systems. It performed as good as, or better than Snabb. A single-core peak forward rate of 18.65 Mpps was achieved on a dual Intel Xeon E5-2630 v4 system in combination with an Intel XL710 40GbE NIC. See chapter 5 of the thesis.
snabb-libmoon-compat is partially compatible with Snabb Core. As opposed to Snabb there's no need to compile snabb-libmoon-compat; it's written entirely in Lua with no C dependencies. The code was kept very similar to Snabb. Check out Snabb's Reference Manual.
snabb-libmoon-compat is released under the terms of the Apache 2.0 License. Files that reuse Snabb's code have been marked as such.
I plan on working on snabb-libmoon-compat from time to time.
Some future development directions are: