Software Defined Networking represents a big opportunity for ISPs and telecommunication companies as it allows them to customize and to extend hardware in new ways never imagined before. It also represents a big opportunity for network-appliances vendors to offer more flexibility to their customers. Igalia's networking team applies rock-solid compilers knowledge to solve novel networking problems. Snabb, a high-performance networking toolkit, is our preferred choice for building next-generation networking software.
We develop and deploy real NFV solutions built with Snabb today.
Snabb works similarly to other high-performance networking toolkits such as DPDK. It relies on kernel-bypass to squeeze the maximum performance of off-the-shell high-speed network cards, mostly Intel. Snabb is built on top of LuaJIT, an ultra-fast JIT compiler and interpreter. That allow us to develop new network-functions quickly without losing performance power.
We are longtime contributors to Snabb. Some of our work include the implementation of an IPv6-transition mechanism and the contribution of a pure-Lua packet filtering library:
- lwAFTR. It's our largest piece of NFV software contributed to Snabb. lwAFTR is the routing technology of the lw4o6 standard (RFC 7596). lw4o6 is a brand-new IPv4-to-IPv6 transition technology that aims to substitute other technologies such as Dual-Stack or Carrier-Grade NAT. Our data-plane solution is RFC compliant and highly excels in performance.
- Pflua. It's a high-performance packet-filtering tool similar to tcpdump. At its core, pflua is a compiler. It translates packet-filtering expressions to native Lua code, which is later run by LuaJIT. We have applied our extensive compilers knowledge to build an outstanding packet-filtering tool, which is now integrated in Snabb.
Snabb is aimed to run on commodity hardware (Xeon) powered by 10G, 25G or 100G cards. You can build a high-performance network appliance at a fraction of the cost of conventional solutions. All these features make Snabb an ideal tool for Network Function Virtualization.
If you need to implement a new RFC, would like to deploy lw4o6 or you are considering extending your expensive networking equipment by adopting Snabb, Igalia has the best team to talk to.
Some time ago, in a Hacker News thread an user proposed the following use case for Snabb: I have a ChromeCast on my home network, but I want sandbox/log its traffic. I would want to write some logic to ignore video data, because that’s big. But I...
In a previous article I introduced Snabb, a toolkit for developing network functions. In this article I want to dive into some practical examples on how to use Snabb for network function programming. The elements of a network function A network function...
Another day, another post about Snabb. Today, I’ll start to explain some work I’ve been doing at Igalia for Deutsche Telekom on driver development. All the DT driver work I’ll be talking about was joint work with Nicola Larosa. When...
Last month I attended the 20th edition of GORE (the Spain’s Network Operator Group meeting) where I delivered an introductory talk about Snabb (Spanish). Slides of the talk are also available online (English). Taking advantage of this presentation I...
As you know if you’ve been following this blog, at Igalia we build network functions using the Snabb toolkit. When we’re not directly working on customer projects, we often invest time into building new features into Snabb. One of these...
Merge pull request #1200 from dpino/memoize-specialized-functions Memoize specialized functionsDiego Pino14/12/2018
Memoize specialized functions Calling these functions several times without memoizing them can cause a TABOV (table overflow) exception.Diego Pino14/12/2018
Merge pull request #1193 from Igalia/fix-strncpy-errors Fix errors due to bad strncpy behavour.Jessica Tallon14/12/2018
Fix errors due to bad strncpy behavour. As of GCC 8.1 a compiler error (stringop-truncation) will be raised as strncpy has potentially unsafe behavour, which is the case here. If strncpy's source (path in our case) is longer than the...Jessica Tallon14/12/2018
Merge pull request #1199 from dpino/assert-limit-width Add assert limit for width valueDiego Pino12/12/2018