This is one of a series of videos that will discuss various aspects of the Maxwell Pro network and protocol impairment system.
This video deals with the time varying waveforms, also called "fluctuations" mechanism in Maxwell Pro. That mechanism gives the user a way to create changes in impairment settings. These changes may occur as fast as once every 0.1 second and a cycle of such changes may be spread over a period of as long as two weeks.
The time varying waveforms are very powerful and give Maxwell Pro a means to model network conditions as they change over time.
Transcript for this video:
Maxwell Pro is a network emulator and protocol impairment system. Maxwell Pro is very flexible, it can do many things.
The number of levers and knobs available to control Maxwell Pro may, at first, seem daunting.
There is, however, a great deal of constancy.
Similar parts of the user interface follow similar patterns.
This video will focus on one of those parts.
Today I am going to describe the Fluctuation mechanism in Maxwell Pro.
Fluctuations let the user change network impairment settings over a period of time
That time may be as short as a tenth of a second or as long as two weeks.
One example of how this might be used would be to create a pattern of changing network latency to see how a network implementation handles those changes.
Let's take a look.
Here we see the opening Maxwell Pro screen.
There are Fluctuation hooks throughout the Maxwell Pro user interface, we are going to focus on one representative example.
So let's quickly descend into the Maxwell Pro interface.
I'll pick the Drop impairment of Flow 0
Now I will activate packet drop.
Here we can manually enter a packet drop probability.
But suppose that we want to add some automation. Here's how it's done.
Over here on the right we can see a button labeled "Options". Let's open it up.
This is the fluctuation control for packet drop. All of the other fluctuation controls look very much like this one.
These radio buttons select the general mode of operation.
Right now we are in "manual" mode. That means that the slider we saw a minute ago governs the rate of packet drop. The other choices in this column let us automate the rate of packet drop.
We have three choices:
We can select a "Simple Pulse Model"
Or we can give a mathematical expression.
Or we can provide a list of X-Y coordinates. Let's begin with the Pulse Model.
The pulse model is a repeating pattern of changes. We use six numbers to define each cycle of the pattern.
Imagine a roller-coaster ride where the height from the ground represents the amount of packet drop.
The ride begins at the baseline. The baseline sets the drop rate at the beginning and ending of each cycle.
There is a lead time that defines how long we will hold the baseline before we begin to go up the hill.
The height of the hill is specified by the target value and the steepness of the hill is defined by the onset time.
The hang time tells the Pulse Model how long to hold the target value before we begin to go down the hill.
The steepness of our descent back to baseline is given by the fall time.
Let's see how this works.
I will apply the default pulse model parameters.
Notice the truncated hill ? this shows the shape of one cycle of our fluctuations.
I'll click the green running man icon to get things going.
Here we can see our overall progress.
And here we can see the instantaneous drop value.
Let's stop things.
Now let's go back to the fluctuation options.
The Pulse Model is an easy way to create a variety of rising and falling patterns.
Let's move on to the other ways of creating fluctuations.
Let's take a look at equations.
You can enter a mathematical expression that tells Maxwell Pro how to change the drop rate over time.
These expressions use the syntax of the Python programming language.
Maxwell Pro gives us some examples. Let's pick one.
Here have a simple expression that varies the drop amount, (represented by the variable "y"), as a function of time, (represented by the variable "t").
The length of each cycle is given in this box..
Let's see how this looks.
We now have a smooth rise that repeats once every second.
Let's look at another example.
I just picked a more interesting expression that uses a random number.
We now have a drop percentage that will change quite dramatically.
Let's fire it up and have a look.
Let's look at yet another way to define a pattern of changes.
This time let's define our pattern using explicit points.
As before there are examples:
This is a Python language list of X-Y coordinates. The first number in each pair is the time value, the second number is the drop percentage.
Let's see how it looks.
As you can see this pattern has a longer repeat time.
Let's stop and review what we've covered.
As you have just seen, Maxwell Pro has many ways that you can vary the packet drop rate over time.
And it is not merely the packet drop rate that can be controlled in this way.
Nearly every impairment in Maxwell Pro may be automated.
Thus you could change the drop rate at the same time you are changing the latency, packet duplication rate, or the link bandwidth.
This kind of variation over time can be very useful when testing time sensitive network protocols.
For example, variable delay and jitter in conjunction with packet reordering will give most voice-over-IP phones a good workout.
A TCP implementation could be stressed by changeable data latency and re-ordering of acknowledgment packets.
If you want to go even deeper, Maxwell Pro supports user-written plug-ins that could make stateful changes to packets and packet flows.
But that is a topic for another day and another video.
For more information come to our website at IWL dot com.