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.
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.