RSSAmplifier

Blog

Denys Haryachyy

DPDK & VPP Expert | High-Performance Networking Tutorials & Consulting

haryachyy.wordpress.comRSS feed ↗50 posts

Latest posts

Steering DDoS Traffic by Protocol: The RSS Trick That Saves a 100 GbE Filter

Mixed-protocol floods collapse a ConnectX's receive rate. Steering each protocol to its own queues fixes it — but no single config fits every attack. Continue reading

Mellanox CQE Compression: Why Mixed Traffic Collapses 100 GbE Receive

A single extra L4 protocol collapses a 100 GbE ConnectX from line rate to ~20% receive — same frame size, same rate. The root cause is CQE compression breaking on mixed traffic (ConnectX-5 Ex and ConnectX-7). Continue reading

Simulating DDoS Attacks at 100GbE Line Rate with TRex

Simulate volumetric DDoS attacks with TRex at 100GbE line rate (142 Mpps): UDP, SYN, ACK, ICMP, and IP-fragment floods with spoofed source IPs. Continue reading

Writing a Line-Rate VPP Plugin: The Data-Plane Techniques That Actually Matter

TL;DR. At 100 GbE a small-packet plugin gets tens of cycles per packet. The surprise: on a modern VPP node most of the classic data-plane tricks batching, prefetch, inlining already measure ~0, because VPP applies them one layer down. Continue reading

Learning VPP: Inside TupleMerge, the ACL Plugin’s Classifier

TL;DR. TupleMerge, the classifier inside VPP’s ACL plugin, is tuple-space search plus one liberty: a rule may live in a table coarser than its own mask. Insert = join or relax; buckets past 39 candidates split; lookup = one probe Continue reading

Docker Compose or Containerlab? Choosing the Right Tool for a VPP Network Lab

Building a three-node VPP lab the declarative way with Containerlab: two Alpine endpoints and a VPP router that binds the veths via af_packet, forwards between two subnets, and drops a destination with a blackhole route. Run without installing Containerlab and without sudo; real ping/traceroute/iperf3 traffic, about 16 Gbit/s through the software dataplane. Continue reading

Hardware-in-the-Loop CI: Line-Rate VPP Testing over Tailscale

TL;DR. Testing a data plane at 100GbE line rate needs real NICs running VPP — which no cloud CI runner has. So an ephemeral GitHub Actions runner joins a private two-machine lab over Tailscale, deploys its code to a scratch Continue reading

Learning TRex: Generating 100GbE Line-Rate Traffic on a Mellanox ConnectX-5

Generate 100GbE line-rate traffic (142 Mpps) with TRex 3.06 on a Mellanox ConnectX-5: hardware, the frame-size math, config, streams, and tuning. Continue reading

Tuning a VPP Data Plane to 100GbE Line Rate: Cycle Budget, NIC Rings, and RSS

TL;DR. A VPP software data plane drops packets at full 100GbE line rate (~140 Mpps) on one server — but staying there is a systems problem, not an algorithm one. Two things decide it, neither about the classifier: the per-packet Continue reading

Build a Network Lab on Your Laptop: GNS3 with VyOS and VPP, Step by Step

GNS3 turns your laptop into a full network lab: real router software, real links, real packets — no hardware. Pair it with VyOS, a free, Debian-based network OS with a Cisco/Juniper-style CLI, and you have an environment to practice routing, Continue reading

Learning VPP: Filtering Packets at 100GbE Line Rate

How a VPP software data plane drops packets at 140 Mpps: a flow cache + tuple-space search, the per-packet cycle budget, and why the NIC ring — not the CPU — is the ceiling. Continue reading

Learning VPP: Inside bihash, the Lock-Free Hash Table

How VPP's bihash works: buckets, pages and KVPs, lock-free lookups with no reader locks, collision-driven page growth, and how to size it (bihash_48_8). Continue reading

Learning DPDK: Eliminating NIC Receive Drops at 100GbE

Why a DPDK poll-mode app drops packets at 100GbE and how to stop it: pinning NIC IRQs off the worker cores, plus isolcpus, nohz_full and rcu_nocbs. Continue reading

Learning Mellanox ConnectX-5: CQE Compression Tuning

Enable and tune CQE compression on the Mellanox ConnectX-5 (DPDK 25.07): the completion-queue mechanics that let a 64-core EPYC 7742 absorb 142 Mpps at 100GbE. Continue reading

Learning BPF: Offloading DPDK AF_XDP Traffic with XDP

Learn how to write a BPF program that offloads packet rewriting from a DPDK AF_XDP application to the kernel XDP hook. This guide covers BPF maps, shared kernel-userspace headers, incremental checksum updates, FIB forwarding, and lazy flow offloading for high-speed UDP proxies. Continue reading

Learning VPP: Syncing IPsec SA Counters to Linux XFRM via NEWAE

When VPP handles IPsec dataplane traffic, it maintains its own per-SA byte and packet counters internally. The Linux kernel s XFRM subsystem, however, never sees those packets and has no way to update its own accounting. The result: ip -s xfrm Continue reading

Simplify VPP CLI with vppctl-ai for Natural Language Communication

Transform your VPP CLI experience with vppctl-ai! Say goodbye to complex syntax. Explore this natural language assistant for high-performance networking on Continue reading

Learning VPP: XFRM Plugin for Seamless Linux Integration in IPsec Management

Unleash the power of high-performance networking with VPP's XFRM plugin. Learn how to seamlessly integrate Linux tools for optimal IPsec management. Take y Continue reading

Learning whisper.cpp: Transcribing RTP Audio

Unleash the power of real-time speech processing with whisper.cpp! Discover how AudioTranscriber revolutionizes your network. #DPDK #VPP #NetworkingBenefit Continue reading

Learning whisper.cpp: Transcoding RTP Audio

Unleash the power of DPDK and VPP for efficient networking! Learn how to optimize your network operations with our step-by-step guide. Level up your networ Continue reading

Learning VPP: Benchmarking TAP scaling

Discover the power of VPP and TAP scaling in this benchmarking experiment. Uncover networking benefits and optimize performance. Learn more now! Continue reading

Learning VPP: Automating PPPoE server session creation

Automate PPPoE session creation in VPP with ease! Discover how to streamline your networking tasks effortlessly. Boost efficiency and scalability today! #D Continue reading

Learning VPP: Bypassing IKEv2 NAT-T using IPsec policy

Explore how to bypass IKEv2 NAT-T using IPsec policy with VPP enhance your networking skills. Learn how to optimize your setup. Dive in now! Continue reading

Learning VPP: IPsec policy in tunnel mode

Discover the benefits of VPP and DPDK in networking. Learn about testing IPsec policies in tunnel mode. Dive into configuring VPP for optimized performance Continue reading

Learning VPP: IPsec policy in transport mode

Explore IPsec policy in transport mode with VPP. Learn to implement ESP header for secure communication. Get Ubuntu, VPP v23.02, and set up network namespa Continue reading

Learning IKEv2: IPSEC traffic drops between Strongswan server and VPP

Learn how to fix IPSEC traffic drops between Strongswan server and VPP using DPDK and VPP. Optimize your networking performance now! Continue reading

Learning IKEv2: Debug Strongswan

Learn how to debug Strongswan server with GDB in this comprehensive guide. Download, build, and debug Strongswan effortlessly. #Networking #DPDK #VPP. Unco Continue reading

Learning IKEv2: Decrypt Strongswan IKE traffic

Learn how to decrypt IKE traffic in Strongswan using IKEv2. Enhance your networking skills with DPDK and VPP. Take action now! Continue reading

Learning VPP: Building DPDK with debug symbols

Learn how to build DPDK with debug symbols for VPP version 23.02 to enhance networking capabilities. Optimize your systems with ease. Start now! Continue reading

Learning VPP: Two instances in different namespaces

Explore the benefits of running two VPP instances in separate namespaces for enhanced networking capabilities. Step-by-step guide and configuration include Continue reading

Learning VPP: Configuring IPsec IKEv2 on Ubuntu 18.04 VMs

Learn how to set up an IPsec connection using IKEv2 with VPP 20.05. Generate keys, certificates more. Dive into the world of networking. #DPDK #VPP #Netw Continue reading

Learning VPP: OSPF routing protocol

Uncover the intricacies of enabling OSPF on VPP router with FRR and delve into the seamless integration of VPP's router plugin and Linux network stack. Continue reading

Learning VPP: Setting up NAT for Internet Connectivity

Learn how to set up Network Address Translation (NAT) in VPP for Internet access. Configure NAT features in endpoint-dependent mode for optimal performance Continue reading

Learning VPP: Understanding ABF in VPP Networking

Explore ABF (ACL Based Forwarding) in VPP: maximizing control over forwarding with ACL rules instead of IP destination address lookups. Learn testing tips Continue reading

Learning VPP: Python API Usage for Integrated Control Plane Apps

Discover the power of VPP's Python API in this informative guide. Learn about its capabilities and functionalities for network automation. Continue reading

Learning VPP: IPsec GRE over VxLAN

Discover how to set up a secure IPsec GRE tunnel on VxLAN in this VPP networking tutorial. Encrypt traffic while hiding IP addresses effectively. Continue reading

Learning VPP: ACL Plugin for Traffic Classification

Learn how to effectively utilize the ACL plugin in VPP for traffic classification using L3/L4 header fields. Dive into VAT CLI for configuration and integr Continue reading

Learning DPDK: Traffic generator TRex

Learn how to set up and use TRex, a powerful traffic generator based on DPDK for efficient networking performance. Perfect for network optimization! Continue reading

Learning VPP: VxLAN over IPsec

Discover how to implement VxLAN over IPsec in VPP to create a secure layer-2 tunnel. Learn about the benefits of this networking setup. Continue reading

Learning VPP: Trace with Wireshark

Learn how to trace packets in VPP with Wireshark, a powerful debugging tool for investigating network traffic issues efficiently. Continue reading

Learning VPP: VXLAN tunnel configuration and setup

Learn how to set up a VXLAN tunnel in VPP networking, an L2 overlay over L3 networks using UDP. Complete guide with VPP configuration examples. Continue reading

Learning DPDK: Understanding the Benefits of Huge Pages

Unlock the potential of DPDK with huge pages for improved networking performance. Learn how to optimize with different page sizes in Linux for speed. Continue reading

Learning DPDK : Capture to Kafka

Learn how to capture 10Gbps traffic into Apache Kafka using DPDK, with IP filtering hardware details. Explore DPDK Kafka integration. Continue reading

Learning DPDK: Understanding Symmetric RSS for Efficient Packet Processing

Explore the advanced networking concept of Symmetric RSS in DPDK/VPP for efficient packet processing. Learn how to optimize CPU cores for enhanced performa Continue reading

Learning VPP: Setting Up Internet Access with Routing, NAT, and ARP Proxy

Learn how to provide internet access for a network namespace using VPP. Set up routing, NAT, and ARP proxy features for seamless connectivity. Continue reading

Learning VPP: Implementing Flow Table for TCP Connection Tracking

Explore how to implement a flow table in VPP for efficient TCP connection tracking with bidirectional hash tables and a timer wheel. Efficient network mana Continue reading

Learning VPP: Packets Tracing and Interface Types for Network Namespace Connections

Learn how to trace packets in VPP with this comprehensive guide. Discover ways to run VPP on your laptop and utilize various interface types effectively. Continue reading

Learning VPP: Understanding Code Style Guidelines for Better Development

Discover the importance of code style guidelines in the DPDK/VPP networking world. Learn how VPP's precise coding standards lead to cleaner and more mainta Continue reading

Learning VPP: Understanding Hash and Pool Implementation in Vector Packet Processing

Discover how VPP implements hash and pool structures for networking with DPDK, combining vectors and bitmaps efficiently. Dive into VPP's multiple hash imp Continue reading

Learning VPP: CLI Debugging Guide

Discover the power of VPP CLI in networking with this insightful guide. Learn how to debug and add new commands in VPP for enhanced networking capabilities Continue reading