📄️ Bandwidth Constrictor Sequencer
Provide sequential bandwidth shaping with programmable transitions between different bandwidth limits over time. Allow for dynamic bandwidth allocation scenarios, enabling simulation of variable network conditions, traffic bursts, and bandwidth fluctuations. Essential for testing application behavior under varying network conditions and validating adaptive streaming algorithms.
📄️ Bandwidth Constrictor
Simulate network bandwidth limitations by constraining the data transmission rate. Act as a traffic shaper, queuing packets when the transmission rate exceeds the configured bandwidth limit. Essential for testing application behavior under bandwidth-constrained conditions and simulating real-world network capacity limitations.
📄️ Bandwidth Limit Constant
Component to simulate bandwidth limit in data transmission.
📄️ Bandwidth Limit Dynamic
Component to simulate a dynamic bandwidth limit in data transmission.
📄️ Bandwidth Tracker
Component to track bandwidth (B/s) over a configurable sliding window.
📄️ Bandwidth Traffic Source
Component to generate traffic with a specified bandwidth.
📄️ Bomb
Test-only component that triggers failures after a specified delay.
📄️ Boringssl Decrypt
Provide enterprise-grade decryption using Google's BoringSSL cryptographic library. Serve as the counterpart to BoringSSL encryption, supporting cipher suites including AES-128/256-GCM and ChaCha20-Poly1305. Perform authenticated decryption with automatic integrity verification. Must be configured with the same cipher suite as the corresponding encryption component.
📄️ Boringssl Encrypt
Provide enterprise-grade encryption using Google's BoringSSL cryptographic library. Supports multiple cipher suites including AES-128/256-GCM and ChaCha20-Poly1305, each offering different performance and security characteristics. BoringSSL is a security-focused fork of OpenSSL used in Google's production systems. Provides authenticated encryption with associated data (AEAD) ensuring both confidentiality and integrity. Ideal for high-security applications requiring proven cryptographic implementations.
📄️ Boringssl Poly1305 Checker
Verifies message authentication using the Poly1305 algorithm via BoringSSL implementation. Serves as the counterpart to BoringSSL Poly1305 Signer, validating authentication tags to ensure data integrity and authenticity. Uses the same 32-byte shared secret to verify that packets have not been tampered with or corrupted during transmission. Rejects packets with invalid authentication tags, providing strong protection against data manipulation attacks.
📄️ Boringssl Poly1305 Signer
Provide message authentication using the Poly1305 algorithm via BoringSSL implementation. Poly1305 is a high-speed one-time authenticator that generates cryptographic message authentication codes (MACs) to verify data integrity and authenticity. Essential for detecting tampering or corruption in data streams where integrity verification is required.
📄️ Chacha20 Decrypt
Provide high-performance stream decryption using the ChaCha20 cipher algorithm. Serve as the counterpart to ChaCha20 encryption, restoring original plaintext from encrypted data streams. Must be paired with ChaCha20Encrypt component for end-to-end data protection in the pipeline.
📄️ Chacha20 Encrypt
Provide high-performance stream encryption using the ChaCha20 cipher algorithm. Encrypt packet payloads using a 256-bit key, nonce, and configurable number of rounds. Essential for protecting data confidentiality in transit while maintaining high throughput in the pipeline.
📄️ Client Id Reader
Extracts and validates client identification information from packet headers. Reads client IDs previously added by ClientIDWriter components and performs filtering based on configured client identity. Enables client-specific processing pipelines, access control enforcement, and traffic isolation in multi-tenant environments. Can be configured to accept packets from specific clients while rejecting others.
📄️ Client Id Writer
Adds client identification information to packet headers for routing and access control. Prepends a unique client ID to each packet, enabling downstream components to identify the source client and apply appropriate policies, routing decisions, or security measures. Essential for multi-tenant environments where different clients require isolated processing, custom configurations, or access control enforcement.
📄️ Constant Auth Sign
Provide simple authentication by appending a constant signature value to packets. Use a predetermined constant value as a basic authentication token, suitable for scenarios requiring lightweight identity verification. Essential for basic packet validation, simple access control, and testing authentication mechanisms.
📄️ Constant Auth Verify
Validate packet authenticity by verifying constant signature values. Serve as the counterpart to ConstantAuthSign, checking for the presence and correctness of predetermined authentication tokens. Reject packets with missing or incorrect constant values, providing basic access control and packet validation.
📄️ Defragmentizer
Reconstruct original packets from fragments created by the fragmentizer component. Reassemble multiple fragment pieces into complete packets by tracking fragment sequences and maintaining reassembly buffers. Essential counterpart to the fragmentizer, enabling end-to-end packet delivery across networks with MTU limitations.
📄️ Delay Constant
Component to introduce a fixed delay in transmission.
📄️ Delay Dynamic
Component that applies a time-varying delay (with optional jitter) to each packet. The delay evolves through a sequence of configurable phases.
📄️ Delay Fixed Sequencer
Introduces programmable fixed delays with sequential transitions between different delay values over time. This sophisticated impairment component enables simulation of dynamic network latency conditions by cycling through predefined delay sequences with configurable intervals. Essential for evaluating application performance under time-varying latency conditions, testing adaptive protocols, and simulating real-world network delay patterns in controlled environments.
📄️ Delay Fixed
Introduce a consistent, predetermined delay to all packets passing through the pipeline. Simulate constant network latency conditions such as those found in dedicated links or steady-state networks. Useful for testing application behavior under predictable delay conditions and establishing baseline performance measurements.
📄️ Delay Jitter
Introduce variable network delay by combining a base delay with random jitter variation. Simulate real-world network conditions where packet transit times fluctuate due to routing changes, network congestion, and queuing variations. Essential for testing application resilience to timing variations and validating adaptive protocols.
📄️ Flow Combiner
Merges traffic from multiple input streams into a single output flow. Performs the inverse operation of a splitter by aggregating packets from various sources into a unified data stream. Handles multiplexing and scheduling of packets from different inputs. Essential for converging parallel processing results, aggregating redundant paths, or collecting data from multiple sources into a single processing pipeline.
📄️ Flow Filter
Provide advanced packet filtering and routing based on network layer metadata and transport protocol information. This flow control component analyzes IPv4 headers and transport layer details to make routing decisions, supporting filters for protocol type (TCP/UDP), source/destination IP addresses, and port numbers. Essential for implementing network access control, traffic classification, load balancing, and service-specific routing in pipeline architectures.
📄️ Fragmentizer
Segment large packets into smaller fragments to comply with Maximum Transmission Unit (MTU) constraints. Automatically divide oversized packets into appropriately sized pieces that can traverse network links with smaller MTU values. Essential for ensuring packet delivery across networks with varying MTU requirements. Must be paired with a defragmentizer at the receiver.
📄️ Gate
Provide programmable traffic steering with dynamic routing decisions between multiple inputs and outputs. Acts as a configurable switch that can forward packets from specific inputs to designated outputs or drop them entirely based on runtime policies. Essential for implementing adaptive networks, failover mechanisms, and sophisticated traffic engineering policies within pipeline architectures.
📄️ Gilbert Elliot Loss
Simulate correlated packet loss using the Gilbert-Elliot two-state Markov model. Model realistic network behavior where losses tend to occur in bursts rather than independently. Operate with two states: 'good' (low loss probability) and 'bad' (high loss probability), with configurable transition probabilities between states. Essential for testing protocols that must handle correlated loss events and burst recovery scenarios.
📄️ Kodok Decoder
Recovers original data from Kodok's advanced Random Linear Network Coded packets. Features intelligent decoding algorithms that adapt to the sophisticated repair scheduling used by the Kodok encoder. Handles multi-stage repair configurations and variable generation sizes automatically. Provides optimal decoding performance by efficiently utilizing all received coded and repair packets. Essential for high-performance error recovery in demanding network environments where maximum throughput and minimal latency are critical requirements.
📄️ Kodok Encoder
Provide adaptive forward error correction using Kodok's advanced Random Linear Network Coding (RLNC) implementation. Features sophisticated repair scheduling with configurable phases that determine when and how many repair packets are generated. Supports multi-stage repair configurations allowing fine-tuned trade-offs between latency and error correction capability. Includes adaptive timeout mechanisms to handle varying network conditions and traffic patterns. Essential for high-performance applications requiring optimal bandwidth efficiency and robust error recovery in challenging network environments.
📄️ Latency Tracker Receiver
Measure end-to-end latency by processing timestamp information from incoming packets. Works in conjunction with LatencyTrackerSender to calculate round-trip times and one-way delays. Extracts timing metadata from packet headers and computes latency statistics over configurable sampling intervals. Essential for network performance validation, SLA monitoring, and real-time application quality assessment.
📄️ Latency Tracker Sender
Masures end-to-end latency by adding timestamp information to outgoing packets. Embeds precise timing metadata into packet headers to enable round-trip latency measurement when paired with a corresponding receiver component. Essential for network performance monitoring, quality of service validation, and identifying processing delays in the pipeline.
📄️ Loss Constant
Component to simulate packet loss in data transmission.
📄️ Loss Dynamic
Component to simulate packet loss in data transmission. This component allows for a sequence of loss phases with specified durations and probabilities of packet loss.
📄️ Loss Gilbert Elliot
Component to simulate Gilbert-Elliot loss model in data transmission.
📄️ Loss Tracker Receiver
Provide comprehensive packet loss detection and measurement by analyzing sequence numbers and timing information from tagged packets received from LossTrackerSender components. This component calculates loss rates, identifies missing packets, and generates loss statistics with configurable sampling intervals. Essential for SLA compliance monitoring, network troubleshooting, quality assurance testing, and establishing performance baselines for network optimization and capacity planning decisions.
📄️ Loss Tracker Sender
Provide packet loss tracking and measurement capabilities by adding sequence numbers and timing information to outgoing packets for end-to-end loss analysis. This component works in tandem with LossTrackerReceiver to establish packet loss measurements across network paths. Essential for network quality assessment, SLA monitoring, performance debugging.
📄️ Observer
Development-only component that provides passive monitoring and inspection of data flows . Acts as a transparent pass-through that logs or analyzes traffic characteristics for debugging and development purposes. Enables detailed examination of packet flows, timing behavior, and data patterns at any point in the pipeline. Essential for troubleshooting, performance analysis, and understanding pipeline behavior during development phases.
📄️ Parity 2d Decoder
Provide systematic two-dimensional parity decoding for forward error correction using row and column redundancy recovery algorithms. Essential for applications requiring reliable data recovery with predictable correction capabilities, legacy system compatibility, and simple error correction suitable for various network conditions.
📄️ Parity 2d Encoder
Provide systematic two-dimensional parity encoding for forward error correction using row and column redundancy matrices. Essential for applications requiring simple yet effective error correction, legacy system compatibility, and predictable correction capabilities with known overhead.
📄️ Peer Router
Provide bidirectional address learning and automatic routing for peer-to-peer communication patterns. This networking component captures source addresses from incoming packets and automatically uses them as destination addresses for outgoing traffic, enabling dynamic peer discovery and response routing. Essential for implementing peer-to-peer protocols, automatic response routing, client-server communication patterns, and dynamic endpoint discovery in distributed systems.
📄️ Peer Writer
Stamps outgoing packets with specified remote endpoint addresses for routing and destination control. This networking component provides centralized endpoint management by applying consistent destination addressing to packet flows, enabling traffic steering, load balancing, and service routing. Essential for implementing traffic distribution, service discovery integration, dynamic endpoint switching, and centralized routing policies in distributed systems and load balancing scenarios.
📄️ Periodic Burst Loss
Simulates periodic burst packet loss patterns for realistic network impairment modeling. Essential for testing application resilience against bursty loss patterns common in wireless networks, congested links, and buffer overflow scenarios. Provides predictable loss patterns for repeatable testing while simulating realistic packet loss clustering effects observed in real networks.
📄️ Raft
Implements the Raft algorithm as a reliable transport protocol with integrated forward error correction and automatic repeat request (ARQ) mechanisms. This sophisticated transport layer provides guaranteed ordered delivery, fault tolerance, and data integrity through distributed consensus principles. Essential for mission-critical applications requiring guaranteed delivery, distributed system coordination, and reliable data replication across unreliable network infrastructures.
📄️ Random Burst Loss
Simulate randomized burst packet loss patterns with configurable loss probability and burst characteristics for realistic network impairment modeling. Essential for evaluating application resilience against clustered packet loss, testing error recovery mechanisms, and simulating realistic network degradation conditions.
📄️ Reed Solomon Decoder
Recover lost data using Reed-Solomon erasure correction decoding algorithms. Serves as the receiver-side counterpart to Reed-Solomon encoding, reconstructing original data blocks from received data and repair symbols. Can recover up to the number of repair symbols that were added during encoding, even when packets are lost in bursts. Must be paired with Reed-Solomon encoder using matching configuration parameters.
📄️ Reed Solomon Encoder
Provide forward error correction using Reed-Solomon erasure coding algorithms. Adds redundant repair symbols to data blocks, enabling recovery from packet losses. Configurable symbol count and repair ratio allow tuning between overhead cost and loss recovery capability. Essential for reliable data transmission over lossy networks, particularly effective against burst losses and suitable for real-time applications where retransmission delays are unacceptable.
📄️ Relay Network Lookup
Provide intelligent network address to client pipeline mapping services for relay infrastructure with bidirectional traffic routing capabilities. This essential relay component manages the mapping between incoming network addresses and their corresponding client pipeline identifiers, enabling dynamic client discovery and traffic steering in multi-tenant relay environments. Essential for implementing relay servers, multi-tenant network services, dynamic client onboarding, and scalable traffic distribution in distributed systems requiring centralized traffic management and client isolation.
📄️ Relay Routing Fabric
Provide intelligent routing fabric services for relay networks with client-to-address mapping and dynamic route resolution capabilities. This networking component maintains routing tables that map client identifiers to network addresses, enabling efficient packet forwarding in multi-tenant and distributed relay environments. Essential for implementing relay servers, multi-tenant network services, dynamic address resolution, and scalable routing in distributed systems requiring centralized traffic management and client isolation.
📄️ Rely Decoder
Provide advanced Random Linear Network Coding (RLNC) decoding using Steinwurf's sliding window implementation with adaptive packet release strategies. This decoder reconstructs original data from received source and repair packets, featuring configurable timeout mechanisms for missing packet handling and optional in-order packet release for maintaining data sequence integrity. Essential for high-performance network coding applications requiring optimal decoding efficiency, real-time streaming with loss recovery, and flexible delivery guarantees in challenging network conditions.
📄️ Rely Encoder
Provide advanced Random Linear Network Coding (RLNC) encoding using Steinwurf's sliding window implementation with adaptive repair scheduling. This forward error correction encoder maintains a sliding window of source packets and generates repair packets on-demand based on configurable target rates and timing windows. Essential for high-performance network coding applications requiring optimal throughput-reliability trade-offs, real-time streaming with loss protection, and efficient bandwidth utilization in lossy network environments.
📄️ Rlnc Decoder
Recover original data from Random Linear Network Coded (RLNC) packets. Adapts automatically to varying network conditions and loss patterns. Provides optimal decoding performance by utilizing every received packet, making it ideal for challenging network environments with high or unpredictable loss rates. Must be paired with RlncEncoder.
📄️ Rlnc Encoder
Provide advanced forward error correction using Random Linear Network Coding (RLNC). Must be paired with RlncDecoder.
📄️ Session Reader
Monitor session identification metadata and triggers pipeline reconfigurations when session changes are detected. Reads session IDs from packet headers and maintains session state awareness, automatically initiating pipeline restarts when transitions to new sessions occur. Essential for session-based architectures where different sessions require distinct pipeline configurations, processing parameters, or routing behaviors. Enables dynamic adaptation to changing communication contexts and requirements.
📄️ Session Writer
Adds session identification metadata to packets for flow tracking and management. Attaches unique session identifiers to packet headers, enabling downstream components to associate packets with specific communication sessions or flows. Essential for session-aware processing, load balancing, and maintaining state across distributed pipeline components.
📄️ Simulated Network
Create a virtual network simulation environments within pipeline configurations for controlled network testing and emulation scenarios. This emulation component establishes isolated virtual networks with configurable MTU settings, named network endpoints, and programmable connectivity patterns between multiple simulation participants. Essential for creating controlled test environments, simulating complex network topologies, testing distributed applications, and conducting reproducible network experiments.
📄️ Splitter
Duplicates incoming traffic across multiple output links, creating identical copies of each packet for parallel processing or distribution. Acts as a broadcast mechanism enabling a single data stream to feed multiple pipeline branches simultaneously. Useful for implementing redundant paths, parallel processing architectures, or monitoring setups where the same data needs to be processed by multiple components.
📄️ Sporadic Traffic Source
Generate bursty traffic patterns with randomized burst characteristics and variable idle periods for realistic application traffic simulation. This traffic generator creates sporadic transmission patterns where packets are sent in irregular bursts followed by random idle periods, mimicking real-world application behaviors like file transfers, web browsing, and interactive applications.
📄️ Tag Demux
Separates a single tagged input stream into multiple output streams based on packet tag information. Reads tag metadata from incoming packets and routes them to the appropriate output based on tag-to-output mappings. Serves as the counterpart to TagMux, enabling flow separation and distribution after aggregation. Essential for implementing flow-specific processing pipelines, load balancing based on source identity, and creating parallel processing architectures with tagged data streams.
📄️ Tag Mux
Combines multiple tagged input streams into a single output by adding identification tags to packets from each input source. Each input is assigned a unique tag value that gets embedded into packet metadata, enabling downstream components to identify the original source. Essential for aggregating multiple data flows while preserving source identity, enabling complex routing decisions and flow-specific processing. Supports arbitrary tag assignments for flexible flow identification schemes.
📄️ Tap
Creates and configures a TAP (network TAP) interface on the host system. A TAP interface operates at the data link layer (Layer 2) of the OSI model and emulates an Ethernet device. It is commonly used in applications where we want to capture and transmit directly with raw Ethernet frames, making it suitable for scenarios such as packet capture, tunneling, or network simulation. The TAP interface allows reading and writing of Ethernet frames into the pipeline, enabling seamless integration into virtualized networking environments or network routing/bridging logic. Note, see also the TUN component for Layer 3 IP packet handling.
📄️ Tcp
Provide reliable TCP networking capabilities for connection-oriented data transmission. Supports both server mode (listening for incoming connections) and client mode (connecting to remote hosts). Handles connection establishment, reliable data delivery, and connection teardown. Can be configured for application-facing traffic or inter-pipeline communication, making it essential for reliable network communication.
📄️ Throughput Tracker
Measures and monitors data throughput rates passing through the pipeline. Calculates bandwidth utilization, packet rates, and data volume statistics over configurable time intervals. Provides real-time performance monitoring for capacity planning, bottleneck identification, and quality of service validation.
📄️ Throughput Traffic Source
Generates high-precision traffic with exact throughput targets for network capacity testing and performance benchmarking. This traffic generator maintains precise bit rate control by dynamically adjusting packet timing and batching to achieve specified throughput levels in Mbps.
📄️ Timed Burst Loss
Simulates time-based burst packet loss with precise temporal control and flexible loss pattern configuration for realistic network impairment modeling. This loss component creates burst loss events with configurable duration-based or packet-count-based loss patterns, featuring grace periods between loss events and optional cancellation timers for complex scenarios. Supports both packet-count and time-duration burst modes with millisecond-precision timing control. Essential for simulating realistic network congestion patterns.
📄️ Trace Traffic Source
Generates realistic network traffic by replaying patterns from pre-recorded trace files. Reads traffic characteristics from structured trace files containing timing, size, and other packet metadata. Enables accurate reproduction of real-world traffic patterns for testing and simulation purposes. Supports loop playback with configurable delays between iterations, allowing long-duration testing scenarios. Essential for validating protocol behavior under authentic traffic conditions and performance benchmarking with representative workloads.
📄️ Traffic Sink
Serves as the endpoint for data streams, consuming and processing incoming packets. Functions as a traffic terminator that receives packets, performs processing, and measures various performance metrics. Configurable MTU handling ensures proper packet size validation. Optional latency budget tracking enables identification of packets that exceed acceptable processing time limits. Supports timeout-based operation for controlled test duration.
📄️ Tun
Creates and configures a TUN (network TUNnel) interface on the host system. A TUN interface operates at the network layer (Layer 3) of the OSI model and emulates a point-to-point network device. It provides a virtual IP interface that allows the pipeline to send and receive raw IP packets as if they were arriving from or destined to a physical network interface. TUN interfaces are commonly used for implementing virtual private networks (VPNs), IP tunneling, and other Layer 3 routing or forwarding mechanisms, where packet-level manipulation is required. Note, see also the TAP component for Layer 2 Ethernet frame handling.
📄️ Udp Local
UDP component that binds to a local UDP socket and "listens" for incoming packets.
📄️ Udp Remote
UDP component that is meant to be used to send to remote UDP socket. If you want to "listen" on a UDP socket, use the UdpLocal component.
📄️ Udp
Provide UDP networking capabilities for sending and receiving data packets. Supports both unicast and multicast communication, with configurable socket buffers, MTU settings, and peer locking. Essential for network I/O operations in the pipeline.
📄️ Uniform Loss Sequencer
Provide programmable uniform packet loss with sequential transitions between different loss probability states over time. This advanced impairment component enables dynamic loss modeling by cycling through predefined loss probability sequences with configurable transition intervals, supporting realistic simulation of varying network conditions and time-dependent loss patterns. Essential for testing adaptive protocols under varying loss conditions, evaluating application resilience to dynamic network degradation, and simulating realistic loss patterns observed in mobile and wireless networks.
📄️ Uniform Loss
Simulate packet loss using a uniform random distribution model. Provides consistent packet drop probability across all traffic, making it ideal for testing application behavior under steady-state loss conditions. Essential for validating error recovery mechanisms, congestion control, and application resilience patterns.
📄️ Uniform Traffic Source
Generates synthetic uniform traffic patterns with consistent inter-packet timing for network testing and performance evaluation. This fundamental traffic generator produces packets at regular intervals with configurable packet counts, timing parameters, and randomizable packet sizes within specified bounds. Essential for network capacity planning, protocol performance evaluation, steady-state testing, and establishing performance baselines in controlled environments.
📄️ Unix Socket
Linux-only component that provides inter-process communication (IPC) using Unix domain sockets with SOCK\_SEQPACKET semantics. Enables efficient local communication between processes.
📄️ Video Traffic Source
Generates realistic video streaming traffic patterns with frame-based timing and variable packet sizes mimicking video encoding characteristics. This specialized traffic generator simulates video codec behavior including I-frames, P-frames, and GOP (Group of Pictures) structures with configurable frame rates and encoding parameters. Essential for testing adaptive streaming protocols, evaluating video quality under network constraints, bandwidth adaptation algorithms, and quality of experience (QoE) measurements in video delivery systems.