Maxwell Pro Product Brief

The Maxwell Pro Network Emulator

The Maxwell Pro Network Emulator helps network managers, software developers, and testers learn how their products will perform in real-world production networks, including satellites and the Internet. By intercepting and changing network flows, Maxwell can induce conditions that cause network congestion, slow links, time outs, and many other adverse network conditions. Network managers can then see the effects on the device or application in order to find and fix bugs, solve network problems, or learn the limits of device and application performance.

Emulate the Real World in Your Lab

The Maxwell Pro network emulator helps network engineers test and measure performance in order to identify and remove defects. Network emulators turn well behaved development and test networks into the kind of slow, congested, and less-than-reliable services encountered on the internet.

The Result:

  •  Deliver robust, high quality products and applications

  •  Accelerate time to market

  • Eliminate guesswork and surprises

  • Completely characterize your app’s network performance

Protocol and Packet Impairments

Maxwell’s network simulation capabilities provide much finer grained control.

Maxwell provides network, protocol, and packet level impairments, for real-world network emulations in the lab. These capabilities are imperative for realistic testing of network-based applications and devices:

• At the network level, Maxwell can introduce standard, custom, coupled, and combinatorial network impairments.
• At the protocol level, Maxwell can intercept and change the characteristics of the protocol based on criteria, other network flows and other events.
• At the packet level, Maxwell can intercept and modify packet contents based on various conditions and events.

All of these capabilities can be usefully employed to accurately produce network simulations in the lab approximating real-world network conditions.

Scenarios

Select a pre-defined network emulation scenario from our library. Some examples:

  • Cross-Atlantic T1 ATM link

  • Low earth orbit satellite

  • Geosynchronous satellite

  • Streaming media over satellite

  • Periodic network downtime

  • Cellular radio handoff

  • VoIP to Remote office via WAN

  • VoIP multi-way conference over WiFi

  • Connection impairments

  • Failover to backup servers

  •  Packet Drop/Loss: Add “burst mode” for a realistic emulation.

  •  Packet Delay/Latency: From zero to 10 seconds, with microsecond precision.

  • Packet Jitter, with or without reordering. Specify a custom jitter distribution: Uniform, Gaussian, Pareto, or Pareto-Normal:

Create Your Own Scenario

Emulate the real world in your test network by setting basic and advanced parameters for these impairments:

  • Packet Duplication, with rapid back-to-back transmission.

  • Packet Corruption: Specify packet-centric or bit-centric probabilities of corruption.

  • Rate limiting: Choose from several queue management algorithms.

Model Worst-Case Situations

  •  Turn on burst mode for any impairment, to simulate back-to-back real-world stochastic bursts.

  •  Add time-varying expressions to any parameter

Regardless of the production environment – anything from the routine to the extreme to legacy – Maxwell Pro permits customization to precisely emulate that world.

Incorporate Real or Simulated Traffic

Maxwell Pro accommodates all forms of real or simulated network traffic:

  • Use real devices to generate packets, then impair only selected packets and protocols under consideration, while filtering out the rest.

  • Or, use a packet generator to create simulated network traffic for the device under test, then apply impairments only to those packets, leaving the rest of the network unaffected.

Classify Network Traffic

Create filters for the packet classifier using the Classifier Filter Library, or create your own filter, then apply different impairments to different filter outputs.

Examples of filter criteria include:

  • IEEE 802 header fields: MAC source/ destination addresses, Ethernet type/ length, MPLS criteria, VLAN tags.

  • IPv4 or IPv6 header fields, including chained headers, fragment status, and QoS.

  • Higher level protocols: UDP or TCP port numbers.

  • Data within the payload, for any layer.

The Maxwell Pro Smart Classifier Filter System puts you in charge to use intelligent criteria for packet classification

  • Specify flexible value/mask comparisons: useful for matching addresses, QoS criterion, and payload bytes.

  • Specify lists of values and ranges for comparison: useful for port numbers, VLAN IDs, and payload sizes.

Add Time-Varying Impairments

Real-world networks change their behavior over time: excessive jitter, dropouts, or reductions in bandwidth can vary smoothly, or jump from one value to another, over the course of minutes, or days. Create a network emulation that varies the impairment parameters over any time period

Specify a time-varying expression for any metric, using equations, piecewise curves, or shaped pulses

Examples

  • Test your streaming clients: The device under test should handle time-varying impairments, and perform flawlessly, for days.

  • Run your protocols continuously, while the time-varying impairments cover all corner cases – perfect for overnight stress testing.

Maxwell Pro Charts and Tables

Monitor your Maxwell Pro network emulation from a Chrome web browser on your tablet or desktop computer, with the MPtable and MPchart applications

  • MPtable provides a bird’s eye view of everything that is happening on the Maxwell Pro Network Emulator: Create tables, then expand the advanced tab to see metrics / statistics for all nodes in all flows. If a packet gets impaired anywhere in the network, you’ll see a change in the statistics, in real time.

  • MPchart lets you drill down to see real-time graphs for a few selected statistics. Using linear or logarithmic axes, you can get a better sense of how metrics / impairments change over time. You can also display two metrics on the same graph to directly compare them.

Documentation

  • Maxwell Pro Installation and Quickstart Guide

  • Maxwell Application Programming Interface Guide

  • Maxwell G.1050 Tests

  • Maxwell Plugin Programmer’s Guide

  • Maxwell Pro System Guide

Programmability

Customize Maxwell in one of five ways:

  1. Use one of our existing scenarios as a base and make small modifications to tailor the impairments, as required.

  2. Use the Maxwell graphical interface, select a set of desired impairments, save them, then define addresses and protocol filters.

  3. Control Maxwell Pro from a Python, Perl, Java, shell script or another application using the Maxwell Control API Guide.

  4. Create a plugin in C or C++. Plugins are the mechanism for creating programs in the Maxwell environment.

  5. Custom tests can be added to the TCP/IP protocol test suites using the Python language.

System Configuration:

  • Hardware Package: 6.1” x 5.31” x 2.09”

  • Software Only Configuration: Virtual Machine (VM)

  • Interfaces: 10/100/1000/2500 Mbits/sec

  • Operating System: Linux

  • Layer 2 transparent bridge

User Interface:

  • Command Line Interface

  • Script control with Python or Java

Standard Impairments:

Packet Delay / Latency:

  • Specify packet delay / latency

  • Vary packet delay / latency over time

  • Add jitter to the delay

  • Add jitter to the delay with packet reordering

Packet Jitter:

  • Jitter Distribution:

    • Normal / Gaussian / Bell curve

    • Pareto

    • Pareto-Normal

    • Uniform (equal)

    • Piecewise distribution function / user defined

Packet Duplication:

  • Specify duplication probability

  • Vary duplication probability over time

    • Enable bursts

    • Specify burst probability

  • Specify burst window duration

  • Vary burst probability over time

  • Enable burst skew

Packet Drop / Loss:

  • Specify drop probability

  • Vary drop probability over time

  • Enable bursts:

    • Specify burst probability

    • Specify burst window duration

  • Vary burst probability over time

  • Enable burst skew

Manipulate contents of headers and payloads:

  • Randomly corrupt a packet

  • Intelligently corrupt a packet

  • Create a packet and selectively insert into the flow

  • Dynamically create and change distinct flows of packets

  • Inspect packet headers to select packets for modification

  • Rewrite packet headers

  • Rewrite packet data

Select and modify packets based on:

  • The content of that packet

  • The content of predecessor packets

  • The content of packets in other flows

  • The mathematical model of packet flows

  • The position in the protocol handshake

Rate Limitation:

  • Specify:

    • target rate

    • queue length

    • overhead bits

    • minimum packet size

    • maximum packet size

  • Vary any of the above over time

  • Support bit clocking rate control

  • Support token bucket rate control

  • Mark for drop or random early detection

  • Specify transition action on queued packets

  • Flush queue

Packet Corruption:

  • Specify corruption probability

  • Limit corruption to Ethernet payload

  • Specify burst probability

  • Vary burst probability over time

Emulated Links / Multiple Flows:

  • Unidirectional and bidirectional packet flow

  • At least 5 flows in each direction, 10 total

  • Larger models support 64 flows in each direction, 128 total

Classify packets based on:

  • IPv4 header fields

  • IPv6 header fields

  • MAC source or destination address

  • Ethernet type or length field

  • IEEE 802 header fields (includes VLAN tags)

  • Data within the packet

Classify packets based on fields in protocols:

  • Low-level protocols:

    • arp

    • dhcp

    • icmp

    • mpls

    • spanning-tree

  • IP layer:

    • IPv4 packets of varying lengths

    • IPv6 fragment

    • IPv6 fragment_last

    • IPv6 flow range

  • TCP / UDP layer:

    • Any TCP packet

    • TCP port numbers

    • Any UDP packet

    • UDP port numbers

    • http

    • DNS

    • SIP

  • Applications layer:

    • VoIP

    • VoIP with QoS bits in various configs

    • Apply different impairments on each emulated link

Maxwell Pro Specifications

Maxwell Patent No 7310316

Testing device US 7310316 B2

ABSTRACT
A test device (21) sits between two or more nodes (20, 22). The nodes (20, 22) communicate in conversations, according to some predetermined protocol. The test device (21), under user control, may introduce jitter, drop packets, create new packets, reroute packets, and reorder packets in the conversations. Particular conversations are detected and tracked by respective virtual state machines (38, 39, 40) within the test device.