spdk and dpdk banner

SPDK

DPDK

Try Instantaneous High-Speed Large Data Transfer with SPDK and DPDK Solutions

Boost performance of your network and data storage infrastructure with our SPDK/DPDK and VPP consulting services

We employ SPDK and DPDK technologies to create comprehensive solutions for data storage and other networking applications that require high-performance data processing – up to 10 times faster than the Linux kernel network stack.

With DPDK, we speed up network traffic processing, avoiding congestion and reducing latency. And using SPDK, we ensure extra-fast memory access and data storage. Explore how our partnerships have resulted in success stories!

We’d love to hear about your project!

Whom We Serve

icon

Telecommunications service providers

icon

Network equipment manufacturers

icon

Finance and trading enterprises

icon

Cloud service providers

icon

Data centre operators

icon

Cybersecurity companies

icon

Businesses using high-traffic CDNs and networks

icon

Companies providing IoT and IIoT systems

icon

Enterprises creating automotive solutions

Ensure robust traffic management and security with our custom SPDK and DPDK solutions!

Use Cases of SPDK and DPDK Technologies

 
  • Packet processing: IP routing, network address translation (NAT), deep packet inspection (DPI)
     
  • Software for satellite communications: separating TCP traffic and adding traffic speed limits to ensure equal user access to quality communications with Intel DPDK
     
  • Virtual machine migration: migrating VMs between servers without downtime
     
  • Network load balancing: distributing traffic across multiple servers to improve performance
     
  • Edge computing: expanding edge computing applications and enabling real-time processing and analysis of data close to the source
     
  • High-frequency trading: processing large volumes of data at high speeds for competitive advantage
     
 
  • Big data analytics: processing large datasets to extract insights
     
  • Video streaming software: receiving and storing 8K video streams from eight cameras simultaneously
     
  • Scientific computing: simulating complex phenomena in fields like physics, chemistry, and engineering
     
  • Fraud detection: identifying and preventing fraudulent transactions
     
  • Software-defined networking (SDN) acceleration: accelerating SDN controllers and data paths
     
  • Firewalling: blocking unauthorised traffic and protecting against cyberattacks
     
  • 5G core networks: accelerating 5G core networks
     

Powering Your Solutions with NVIDIA Network Hardware

Our engineers utilise advanced network hardware to provide high-performance SPDK, DPDK, and data centre solutions. Below are the network interface cards (NICs) and data processing units (DPUs) we work with:

ConnectX-7

s905x4

It supports 400Gb/s throughput with state-of-the-art offloading for security, storage, and NVMe over Fabrics (NVMe-oF). Perfect for high-demand data centres and cloud workloads.

ConnectX-6

s905x4

This dual-port NIC delivers up to 200Gb/s speed with enhanced RDMA and NVMe-oF support, optimising data transfer for storage and high-performance computing (HPC) environments.

ConnectX-5

s905x4

It offers up to 100Gb/s throughput with hardware acceleration for network virtualisation and storage protocols, making it well-suited for cloud, SDN, and SPDK applications.

BlueField DPU Controller

s905x4

BlueField combines network, storage, and security acceleration into one platform. Offloading CPU tasks enhances performance for virtualisation and AI in data centres.

Explore Our Case Studies

TCP PEP and QoS Software Modules for the HTS Satellite Communication System

 

We developed TCP PEP and QoS modules using DPDK for an HTS satellite communication system for a leading satellite telecom equipment supplier.

satellite
Geostationary satellites introduce high signal delay, impacting TCP performance. Our solution employed a specialised TCP Performance Enhancing Proxy (PEP) using Intel DPDK. This approach separated and directed TCP traffic, eliminating the need for client-side configurations.
Additionally, we implemented traffic speed limits with DPDK. Due to varied client usage patterns, some users consumed more bandwidth, affecting overall communication quality. Our solution allocated specific speeds to ensure consistent, high-quality communication for all users.

 

System Software for High-Speed Network Data Storage

Our team is working on system software development for high-speed network storage, handling simultaneous 8K video streams from eight cameras.
A key system function involves decoding and synchronising two 8K video streams.

SPDK integration is a potential enhancement for this ongoing project.

We utilise DPDK to enhance processes by:
  • accessing fragmented frames, reassembling them in physical memory, and sending them for decoding while simultaneously saving to disk;
  • utilising zero-copy bypasses the kernel, resulting in 2–3 times performance improvement over standard methods like Linux sockets.

Why Promwad

icon lightbulb

Network expertise

Leveraging 20 years of experience and in-depth knowledge of various network technologies, protocols, and device configurations, we provide end-to-end software design services for companies of any size.

icon diamond

Focus on security

We implement robust security protocols, including access control, encryption, multi-factor authentication, and other advanced measures, to safeguard your systems against network threats.

icon technologies

Flexibility

Our comprehensive experience allows us to join telecom software development projects as fast as possible. At Promwad, we offer various cooperation models to ensure flexible resource allocation.

Ready to elevate your network and storage performance with SPDK and DPDK technologies?

Drop us a line about your project. We will contact you today or the next business day. All submitted information will be kept confidential.

FAQ

What traffic processing operations do you deploy with SPDK and DPDK technologies?

 

  • Traffic policing with speed limits to distribute bandwidth equitably among multiple users
  • Filtering by specified criteria such as MAC and IP addresses, VLAN tags
  • Traffic capture for monitoring, analysing, and troubleshooting
  • Inspection and pattern matching for verification and security purposes
  • Encryption, decryption, and hashing for protection
  • Load balancing with traffic distribution across multiple interfaces or paths
 

What is DPDK and how does it impact networking?

 

DPDK is an open-source library and driver suite designed for Linux. It was initially developed for Intel platforms but now supports various hardware from multiple vendors.

  • Efficient network handling: DPDK reduces overhead and latency, which is crucial for sectors like trading, finance, gaming, and large data centres. It enhances cybersecurity by enabling packet access and DDoS attack prevention.
     
  • Driver optimisation: DPDK drivers directly interface with the network interface controller (NIC), bypassing Linux kernel adapters and ensuring speed and simplicity through zero-copy operations.
     
  • Comprehensive API: The DPDK API offers extensive functionalities and auxiliary functions, streamlining complex tasks and operations.

 

Data processing with DPDK

 

What are eBPF and XDP, and how do they differ from SPDK and DPDK?

 

eBPF (extended Berkeley Packet Filter) and XDP (eXpress Data Path) are technologies utilised for high-performance packet processing within the Linux kernel.

eBPF enables the execution of sandboxed programs within the kernel, while XDP specialises in high-performance packet processing at the earliest stage of the Linux networking stack. 

Conversely, SPDK and DPDK focus on enhancing data storage and packet processing at the user space level. While eBPF and XDP operate within the kernel, providing integration advantages, SPDK and DPDK operate in user space, emphasising performance optimisation and flexibility for data storage and packet processing applications.

 

XDP vs DPDK: What factors should I consider when choosing technologies for packet processing?

 

When deciding between XDP and DPDK, it's crucial to consider the practical implications:

  1. The application's performance requirements. XDP operates within the Linux kernel, offering high-performance packet processing at the earliest stage of the networking stack, potentially providing lower latency compared to DPDK's user space processing.
  2. The level of flexibility needed. DPDK offers extensive libraries and APIs for building custom networking applications in user space, while XDP specialises in efficient packet processing within the kernel.
  3. Integration requirements. XDP seamlessly integrates into the Linux kernel, while DPDK requires additional setup and configuration as it operates in user space.
 

What are the advantages of using DPDK vs eBPF, and vice versa?

 

DPDK vs. eBPF is a choice that depends on specific project requirements and preferences. DPDK excels in high-performance packet processing by bypassing the Linux kernel networking stack and operating directly in user space, potentially offering lower latency and higher throughput than eBPF. DPDK also provides extensive libraries and APIs for building custom networking applications.

On the other hand, eBPF offers a flexible framework for running sandboxed programs within the kernel, not limited to packet processing. It provides seamless integration into the Linux kernel, making it ideal for tasks beyond networking, such as security, monitoring, and tracing.

 

Should I utilise eBPF/XDP or SPDK in my project?

 

Choosing between eBPF/XDP and SPDK depends on the specific requirements of your project. If your project primarily involves packet processing within the Linux networking stack, especially at the earliest stage for performance optimisation, eBPF and XDP would be suitable choices. They offer seamless integration into the Linux kernel, providing flexibility for various networking tasks.

If your project focuses on storage performance optimisation at the user space level, SPDK would be more appropriate. SPDK offers libraries and tools designed to enhance storage performance, making it ideal for storage-related applications.

Â