OPNFV Fast Data Stack on FOSDEM 2017

On February 5th, we presented the OPNFV Fast Data Stack on FOSDEM conference that is hosted every year at Brussels’ Université libre de Bruxelles. It was a great gathering of software developers who presented their work in the form of 30-minute presentation. People came not just from Europe, but also oversees and other parts of world.  Lectures took place in more than 30 rooms and more than 600 speakers were presenting their projects.

There was a number of interesting lectures not only in the field of networking, but also robotics, neural networks, microprocessors, algorithms and data modeling. Some presenters were members of large teams, some were presenting their own projects. The scope was very wide including almost every programing language one had ever heard about. Visitors could see everything from startups up to trending projects such as Kubernetes, OpenDaylight or OpenStack. Every lecture was recorded and videos can be found on the FOSDEM website. Our presentation was scheduled in the NFV (Network Function Virtualization) section.

 

About virtualization and networking

Virtualization became very popular over the last years. Virtual machines curb the need for physical resources and make data centers more flexible and accessible. Today’s servers are really powerful and therefore able of hosting many VMs. This shed a new point of view on networking and, as a response, it got virtualized too in the form of virtual forwarders – processes capable of forwarding traffic within a hosting machine. OVS and VPP are the popular technologies these days and both support a very powerful set of data plane libraries and network interface controller drivers for fast packet processing, called DPDK. You may think of VPP and OVS as virtual forwarders between physical NICs and the virtual machines.

 

What is OPNFV Fast Data Stack?

OPNFV FDS makes it easier to maintain complicated data center environments. It’s a complex multilayer suite that includes software components designed for creating virtual machines and forwarding traffic. All the components are built with Apex installer on given set of host machines that need to match demanding performance needs and have a basic connectivity as well. As a result, a complex stack is created, providing a rich user-interface to network operators. The input exposes abstract set of tools for managing the life cycle of network, virtual machines and policies across given nodes.

 

Under the hood

Let’s have a look on key components of the OPNFV FDS suite. As mentioned above, multiple components operate at different layers of the stack. Each component participates in transforming defined abstraction to an actual configuration for underlying infrastructure.  On top of the stack resides OpenStack. This software is known for its scalability, loads of plugins and vast community. FDS uses OpenStack for managing VMs and for defining forwarding topology and policy rules. Forwarding inputs can be characterized by elements such as networks, subnets, routers or ports. Policy inputs by security groups and security group rules. One layer bellow is the OpenDaylight controller, also popular for its community, and plugins.

In the OPNFV FDS setup, it is used as a controller unit that consumes OpenStack’s abstractions and applies it to an underlying infrastructure using OpenDaylight’s Group Based Policy plugin. When the plugin detects that a policy can be resolved for at least two endpoints, configuration is generated and flushed to forwarders. OPNFV FDS setup, presented on FOSDEM, is using VPP in the hypervisor to forward packets between physical NICs and the VMs.

VPP, Vector Packet Processing, is a virtual switching/routing technology operating at a very impressive rate. It is impressively fast thanks to the DPDK library and CPU cache optimizing techniques. The beauty of Vector Packet Processing is that instead of handling packets one by one, VPP will perform one micro-operation after another to a group of packets which performs better with heavy load and results in increased throughput. VPP exposes C APIs and CLI for configuration. However, it’s not yet possible to use C API remotely because VPP does not run any management client.  Therefore, Honeycomb is used in the setup to provide NETCONF interface for the VPP forwarder. OpenDaylight uses NETCONF to talk to a HC Agent.

 

Supported scenarios

The FDS Demo presented on FOSEDEM showed the L2 scenario, meaning that L2 traffic is passed via VXLAN tunnels between the nodes. Traffic is routed on centralized node and routing is not performed by VPP itself, but by the OpenStack Qrouter service that is interconnected into every L2 domain in VPP via tap ports. NAT and routing towards external networks is also done by Qrouter.

Moving forward, FDS project is also looking at the L3 scenarios, where routing could be either distributed or centralized and will be done by VPP process together with NAT. All this efforts need attention on every layer of the stack including Apex installer.

Conclusion

We were pleased to present the FDS project at the FOSDEM conference. We believe that OPNFV FDS is a key component in network virtualization with a very bright future. For more information about the setup, and project itself, please visit https://wiki.opnfv.org/display/fds.

Tomáš Čechvala

and

Michal Čmarada

Software Engineers