Case study

Using ONOS SDN controller with P4-programmable smartNICs to offload VNFs

Low-level programming
SDN & NFV
Software Development
Acceleration and Offloading

Business background

Client type

Client type

A data center provider
Business goal

Business goal

Increase network performance in a data center by offloading Virtual Network Functions (VNFs) to smartNIC

Our approach

  • Provide a team of network and software engineers with expertise in SDN and software development (as well as low-level hardware programming)
  • Create a solution architecture
  • Develop a PoC to offload an example VNF (firewall) to the smartNIC
  • Set up and test the PoC
  • Reuse the PoC for other virtual network functions (load balancer, NAT, etc.)

Business benefits

  • Increased performance: offloading VNFs to the smartNIC optimized overall network performance in DC by reducing the delays.
  • Increased flexibility: using a programmable smartNIC made it possible to quickly change the configuration on it to adjust to the dynamic and evolving distribution of workloads throughout the entire datacenter.
  • Compatibility assured: integrating a smartNIC with the existing SDN controller allows for operational simplicity and consistency with the overall intra-DC networking policies.

Technical highlights

  • Used a Netronome Agilio smartNIC offering P4 support.
  • Developed an example firewall implementation in P4 for the smartNIC.
  • Selected ONOS, an open-source SDN controller with P4Runtime support to control the smartNIC.
  • Developed a dedicated smartNIC proxy software that converts P4Runtime protocol to the Thrift protocol to control the smartNIC data plane.
  • Developed a custom control plane application in ONOS.
  • Set up a demo of the solution.

Technology stack

p4_logo
onos_logo
netronome_logo
grpc_logo
java_programming_language_logo
python_logo

Get your project estimate

For businesses that need support in their software or network engineering projects, please fill in the form and we'll get back to you within one business day.