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.

  • IPv6
  • Snabb
  • LuaJIT
  • lwAFTR
  • Pflua

Featured Media

Snabb, a toolkit for user-space networking (FOSDEM 2018)
How to write your own NIC device driver (and why) (FOSDEM 2018)
Carrier Grade Lightweight 4-over-6 with Juniper vMX and Snabb
Production high-performance networking with Snabb and LuaJIT (Linux.conf.au 2017)
Snabb, a toolkit for building user-space network functions (ES.NOG 20)
Snabb Switch: Riding the HPC wave to simpler, better network appliances (FOSDEM 2016)
High-performance packet filtering with Pflua (FOSDEM 2015)
Property-based testing an open-source compiler (FOSDEM 2015)


Jessica Tallon 12/03/2018

An excursion in VPP

Continue readingAn excursion in VPP

Diego Pino 15/02/2018

The B4 network function

Some time ago I started a series of blog posts about IPv6 and network namespaces. The purpose of those posts was preparing the ground for covering a network function called B4 (Basic Bridging BroadBand). The B4 network function is one of the main...

Andy Wingo 05/02/2018

notes from the fosdem 2018 networking devroom

Greetings, internet!I am on my way back from FOSDEM and thought I would share with yall some impressions from talks in the Networking devroom. I didn't get to go to all that many talks -- FOSDEM's hallway track is the hottest of them all -- but...

Jessica Tallon 25/01/2018

Hacking on User Space Networking

Continue readingHacking on User Space Networking

Asumu Takikawa 15/01/2018

Supporting both VMDq and RSS in Snabb

In my previous blog post, I talked about the support libraries and the core structure of Snabb’s NIC drivers. In this post, I’ll talk about some of the driver improvements we made at Igalia over the last few months. (as in my previous post,...


Rework readfile function and add comment on how to calculate maxnumnodes

Rework readfile function and add comment on how to calculate maxnumnodes

Diego Pino14/12/2017

Merge pull request #998 from Igalia/fix-issue-975

Merge pull request #998 from Igalia/fix-issue-975 Make "snabbvmx top" print out only counters that are defined

Diego Pino06/11/2017

Merge pull request #997 from dpino/rename-expralarm

Merge pull request #997 from dpino/rename-expralarm Rename ExprAlarm to CallbackAlarm

Diego Pino06/11/2017

Do not print out counters which are not defined

Do not print out counters which are not defined

Diego Pino06/11/2017

Fix typo in require

Fix typo in require

Diego Pino06/11/2017