05

Networking

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
  • VPP
  • Snabb
  • lw4o6
  • LuaJIT
  • Pflua

Featured Media

D. Fast, Simple User-Space Network Functions with Snabb (RIPE 77)
Lightweight 4-over-6: One step further Dual-Stack Lite Networks (RIPE 76)
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)

Updates

Asumu Takikawa 14/11/2018

Data Path Objects in VPP

A while back, I wrote a blog post explaining some of the basics of writing plugins for the VPP networking toolkit. In that previous post, I explained a few mechanisms for hooking a plugin into VPP’s graph architecture so that your code can process...

Diego Pino 13/09/2018

YANG alarms

Alarm management is a fundamental part of network monitoring. The motivation for defining a standard alarm interface for network devices isn’t new. In the early 90s, ITU-T standardized X.733 (OSI model). This continued in mobile networks with the...

Diego Pino 14/06/2018

Fast checksum computation

An Internet packet generally includes two checksums: a TCP/UDP checksum and an IP checksum. In both cases, the checksum value is calculated using the same algorithm. For instance, IP header checksum is computed as follows: Set the packet’s IP header...

Jessica Tallon 16/05/2018

IPFIX Performance

Continue readingIPFIX Performance

Asumu Takikawa 23/03/2018

How to develop VPP plugins

Recently, my teammate Jessica wrote an excellent intro blog post about VPP. VPP is an open source user-space networking framework that we’re looking into at Igalia. I highly recommend reading Jessica’s post before this post to get aquainted...

Commits

Skip memory binding in blackisted kernels

Skip memory binding in blackisted kernels

Diego Pino16/10/2018

Merge pull request #1182 from dpino/show-nexthop-mac

Merge pull request #1182 from dpino/show-nexthop-mac Show nexthop MAC in top and yang model

Diego Pino15/10/2018

Show nexthop MAC in top

Show nexthop MAC in top It's desirable to be able to retrieve nexthop information via `snabb config get-state` too. According to the state information of the schema, information about queues, interfaces and resolved-macs should also be printed....

Diego Pino15/10/2018

Make flow-label YANG leaf default to 0

Make flow-label YANG leaf default to 0

Diego Pino15/10/2018

Allow setting flow-label in ingress packets

Allow setting flow-label in ingress packets

Diego Pino15/10/2018