pgmramp
Create grayscale gradient Portable Graymap image
TLDR
Generate a left-to-right greyscale map
Generate a top-to-bottom greyscale map
Generate a rectangular greyscale map
Generate a elliptical greyscale map
Generate a greyscale map from the top-left corner to the bottom-right corner
SYNOPSIS
pgmramp [-s | -r] [options] <interface>
PARAMETERS
-a <address>
Specifies the multicast group IP address to join or send to.
-p <port>
Defines the UDP port number for PGM communication.
-i <interface>
Sets the network interface (e.g., eth0) for multicast operations. This argument is often mandatory.
-s
Activates sender mode, causing pgmramp to transmit PGM messages.
-r
Activates receiver mode, causing pgmramp to listen for incoming PGM messages.
-b <rate>
Sets the base message rate (messages per second) for the ramp, or a fixed rate if no ramp is configured.
-l <length>
Specifies the length of each PGM message in bytes.
-c <count>
Determines the total number of messages to send or expect during the test.
-d <duration>
Sets the test duration in seconds, after which pgmramp will terminate.
-v
Enables verbose output, providing detailed progress, statistics, and diagnostic information.
-w <delay>
Introduces a delay (in seconds) between ramp steps or during intermittent sending.
-z
Attempts to use zero-copy transmission/reception where supported by the underlying system for improved performance.
-t <ttl>
Sets the IP Time-To-Live (TTL) for outgoing multicast packets, controlling their hop limit.
DESCRIPTION
pgmramp is a specialized command-line utility designed for testing and benchmarking Pragmatic General Multicast (PGM) implementations, particularly within the OpenPGM library ecosystem. It facilitates the generation and reception of PGM multicast traffic with a 'ramping' behavior, meaning it can vary the message rate, message size, or other parameters over time. This makes it invaluable for stress testing network infrastructures, validating PGM application performance under different load conditions, and diagnosing network-related issues in multicast environments. It typically operates in two modes: a sender mode, which transmits PGM packets, and a receiver mode, which listens for and reports on incoming PGM traffic.
CAVEATS
pgmramp is not a standard, widely distributed Linux utility; it is primarily found as part of the OpenPGM library development packages or specific network testing environments. Its effective use requires a solid understanding of multicast networking and the PGM protocol. Network configuration, including multicast routing, firewall rules, and interface settings, is crucial for successful operation. It's intended as a testing tool, not for general-purpose application traffic.
MODES OF OPERATION
pgmramp operates in two distinct modes, determined by the command-line options:
Sender Mode (activated with -s): When run in sender mode, pgmramp transmits PGM messages to a specified multicast group. It can be configured to ramp up the message rate, message size, or send a specific count of packets over a duration, allowing for stress testing of receivers and the underlying network infrastructure.
Receiver Mode (activated with -r): When run in receiver mode, pgmramp listens for incoming PGM messages on a specified multicast group. It reports on received packet counts, missing packets, and other relevant statistics, enabling evaluation of multicast delivery reliability and performance characteristics.
HISTORY
pgmramp originated as a diagnostic and performance testing utility within the OpenPGM project, an open-source implementation of the Pragmatic General Multicast (PGM) reliable multicast protocol. Its development has focused on providing a robust tool for verifying the functionality and evaluating the performance of PGM across various network topologies and load conditions, aiding in the development and deployment of PGM-based applications.