Header Background Image

Software product engineering

Low-level programming

Customizing your software and hardware to your precise needs

Our experience in a nutshell

Low-level programming is our thing. We build solutions that integrate programmable hardware with SDN software.

DPDK

DPDK

link
SmartNIC

SmartNIC

link
P4

P4

link
FPGA

FPGA

link

DPDKDPDK

DPDK (Data Plane Development Kit) is a set of libraries for implementing user space drivers for NICs (Network Interface Controllers). It is an open-source project developed under the umbrella of the Linux Foundation.


DPDK allows you to offload TCP packet processing from the operating system kernel to processes running in user space. This leads to higher computing efficiency and higher packet throughput than you would have using only the interrupt-driven processing provided in the kernel.

How we help

  • Develop DPDK Poll Mode Drivers for various hardware platforms
  • Integrate DPDK drivers with a number of applications
  • Contribute to your DPDK framework by fixing issues and extending the interfaces according to new PMD driver requirements
  • Develop tests to demonstrate precisely how switching to DPDK will improve your solution performance

SmartNICSmartNIC

SmartNICs allow you to perform advanced operations on packets. These include tunnel termination, applying sophisticated flow classification and filtering mechanisms on packets, traffic metering and shaping.


These functions have typically been performed by a CPU, but smartNIC allows you to offload them, increasing your network’s performance as the server can then focus on its primary tasks.


Common use cases for smartNICs include hyperscale cloud providers (like Google Cloud Platform, Amazon Web Services, Microsoft Azure), which use smartNICs to optimize data center performance, and telcos, which employ smartNICs to accelerate their VNF applications.

How we help

For smartNIC users: For smartNIC users:

  • Implement a desired network function using P4 (if it is supported by the given smartNIC)
  • Write eBPF programs to be executed within the host system or SmartNIC kernel for improving performance and the solution’s maintenance costs
  • Adapt the user's existing software (e.g. SDN controller) to control the given smartNIC at runtime

For smartNIC manufactures: For smartNIC manufactures:

  • Develop firmware for smartNIC
  • Develop drivers (DPDK PMD or kernel module)
  • Offer QA—building automated test environments for performance and functional tests

P4P4

P4 is a domain-specific programming language that allows a programmer to arbitrarily decide how the packets traversing programmable dataplane blocks are processed.


Possible P4 use cases for datacenter networks, enterprise networks and telco networks include:

  • Building flexible leaf-spine fabric: for instance, based on white box switches that are easily reconfigured when needed thanks to the use of a P4-programmable data plane.
  • VNF-offloading: execute some typical network functions such as a firewall, a NAT or a load balancer directly on a programmable HW like a switch or smartNIC in a DC environment.
  • Service chaining: employ a P4-defined dataplane in the process of creating service chains between virtual or physical service appliances (or mixed).
  • Inband Network Telemetry (INT): use P4 to program a dataplane to gather telemetry metadata for each packet. Such data can include packet routing paths, ingress and egress timestamps, latency the packet has experienced, queue occupancy in a given node, and egress port link utilization.

How we help

  • Consult the use case with the client, focusing on all possible traffic flows to be served within it
  • Verify which P4 architecture model (PSA, V1Model, PISA or other) is supported by a given target (switch, smartNIC) and prepare a P4 implementation for this precise model
  • Design the entire dataplane processing pipeline (match-action tables for each control block) using P4
  • Create a P4 code compilation and build using the tools provided by the target manufacturer
  • Conduct functional tests of a newly created dataplane
  • Adapt the client’s existing Control/Management software (e.g. SDN controller) to control the given P4-target at runtime
  • Learn more

FPGAFPGA

A Field Programmable Gate Array (FPGA) is a programmable integrated circuit that can be programmed for a specific use after it has been manufactured.


FPGAs are more flexible than standard ASIC-s (Application Specific Integrated Circuits) such as CPUs and GPUs, which are not customizable.


FPGAs are used in many markets: data centers, medical devices, image and video processing, high-performance computing and data storage, to name a few.

How we help

Our FPGA-related services include:

  • IP Cores integration and development (VHDL)
  • HW simulation (e.g. using Active-HDL, ModelSim)
  • Smoke tests executed directly on hardware
  • API level tests of hardware designs
  • Building full, system-level, dynamic acceptance tests alongside a complete virtual environment reflecting the end user’s use cases
  • Building full CI/CD pipelines and verifying the hardware design in a continuous mode with full visibility for developers, QA and managers (domain, software and hardware knowledge on board)