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:
Use one of our existing scenarios as a base and make small modifications to tailor the impairments, as required.
Use the Maxwell graphical interface, select a set of desired impairments, save them, then define addresses and protocol filters.
Control Maxwell Pro from a Python, Perl, Java, shell script or another application using the Maxwell Control API Guide.
Create a plugin in C or C++. Plugins are the mechanism for creating programs in the Maxwell environment.
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.