Contact Us
+1.831.460.7010

Mini Maxwell network emulation system


 

Mini Maxwell is portable, easy to use network emulator for less than $2k.

Mini Maxwell network emulator Mini Maxwell, Power Connector
 
  • Overview
  • Tech Specs
  • Compare Versions
  • FAQ
  • User Guide

Quick, Easy, Inexpensive

Evaluating performance before deployment? Cloud testing your app? No matter what the task, you need to account for wide ranging adverse network conditions. limited bandwidth, delayed packets, malformed packets, Lossy networks (LLNs), and more. Need some help getting started?

CONSULT AN EXPERT

Form Factor -- rack mount or paperback?

Whether you need a portable solution or a rackmount package, Mini Maxwell can deliver!

Portable size: If you have low power requirements, or need ultra quiet operation.

Rackmount pkg: If you have security, inventory control or tracking concerns.

HARDWARE SPECS

Frequently Asked Questions

Mini Maxwell supports packet drop/loss, duplication, delay (latency)/jitter, reorder, and burst. Operating in layer two bridging mode to minimize configuration and remain "invisible" to the devices under test. Read the General FAQ or the Technical FAQ.

READ MORE

 

  • Set up in less than fifteen minutes
  • Control from anywhere on the network
  • Script or web page driven
  • Invoke rate limitation
  • Change settings "on the fly" without restarting 
  • Layer 2 device, acts like a bridge -- no special configuration
  • Maxwell Application Overview in PDF pdf icon small

Mini Maxwell Network Emulator Use-Cases

Training & Learning

What is the effect on SAN devices when parallel routing paths that create re-ordering?

Use Mini Maxwell network emulator to augment training classes with hands-on lab sessions. Students or the instructor can study the question above, or emulate a satellite connection, create a denial of service attack, or any other network condition.  Students then correlate network behavior with causes of that behavior and learn how networks operate.  For product training, students can gain experience with your product to see how it behaves under adverse network conditions.  This provides deeper product knowledge and inspires more confidence for product support.

Demonstrations & Tradeshows

How does the new VoIP phone perform when 10 ms of jitter is applied to the voice traffic?  Can you still hear clearly?

Use the Mini Maxwell network emulator to demonstrate your product.  The Mini Maxwell network emulator system emulates the real-world network.  You set the conditions (misconfigured routers, congestion, and timeouts) and the Mini Maxwell emulator emulates the network experience.  Customers can then visualize your product and see it perform.  Best of all, the Mini Maxwell network emulator system fits into your laptop bag or carry-on. Set it up in your tradeshow booth or in the customer's conference room in just a few minutes.  Get everyone's attention on the key benefits of your product, not the network setup.

Testing, Validation & Troubleshooting

Was it the misconfigured router that caused the server to slow down or was it a bug in the server?

Use the Mini Maxwell network emulation system to test and replicate bugs in BETA releases and at customer sites. Recreate intractable and intermittent bugs.  Show the customer the real cause of the problem.  Avoid finger pointing and provide conclusive proof of network problems, such as misconfigured routers, long queues in switching devices as well as transient routing loops, inadequate compensation algorithms in VoIP devices ,or tunnels with inadequate MTUs. Mini Maxwell's network emulation system low power and quiet operation lets you quickly set it up in a wide variety of environments.

Mini Maxwell network emulation system is an easy to use, portable, low cost, network emulator.  Attach Mini Maxwell at any point in the network without any special configuration.   From a web interface, introduce adverse condition or bandwidth limited conditions and network impairments.  Then observe the behavior on applications and devices.

In this way, you can quickly and efficiently determine how resilient your product is to the unfavorable conditions that occur with frequency on real-world networks. 

Optimize Application Performance

Emulate your network with new applications, adverse conditions, and anything else you can think of with Mini Maxwell.  The Mini Maxwell network emulator will create the same real-world conditions that affect production networks in your lab or on your desktop, so you can visualize and understand the effects. The Mini Maxwell network emulator is well suited to training and learning environments, demonstrations and trade shows, and testing, validation and troubleshooting.

  • Test, diagnose and remediate your app or device by replicating the production network in the lab as an emulation.
  • Learn how your app will perform in mobile, cloud, and WAN networks.

Find Problems Before Anyone Else

As network applications proliferate and users attach new types of devices to networks, the need for high QoS and better packet compensation algorithms increases. Through use of a network simulator, you can discover hidden problems that only reveal themselves at the worst possible moments and fix them, saving time, money, and your reputation. Let us help add the Maxwell Network Emulator to your lab!

 

Watch a Video

Mini Maxwell and Maxwell G Basics

Mini Maxwell and Maxwell G Basics:
Testing Cloud Services

Mini Maxwell and Maxwell G Basics:
Emulating a Home Network with
Multiple Users and Apps

 

Read a White Paper

Emulating 3G/4g Networks

Mini Maxwell Network Emulator

Are you allocating your test
resources correclty?

Are-you-Allocating-your-Test-Resources-Correctly

Rate Limiter vs. Bandwidth Limiter

Rate-Limitation-vs-Bandwidth-Limitation

 


Want to Learn More about Mini Maxwell Network Emulator?

Contact an Expert

Read More

Technical Specifications

Multiple Bands for Better Network Emulations:

  • User-defined packet filters sort traffic into five bands in each directions (ten bands total)
  • Unfiltered packets (e.g. ARP, DHCP) go into a default band
  • Different impairments maybe imposed onto each band
  • Bands may be used for many purposes such as:
    • Traffic between one or multiple source-destination pairs
    • Protocol specific traffic (e.g. SIP, IPv4, HTTP)
  • Packets with QoS
  • Small packets
  • Different impairments may be defined for each direction
  • Impairment and filtering changes occur when submitted, no need to restart
  • Applies standard packet impairments to user defined traffic "bands", including drop/lose, duplicate, delay(latency), jitter, reorder, and corruption (single bit errors).
  • Applies Rate Limitation to emulate slow links.

 01 mm2-bands 522x500

 

Packets into Bands

  • Operates at Layer 2 - like a "bump on the wire" or a Layer 2 bridge.  No special configuration required.
  • Creates steady state or burst impairments.
  • Selectively filters traffic into bands using pattern-matching filters.
  • Uses pre-written filters or you can create your own.
  • Alters filters and/or impairments without restarting.
  • Imports and Exports (Saves and Reloads) configuration files.
  • Provides access and control from a web-based user interface anywhere on the network.

 

02 mm2-filter-map 516x500

 

Packet Filters:

  • IPv4 source address
  • IPv4 destination address
  • Layer 3 (e.g. TCP/UDP) Source port (e.g. HTTP, DNS, SIP)
  • Layer 3 Destination port
  • Protocol (e.g. TCP, UDP, ICMP)
  • All packets / no packets
  • Bit Pattern
  • MAC Address
  • IP ToS
  • ICMP type
  • Several pre-defined packet filters
  • Users may create own filters
  • "nexthdr" works with IP options.
  • Filter sequence is under user control.
  • There are 23 filters that can be applied independently to both flow directions of each traffic band.

 03 mm2-filter-inv 487x500

 

Comprehensive Graphs of Network Flows

View graphs of network packets flowing through Maxwell from the web browser:

traffic-graphs-960x525

Remote Access and Management:

  • Web-based network emulation graphical user interface
  • Access and control from a web browser anywhere on the network.
  • Mini Maxwell supports Simple Network Management Protocol as a SNMPv1 agent
  • Note: Mini Maxwell can be a NTP client and can connect to a primary and secondary NTP server.
  • The Remote Management Interface is W3C compliant.
  • Firefox is the recommended browser. Internet Explorer 8 or above, Safari and Chrome will also work well.

Automated Operation:

  • Set up an automated network emulation controlled from a script; it can run and repeat for minutes, hours, or days
  • Run the automation as fast as five times real-time or as slow as 1% of real time.
  • Save and reload at a later date.

Layer 2 Device:

  • Mini Maxwell provides three Ethernet interfaces:
    • one for control and diagnostics
    • two for carrying the traffic to be impaired

mini maxwell interfaces 597x165

Mini Maxwell operates on packets arriving on the two data interfaces.  Depending on the settings, the packets may be passed to the other data interface unchanged or may undergo modifications, replications, delays, and other transformations.  Except for these transformations  Mini Maxwell is invisible at layer 2 and above.

Thus, the MAC addresses and headers, and all higher level addresses and headers are not affected by Mini Maxwell unless some configured transformation is performed. Thus Mini Maxwell may be inserted into a network at any point where one would use a simple category 5 Ethernet cable.  Typically Mini Maxwell is placed in a test network at some point where it is carrying the traffic that one wants Mini Maxwell to transform.


Want to Learn More about Mini Maxwell?

Contact an Expert

Read More

 

Click here to read the full reportMaxwell KMAX family compare versions



 


 

Want to know more about the different versions of Maxwell?

Contact an Expert

Read More

QWhere are the passwords and user names?

A Please contact InterWorking Labs support ( maxwell-support@iwl.mojohlepdesk.com  This e-mail address is being protected from spam bots, you need JavaScript enabled to view it ) for the user names and passwords required to control Mini Maxwell.

QWhy are my impairment settings not having any effect?

A The most frequent reasons why a user's settings are not having any apparent effect are these:

  • The impairment was applied to the other direction.  Each of Mini Maxwell's "bands" is composed of a pair of impairment settings.  One of these settings establishes the impairments to be used on packets arriving on LAN A and leaving via LAN B.  The other establishes the impairments to be used on packets arriving on LAN B and leaving via LAN A.
  • The impairment was applied to a different band than the one that the packets are flowing through.  Mini Maxwell uses the user-specified filters to sort incoming packets into the various bands.  There are different impairment settings for each band.
  • A useful trick for isolating these kinds of problems is to go through all of the bands, and for the LAN A to LAN B  and LAN B to LAN A directions and set the drop probability to 100%.  This should have the effect of stopping all traffic.  Then those drop settings can be removed, one by one, until the traffic resumes.  That should give a good indication of which group of settings is affecting (and not affecting) your traffic.

QIf a packet does not match a filter what band does it go into?

A Band 5 is the catch-all band.  Packets that do not match any filters end up in Band 5.

For this reason it is often useful to set some obvious impairment - like a large delay - on both the uphill and downhill sides of band 5 so that any packets that slip past the filter settings will be impaired in a way that is fairly easy to notice.

QHow do I use Mini Maxwell with gigabit Ethernet?

A The easiest way to do this is to use an inexpensive, consumer grade 10/100/1000 switch between Mini Maxwell and the gigabit Ethernet device.

Mini Maxwell does not support gigabit Ethernet jumbo packets, i.e. Ethernet frames larger than 1500 bytes.  However, both Maxwell G and Maxwell Pro support gigabit Ethernet.

QHow do I use Mini Maxwell with wireless?

A The easiest way to do this is to attach a wireless "access point" to either LAN A (eth1) or LAN B (eth2) on Mini Maxwell.

Some wireless base stations act as more than a mere access point - for instance many act as routers, firewalls, or network address translators.  In nearly every case you simply want to attach Mini Maxwell to the wireless base station in the same way you would attach other wired devices that need to communicate with wireless devices.  Often this means attaching Mini Maxwell to the "harmonica" of wired network ports found on many wireless stations that also include a built-in Ethernet switch.

Some wireless base station devices work under the control of a manager.  In these cases please feel free to discuss this with our support staff.

Q What happens to Mini Maxwell if my power goes out?

A After a power failure Mini Maxwell is able to boot up without any additional user configuration.

QHow do I use Mini Maxwell with fiber optic Ethernet?

A InterWorking Labs has used external copper-to-fiber conversion boxes such as the TRENDnet TFC-1000MSC Multi-Mode Fiber Converter with SC-Type Connectorwhich is available from many on-line sellers, such as Newegg.  Other converters will probably work.

Note: Some types of converter may lock link-state on the copper Ethernet side to an "on" state without regard whether optical link state has been achieved.

QCan Mini Maxwell support High Definition Television traffic?

A Yes.

For 1500 byte packets Mini Maxwell can handle 100% of the line rate of a full duplex 100Megabit Ethernet, i.e. 8224 packets/second in each direction.  This is more than adequate to handle most forms of compressed HDTV traffic.

For example, consider a compressed HDTV stream that of about 18,000,000 bits/second.  Most of these bits will be carried in full-sized packets of about 1500 bytes each.  That works out to about 1500 packets per second, well within Mini Maxwell's packet per second capacity.

QWhen I ask for packet corruption, it appears that the number of packets being corrupted is low.  What's going on?

A A random bit offset is calculated each time the corruption mechanism decides that a packet is to be corrupted.  That offset may be anywhere in the entire Ethernet frame, not just the IP part of the packet.

If the bit that is changed is within the source MAC address (48-bits/6-bytes) then the packet will still reach the intended target computer.

If the receiving machine or its software is not overly zealous about checking consistency between source MAC address and source IP address, then the packet will be accepted and the change in the source MAC address may not be noticed.

The chance that the corruption will occur within the source MAC address varies depending on the overall size of the packet.  That chance is greater for small packets and less for larger packets.  For small packets, typical of ICMP Echo (ping), which are typically 60 bytes, then the chance that the bit corruption will occur in the source MAC field can be as high as 10%.  This, in turn, means that the perceived loss of packets due to corruption is less than one would expect.

QCan Mini Maxwell limit bandwidth?

A Yes.  Mini Maxwell uses a rate-limiting token bucket filter of the same kind that are found in many internet routing and switching devices.

Please note that rate limitation is slightly different than emulation of a link.  Rate limitation is concerned with average traffic rates over a span of time; link emulation is concerned with things like the time to serialize the bits onto the link, the packet propagation delay, queue lengths and queue overflows, and the overhead of link level headers.  For most users the difference boils down to this: a rate limiter may sometimes allow a packet to flow through without delay if there has been a prior idle period, a link emulator recognizes that no packet, even if there had been an idle period, can escape serialization and propagation delays.

Rate Limitation is a complex subject and it is often conflated with Link Emulation.  The main difference is that Rate Limitation gives bandwidth credit for bandwidth in the past that was not used.  Link Emulation does not.

Mini Maxwell performs rate limitation rather than link emulation.  This means that if there has been a period of low traffic followed by a burst of over-limit traffic, that over-limit traffic will pass through the Mini Maxwell without limitation for a short period as the credit for the unused prior bandwidth is consumed.  This behavior is consistent with many, perhaps most, internet edge pathways (such as DSL or Cable TV links, or IP over mobile telephone.)

For more information please see the white paper on Rate Limitation vs. Bandwidth Limitation.

QCan Mini Maxwell handle IEEE 802.1q tagged VLANs?

A Mini Maxwell will carry VLAN tagged frames between its to data interfaces.  However, the filters are not able to handle the fact that the tags move the IP headers four bytes deeper into the packet.  Consequently filters do not work properly on Ethernet frames that have IEEE 802.1q headers.

Nonetheless, Mini Maxwell can still be productively used on a VLAN trunk, i.e. an Ethernet segment in which all the Ethernet frames have IEEE 802.1q headers.  When no filters are used then the frames will all be classified into the default band, Band #5.  Impairments specified for Band 5 will be applied to these frames.  In other words, all of the frames on the trunked VLAN will be subject to the same set of impairments.  (Remembering, as always, that Mini Maxwell can have different impairments specified for each of the two directions of packet flow.)

For more advance handling of VLAN tags we recommend Maxwell Pro.

QWhen updating the Maxwell software can I use a Bluetooth serial device rather rather than a serial cable?

A Yes.  InterWorking Labs often uses a Bluetooth serial adapter - such as the IOGear GBS3001 as a way to connect to the serial port on Mini Maxwell from a computer equipped with a Bluetooth interface.

The Bluetooth serial adapter is attached to the console port on Mini Maxwell.  The adapter should be set to be a Bluetooth slave and the bit/baud rate set to 38,400 bits/second.

QWhy don't packets flow immediately when I plug-in the Ethernet cable?

A The bridging code in Linux takes a few seconds to initiate packet bridging after it detects the presence of Ethernet link-state (as indicated by one of the LED's on each of Mini Maxwell's network interface plugs).

QI want to connect to the serial console but I am running Windows and there is no terminal emulator program!

A Microsoft has removed the Hyperterm program from Windows.

You can download a free, open source, alternative called "PuTTY".

The PuTTY home page may be found at http://www.chiark.greenend.org.uk/~sgtatham/putty/

The easiest way to install PuTTY is to download and run the PuTTY installer program.

From PuTTY's "Session" menu select the "Serial" connection type.  That will allow you to enter the "Speed" (use 38400) and "Serial line".  The value for "Serial line" will vary from machine to machine but it will generally be of the form COM# where # is '1', '2', '3', '4', etc.  You may have to try these one at a time until you find the one that works.  Alternatively you may want to take a look at the Windows "Hardware Manager" (often found under the "System Information" link from "My Computer") and look under the Communications port item.

QWhat is a good serial communications program to use for Linux?

A The "kermit" program is a good command line tool, but you may have to fetch it from the download siteand compile it.

A good alternative is PuTTY.  Your Linux distribution may already have it available as a package.  (For example, PuTTY is available as one of the packets in the Fedora distribution.)  Go to the package manager of your Linux and see if it has PuTTY available.

As is typical for serial ports you may have to search through your serial ports to find which logical name (/dev/ttyS# or /dev/ttyUSB#) is hooked to which physical DB-9 connector.

QMy computer has no serial port, what do I do?

A InterWorking Labs uses inexpensive USB to Serial adapters.  These cost about $10 from places such as NewEgg.

QWhat are the transitional side effects when I change an impairment parameter or alter my filter map?

A There can be side effects that are caused by a change to an impairment parameter or a change to the packet classification filter map or filter sequence.

Inside a Mini Maxwell or Maxwell G changes to settings are completed within a few milliseconds (or faster.)  During that short period packets that arrive may be processed without impairment or filter classification.

When changing an impairment parameter the side effect may be the early release or discard of some or all of packets that are being delayed at the time of that change.  Because of buffering of packets that are being delayed due to the prior impairment setting it is possible that several packets may be affected.  These side effects are generally limited to only the band and direction, i.e. a change to Band 5 LAN-A-to-LAN-B generally will have no effect on other bands or on Band 5 LAN-B-to-LAN-A.

When changing the classification filter map or filter sequence there may be the following side effects.  For convenience the classification or map prior to each change will be here called "old" and the classification or map after each change is "new".

  • Older packets that have been accumulated into the old rate limiter or delay queue will trickle out according to the rate limit of that old limiter or delay queue.
  • Newly arriving packets that encounter a new rate limiter will receive the benefit of any unused bandwidth credit, thus there can be a short period when rate limitation will not be apparent as that credit is consumed.
  • Because of the interaction of the two points above it is possible that:
    • Some number of new packets will be sent by the Mini Maxwell before older packets.  The net effect of this that for a few seconds packets may be received in a different sequence than they were sent.
    • For a short period of time after the transition the burst data rate on the link may reach or even exceed the sum of the old and new rate limiters.

QWhat should be my IPv4 MTU?

A The IPv4 MTU should be the standard value of 1500.  That number allows for the 14 bytes of a standard (non tagged-VLAN) Ethernet header as well as the Ethernet CRC.

QWhat about bufferbloat?

A Rate limitation and delay both cause packets to be held for a period of time.  That time, which is perceived as latency across the network can cause what is called "bufferbloat."

Bufferbloat is not a flaw in the Mini Maxwell or Maxwell G - rather it is a common internet situation that must be anticipated and handled by protocol software in vendor devices.

Users should expect that when rate limiters or long delays have been configured that bufferbloat effects may be observed in the devices under test.

In particular users should anticipate that the delay due to rate limitation can grow so that several seconds could elapse between the time a packet is sent and the time it arrives.  The effect is the same if a large delay is configured.

Bufferbloat may have an amplified impact on TCP streams because of the various algorithms found in TCP stacks to handle slow start, congestion detection, congestive back off, and recovery.

See http://en.wikipedia.org/wiki/Bufferbloat for more information on bufferbloat causes and effects.

QHow do I coerce the LAN-A and LAN-B interfaces to 10Megabits clocking?

A By default the LAN-A and LAN-B interfaces announce (using low level IEEE 802 Ethernet signaling) that they are able to operate at clock rates of either 10megabits/second or 100megabits/second in either half or full duplex mode.  There are sometimes reasons to coerce the interface clock rate so that it is fixed at 10megabits/second.  This is typically done when there is a risk that the traffic load that might be presented would exceed the capacity limitations of a Mini Maxwell.  This is not typically an issue on Maxwell G.

On more recent Mini Maxwell units there is a script file that will cause the LAN-A and LAN-B interfaces to run at a fixed 10megabit/second clock rate starting with the next reboot.  This file is /etc/sysconfig/tenmeg.sh and it must be run with root privilege.

Note that the interface clock speed pertains only to the hardware rate at which bits are electrically encoded onto the Ethernet cable.  One should not conflate this clocking rate with any rate limitation setting that might be imposed by the Mini Maxwell.  The interface clock rate is a fixed metronome that ticks at its given rate no matter how much or how little data the user might try to push through the interface.  The Mini Maxwell rate limiter is a kind of speed-limit that applies only to the data that is contained in packets that are actually flowing on the network.

To obtain status of the 10 megabit setting do:

  sh /etc/sysconfig/tenmeg.sh status

To activate the 10 megabit setting do:

  sudo sh /etc/sysconfig/tenmeg.sh on

To deactivate the 10 megabit setting do:

  sudo sh /etc/sysconfig/tenmeg.sh off

QI changed my IP address but it did not change?

A There is a bug in certain releases, including Revision 17, in which a requested reboot does not occur.  Because IP address changes in Mini Maxwell are put into effect only upon a reboot the effect of this problem is that users make changes to IP address settings but those settings never seem to be activated.

The offending code has been found and fixed but will not appear until Revision 18.

In the meantime it will be necessary to perform a physical power cycle on the unit to force the Mini Maxwell to reboot.

QWhat is the interaction between rate limitation and delay?

A Suppose you set a rate limit of a million bits per second and a fixed delay of 250 milliseconds.  And then suppose that you present a load that is higher than that rate limit setting.

At first you may observe that your packets are being delayed by the anticipated 250 milliseconds.

However after a while you may observe that your packets are being delayed substantially longer than 250 milliseconds.

The reason for this is that if packets are arriving faster than the rate limitation setting then those packets enter a delay queue.  That queue drains at the configured rate limitation value.  As a consequence each packet spends some amount of time - delay - in that queue.  The amount of that delay depends on how much data is waiting in the queue ahead of that packet.

The rate limitation queue can grow to be quite long - it can hold as much as ten seconds worth of data.

So it is possible, and in fact it is very likely, that if the presented traffic rate is greater than the configured rate limit that the limitation queue will grow and grow and grow - and the rate limitation packet delay will grow correspondingly.  (The queue will grow up to the point where the rate limitation queue reaches its maximum limit and new packets are discarded because there is no where to put them.)

The overall effect of this rate limitation delay is that the delay component created by the rate limiter can become much larger than the value configured in the explicit delay setting.

So, returning to our example, that 250 milliseconds of configured delay can be overwhelmed by the delay caused by the rate limiter.  It isn't that that 250 milliseconds has disappeared.  Rather it can be hard to perceive that 250 milliseconds after it is added to a significantly larger delay caused by the the rate limitation queue.

QCan I drive Mini Maxwell or Maxwell G without using the web interface?

A Yes.  We have created some Python programs that may be used to control a Mini Maxwell or Maxwell G.  Please contact Sales for more information.


Want to know more about Mini Maxwell?



 

Read More

Maxwell G and Mini Maxwell
User Guide

Revision 18.  March, 2014

Please indicate platform type: Mini Maxwell Maxwell G

Table of Contents


About This Document and Its Convention

This document contains material for both Maxwell G and Mini Maxwell.

For the most part these platforms have similar interfaces and act in similar ways.  However there are differences.

Material that pertains only to Maxwell G is shown with this color background.

Material that pertains only to Mini Maxwell is shown with this color background.

Introduction to Maxwell G and Mini Maxwell

Maxwell G and Mini Maxwell are a complete, easy to use, hardware+software network-impairment solution.

Both Maxwell G and Mini Maxwell perform the same function and have the same user interface (except for system configuration.).  However, Maxwell G is a higher performance platform.

Maxwell G and Mini Maxwell will divide the traffic into five bands based on the IP header and data content.  There are five bands for each direction of traffic.

Impairments may be imposed on each band.

Different bands may be subjected to different impairments.  Thus, for example, DNS queries may be subjected to different impairments than DNS replies while HTTP client-to-server traffic and HTTP server-to-client traffic are subjected to other impairments.

The impairments include:

  • Rate Limitation
  • Packet drop
  • Packet duplication
  • Packet delay:
    • Fixed delay
    • Jitter
    • Packet reordering as a side effect of jitter
  • Packet bit corruption

Maxwell G and Mini Maxwell operate as a layer-two Ethernet bridge; from the point of view of the traffic being impaired Maxwell G and Mini Maxwell are just a bump in the Ethernet cable.  There is no need to adjust routing or IP address values in the devices under test.

Maxwell G and Mini Maxwell interact with the user through a standard web browser to define the bands, to impose impairments, and, if desired, to save and restore band and impairment settings from a backup file on the user's computer.

Maxwell G and Mini Maxwell are based on Linux® and the netem module of the Linux kernel.

Unlike the typical single-ended netem configuration, Maxwell G and Mini Maxwell create a fully bi-directional, transparent layer-2 path in which netem impairments can be applied to traffic moving in either or both directions.

Maxwell G and Mini Maxwell operate in layer-two bridging mode. There are two full duplex Ethernet interfaces dedicated exclusively to test traffic.  Maxwell G and Mini Maxwell thus becomes a “bump on the wire”.  It is not necessary to reconfigure the devices-under-test in any special way.  Maxwell G and Mini Maxwell relays entire Ethernet frames, including the original MAC address, without alteration.

The only IP address Maxwell G and Mini Maxwell need is for its embedded web server.  Traffic to and from that server is carried over a management Ethernet interface that is distinct and separate from the interfaces used for the test traffic.

Maxwell G and Mini Maxwell define several uni-directional “bands” into which traffic can be directed by pattern-matching filters.  Several pre-written filters are provided and the user may add new filters.  Filters may be created, added, removed, enabled, disabled, and re-sequenced without restarting

There are two types of filters:

  • IPv4 filters - These filters may examine up to three different packet header fields, with each field being either 8, 16, or 32 bits wide.  These fields may be anywhere in the IPv4, UDP, or TCP headers.

  • Ethernet header filters - These filters may examine the Ethernet source MAC, destination MAC, and type/length fields of the Ethernet or 802.1 packet header.

A different netem impairment can be applied to each band.  Impairments may be altered at any time through Maxwell G and Mini Maxwell's web pages without restarting.  Thus, for example, RTP (VOIP) packets flowing in one direction could be delayed by 250 milliseconds while the RTP packets flowing in the opposite direction are subjected to a 10% loss rate. And this could, for example, occur simultaneously with different impairments on HTTP, DNS, or SIP traffic.

Maxwell G

Maxwell G uses a small portable, low-power platform.

Maxwell G has full-duplex 10/100/1000 Ethernet interfaces (RJ45) with auto-crossover (auto MDI/MDI-X).

A keyboard and display monitor may be attached to Maxwell G for purposes of initial configuration.

Mini Maxwell

Mini Maxwell uses a small, silent, portable, low-power platform with no rotating disks.

Mini Maxwell has full-duplex 10/100 Ethernet interfaces (RJ45) with auto-crossover (auto MDI/MDI-X).

Mini Maxwell has an RS232 serial port that may be used for initial configuration and firmware updates.

Getting Started

You have received your new Maxwell G or Mini Maxwell.  What should you do now?

You should take a glance at the Hardware Platform portion of this note in order to familiarize yourself with the Maxwell G or Mini Maxwell box and its various interfaces.

If you have trouble with any of this please contact us by email at maxwell-support@iwl.com or by phone at +1 831 460-7010 (ext 108)

Maxwell G - Getting Started

Maxwell G - Unpacking and Physical Installation

Unpack Maxwell G and make sure you have all the pieces:

  • The Maxwell G chassis – this is box approximately 12.90" x 8.70" x 3.80" (32.8cm x 22cm x 9.7cm).

Take a look at the Maxwell G Hardware Platform section of this document  This will show you the various interfaces and plugs on the chassis.

There should be a label on the bottom of the chassis - this label shows the MAC address of the management ethernet interface.

Maxwell G - Location

Consider where you will be installing Maxwell G.  This will dictate the IP address that you will need to assign to the management interface.

Note: Maxwell G's management interface is logically distinct from the two data ports – the traffic that you will be impairing can be, and probably ought to be, on an entirely separate subnet.

Take care that there is adequate airflow and that Maxwell G's fans are not blocked.

Maxwell G - Power, Temperature, and Other Environmental Considerations

Electrical Power

Gigabit Maxwell is able to run on standard utility power available around the world.  The power connector has the following specifications:

Depending on the workload Maxwell G consumes from 35 to 200 watts.

Note: Power-over-Ethernet (PoE) is not provided by any Ethernet port on the Maxwell G.

The boot-up process takes between 60 and 90 seconds.

Maxwell G - Temperature and Other Environmental Considerations

Maxwell G should not be placed in a tightly confined space with no airflow.  If possible the unit should be placed so that the fans on the side (top) face upwards.  The plastic stand (provided) should be used to hold the unit in that position.

Care must be taken not to cover the air vents on either side of the chassis.  In particular this means the the Maxwell G should not be placed on its side without using the provided plastic stand or some other means that does not block airflow to the bottom air vents.  And nothing should be placed on top of the unit that would block any of the fans.

Maxwell G should be placed in a location with normal office or computer room temperature and humidity levels.

Maxwell G contains rotating fans and a disk drive.  The unit should not be subjected to more vibration or shock than is typical for a computer rack that contains operating disk drives.

Maxwell G - Keyboard, Mouse, and Video Connections

Normally Maxwell G does not require a keyboard, mouse, or video monitor.  However, these may be used for initial configuration.  The keyboard, mouse, and video may remain attached to the Maxwell G.  However, these will be of limited use: Actual control of the Gigabit Maxwell function must be performed via the Web interface or the various programmatic and RESTful API's that are provided.

Maxwell G uses a standard PC USB keyboard and USB mouse.  These may be plugged into any of the available USB ports.

Maxwell G may be used with VGA, DVI, or HDMI monitors.

When powered on the Maxwell G will display a login prompt on the video screen.

Maxwell G - Setting Up the Management (Control) Network Interface

The management (control) network interface by default uses DHCP to obtain network parameters.  But DHCP assigned addresses are likely to change unpredictably; you are likely to get a different address each time you start the Maxwell G.

Generally it will be more convenient to assign known, permanent network numbers.

In order to establish these permanent network numbers you engage in a two-step process:

  1. In the first step you establish some basic network numbers, including the IP address, to the management interface.

  2. Then you can go to a remote system, open a web browser, enter that IP address.  Then under the heading "Systems Configuration" click on the "Configure Mgmt. Interface" button.  That will invoke the network configuration web page.

The following sections describe various methods to establish those basic network numbers so that you can then get to the network configuration web page.

There are several methods to assign an address:

  1. Recommended: Local Keyboard/Video Method: This method is described below at Setting the IP Address - Local Keyboard/Video.

  2. SSH (Secure Shell) Method: This method is described below at Setting the IP Address - SSH (Secure Shell).

    This method is not recommended because it requires that you already know the IP address and thus you could - and should - directly use the The Web Interface

  3. DHCP: This method allows Maxwell G to ask a DHCP server on your network for a dynamic IP address.  The drawback of this method is that it may be difficult for you to ascertain what address the DHCP server assigned.

    This method is described below at Setting the IP Address - DHCP.

    Note: With DHCP you may obtain a different IP address every time you reboot Maxwell G.

Once you have decided how you are going to handle the IP address for Maxwell G's management interface you can begin to wire Maxwell G into your network and boot it up:

Be aware that Maxwell G's management interface may attempt to use or provide certain services on your network:

  • DHCP
  • ARP
  • Domain Name System (DNS, UDP port 53)
  • Network Time Protocol (NTP, UDP port 53)
  • SNMP (UDP ports 161 and 162)
  • System logging (Syslog, UDP port 514)
  • HTTP (TCP port 80)
  • RADIUS (UDP port 1812)
  • SSH (TCP port 22)

If you have been successful you should be able to “ping” the Maxwell G from another computer on your network.  You should also be able to reach Maxwell G from a web browser on your network using a URL of the form http://xxx.xxx.xxx.xxx/ where xxx.xxx.xxx.xxx is the IP address that was assigned to Maxwell G.

Maxwell G - Before You Begin

Using a standard RJ45 based ethernet cable, hook Maxwell G's console port into your network.  The console port is the RJ45 ethernet that is near the center of the back of the chassis.  The console port is not one of the two RJ45 ethernet connectors that are adjacent to one another near the bottom edge of the chassis.  Those two are the data ports.

Normally a standard straight-through cable is used.  The ethernet jacks on Maxwell G have auto MDI/MDI-X logic and will usually adapt a crossover or non-crossover setting as needed.  As usual, the link state indicators at both ends should be checked (once power is applied) to verify that the link has been established and that the speed is correct.

Unless you plan to use DHCP you will need to obtain the following information from your system administrator:

  • IPv4 address for the device to use.
  • Subnet mask in the form of prefix length.  A table of masks to prefix lengths may be found in another note.
  • Hostname and domain name - These do not have to be in DNS.
  • IPv4 address to use as a default route.
  • IPv4 address of at least one DNS server.
  • IPv4 address or domain name of NTP time servers (optional).
  • IPv4 address of a syslog server (optional).
  • SNMP "syscontact" (optional).
  • SNMP "syslocation" (optional).
  • IPv4 address of an SNMP trap server (optional)
  • If optional RADIUS access control is to be used:
    • IPv4 address of one or two RADIUS servers.
    • UDP port number to use for each of those RADIUS servers.
    • A RADIUS "secret" to use for each of those RADIUS servers.
Maxwell G - Setting the IP Address - Via Local Keyboard/Video

Only the basic IP address information can be set using through the local keyboard/video.

Once the basic information is set the web interface should be used to set all of the IP addressing information.

Perform the following steps:

  1. Attach a standard keyboard and video display to the Maxwell G.  A mouse is not required.  Once these are attached, press the "Enter" key on the keyboard to induce the display of a login prompt.  If you do not see a prompt then check that the Maxwell G has been booted and that your monitor is reading from the correct input, usually either DVI, VGA, or HDMI.  If you still do not see anything, power cycle the Maxwell G: you should see the BIOS display on the monitor as it comes up.

  2. Login to view the currently used parameters:
         Username:   info
         Password:   info   (Note, on some older units that password is"4hY7oy7X".)

    You may be prompted to provide a terminal type, if so reply with the Enter key.

    The current operating parameters will then be displayed.

  3. Login to establish new basic network parameters:
         Username:   setup
         Password:   83Pj4Dmt

  4. Follow the instructions.  The script may ask you whether you want to reboot.  If it is a good time to do so, then perform a reboot and bypass the next step below.

  5. Logoff using Ctrl-D or the “exit” command, or reboot the device using the “reboot” command.

After you set the basic IP address information you can use the web interface to extend or change that information.

Use a URL of the form shown below, but replace “192.168.1.100” with the IP address actually being used for the device.  This will bring up the home page.

http://192.168.1.100/

Then use the "Configure Mgmt. Interface" to launch the “Network Configuration” page.

Maxwell G - Setting the IP Address - Via SSH (Secure Shell)

Note: It is strongly recommended that you set the basic IP address information using the local keyboard/video method as described above.

This method may be used only if you already know the IP address being used, which means that you could use a web browser to further configure the device via its web interface as described at The Web Interface

Only the basic IP address information can be set using through SSH.

Once the basic information is set the web interface should be used to set all of the IP addressing information.

Perform the following steps:

  1. Connect a personal computer running a secure shell client program.  (There are several open source SSH client programs.  For Linux systems it is almost certainly pre-installed.  For MS Windows a very popular SSH client is putty which is available at http://www.chiark.greenend.org.uk/~sgtatham/putty/

  2. Login to view the currently used parameters:
         Username:   info
         Password:   info   (Note, on some older units that password is"4hY7oy7X".)

    You may be prompted to provide a terminal type, if so reply with the Enter key.

    The current operating parameters will then be displayed.

  3. Login to establish new basic network parameters:
         Username:   setup
         Password:   83Pj4Dmt

  4. Follow the instructions.  The script may ask you whether you want to reboot.  If it is a good time to do so, then perform a reboot and bypass the next step below.

  5. Logoff using Ctrl-D or the “exit” command, or reboot the device using the “reboot” command.

After you set the basic IP address information you can use the web interface to extend or change that information.

Use a URL of the form shown below, but replace “192.168.1.100” with the IP address actually being used for the device.  This will bring up the home page.

http://192.168.1.100/

Then follow the links to the “Network Configuration” page.

Maxwell G - Setting the IP Address - DHCP

Maxwell G can obtain its network configuration using the Dynamic Host Configuration Protocol, DHCP.  This is an easy way to operate but it comes with a drawback: It can be difficult to ascertain the IP address that the DHCP server assigned to Maxwell G.  For that reason it is often useful to create an explicit DHCP assignment entry into the DHCP server configuration so that Maxwell G will obtain a known IP address from the DHCP server.

The attempt to use DHCP happens only when Maxwell G is powered on or restarted. 

Maxwell G - Ascertaining the IP Address Assigned by DHCP

The question then arises: How does one ascertain the IP address that was assigned to the device?

There are two methods to do this:

  • Ask Maxwell G via a local keyboard/video - Login as user "info" with the password "info"  (Note, on some older units that password is"4hY7oy7X").  You may be prompted to provide a terminal type, if so reply with the Enter key.  The current operating parameters will then be displayed. 
  • Ask the DHCP server - This method may require special knowledge and privilege on the DHCP server.

    If you are uncomfortable with dealing with DHCP servers or do not have adequate system privileges to get to DHCP logs, then the local keyboard/video configuration method is likely to be the best choice.

    In order to ask the DCHP server you need to ascertain which device on your network is providing the DHCP service.

    Different DHCP servers note their assignments in different ways.

    The ISC DHCP server, popular on Linux and Unix systems, sends reports of DHCP activity into the system's syslog.  These messages are usually recorded into the file named /var/log/messages.  This file is often protected and readable only by the system administrator.

    The ISC DHCP server also records its assignments in the file /var/lib/dhcp/dhcpd.leases.

    If you inspect these files you may find that you have several possible IP addresses.  The easiest way to find which one is correct is to try to connect to each via a web browser until you get the the device web pages.  An example of a URL that contains an IP address is this, which contains the address 192.168.1.100:  http://192.168.1.100/

    If your DHCP server is within your router, then it may have a web page that displays its DHCP assignments.

Maxwell G - Default Address

Maxwell G does not have a default IP address.  Please attach a local keyboard, mouse, and video as described at Keyboard, Mouse, and Video Connections and then set the management network interface IPv4 address as described at Setting Up the Management (Control) Network Interface.

Maxwell G - Setting the IP Address - The Web Interface

After the basic network parameters have been established using one of the methods described above you may modify or extend those setting via a web page as shown below.

Use a URL similar to that shown below, but replace “192.168.1.100” with the IP address actually being used for the device.  This will bring up the home page.  From that home page navigate to the network configuration page by clicking on the "Configure Mgmt. Interface" button.

http://192.168.1.100/

Don't forget to click the appropriate "DHCP" or "static" checkbox!

Network parameters web page
Maxwell G - Restoring the Factory Configuration of the Management (Control) Network Interface

The configuration of the management network interface may be restored to the factory settings through the following procedure.

Note: The configuration change will be made immediately and as a result you may lose connectivity with the Maxwell G.

 

Mini Maxwell - Getting Started

Mini Maxwell - Unpacking and Physical Installation

Unpack the Mini Maxwell and make sure you have all the pieces:

  • The Mini Maxwell chassis – this is an aluminum box about 6.5 inches (16.5cm) square and about 1 inch (2.5cm) thick.
  • A power “brick”

Take a look at the Hardware Platform section of this document  This will show you the various interfaces and plugs on the chassis.

There should be a label on the bottom of the chassis - this label shows the MAC address of the management ethernet interface (eth0).

Mini Maxwell - Location

Consider where you will be installing Mini Maxwell.  This will dictate the IP address that you will need to assign to Mini Maxwell's management interface.

Note: Mini Maxwell's management interface is logically distinct from the two data ports – the traffic that you will be impairing can be, and probably ought to be, on an entirely separate subnet.

Mini Maxwell - Power, Temperature, and Other Environmental Considerations

Electrical Power

Power may be supplied via the power connector or via the rightmost of the three Ethernet RJ45 jacks.  (Note: This power-injection facility is not 802.3af compliant.  See the note Powering Mini Maxwell Over the Management (Control) Ethernet.)

The power connector has the following specifications:

Power Connector
  • Voltage 12-18V, DC
  • Current 0.9A (or more)
  • Sleeve: Ground
  • Center post: 2.1mm, Positive
 

Note: Power-over-Ethernet (PoE) is not provided by any Ethernet port on the Mini Maxwell.

Note: Take care to use the correct power brick.  Do not use a 110v/120v power brick in a 220/240v location.

Note: Take care that you use a power brick with a 2.1mm plug.  Many bricks have a 2.5mm plug; these do not always fully mate with the center pin and can cause problems by causing an intermittent power connection.

The boot-up process takes between 60 and 90 seconds.  At the end of that time the power LED on the front of the Mini Maxwell chassis should be lit.  (The power LED is the one of three LEDs on the front – the power LED is the one closest to the edge of the box.)

Now you should set the IP address using the method you have selected.  If you previously used the Offline or Serial Console method then the address that was set previously will remain and need not be set again.

Mini Maxwell - Power Over an Ethernet Cable (Powering Mini Maxwell Over the Management/Control Ethernet)

It is possible to provide power to the Mini Maxwell via its management Ethernet interface.

This is not recommended.

This powering facility is not compliant with IEEE 802.3af.

A special DC injector is required.

NOTE: Mini Maxwell should not be plugged into a switch that provides IEEE compliant power over Ethernet.  Mini Maxwell will not utilize that power source.  And there is a risk of damage to the switch that is providing that power.

Mini Maxwell - Temperature and Other Environmental Considerations

Mini Maxwell uses passive cooling.  However it should not be placed in a tightly confined space with no airflow.

Mini Maxwell should be placed in a location with normal office or computer room temperature and humidity levels.

Mini Maxwell contains no rotating or moving parts.  However it should not be subjected to more vibration than is typical for a computer rack that contains operating disk drives.

Mini Maxwell may be mounted in any orientation.

Care should be taken to assure that the power brick is not dangling from a power strip and that the cord from the power brick to the Mini Maxwell itself is not entangled and safe from being accidentally or damaged in a door jam.

Mini Maxwell - Connecting the Serial Console Interface

The serial console is typically used only for initial configuration.

The serial console uses the RS232 interface.  Generally one attaches a laptop or desktop computer to this interface using a female DB-9 to female DB-9 null-modem cable.

An appropriate cable may have been included with your Mini Maxwell.

Note:Some laptops may lack a serial DB-9 connector.  In that case one might use a USB serial adapter with drivers as appropriate for the operating system used on the laptop.

Note: If your computer does not have its own RS232/serial interface or if you do not have the appropriate cable an alternative is to plug a Bluetooth serial adapter, such as the IOGear GBS301, into the console port on Mini Maxwell and then to use a laptop or desktop that has Bluetooth to connect to that adapter.

Many modern computer users are not familiar with RS232 and may find it to have rather more settings and physical configurations than they are used to.

Note:If you are in a position to let the device use DHCP to obtain an address for its management interface and you can easily learn what address has been assigned then you may find it easiest to not use the serial console at all.

Once the device has been configured it is not necessary to leave the serial interface connected.  However, it is sometimes convenient to leave the serial console connected to a nearby PC.

True RS232 terminals have long been obsolete; today they have been replaced by software on personal computer platforms.  Most personal computers use a male DB-9 connector exactly like that used on the device.

In RS232 terminology the device is a DTE - Data Terminal Equipment.  PC's and laptops are also RS232 DTE's.  This means that they must be connected using what is called a "Null Modem" cable.  (As was mentioned above, it is often easier to use a Bluetooth serial adapter than to try to find the correct RS232 cable.)

The cable to connect a PC to the device must have the following characteristics:

  • Female DB-9 to Female DB-9
  • Null Modem (crossover) wiring

Such cables are available through many electronics suppliers.  Take care to find ones with DB-9 female connectors at both ends.

Note: Some suppliers now sell only null modem cables with a male DB-9 at one end and a female DB-9 connector at the other end.  In these cases a female-female DB-9 "gender changer" will also be required.

Note:Unless cables are well marked, there is no visual way to differentiate whether a given cable is a null modem or not.  It is good practice to appropriately mark serial cables as soon as they are unwrapped from the vendor's packaging.

Once the wiring is installed it is necessary to use a terminal emulator program on the PC.  Here are the settings that should be used.  Because there are many terminal emulator programs and each is configured in its own way, the details of how these settings are name, expressed, and applied will vary:

  • Asynchronous
  • 38,400 bits/second
  • 8 bits per character/byte
  • no parity
  • 1 stop bit
  • Full duplex (i.e. remote echo)
  • No modem controls
  • No flow control (i.e. no RTS/CTS, no xon/xoff)

Here is an example configuration file used by the popular (and free) Kermit terminal emulator:

; The following is typical for built-in serial ports on Linux machines:
set line /dev/ttyS0
; The following line (which is commented-out) is typical
; for USB based serial ports on Linux machines"
; set line /dev/ttyUSB0
; On Windows machines the port will probably look something like
; the following, but perhaps with a different number.
; set line com1
set carrier-watch off
set speed 38400
set serial 8N1
set flow-control none

NOTE:The device does not use modem control signals; use the “Enter” key on the terminal emulator program to cause the device to issue a login prompt.  If you receive gibberish then the communications settings, probably the bits-per-second-rate, are incorrect.  If you do not get any response at all then it is likely that either the communications settings of the terminal emulator are incorrect or the cable is not a null-modem cable.

Mini Maxwell - Setting Up the (Management) Control Network Interface

Using a standard RJ45 based ethernet cable, hook Mini Maxwell's console port into your network.  Normally a standard straight-through cable is used.  The ethernet jacks on Mini Maxwell have auto MDI/MDI-X logic and will usually adapt a crossover or non-crossover setting as needed.  As usual, the link state indicators at both ends should be checked (once power is applied) to verify that the link has been established and that the speed is correct.

Note: The link state LED's on the ethernet ports on Mini Maxwell do not indicate whether they are linked at 10 or 100 mbits/second; they merely indicate whether link state is present or not.

The management network interface by default uses DHCP to obtain network parameters; in the absence of a DHCP server the management interface will fall back to the IP address 192.168.0.5/24.  Usually it will be more convenient to assign known and fixed network numbers.  Once you have assigned the network numbers to the management interface you can use the Mini Maxwell web page (shown below) to set the network numbers.  But that creates a chicken-and-egg problem - how do you set the network numbers so that you can get to the web page to set the network numbers?  The following sections describe how to resolve this.

There are several methods to assign an address:

  1. Recommended: Offline Method: This method is described below at Setting the IP Address - Offline Method.

  2. Serial Console: This method requires that you attach a serial cable to the Mini Maxwell chassis and use a terminal emulator program.

    This method is described below at Setting the IP Address - Via The Serial Console.

    See the section Connecting the Serial Console Interface for information about what kind of cable is required and what serial data rate settings should be used.

  3. DHCP: This method allows Mini Maxwell to ask a DHCP server on your network for a dynamic IP address.  The drawback of this method is that it may be difficult for you to ascertain what address the DHCP server assigned.
    This method is described below at Setting the IP Address - DHCP.

    Note: With DHCP you may obtain a different IP address every time you reboot Mini Maxwell.

Once you have decided how you are going to handle the IP address for Mini Maxwell's management interface you can begin to wire Mini Maxwell into your network and boot it up:

Be aware that Mini Maxwell's management interface may attempt to use or provide certain services on your network:

  • DHCP
  • ARP
  • Domain Name System (DNS, UDP port 53)
  • Network Time Protocol (NTP, UDP port 53)
  • SNMP (UDP ports 161 and 162)
  • System logging (Syslog, UDP port 514)
  • HTTP (TCP port 80)
  • RADIUS (UDP port 1812)
  • SSH (TCP port 22)

If you have been successful you should be able to “ping” the Mini Maxwell from another computer on your network.  You should also be able to reach Mini Maxwell from a web browser on your network using a URL of the form http://xxx.xxx.xxx.xxx/ where xxx.xxx.xxx.xxx is the IP address that was assigned to Mini Maxwell.

Mini Maxwell - Setting the IP Address - Offline Method

Often the easiest way to establish a knowable IP address to is to use what we call the Offline Method.

We have a video of this at http://youtu.be/eqnazcZCX_I

This method depends on the fact that, in its factory default state, the device will fall-back onto a default address and mask if it can not otherwise obtain one over the network.

That default address and mask are:

  • 192.168.0.5
  • 255.255.255.0 (length 24, i.e. a /24)

Here's how you do it:

  1. Obtain the following information from your system administrator:
    • IPv4 address for the device to use.
    • Subnet mask in the form of prefix length.  A table of masks to prefix lengths may be found in another note.
    • Hostname and domain name - These do not have to be in DNS.
    • IPv4 address to use as a default route.
    • IPv4 address of at least one DNS server.
    • IPv4 address or domain name of NTP time servers (optional).
    • IPv4 address of a syslog server (optional).
  2. Locate a computer that you can use that has both a web browser and on which you can change the IP address of its wired network interface.
  3. Change its IP address to 192.168.0.6 and it's subnet mask to 255.255.255.0.  If it requires a default route, give it 192.168.0.1.
  4. Launch the web browser.  It might be very sluggish as a result of it not being able to perform DNS queries or reaching home pages.  Be patient.
  5. Attach the management interface to your network or, if your network administrator prefers, to an isolated network composed of nothing more than a simple Ethernet hub or switch.
  6. Power cycle the device.  After a few seconds you should see the link-state LED's come on on on the management interface socket.
  7. Wait at least 90 seconds for device to fully boot.
  8. Use the web browser to go to the following URL: http://192.168.0.5/
  9. You should see the configuration web pages as described at The Web Interface.  Use the "Configure Network" page to set the desired settings.  Don't forget to click the "static" checkbox!  When you have entered all of the settings, use the "Submit" button.
  10. You will probably be prompted to supply a name and password when you submit the changes.  Use user name "sbump" with password "4ZytYqbm".
  11. You may now unplug the device and install it in its proper location on your network.
Mini Maxwell - Setting the IP Address - Via The Serial Console

Note: It is strongly recommended that you set the basic IP address information using the offline method as described above.

The serial console is intended to be used only during initial system installation and configuration and for management purposes.  Only the basic IP address information can be set using through the serial console.

Once the basic information is set the web interface should be used to set all of the IP addressing information.

Before starting you should ascertain the addressing information you will need:

  • Hostname (e.g. bump72) and domain name (e.g.example.com)
  • IPv4 address
  • Subnet mask (in either address notation, e.g. 255.255.255.0, or prefix notion, e.g. /24)
  • Default route
  • IPv4 address of a DNS server
  • IPv4 address of an NTP server (optional)
  • IPv4 of a syslog server (optional)

Perform the following steps:

  1. Connect a personal computer running a terminal emulator program.  See the section of this document entitled “Connecting the Serial Console Interface

  2. Login:
     Username: setup
     Password: 83Pj4Dmt

  3. Follow the instructions.  The script may ask you whether you want to reboot.  If it is a good time to do so, then perform a reboot and bypass the next step below.

  4. Logoff using Ctrl-D or the “exit” command, or reboot the device using the “reboot” command.

NOTE: The address changes will not have effect until the device is rebooted.

After you set the basic IP address information you can use the web interface to extend or change that information.

Use a URL of the form shown below, but replace “192.168.1.100” with the IP address actually being used for the device.  This will bring up the home page.

http://192.168.1.100/

Then follow the links to the “Network Configuration” page.

Mini Maxwell - Setting the IP Address - DHCP

Mini Maxwell can obtain its network configuration using the Dynamic Host Configuration Protocol, DHCP.  This is an easy way to operate but it comes with a drawback: It can be difficult to ascertain the IP address that the DHCP server assigned to Mini Maxwell.  For that reason it is often useful to create an explicit DHCP assignment entry into the DHCP server configuration so that Maxwell G and Mini Maxwell will obtain a known IP address from the DHCP server.

The attempt to use DHCP happens only when Maxwell G and Mini Maxwell are powered on or restarted.  If there is no DHCP server available at that time the device will self-assign the following IP address and subnet mask:

  • 192.168.0.5
  • 255.255.255.0 (i.e. /24)
Mini Maxwell - Ascertaining the IP Address Assigned by DHCP

The question then arises: How does one ascertain the IP address that was assigned to the device?

There are three broadly defined methods to do this:

  • Configure the device Offline - In many cases this is the easiest and best way to deal with the issue.  See the information at offline method.

  • Ask the DHCP server - This method may require special knowledge and privilege on the DHCP server.

    If you are uncomfortable with dealing with DHCP servers or do not have adequate system privileges to get to DHCP logs, then the offline configuration method is likely to be the best choice.

    In order to ask the DCHP server you need to ascertain which device on your network is providing the DHCP service.

    Different DHCP servers note their assignments in different ways.

    The ISC DHCP server, popular on Linux and Unix systems, sends reports of DHCP activity into the system's syslog.  These messages are usually recorded into the file named /var/log/messages.  This file is often protected and readable only by the system administrator.

    The ISC DHCP server also records its assignments in the file /var/lib/dhcp/dhcpd.leases.

    If you inspect these files you may find that you have several possible IP addresses.  The easiest way to find which one is correct is to try to connect to each via a web browser until you get the the device web pages.  An example of a URL that contains an IP address is this, which contains the address 192.168.1.100:  http://192.168.1.100/

    If your DHCP server is within your router, then it may have a web page that displays its DHCP assignments.

  • Ask Mini Maxwell via the serial console - Maxwell G and Mini Maxwell will display its network address just before issuing login prompts on the serial console.  This means that you have to go through the steps to connect to the serial console - see Setting the IP Address - Via The Serial Console
Mini Maxwell - Default Address

If Mini Maxwell is using DHCP to obtain an IP address and if DHCP fails to ascertain an address, the following IP address and subnet mask will be self-assigned the management interface:

  • IP address: 192.168.0.5
  • Subnet Mask: 255.255.255.0 (prefix length 24, i.e. a /24)

NOTE: The other interfaces do not have IP addresses.

Mini Maxwell - Setting the IP Address - The Web Interface

After the basic network parameters have been established using one of the methods described above you may modify or extend those setting via a web page as shown below.

Use a URL similar to that shown below, but replace “192.168.0.5” with the IP address actually being used for the device.  This will bring up the home page.  From that home page navigate to the network configuration page by clicking on the "Configure Mgmt. Interface" button.

http://192.168.0.5/

Don't forget to click the appropriate "DHCP" or "static" checkbox!

Network parameters web page
Mini Maxwell - Restoring the Factory Configuration of the Management (Control) Network Interface

The configuration of the management network interface may be restored to the factory settings through the following procedure.  Note the three LEDs and the hole to the Reset Button on the front of the Mini Maxwell box.  You will need to push the Reset Button and watch the LEDs during the restoration procedure.  The LEDs will give you signals when to press the Reset Button and when the restoration has had effect.  In order to avoid the Mini Maxwell box from slipping away when you push the button you may want to do this on a non-slippery surface.

Front View
  1. Find something that you can use as a tool to push the Reset Button (see the diagram above.)  (For instance you might find a toothpick or a straightened paper clip will do the job.  Whatever it is, it needs to be small enough, long enough, and stiff enough to reach through the Reset Button hole to push and hold the button.  Non conductive materials, such as plastic or wood, are preferable to metal.)

  2. Remove the power cable from the Mini Maxwell.

  3. Restore the power cable to the Mini Maxwell.  Almost immediately all three LEDs will light.  Within a few seconds two of the LEDs will go out, leaving one LED lit.

  4. Within a few seconds after the three lit LEDs fall back to one lit LED insert the tool (the paper clip or toothpick) into the Reset Button hole and push and hold pushed the button inside the hold.  (You ought to be able to feel the spring action of the button - it is subtle - to confirm that you are actually pushing on the button.)

  5. Continue to hold the button until the three LED's all blink on and off three times thus signaling that the button push has been accepted and that the factory configuration has been restored.  Normally this will occur around 20 to 30 seconds after power was applied to the Mini Maxwell.  If the LEDs don't blink then it is likely that you were not pushing the button.

  6. You can remove the tool from the Reset Button.

  7. The Mini Maxwell will continue its boot-up sequence.

Syslog

Maxwell G and Mini Maxwell send event information into “syslog”.  This may be configured so that the “syslog” actually resides on a separate computer that is running a syslog server.

Note: Some systems, such as Fedora Linux, are preconfigured to not accept syslog messages from other computers.

This may be altered by changing the file /etc/sysconfig/syslog so that the “-r” parameter is supplied, as shown below.

SYSLOGD_OPTIONS="-m 0 -r"

The syslog server must be restarted after this change has been made

SNMP Traps

Maxwell G and Mini Maxwell are able to emit SNMP "trap" messages to indicate that the device has cold-started.

These traps will be sent using SNMP version 1; the trap community string may be configured by the user.

SNMP Data

The user may establish two strings that will appear in the SNMP MIB presented by the Maxwell G or Mini Maxwell.  Neither of these strings should contain a newline and the maximum length is 254 characters.

  • The sysLocation - this may be used to describe the physical location of the Maxwell G or Mini Maxwell.
  • The sysContact - this may be used to describe who to contact for information about this Maxwell G or Mini Maxwell.

RADIUS

If RADIUS is enabled the Maxwell G or Mini Maxwell will require the user to provide a username and password before any web pages may be accessed.  (The username and password may be requested again after about 60 minutes or if the user clears the cookies in the web browser used to manage the Maxwell G or Mini Maxwell.)

Several values are required for RADIUS identification.  You should obtain these from your system or network administrator.

  • IP Address or host-name of a RADIUS server.
  • The UDP port on which that server is listening (typically 1812)
  • The RADIUS secret (a sequence of ASCII alphanumeric characters.)
  • A RADIUS username and password.  These are not entered with the the network configuration data, rather you will be prompted to provide these by your web browser when the RADIUS systems chooses to require you to identify and authenticate yourself.

Two RADIUS servers may be configured.  The first one is the primary, the second is the backup that will be used in case the primary is non-responsive.

Note: Great care must be used when setting the RADIUS values; a wrong setting can make all of the web pages inaccessible - including the network configuration page on which the RADIUS settings may be changed.  Should that occur then the user not be able to use the web interface to correct the situation.  Rather the user will have to log-in using SSH or via a local keyboard/video and remove the RADIUS settings.  A shell script - /sbin/radius_off - has been provided to remove the RADIUS settings.  Superuser/root privilege is required to do this.  Or the Maxwell G or Mini Maxwell could be restored to the factory configuration.

Note: RADIUS must not be used if the Maxwell G or Mini Maxwell is to be controlled in some way other than a user using a web browser, for example from a script or spreadsheet.

DHCP Server Configuration

Below is a typical entry used for in the configuration file (/etc/dhcpd.conf) for the ISC DHCP server.  In this example we are configuring device "device.example.com" that has a MAC address of 00:0D:B9 01:8C:6C.

option ntp-servers pool.ntp.org;option domain-name "example.com";
option domain-name-servers ns1.example.com, ns2.example.com;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.17.255;
option routers 192.168.17.66;
option log-servers logserver.example.com;
max-lease-time 64800;
default-lease-time 64800
group {
    host board-1 {
        hardware ethernet 00:0D:B9:01:8C:6C;
        fixed-address device.example.com;
        # Coerce the client to take the log server option whether they
        # ask for it or not.
        # Note: The next line may appear to be wrapped, in real-life it is one line.
        option dhcp-parameter-request-list = concat(option dhcp-parameter-request-list,7);
        option host-name "device.example.com";
        option tftp-server-name "tftpserver.example.com";
        option root-path "/tftpboot";
        next-server tftpserver.example.com;
        if substring (option vendor-class-identifier, 0, 9) = "Etherboot" {
            filename "pxelinux.0";
            }
        }
}

Connecting to the Devices Under Test

Because Maxwell G and Mini Maxwell operate at layer 2, they appear to most Ethernet devices as merely a bump in the Ethernet cable - there are no addressing or routing parameters to be configured.

Maxwell G and Mini Maxwell do introduce a small store-and-forward delay - on the order of a few hundred microseconds.  This is insignificant for most IP and higher level protocol testing purposes because it is typically an order of magnitude (or more) smaller than the kinds of delays normally perceived at that level.

Some issues may arise when you connect devices to the two data interfaces.

Forwarding Loops

A common error when wiring Maxwell G or Mini Maxwell between devices is to directly (or indirectly) plug both of the data ports into the same switch.  This creates a packet forwarding loop.  As soon as the first packet is sent by any device the network will reach full capacity as the packet goes around and around in an infinite loop.

When wiring Maxwell G or Mini Maxwell into the network care should be exercised to assure that the two network segments, the one attached to LAN-A and the one attached to LAN-B, are isolated from one another without any routers, switches, or hubs connecting them together.  Maxwell G or Mini Maxwell should be the sole point of interconnection.

Note: Maxwell G or Mini Maxwell may be used between two ports of the same switch if that switch is able to separate those ports onto separate untagged VLANs.  However, some switches that emit Spanning Tree Protocol onto those untagged VLANs may do so, incorrectly, using the same source MAC address.  This can lead to a switch incorrectly believing that a loop has been created.  Maxwell G and Mini Maxwell can accommodate this situation through the use of an Ethernet filter that classifies those packets into a band that has been set to drop 100% of the packets on that band.

Link State

When you connect devices to the two data interfaces of a Maxwell G or Mini Maxwell you should always check that you are getting the link-state indicator at both the Maxwell G or Mini Maxwell end as well as on the interfaces to the devices.

Interface Speed

Mini Maxwell's interfaces operate at 10 or 100 megabits/second.  Maxwell G's interfaces operate at 10, 100, or 1000 megabits/second.

However some devices, particular some routers, switches, and test equipment has interfaces that are locked onto a single speed or which may be configured by their operator to be locked onto a single speed.

If speed negotiation is not possible the easiest cure is to insert an inexpensive, consumer-grade 10/100/1000 ethernet switch into the path between the device and Maxwell G or Mini Maxwell.  These switches will usually solve all of the negotiation issues.

Duplex/Half-Duplex

The interfaces on Maxwell G and Mini Maxwell will auto-adapt to the full or half duplex mode used by the device at the far end of the Ethernet cable.  Normally you should have no problems with this, however duplex negotiation has had more than its share of devices that have had difficulty.  Hopefully that is a thing of the past for modern equipment.  If there is a duplex issue, often inserting an inexpensive, consumer grade 10/100/1000 switch into the path will solve the problem.

Two Levels, Two Homes

The Maxwell G and Mini Maxwell web pages are divided into two major levels.

When you connect to the Maxwell G or Mini Maxwell you will most likely use a URL that looks something like http://192.168.225.1/ or http://minimax.example.com.  What you will see is a home page that represents the overall device, as shown below.

Note: Due to periodic code revisions there may be small differences between the screen shots shown here and the pages presented by your Maxwell G or Mini Maxwell.

Ursaminor home page

This top level home page is used to control the platform - most notably to set network numbers and names for the management port.  (In its default state the management port uses the DHCP protocol to obtain that information and if no DHCP server is found the management port will use the IP address 192.68.0.5/24.)

The system underneath Mini Maxwell are called Ursaminor, you might see that name occasionally in documentation or on some of the web pages.  Maxwell G uses the Fedora Linux distribution.

The top level home page is designed to support multiple applications, Maxwell G/Mini Maxwell being the application of interest here.  The Maxwell G/Mini Maxwell icon/button shown above (near the upper left corner of the page) will invoke the home page for Maxwell G or Mini Maxwell itself (which is shown below.)

Maxwell G and Mini Maxwell Home Page

You will probably spend most of your time using the Maxwell G or Mini Maxwell web pages.  But if you ever need to get back to the top level, there is a "Return" button on the Maxwell G/Mini Maxwell level home page.

Hardware Platform

Maxwell G Hardware Platform

The Maxwell G hardware consists of a small desktop style chassis.

Below are photos of the side and rear of the Maxwell G chassis.

Side ViewRear View

Maxwell G contains fans and a rotating disk drive.  The preferred position is with the chassis on its side so that the exhaust fan(s) are facing upwards.  A plastic support is provided to hold the chassis in this position.  Adequate air circulation is necessary to dissipate the heat (about 100 to 150 watts) that is generated.

The three Ethernet interfaces operate at 10, 100, and 1000 megabits/second and support auto crossover (auto MDI/MDI-X).

Each of the ethernet interfaces on Maxwell G has two LEDs.  The LED on the left side of each connector indicates whether link state is present or not.  This LED blinks off/on to indicate packet activity.  The LED on the right side indicates whether the link is operating at 10 (not-lit), 100 (green), or 1000 (orange) mbits/second.

Mini Maxwell Hardware Platform

The Mini Maxwell hardware consists of a small chassis, approximate 6.5 inches square by 1 inch thick.  It is usually powered via an external power supply “brick” but may alternatively be powered via its management ethernet interface (eth0).  (Note: This power-injection facility is not 802.3af compliant.  See the note Powering Mini Maxwell Over the Management (Control) Ethernet.)

NOTE: Mini Maxwell may be damaged beyond repair if an incorrect power supply is used.  Power voltage must be between 7v and 20v DC (12V through 18V is recommended.).  Please take care to avoid using a non-universal (i.e. 110/120v only) power supply in a 220/240v location.

Also note that the power connector on Mini Maxwell uses a 2.1mm center pin.  Some power supplies have holes in their plug for 2.5mm pins.  These often work, but there is a risk of an intermittent power connection.  Therefore a power supply with a plug for 2.1mm pins is required.

Below are drawings of the front and rear of the Mini Maxwell chassis.

Front ViewRear View

Mini Maxwell contains no rotating disks or fans.  It generates almost no noticeable heat and is silent.  It may be mounted in any convenient orientation.  However, a small amount of air circulation is necessary to dissipate the small amount of heat (about 4 watts) that is generated.

The three Ethernet interfaces operate at 10 and 100 megabits/second and support auto crossover (auto MDI/MDI-X).

Each of the ethernet interfaces on Mini Maxwell has two LEDs.  The LED on the upper left corner indicates whether link state is present or not.  This LED blinks off/on to indicate packet reception.  The LED on the upper right corner indicates whether the interface is active (which is normally the case when power is on) and blinks off/on to indicate packet transmission.  Neither LED indicates whether the link is operating at 10mbits/second or 100mbits/second or whether the link is operating in half or full duplex mode.

Note: The Reset button is supported by the current software release only for the purpose of Restoring the Factory Configuration during the power-up phase.

Basic Terminology

The table below defines some basic terms used in Mini Maxwell.  Several of these terms will be revisited in greater detail in later sections of this document.

Bands

Bands are collections of traffic.  Impairments are applied to bands.  Each band may have a different set of impairments.

Filters

Filters are patterns that are applied to incoming packets for the purpose of classifying each packet and assigning it to a band.  Any traffic that is not classified is automatically placed into Band #5 in the appropriate direction.

Users may create new filters or redefine existing ones.

There are two types of filters:

  • IPv4 filters are used to classify packets on the basis of IPv4 header fields (as well as UDP, TCP, and user data).
  • Ethernet filters are used to classify packets on the basis of the Ethernet source and destination MAC address fields and also the Ethernet type/length field.

The filter map is used to specify the band into which each filter will classify matching packets.  The filter map may be be defined by the user.  Any filter that is not mapped will default so that packets that match will be classified into band #5.

Filters are applied to packets sequentially, one after the other.  Each packet will be classified into according to the filter map entry for the first filter that matches that packet.

The user may alter the sequence in which filters are applied.

This will be described in more detail later in this document.

LAN-A, LAN-B,
and the
Management/Control interface

There are three are physical Ethernet interfaces on the Maxwell G and Mini Maxwell hardware.  Two of these are used for the purpose of carrying the packets to be impaired, the third is used to attach the Maxwell G or Mini Maxwell to the user's network so that the user can manage the Maxwell G or Mini Maxwell from a web browser.

The two interfaces used for packet impairment are called LAN-A and LAN-B.

LAN-A is the Linux interface “eth2” and LAN-B is the Linux interface “eth1”.

Mini Maxwell's "eth0" ethernet interface is the management interface.  It is used for control purposes.  This interface should be attached to the user's normal lab or office network so that the user can control Maxwell G and Mini Maxwell from the user's normal computer via a standard web browser.

The location of these interfaces may be seen in the drawings found in the Maxwell G hardware platform and Mini Maxwell hardware platform portions of this document.

Token Bucket Filter
(TBF)

A token bucket filter is a mechanism used to impose a rate limitation upon a band.

The use of token bucket filters in Maxwell G and Mini Maxwell will be described in more detail later in the section on Rate Limitation.

For more information see the "man" page for tc-tbf(8)

The token bucket filter is controlled using the tc command. Tc is one of the most arcane of all of the Unix/Linux commands.

What is Netem?

Netem is a Linux kernel module that can be instructed to impair streams of packets.

These impairments include delay, loss, duplication, and reordering.

Netem is fully described on its website at http://linux-net.osdl.org/index.php/Netem.

Netem is controlled using the tc command.  Tc is one of the most arcane of all of the Unix/Linux commands.

How Are Maxwell G and Mini Maxwell Different From Netem?

Maxwell G and Mini Maxwell use the netem kernel module to do the actual real-time impairments.

However, Maxwell G and Mini Maxwell use netem in a way that avoids many of the difficulties of using netem directly.

For example, a typical netem user tries to run netem on an interface on a Linux box which is acting as one end of the conversation, or is acting as a router.  In the former case, the user has relatively poor control over the impairments applied to incoming traffic; often only outgoing traffic is impaired.  In the latter case the user has to configure the Linux box to be a router.  Routers are not transparent; the devices that are communicating via this impairing-router have to be configured accordingly.  This can be difficult for those who are not familiar with routing and it also add a degree of uncontrolled impairment due to the queuing that can occur in a router (for example, packets may be held back while the router is performing an ARP transaction.)

Maxwell G and Mini Maxwell deal with these, and other netem issues.

Maxwell G and Mini Maxwell run on dedicated platforms, each with three Ethernet interfaces, two of which are run in bridging mode.  Netem is applied to the outgoing packets on these two interfaces.  This means that:

  • Maxwell G and Mini Maxwell operate as a "bump on the wire".  There is no need to create special IP addresses or routes.
  • Maxwell G and Mini Maxwell can impair traffic flowing in both directions simultaneously.
  • Maxwell G and Mini Maxwell can partition the traffic by protocol, address, or other header fields and perform different kinds of impairments on each of those traffic partitions.
  • Maxwell G and Mini Maxwell can simultaneously impair traffic flowing between several different source-destination host pairs.

Netem is part of the IProute2 traffic control system on Linux.  IProute2 is full of arcane and incompletely documented commands.  Maxwell G and Mini Maxwell hide nearly all of the complexity of IProute2 from the user.

Because Maxwell G and Mini Maxwell are on a dedicated platform side effects from other applications are avoided.

The Linux kernel on Maxwell G and Mini Maxwell operates with a 1000Hz clock.  This improves the accuracy of its timers as compared to a typical Linux kernel with a 100Hz or 250Hz clock.

Ethernet Bridging

Maxwell G and Mini Maxwell connect LAN-A and LAN-B together in bridging mode.  This means that packets that arrive on LAN-A are relayed through netem and transmitted out of LAN-B.  And packets that arrive on LAN-B are relayed through netem and transmitted out of LAN-A.

The bridging function is a normal IEEE 802 bridge, which means that it tracks MAC addresses and bridges only those packets that need to be bridged.  This is in alignment with user expectations and is consistent with the operation of most Ethernet switches.

The MAC addresses of these interfaces is not inserted into packets.  Rather, the original MAC address is preserved.

The store and forward delay caused by this bridging (in the absence of any impairments) is very small - on the order of a few hundred microseconds.  This store and forward delay is inconsequential when compared with ordinary packet network transit times that are typically from tens to hundreds of milliseconds.

Maxwell G and Mini Maxwell will bridge ethernet frames that have IEEE 802.1q VLAN headers.  However, Mini Maxwell's filters will not properly operate on these packets.  Thus, if Maxwell G and Mini Maxwell are placed on a trunked VLAN (i.e. one in which all of the ethernet packets contain 802.1q headers, then all of the packets will be classified into the default band, Band 5.  Impairments specified for Band 5 will be applied to these tagged packets.

The Two Directions of Packet Flow: LAN-A→LAN-B and LAN-B→LAN-A

Maxwell G and Mini Maxwell can do different things to the packets flowing in the two different directions, i.e. from LAB-A to LAN-B and in the reverse direction from LAN-B to LAN-A.

Users may inadvertently apply an impairment to the LAN-A→LAN-B direction when they really need to apply it to the LAN-B→LAN-A direction instead.

Hint: In order to check whether you are applying an impairment on the correct direction of packet flow, temporarily apply an obvious impairment - such as a 500millisecond delay or 100% packet loss in one of the directions and observe the effect.

How Maxwell G and Mini Maxwell Work

The diagram below shows how a packet is processed in Maxwell G and Mini Maxwell.  The diagram shows only one direction of packet flow; in reality Maxwell G and Mini Maxwell contains two such flows, one for packets arriving on LAN-A and another for packets arriving on LAN-B.

How packets move through Maxwell G and Mini Maxwell
  1. A packet enters Maxwell G or Mini Maxwell through either LAN-A or LAN-B.

  2. The packet is processed by the Ethernet hardware - any packets that have an invalid Ethernet layer CRC (cyclic redundancy check) will be discarded by the hardware.

  3. The incoming packets are presented to the packet classification part of netem.  This classifier uses the filters and the filter map to sort each packet into one of five bands.  The filter contains a pattern that will be compared to packet contents; the filter map entry associated with each filter will designate which band should receive matching packets.  Filters are tested against the packet in the order defined by the filter sequence.  The packet will be classified according to the first filter that matches the packet contents.

    The last of these bands, Band #5, is a default band that will handle any packets that do not match any filters.  Packets may also be explicitly routed into Band #5 using filters that map to Band #5.

    Please note that although the diagram shows only one direction of packet flow there are, in actuality, classifier and five bands for each of the two directions.  The five bands in one direction are separate from the five bands in the other direction.

  4. Once classified into a band a packet will be subjected to the impairments that the user has specified for that band.

  5. Upon leaving the impairment stage of its assigned band, a packet is sent to the outgoing Ethernet interface.  At this point the Ethernet CRC will be computed and attached to the packet.  The Ethernet hardware will then transmit the packet.

Bands

When a packet arrives on either LAN-A or LAN-B it is run past the filters and, based on those filters, is classified into one of five different bands.

Bands are uni-directional.  This means that a band that carries traffic from LAN-A to LAN-B is different from a band that carries traffic in the reverse direction, from LAB-B to LAN-A.

A band is thus a conceptual way of grouping together all the packets that match certain filters and that are all going in the same direction.

There are five bands for each direction.

The last band, Band #5, is the default band for packets that are not otherwise classified by the filters.

It is good practice to use Band #5 as a kind of catch-all for traffic that the user most likely does not want to impair, most particularly ARP and DHCP.

Filters

Filters are patterns that are applied to packets.

There are two types of filters: IPv4 filters are used to classify packets on the basis of IPv4 header fields (as well as UDP, TCP, and user data). Ethernet filters are used to classify packets on the basis of the Ethernet source and destination MAC address fields and also the Ethernet type/length field.

All packets not classified by a filter are automatically sent into Band #5.

Filters operate by applying a pair of bit-wise logical operations to each indicated field in a packet.  The mask is logically AND-ed with the field.  The value is compared with the resulting pattern: if the value is equal to that result than that portion of the filter is considered True.  If all of the mask/value pairs in the filter result in True values then that filter is considered to have succeeded and the packet is classified according to that filter's position in the filter map and sequence.

A mask/value pair that has zero in the mask portion is not used.  And a filter must have at least one non-zero mask in order to be used even if that filter is present in the filter map.

Filters do not change the contents of packets; filters merely classify incoming packets into the various impairment bands where those packets may be subjected to things like delay, loss, or modification.

Neither Maxwell G nor Mini Maxwell use the filter shortcuts supported by the IProute2 “tc” command.  The reason for this is that those shortcuts do not work in the presence of IP options.

Instead, Maxwell G and Mini Maxwell use the fully expanded “u32” filter representation provided by IProute2 and the “tc” command.

Maxwell G and Mini Maxwell arrange IPv4 filters so that the “nexthdr+” mechanism does work to allow the inspection of UDP and TCP headers even if IP options are present in a packet.

Maxwell G and Mini Maxwell provide a set of pre-written filters.  The user may use these directly or may use them as a base for user-written filters.

Maxwell G and Mini Maxwell allow up to six “match” expressions per IPv4 filter.

Filter Inventory

Filters are collected into a "Filter Inventory".

Filters

Filters in the inventory may be created, copied, deleted, and edited as shown in the following diagram.

Editing filters

Filter Map

Maxwell G and Mini Maxwell maintain two filter maps: one map for each of the two directions that packets may flow through Mini Maxwell.

Think of each filter map as a kind of switchboard that plugs filters into bands.

Each filter map is a list of the available filters.

And for each filter the user may designate which band, if any, into which the filter should direct those packets that match the filter's criteria.

The figure below shows a typical filter mapping.  In this mapping:

  • The basic tcp filter is sending its packets into Band #5 - which is the default band where they would have gone anyway if they don't match any other filter.
  • The filter to pick HTTP traffic flowing to the host with IPv4 address 1.2.3.40 is sending its packets into Band #4.
  • The basic udp filter is also sending its packets into Band #4.
  • All UDP based Domain Name System (DNS) packets are being sent into Band #1.
  • All UDP based Session Initiation Protocol (SIP) packets are being sent into Band #2.
  • All UDP packets of length less than 256, with or without QoS settings, are being sent into Band #3.
  • Spanning Tree Protocol (STP) packets are being sent into Band #1.  Note that this is an Ethernet filter.

Note: The map for the LAN-A→LAN-B direction need not be the same as the map for the LAN-B→LAN-A direction.

Filter Map

Filter Sequence

When a packet arrives it is checked against the active filters (as determined from the Filter Map for the direction in which the packet is moving.)

The sequence of in which these filters are examined is often important.

For example, a typical configuration may want to send all UDP encapsulated Domain Name System (DNS) packets into Band #1 while sending all other UDP packets into Band #2.

In that configuration it would be important that the filter that selects for “DNS-in-UDP” is checked before the filter that selects for “any UDP”.  Otherwise all of the DNS packets, because they are UDP packets, would be swept in with all of the other UDP packets.

In the figure below, based on the filter map from the previous diagram, we see the default filter sequence.  Notice that the sequence is different for each direction; the default order is not predictable and depends on browser behavior.  For that reason alone it is important to check, and if necessary, correct the filter sequence.

Also note that IPv4 and Ethernet filters are shown in different colors.  This is to indicate that IPv4 and Ethernet filters form separate groups of filters, each group having its own sequence among its members..  The entire group of Ethernet filters is applied (in sequence) before the group of IPv4 filters is applied.

Filter Sequence (with error)

This sequence contains two configuration errors:  First, the basic TCP filter will be used before the HTTP to host 1.2.3.40 filter thus denying that second filter any chance of ever seeing a packet.  Second, because the udp filter will be checked before the dns, sip, and voip filters, those latter filters will never see a packet.

To avoid this problem the sequence should be changed to be:

Filter Sequence (with error repaired)

Note that the voip_256_qos_ignore filter is placed after the udp_dns_dst_port, udp_dns_src_port, udp_dst_port_sip, and udp_src_port_sip filters.  This is necessary because the voip_256_qos_ignore filter is defined in such a way that it could sweep-in packets with the SIP and DNS ports if they matched the size and QoS criteria of the filter.

Also note that the Spanning Tree ethernet filter (shown in red) would be applied before any of the IPv4 filters (shown in blue) no matter where the Spanning Tree filter appears in the sequence.

In Maxwell G and Mini Maxwell, there is a Filter Sequence for each of the two directions that packets may flow through Mini Maxwell.

(Only those filters that are active in the Filter Map are shown in the Filter Sequence.)

Impairments

The following figure shows the impairment settings for pair of bands.

Bands

Each of these fields is described in the following sections.

Notice that there are five pairs of Bands.

A Note on “Correlation”

Netem uses a mechanism called “correlation” to emulate burst behavior.

Netem performs many of its impairments by generating random numbers and then basing its action on the particular number that was generated.  Normally each random number is independent of the number(s) that came before.  Correlation is a mechanism in which each random number is affected by the number that came before.

The correlation value can be small, in which case the prior number has little or no impact on the new number.  Or the correlation value can be large, in which case the prior number strongly affects the new number, even to the degree of making the new number the same as the prior number.  Correlation values range from zero (no effect) to 100 (new number will be the same as the prior number.)

Inside netem each probability based event – such as the decision whether to drop, duplicate, or reorder a packet – is based on a random number calculation.  That random number is compared with the user designated probability for that particular event.  The event is triggered or not based on the result of that comparison.

In addition when netem is calculating a delay, it can also make use of a random number.  Netem uses this number to increase or decrease the basic delay amount.

These random number calculations can either be independent of any other random number calculation or, if correlation is active for a particular kind of event, the result of the new random number calculation can be made partially dependent on the calculations that preceded it for the same kind of event.

(Not only is a correlation-based random number calculation based on earlier calculations for the same kind of event, they are also based only on same-kind events within the same Band.  Thus, for example, a burst on Band#3 in the LAN-A→LAN-B direction is independent of whether a burst is occurring on Band #2/in the LAN-B→LAN-A direction.)

With correlation the calculation for a new random number is as follows, with “Rand()” being a more basic random number generator that returns a value uniformly distributed such that 0 <= value < 1.0.

Randomn = (Randomn-1 * Correlation/100) + (Rand() * ( 1 – Correlation/100))

A correlation value of zero means that every event is independent – there is no burst behavior.

A correlation value of 100 means that the very first random value is preserved forever – the entire impairment system becomes static, locked into its initial choice.

Intermediate correlation values with higher values (but less than 100) tend to create longer periods in which an event is either occurring or not occurring; bursts, once they start, will tend to be longer lived.

Intermediate correlation values with lower values (but more than 0) tend to allow greater, but not complete, independence between one event and the next.

If all of this is confusing it might be useful to consider Maxwell G, Mini Maxwell, and Netem as having a single dice (die) that has 100 sides with values of 0 through 99.

When the user enters an impairment probability, for example, a drop probability of 33%, what happens is this:  When Maxwell G or Mini Maxwell needs to decide whether to drop a packet, that 100 sided die will be rolled.  If the number comes up less than the user-specified percentage, in our example this means that the die comes up with the number 32 or less, then the packet is dropped.  If the roll of the die comes up with a value equal to or higher than what the user entered then the packet would not be dropped.

If a non-zero correlation value is indicated then that simple test above is slightly changed.  With correlation active, when the die is rolled, rather than using the number that shows on the die, the correlation calculation will be used to combine the visible number with the prior number.  It is this combined number that will then be compared with the user generated probability threshold.

That "prior number" is itself the result of a correlation computation.

Assume, for example, that the user has set a drop probability threshold of 33% and a correlation value of 75.  Further assume that the previous value used was 60 and that for the current packet a value of 30 comes up on the die.  The correlation calculation for the current packet would calculate (.75 * 60) + (.25 * 30), which results in a value of 52.5.  That 52.5 will be compared with the user threshold (30) and thus the current packet will not be dropped.  That 52.5 value will be retained and used when computing the correlated value for the next packet that is to be considered for dropping.

These correlation chains are maintained for each separate type of impairment within each separate band in each direction.  This means that a correlation caused burst may be occurring for one type of impairment in one band while in the other bands no correlation caused bursts are occurring.

Delay and Jitter

Delay and Jitter are variations on the same thing.  Delay is simply the amount of time that occurs between the transmission of a packet and the reception of that packet.  Jitter (also called "Interarrival Jitter") is a statistical measure of the variation in the Delay time experienced by several packets over a period of time.

There is no single mathematical formula for computing Jitter.  However, a well known and widely used formula is found in Appendix A.8 of RFC3550.

In Maxwell G and Mini Maxwell, jitter is created by allowing the delay to vary from one packet to the next.  This variation is controlled through the Variation, Correlation, and Distribution parameters that may be applied to the basic Delay Amount.  If these parameters are not used then the delay will not vary from one packet to the next and there will be no jitter.

Delay is composed of the following components:

  • Amount – (Milliseconds)  This is the basic measure of delay.  The actual amount of delay is derived from this basic value through the action of the other components.

    The value for this should be between 0 and 9999 milliseconds (about 10 seconds.)

  • Variation – (Milliseconds)  This is an amount (in milliseconds) that characterizes the range over which the basic amount may be varied.  This amount is not the actual amount that will be applied, that number will be generated based on the Variation, Correlation, and Distribution parameters.

    If the variation value is zero, then the basic delay given by Amount is used without any variation – all of the other delay components are ignored.

    If the variation is not zero then a random value is selected, based on the “Distribution” and “Correlation” parameters, and shaped using this variation as a standard deviation.  The result will be used to increase or decrease the basic delay given by Amount.

  • Correlation – (Percentage)  See the section on Correlation, above.

  • Distribution – This describes the shape of the curve that will be formed if a large number of delays were graphed.

  • None – The variation value is uniformly distributed between 0 and “Variation”

  • Normal – A bell curve centered on “Amount” with a standard deviation of “Variation”

  • Pareto – An 80/20 curve.

  • Paretonormal – A curve composed of 25% normal and.75% pareto.

  • Allow Reorder – If not checked packet order will be preserved.  If checked then variations in delay are allowed to affect the sequence of packets.  In other words, when checked, if the variation of delay is larger than the inter-packet time then if packet A is delayed by a long period and packet B is delayed by a short period, then packet B may be emitted before packet A even though packet A arrived first.

    This check box, like other settings, does not take effect until the Submit button is used.

    Note: There may be transitional effects that occur for a short period of time after a change in the Allow Reorder setting.  These effects may include lost packets and a dribbling of packets that have been pending the conclusion of their delay period.  The length of this transitional period is approximately the sum of the delay plus the variation in delay.

    Note: The Rate Limit impairment is disabled when the Allow Reorder box is checked.

Reordering By Delay

Packets are reordered as a side effect of adding delay: If an earlier packet is delayed it may be passed by subsequent packets that receive less delay.

If the delay being imposed (as described in the section “Delay” above) is less than the inter-packet spacing then the reordering mechanisms here are unlikely to have any effect.  Thus, for VOIP packets which tend to come along every 20 milliseconds, the delay imposed should be at least 20 milliseconds, otherwise there will be no delayed packet waiting inside Maxwell G or Mini Maxwell that a subsequent packet could pass and thus cause reordering.

Reordering is composed of the following components:

  • Reorder Gap – This value (“N”) determines which packets, if any, will be sent through without delay of any kind.

    If zero this parameter has no effect.

    If not zero, then every Nth packet will be sent through without delay.  A value of 1 means that every-other packet will be sent without delay, a value of 2 means that every third packet will be sent without delay.

  • Amount – (Percentage)  This value indicates that a certain percentage of the packets are to be selected and sent along without delay.  This selection is based on a random number and is affected by the Correlation value, below.

  • Correlation – (Percentage)  See the section on Correlation, above.

Drop

Drop is composed of the following components:

  • Amount – (Percentage)  This value indicates that a certain percentage of the packets are to be selected and dropped.  This selection is based on a random number and is affected by the Correlation value, below.

  • Correlation – See the section on Correlation, above.

Duplication

Duplication is composed of the following components:

  • Amount – (Percentage)  This value indicates that a certain percentage of the packets are to be selected and duplicated.  This selection is based on a random number and is affected by the Correlation value, below.

    Duplicated packets are sent back to the head of the gauntlet of impairments and are thus subject to Delay, Reordering, Drop, re-Duplication, and the Rate Limit.

    Note: If the duplication value is set at 100% it is likely that an infinite loop of packet duplication will result.

  • Correlation – (Percentage)  See the section on Correlation, above.

Corruption

The netem “corruption” facility will change a random bit in a randomly selected packet

The bit changed may be any bit in the packet - from the start of the MAC/Ethernet header until the last bit of the Ethernet data.

This corruption facility simulates single-bit errors that occur on telecommunications links.

Because the Ethernet CRC is computed by the transmitting Ethernet hardware on the Maxwell G or Mini Maxwell, the Ethernet CRC on the packets will be correct.

For corruption that occurs within the IP header or data carried by higher level protocols, the fault should be caught by the checksum of that protocol.

Note, however, that some protocols do not always use checksums even if they have the capacity.  UDP, for example, allows the sender to provide a null checksum, indicating that the receiver should skip checksum validation of the received UDP packets.

Corruption is composed of the following components:

  • Amount – (Percentage)  This value indicates that a certain percentage of the packets are to be selected and corrupted.  This selection is based on a random number and is affected by the Correlation value, below.

  • Correlation – (Percentage)  See the section on Correlation, above.

Rate Limit

Rate Limit is composed of the following components:

  • Amount – (Bits/second)  Maximum bit rate.

    This limit is not enforced on an instantaneous basis.  Rather it is enforced over relatively long time spans (100s of milliseconds and longer.)

    The rate limitation is an approximate value.

Note that the rate limit is a per-Band limit.  The traffic in other Bands is subject to the rate limits, if any, imposed on those bands.

Note that a side effect of rate limitation is that packets are delayed.  This can overshadow any delay or jitter.  It is generally a good idea to treat rate limitation and delay/jitter as mutually exclusive impairments - use one or the other, but not both at the same time.

The rate limit impairment imposes a restriction on how many bits may be carried per second.  Because we are dealing with packets rather than bits and because of the presence of buffering virtually all modern network devices, the topic of rate limitation is not as simple as it might at first appear.

Rate limitation is obtained by metering the flow of packets.  Although the calculations are based on the number of bits per second and the number of bits within the packets, control is exercised by placing packets into a queue and releasing them at a controlled rate so that the number of bits carried, over a period of time, will not exceed the configured rate.

Packets that exceed the rate limitation will be delayed in a FIFO (First-In/First-Out) queue until the backlog reaches a cutoff point; at that point, additional packets are silently discarded until the queue drops below the cutoff point.

The queue and cutoff point have been defined to resemble that of a generic, but typical, internet device such as a router.

Rates are limited using a token bucket filter with the following parameters.  (Note: The Maxwell G and Mini Maxwell kernels operate at 1000HZ, not 100HZ as suggested by the tbf document.)

  • Clock rate: 1000HZ
  • Buffer (Burst): 1600 bytes
  • Latency: 1,000,000 microseconds (1 second) plus any user specified delay.
  • Minimum Packet Unit (MPU): 64 bytes

This causes a rate limitation behavior with the following characteristics when the bit arrival rate (as measured by the bits contained within packets) exceeds the user specified rate limitation:

  • The queue will begin to fill with arriving packets.  Simultaneously the queue will be drained by sending packets.
  • For a short period of time (a few milliseconds) no rate limitation will be perceived - this is because a short period of time is required to evaluate the number of bits that are being moved over a time interval and there will be a pool of available "tokens" in the token bucket filter that have accumulated during the preceding period in which arriving packets were not exceeding the rate limit.
  • Arriving packets will begin to accumulate in the queue faster than they are being released onto the outbound interface.  This will cause these packets to appear to be delayed and the amount of that delay will increase as the queue of pending packets gets longer.
  • The queue cutoff may be reached.  At this time arriving packets will be discarded.  At the same time the queue continues to drain according to the rate limit, thus tending to cause the queue to drop below the cutoff and thus permitting new packets to be placed into the queue.  This interaction will be perceived as a situation in which some packets are lost while other packets are delayed.
  • When the arrival rate drops the packets in the queue will continue to trickle out according to the rate limit.

Note: Rate Limit is disabled when the Allow Reorder check box (part of the Delay & Jitter impairment) is checked.

Title & Description

If you are running several different configurations a Title and Description can be assigned to each.  The title and description will be displayed on each Maxwell G and Mini Maxwell web page.

The title and description are limited to one line of text.

VLANs and 802.1Q VLAN Headers

Neither Maxwell G nor Mini Maxwell explicitly handle 802.1Q VLAN tags in filters.  However, Ethernet header filters do adjust to accommodate the presence or absence of a single 802.1Q VLAN tag in the packet.

Maxwell G and Mini Maxwell do not remove any 802.1Q VLAN tags that may be present on received packets.

Note:It is possible to use Maxwell G or Mini Maxwell in conjunction with a VLAN switch so that the switch is configured so that traffic to/from each of the two data ports on the Maxwell G or Mini Maxwell is on a separate non-tagged VLAN.  Some switches have been observed to emit Spanning Tree Protocol (STP) packets onto those non-tagged VLANs using the same source MAC address.  This can result in the switch improperly detecting a loop condition.  In these cases the Maxwell G or Mini Maxwell Ethernet header filters can be used to classify STP packets or packets from that switch MAC address into a band which has been set to have 100% packet drop.

Automation

The Maxwell G/Mini Maxwell automation feature is a spreadsheet for use on LibreOffice or OpenOfficecalc spreadsheet program.

The Maxwell G/Mini Maxwell Automation spreadsheet allows the user to define a baseline and a repeating sequence (of up to 12 steps) of impairment settings.

The baseline and each step consist of groups of impairment values, one group for each of the five bands times two directions supported by Maxwell G/Mini Maxwell.

Each step includes a flag that enables or disables that step.

Each step includes a user-provided time that controls how long that step will endure before the spreadsheet advances to the next step (or returns to the beginning of the steps.)

The spreadsheet also contains a control page on which the user specifies things such as the name or IP address of the Maxwell G/Mini Maxwell and a limit on the number of iterations of the steps or a maximum time to iterate.

The user may also use a throttle on the control page to accelerate or retard the rate at which the spreadsheet runs.  This is useful when the user would like to step through the steps more quickly or more slowly than normal.

The control page also contains buttons to start and stop the progress through the steps.

Many of the settings on the control page will take effect immediately.  For example the user may change the throttle setting while the spreadsheet is running through the steps.

The basic operation of the spreadsheet is to first validate that it can communicate with the Maxwell G/Mini Maxwell.  Then the spreadsheet will establish the baseline settings in the Maxwell G/Mini Maxwell.  Once the baseline is established the spreadsheet will begin to iterate through the steps that have been enabled, waiting the indicated time after each before moving onto the next.

When the spreadsheet is done the Maxwell G and Mini Maxwell will be left with the last set of impairment values that were loaded into it by the spreadsheet.  The user can use a button on the control page to force the Mini Maxwell to the baseline settings.

LibreOffice and OpenOffice have two security gates that have to be opened by the user before the Mini Maxwell Automation spreadsheet can run.

  1. Set the overall Macro security level: Choose Tools - Options - OpenOffice.org - Security to set the options.  Click "Macro Security" button, under "Security Level" tab, choose "Medium"-- Confirmation required before executing macros from untrusted source

  2. Each time the spreadsheet is loaded you will be asked whether you want to allow the Macros to run.  Say "yes".

Note: The Automation spreadsheet does not control Maxwell G or Mini Maxwell filters.

A-B Testing - Bypass Mode

It is often helpful to see how the application performs in perfect conditions, and then quickly compare that performance to what occurs under adverse network conditions.

With the Maxwell G and Mini Maxwell's Bypass Mode, the user toggles between two modes:  a network emulation under adverse network conditions and normal operation (without impairments).  This lets the user do easy A-B comparison testing, with and without impairments.

When activated, Bypass Mode disables all impairments permitting a clear channel for network traffic to flow unimpeded.  This lets the user do easy A-B comparison testing, with and without impairments.

Bypass mode can be controlled in either from the Bands & Impairments web page or by using the left and right buttons on a mouse plugged into one of the USB ports on the Maxwell G or Mini Maxwell.  It is possible to mix these - bypass mode can be entered using the mouse and left using the web page, or vice versa.

When Mini Maxwell is in bypass mode the three LEDs on the front of the box will blink in a distinctive pattern (when not in bypass mode all three LEDs should be on without blinking.)  Maxwell G has no LEDs to indicate whether bypass mode is in effect or not.  An indication that bypass mode is in effect will also be displayed on most of the Maxwell G and Mini Maxwell web pages as shown below.

Bands with bypass on

Note, however, that the web page indicator only changes when the web page is refreshed.  So if you enter or leave bypass mode using the mouse the web page indicator will not change until you reload the web page.

The right mouse button enables bypass mode, the left mouse button disables it.

Note: There may be transitional effects that occur for a short period of time after entering or leaving Bypass Mode.  These effects may include lost packets and a dribbling of packets that have been pending the conclusion of their delay period.  The length of this transitional period is approximately the sum of the delay plus the variation in delay.

Precision of User Input

Most numeric values that are given on the Maxwell G and Mini Maxwell Band & Impairments page are either positive integers (including zero) or percentages.

Percentages may be expressed with or without a decimal point.

There may be up to 4 places to the right of the decimal point.  A percentage of 0.0001 represents one part in a million.

Timing and Rate Limitation Accuracy

Maxwell G Timing and Rate Limitation Accuracy

Maxwell G has been calibrated so that delay timing is usually within one or two hundred microseconds of the desired delay time for packets of 512 bytes running at a rate of 1000 packets per second.

At very high traffic loads, particularly with large packets (on the order of 1500 bytes) the delay accuracy will decrease and will tend to be greater than that requested.

Rate limitation accuracy is generally within one or two percentage points of the desired amount.  However, rate limitation accuracy is an average that achieves statistical accuracy only over a period of time and over many packets.  Rate limitation has no effect on the speed at which bits within a packet are clocked onto the physical ethernet.

Mini Maxwell Timing and Rate Limitation Accuracy

Mini Maxwell has been calibrated so that delay timing is usually within one or two hundred microseconds of the desired delay time for packets of 512 bytes running at a rate of 1000 packets per second.

At very high traffic loads, particularly with large packets (on the order of 1500 bytes) the delay accuracy will decrease and will tend to be greater than that requested.

Rate limitation accuracy is generally within one or two percentage points of the desired amount.  However, rate limitation accuracy is an average that achieves statistical accuracy only over a period of time and over many packets.  Rate limitation has no effect on the speed at which bits within a packet are clocked onto the physical ethernet.

Clearing, Saving, and Restoring Impairment Settings

Maxwell G and Mini Maxwell hold their configuration in a textual format that can be exported to the user's computer or imported from the user's computer

This impairment configuration is stored in volatile memory - unless it is exported it will vanish (and replaced by the factory configuration) when Maxwell G and Mini Maxwell are powered down or restarted.

Note: The user should not edit the exported configuration file - there may be unpredictable effects if an altered configuration file is imported back into Maxwell G or Mini Maxwell.

Note: The impairment configuration is does not include the network settings for the management interface.

Note: Exported configuration files for Maxwell G are interchangeable with those of Mini Maxwell, and vice versa.

Importing and Exporting Impairment Configuration

Maxwell G and Mini Maxwell save their working configuration, including filters, filter maps, filter sequences, and impairment settings, in a textual configuration file.

The user may export this file from Maxwell G or Mini Maxwell into the user's computer.

And the user may import a saved configuration into Maxwell G or Mini Maxwell, replacing the previously existing configuration.

Import and export are, as are all Maxwell G and Mini Maxwell tasks, done via a standard web browser.

Because Microsoft Windows and Unix/Linux/Bsd disagree on how text lines should be terminated, there are two different Export buttons, one for each format.  There is only one Import button; Maxwell G and Mini Maxwell will accept either format.

Clearing Impairment Configuration

The “Clear” button on the Maxwell G/Mini Maxwell main web page will reset filters and bands back to their original, factory settings.

This this button erases all existing filter and band configurations.

Tip: Export the existing configuration before clearing it.

Load and Go - Saving Settings For Automatic Use on Next Power-On Cycle

Sometimes it is useful to take a Maxwell G or Mini Maxwell into the field where it may be hard to attach a web browser to the Maxwell G or Mini Maxwell management port.  For these situations Maxwell G and Mini Maxwell allow the impairment and filter configuration to be defined in the lab and saved into non-volatile memory so that that configuration will be automatically loaded when the Maxwell G and Mini Maxwell are started.  That way the Maxwell G or Mini Maxwell can be taken into the field, powered up, and (after the boot time of about 90 seconds) it will be operating using the impairments that were established in the lab.

To use Load and Go all that the user needs to do is to set up the desired filter and impairment configuration in the lab and then use the "Save to Default" button on the main Maxwell G/Mini Maxwell web page.

Interface and Band Statics JSON API

The following URL may be used to fetch a snapshot of interface and impairment band statistics:

http://<Maxwell G or Mini-Maxwell hostname or IP address>/mm2/mpc/mm2.py/bandstats_json

This data is encoded using JSON, a data interchange format that is widely used and for which encoder and decoder libraries exist for nearly all computer languages.

The JSON encode data will be returned as a single line of text.

Below is an example of that JSON encoded data, shown with line breaks and spacing to improve legibility.

The first data item is a version number, the second stamps the time (in seconds and parts of seconds) when the data was obtained. 

Note that the statistics on the various bands are measuring traffic leaving (as opposed to entering) the interface with which the band is associated.

Also note that in JSON the ordering of name:value items in a JSON "object" is not deterministic and may differ from the ordering in the example below.

[
  1.0, 
  1289372881.8242321, 
  [
    {
      "Bands": {
        "Band2": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Band3": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Band1": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Band4": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Band5": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Combined": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }
      }, 
      "IfInfo": {
        "InPackets": 0, 
        "OutCollisions": 0, 
        "InOverruns": 0, 
        "Name": "eth1", 
        "OutErrors": 0, 
        "InFrameErrors": 0, 
        "InOctets": 0, 
        "OutOctets": 0, 
        "Duplex": false, 
        "InErrors": 0, 
        "OutPackets": 0, 
        "OutCarrier": 0, 
        "InDiscards": 0, 
        "PhysAddress": "00:0D:B9:12:52:E1", 
        "Speed": 10, 
        "OutDrops": 0, 
        "OperStatus": false
      }
    }, 
    {
      "Bands": {
        "Band2": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Band3": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Band1": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Band4": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Band5": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }, 
        "Combined": {
          "Overlimits": 0, 
          "Packets": 0, 
          "Bytes": 0, 
          "Dropped": 0, 
          "Requeues": 0
        }
      }, 
      "IfInfo": {
        "InPackets": 0, 
        "OutCollisions": 0, 
        "InOverruns": 0, 
        "Name": "eth2", 
        "OutErrors": 0, 
        "InFrameErrors": 0, 
        "InOctets": 0, 
        "OutOctets": 0, 
        "Duplex": false, 
        "InErrors": 0, 
        "OutPackets": 0, 
        "OutCarrier": 0, 
        "InDiscards": 0, 
        "PhysAddress": "00:0D:B9:12:52:E2", 
        "Speed": 10, 
        "OutDrops": 0, 
        "OperStatus": false
      }
    }
  ]
]

Examples

Simulating a Slow DNS Server

In this example we will see how to set-up Maxwell G or Mini Maxwell to simulate a network with a very slow domain name (DNS) resolver.  To do this we will delay all UDP encapsulated DNS packets, whether queries or responses.

We will create two filters to find DNS/UDP packets.  One filter will locate packets with the DNS well known UDP port (53) as a source port and one filter will look for UDP port 53 as the destination port.  We will then use the filter map to instruct these filters, in both the LAN-A→LAN-B and LAN-B→LAN-A directions, to send their packets into Band #1.  Then we will impose a 500 millisecond delay on packets flowing through Band #1 in both the LAN-A→LAN-B and LAN-B→LAN-A directions.  This will result in a general DNS resolution delay of about one second, which should have a substantial negative impact on the setup time for many applications, particularly those, such as web browsers, that do a lot of DNS queries.

Creating the Filters

The easiest way to create any filter is to copy an existing filter and then modify it.  So we will begin by copying and modifying the two standard filters used to identify UDP based SIP packets.  We will need to change only the filter names, the descriptions, and the port numbers.

Note: Maxwell G and Mini Maxwell come with filters pre-defined for DNS over UDP.  However, for illustrative purposes we will create new ones here.

Under the “Filter Inventory” menu, select the “udp_sip_dst_port” filter, and push the “copy” button.  This will create a new filter with a temporary name and bring up a form to change the contents of the filter:

DNS example, step 1

Change the filter name to “example_udp_dns_dst_port”. Modify the description.  Change the second match as shown in the following diagram.  (The first match selects the UDP protocol, so it should be left unchanged.  The third match is unused, which is indicated by a mask with a value of zero.)

Note: The Pattern and Mask fields are specified as hexadecimal values (with a leading "0x").

Note: The Pattern and Mask fields are specified in network byte order.

DNS example, step 2

Now do the same, but using “udp_sip_src_port_sip” as the starting point to create an “example_udp_src_port_dns” filter:

DNS example, step 2

Now set the filtermap so that all UDP DNS packets, as selected by our new filters, are sent into the LAN-A→LAN-B and LAN-B→LAN-A directions of Band #1.  All other packets will go into the default, Band #5.

DNS example, step 4

Finally, we need to impose the actual delay impairment.

DNS example, step 5

(Don't forget that you have to submit the screens shown above for them to have effect.)

Limitations

Note: Maxwell G and Mini Maxwell web pages are W3C compliant.  Firefox is the recommended browser.  Microsoft's Internet Explorer version 6 (now obsolete) sometimes has difficulty properly formatting Maxwell G's web pages.

Maxwell G Limitations

Packet and Bit Rates

Maxwell G operates on a platform with 10/100/1000 full duplex Ethernet interfaces.

Maximum packet size is 1500 bytes (plus MAC header and Ethernet framing.)  (No jumbo packets.)

Maxwell G operates as a layer 2 bridge.  IEEE 802 spanning tree protocol is not enabled.

In the absence of any impairments Maxwell G has a total one-way forwarding capacity of approximately 670,000 packets per second when the packet size is 84 bytes.  The two-way forwarding capacity is approximately 300,000 packets per second for each direction for 84 byte packets. For one-way traffic Maxwell G can handle a full gigabit load when packet sizes are above 256 bytes.  And for two-way traffic a full gigabit load can be handed for packets larger than 512 bytes.  Note: These numbers presume that no impairments are being applied.  Impairments will reduce these numbers.  The user interface becomes sluggish when the packet rate reaches approximately 75% of these rates.

Maxwell G does not support IPv6

Maxwell G will carry IEEE 802 tagged VLAN traffic but it will not be able to classify the packets into bands.  Maxwell G will carry tagged ethernet frames between its two data interfaces.  However the filters will not work as expected and should not be used.  All of the IEEE 802.1q tagged packets will fall, by default, into Band 5 where they may be subjected to impairments.

Impairment Limitations:

  • Time increments are in in 1 millisecond units.  The underlying kernel is configured to minimize timing inaccuracies.

  • User configured delay values are limited to 9999 milliseconds (about 10 seconds) (otherwise internal queues could overflow and unexpected packet loss could occur.)

Mini Maxwell Limitations

Packet and Bit Rates

Mini Maxwell operates on a platform with 10/100 full duplex Ethernet interfaces.  Gigabit Ethernet is supported only in that peer gigabit devices will usually down-shift to 100mbit rates when attached to Mini Maxwell.

Maximum packet size is 1500 bytes (plus MAC header and Ethernet framing.)  (No jumbo packets.)

Mini Maxwell operates as a layer 2 bridge.  IEEE 802 spanning tree protocol is not enabled.

In the absence of any impairments Mini Maxwell has a total forwarding capacity of approximately 20,000 packets per second when the packet size is 84 bytes and 5,000 packets per second when the packet size is 1480 bytes.  The user interface becomes sluggish when the packet rate reaches approximately 75% of these rates.

The total number of packets that may be held at any instant for purposes of inducing a delay, jitter, or rate limit impairment is approximately 7,000.

Mini Maxwell does not support IPv6

Maxwell G and Mini Maxwell will carry IEEE 802 tagged VLAN traffic but it will not be able to classify the packets into bands.  Maxwell G and Mini Maxwell will carry tagged ethernet frames between its two data interfaces.  However the filters will not work as expected and should not be used.  All of the IEEE 802.1q tagged packets will fall, by default, into Band 5 where they may be subjected to impairments.

Power-Over-Ethernet (PoE)

The power-injection facility on the Management Ethernet port (eth0) is not 802.3af compliant.  See the section of this note Power Over an Ethernet Cable.

Power-Over Ethernet is not provided by any Ethernet port.

Power-Over-Ethernet that may be presented on eth1 (LAN-B) or eth2 (LAN-A) is neither used nor carried through to the other port (eth2 or eth1).

Impairment Limitations:

  • Time increments are in in 1 millisecond units.  The underlying kernel is configured to minimize timing inaccuracies.

  • User configured delay values are limited to 9999 milliseconds (about 10 seconds) (otherwise internal queues could overflow and unexpected packet loss could occur.)

Upgrading the Firmware

Upgrading the Maxwell G Firmware

The firmware inside Maxwell G may be upgraded by the user.

Note: Updates require that the Maxwell G be able to reach the internet.

  1. Using SSH or a local keyboard/video login to the Maxwell G as user "admin" (password "rwCcBXms")

  2. Entering the command "sudo yum update" followed by the Enter key.

  3. You may be asked for confirmations, enter "y" followed by the Enter key.

  4. Let the update process proceed to completion and then reboot the Maxwell G.

Upgrading the Mini Maxwell Firmware

The firmware inside Mini Maxwell may be upgraded by the user.

Make sure that you have the following things handy:

  • A USB "thumb drive" with at least 150megabytes of free space.
  • A computer with terminal emulator software such as Microsoft Hyper Terminal on Windows or Kermit for Windows, Linux, and Macintosh machines.
  • If your machine does not have an RS323 Serial port then you may need a USB-based serial adapter.
  • An appropriate "null modem" cable.

Before you begin, take a moment and review the instructions below:

  1. The user begins by using a standard web browser to download the update file from the Mini Maxwell update repository.

    Note: This update file may sometimes be more than 100megabytes in size.

  2. The user then transfers that file to a commonly available USB "thumb drive".

    This USB device must be formatted as FAT, FAT-16, FAT-32, or VFAT.  These are the formats usually found on USB "thumb drive" devices of 4gigabytes or less.  It is rare for "thumb drives" to use different formats, so it is reasonably safe to assume that you already have the appropriate format.

    Note: Although the update process does not write to the USB device, it is good practice to do an update from an otherwise empty USB device.

    The update file must be placed in the root directory of the USB device.

    The update image will have a file name of the form umf#####.tgz where ##### are replaced by a five digit sequence.  As a general practice, lower valued digit sequences are older updates than higher valued digit sequences, i.e. update umf40000.tgz is more recent than umf32345.tgz.

    Updates will generally replace all of the software rather than patching what is already there.  Consequently it will rare, if ever, that the user will need to apply more than the most recent update.

  3. The user will need to connect to Mini Maxwell's serial interface.  This is described in the section Connecting the Serial Console Interface

  4. With the serial cable connected and an appropriate terminal emulator running, the user should power-cycle the Mini Maxwell.  Be prepared for the next step; it happens quickly after power is applied.

    The user should quickly see text from the Mini Maxwell that looks like:

    PC Engines ALIX.2 v0.99
    640 KB Base Memory
    261120 KB Extended Memory
    01F0 Master 045A CF 1GB
    Phys C/H/S 2014/16/63 Log C/H/S 1007/32/63
    EXTLINUX 3.52 2007-09-25 CBIOS Copyright (C) 1994-2007 H. Peter Anvin
    boot:
  5. At the "boot:" prompt the user should enter the word "maint" followed by the Enter or Return key.

    Note: There is only a 4 second window to enter that word, otherwise Mini Maxwell will proceed with its normal start up.  If you miss the time window then simply power cycle the Mini Maxwell again and try again.

    Note: If you see the following two lines (they appear rather quickly) then you are entering the normal start-up system and not the firmware upgrade system:

    Loading /linux...............................
    Loading /initrd.gz..............................................ready.

    Entry into the upgrade system will be indicated by the following two lines (again, they occur rather quickly and may scroll off your screen):

    Loading /maintlinux...............................
    Loading /maintrd.gz...............................................ready.
  6. Wait for the system to finish booting.  This will take about a minute.  The system will ask you to hit the "enter" key to obtain a login prompt.

  7. Login as user "reflash".  The password is "2pALgZDP".

    From this point on you will be given a sequence of instructions.  In outline, you will be asked to remove any USB devices that may be installed, then to insert the USB device containing the update image.  Then the update will be verified and you will be asked to confirm whether to go ahead or not.  Finally you will be asked to remove the USB memory device and reboot the system.

    Note: Some of the update steps take several minutes to complete.  There will not necessarily be any visible activity during that time.  Be patient; do not give up or interrupt the process.

References

  1. Maxwell – http://iwl.com/

  2. Network Emulation in the Wikipedia – http://en.wikipedia.org/wiki/Network_emulation

  3. Netem – http://www.linuxfoundation.org/collaborate/workgroups/networking/netem

  4. IProute2 in the Wikipedia – http://en.wikipedia.org/wiki/Iproute2

  5. Pareto Distribution – http://en.wikipedia.org/wiki/Pareto_distribution

 

 

 

 

Read More