Towards the Next Level Over Intel® DPDK – SPDKv1.1.0

avatar October 12, 2014

Towards the Next Level Over Intel® DPDK

Putting all its knowledge that has been accumulated through years of experience with customers of high end of tens of gigabit packet processing infrastructure, Silicom is about the release yet another software package, aimed to further simplify the integration of software application over Intel® DPDK infrastructure.

Shortly after having released software package over Intel® DPDK (SPDKv1.0-6), that enabled quick and simple DPDK integration for network monitoring systems, Silicom continue expand the feature set and interfaces to new directions with upcoming new release.
In addition to the capture and replay capabilities with enhanced buffers management library of last release, the new upcoming release will offer API for more types and applications, and more types of processing capabilities, including:
• Cluster (multiple parallel contexts) processing and processing load balancing through receive side scaling (RSS)
• Interface to DPI applications, both open source and commercial
• Silicom’s Time stamp adapters support
• Record traffic to disk
More information about each feature is brought herein.

Cluster Processing
Incoming traffic arriving for processing from multiple ingress ports, especially at high rates (10GbE and more), require a degree of distribution management among CPU’s processing cores, in order to benefit from the processing power of the hardware. SPDK cluster API allows several types or models of cluster threading, to best suit the required packet processing.
Single thread model, implements single receiving thread, merging traffic from one or more ingress ports, and enables multiple threaded distribution of processing to multiple data queues, belonging to designated processing context.

towards the next level over intel dpdk-1

Figure 1 – SPDK Cluster Threading Models

Another option for clustering breaks the receive logic and the merge logic to separate processing contexts. Third option, spawns separate processing context per each receiving ingress port.
Queues distribution for processing is implemented using Receive Side Scaling capability of the underlying supported NIC, with well tested and define Toeplitz hash function. RSS distribution allow both symmetric and non-symmetric processing load balancing across processing cores.

DPI Interface
Deep packet inspection (DPI) is the basis for intrusion detection systems (IDS) and intrusion prevention systems (IPS). Ever growing traffic means that more power is required to inspect it. SPDK features a simple yet powerful API for DPI implementations interface with DPDK. A Snort data acquisition (DAQ) component is included in the coming release, enabling running Snort at the highest packet rates possible. Moreover, another interface for commercial DPI engines is included in the release, easily leveraging its packet classification capabilities of this implementation from around 5gbps process power per CPU core, to close 10gbps line rate per core.

Time Stamp Support
Silicom time stamp NIC solution offer unmatched precision in packet time stamping, of down to 8 ns accuracy resolution of incoming traffic. Upcoming SPDK release will support for Silicom time stamp NIC, by enabling time stamp reading, and packet indexing according to is time stamp. For more information about Silicom time stamping solution see:

dpi classification performance

Figure 2 – DPI Improvement with SPDK

Record Traffic to Disk

A complementary capability for packet capturing and indexing is the ability to save the flow of traffic in a storage device. SPDK upcoming release includes API and sample programs, enabling line rate capability to store incoming traffic onto disk. This capability is integrated with and complement Silicom time stamp NIC solution