Keeping Up with the Promise of a Fully Software Network Data Plane, Combining simpler programmability with better performance

The challenges: performance and ease of use

While the networking industry decisely moves towards fully software network functions, the end of Moore's law and Dennard's scaling is posing dounting challenges on virtual network function designers. Providing the target level of thorughput and latency, if at all possible, is hard, takes a long time and requires extremely skilled programmers. Hardware vendors are addressing the challenge deploying a new generation of Network Interface Cards (NICs), which can offload part of the computation from the servers' general purpose CPU. These Smart NICs give the needed horse power to handle future networking workloads, but at the cost of making network functions development even harder, requiring new skills such as FPGA and Network Processors programming. Performing cutting-edge research, Axbryd provides a technology that guarantees very high-performance, while keeping a lean and easy programming model.

It's all about abstractions!

Building the logic of a network function is already complex without getting lost in the low level implementation details that have to do with packet processing, memory allocation and handling, data structures, etc. Abstracting away such details was the first target of Axbryd's researchers. Surprisingly, the core of Axbryd's technology relies on an already well-known and widely used concept in network functions design: Finite State Machines (FSMs, for friends).

FSMs are already widely used to design network functions at all levels, from IP packets handling to congestion control protocols, and as such they are a familiar and easy-to-use abstraction for network functions designers and developers. Axbryd makes FSMs the central abstraction for many of its technological building blocks, enabling a unique common programming model for network functions running in software, FPGAs, network processors or even ASICs. The result? Network functions are developed in few hours, programming them is as easy as writing python scripts and, with no changes, they can run on both a CPU at 10s of Gbps or on a Smart NIC at 100s of Gbps.

A collection of building blocks

Axbryd's quest towards better networking technologies is just started, but important milestones have been reached already. As we advance technology, we publish here the building blocks that step by step move us closer to our vision:

FlowBlaze

FlowBlaze simplifies the design and implementation of stateful network functions. Using a Finite State Machine to model state evolution, and providing high-performance execution engines for state machines, FlowBlaze enables quick development cycles and scalable state handling.

Coming soon...

We are working hard to release our next building block, stay tuned for the next update!