Overview
The impairments currently supported in Chimera are:
Ingress policing
Packet drop
Misordering
Packet corruption (FCS/IP/TCP/UDP)
Packet duplication
Latency / jitter
Egress shaper
Chimera supports a variety of distributions that can be used to apply the supported impairments. The distribution for a given impairment determines how often the impairment is applied to the flow in terms of time or number of packets between the impairments.
The complete set of distributions and which impairments they support is described in detail in Section Impairments Distributions.
Furthermore, the impairments can be turned on and off automatically using a scheduler. The scheduler allows the impairment to be applied in 2 modes:
Continuous
Repeated Pattern
Note
Notice that Accumulate and Burst and Random Burst are not continuous by nature and implement a modified scheduler function. See Section Scheduler Functions for details.
When configured for Continuous Mode, the impairment will be applied continuously to the flow until turned off by the user.
When configured for Repeated Pattern Mode, the scheduler allows specifying a Duration and a Repeat period. The scheduler will (re-)start the impairment at intervals equal to the configured repeat period. When started, the impairment will be on for a period equal to the configured duration after which it is turned off. This pattern is repeated until the impairment is turned off by the user.
The repeat pattern configuration is illustrated in Fig. 228.
The details of the scheduling function are described in Scheduler Functions.
Integration with Xena TG
When using Chimera together with a Xena traffic generator, the UI supports visually associating the connected TG and network impairment ports for better overview and ease of configuration.
Fig. 229 illustrates how to associate two TG and network impairment ports.
To associate TG and network impairment ports:
Select the two ports to be associated using the Ctrl button.
Right click with the mouse on one of the ports.
Select Associate TG and network impairment Ports.
Selecting the TG port in the UI, you can now see the associated Chimera port and access the Chimera port impairment configuration. This is illustrated in Figure 37.
Note
Notice that the port association is an UI property only. It is not available with script commands.
The following sub-sections describe the configuration of impairments using script commands. Users that solely use the UI can go to Section Impairments Types.
Script Configuration of Impairments
When using script commands to configure impairments, the script commands are grouped into 3 groups:
Impairment configuration
Scheduler configuration
Distribution configuration
In addition to the configuration, the impairment can be turned on and off with the given configuration.
To configure the different impairments, each impairment is assigned an impairment ID (iid) as illustrated in Table 73.
Impairment ID |
Impairment Name |
---|---|
0 |
DROP |
1 |
MISORDER |
2 |
DELAY / JITTER |
3 |
DUPLICATION |
4 |
CORRUPTION |
5 |
POLICER |
6 |
SHAPER |
The impairment ID is used in combination with the filter ID (fid) in the scheduler command and the distribution commands to configure the impairments in each flow. The fid / iid addressing is illustrated in Table 74.
Flow to configure |
Impairment to configure |
How to address: [fid, iid] |
---|---|---|
0 |
Drop |
[fid=0, iid=0] |
3 |
Corruption |
[fid=3, iid=4] |
7 |
Misordering |
[fid=7, iid=1] |
The impairment configuration is described in the following sub-sections, followed by two configuration examples in Section Configuration Example.
Impairment Configuration
Some impairments need configuration of the impairment event itself. E.g. for packet corruption, it is required to configure at which level (FCS/IP/TCP/UDP) the corruption takes place, while for drop, there is nothing to configure, because when a drop event occurs, the packet is simply dropped.
Table 10 lists the impairments which have an associated impairment configuration script command.
Impairment Name |
Configuration command |
---|---|
Drop |
N.A. |
Misordering |
|
Delay / Jitter |
N.A. |
Duplication |
N.A. |
Corruption |
|
Policer |
|
Shaper |
|
The commands all take a fid as input. The details of the impairment script commands are described in Section Impairments Types.
Scheduler Configuration
A single scheduler command is defined for all impairments.
PED_SCHEDULE[fid,iid]
The schedule command takes fid and iid to identify the impairment to configure. The scheduling command is described in detail in Section Scheduler Functions.
Distribution Configuration
The distribution commands are used to configure when to apply the selected impairment to the packets in the flow. The supported distribution commands are listed in Table 11.
Distribution Name |
Configuration command |
---|---|
Off |
PED_OFF[fid, iid] |
Constant Latency |
PED_CONST[fid, iid] |
Accumulate & Burst |
PED_ACCBURST[fid, iid] |
Step |
PED_STEP[fid, iid] |
Fixed probability |
PED_FIXED[fid, iid] |
Random probability |
PED_RANDOM[fid, iid] |
Fixed burst |
PED_FIXEDBURST[fid, iid] |
Random Burst |
PED_RANDOMBURST[fid, iid] |
Gilbert-Elliot |
PED_GE[fid, iid] |
Bit Error Rate |
PED_BER[fid, iid] |
Uniform |
PED_UNI[fid, iid] |
Gaussian (Normal) |
PED_GAUSS[fid, iid] |
Poisson |
PED_POISSON[fid, iid] |
Gamma |
PED_GAMMA[fid, iid] |
Custom |
PED_CUSTOM[fid, iid] |
Note
Notice the PED_OFF
distribution. This is the default distribution at power up. It contains no impairment configuration and the impairment is turned off. Assigning the PED_OFF
distribution to an impairment will clear all impairment configuration and turn off the impairment.
The distribution commands take fid and iid to identify the impairment to configure. Depending on the type of impairment, the distribution commands will either specify the number of packets between applying the impairment (inter-packet) or the delay applied to each packet (latency / jitter).
The details of the distribution commands are described in Section Impairments Distributions.
Configuration Example
This sub-section contains two examples of how to configure impairments using script commands.
FCS corruption with fixed drop probability:
This example illustrates how to configure a fixed drop probability of 5.4321 % at the Ethernet FCS layer with a duration of 1 sec. and a repeat period of 1.5 sec.
This will be configured for fid = 0 (Port default flow).
The corruption iid = 4 is found in Table 73.
Impairment configuration
Configure impairment corruption at the Ethernet FCS level
PE_CORRUPT[0] ETH
Scheduler configuration
Configure duration = 1 sec and repeat period = 1.5 sec
PED_SCHEDULE[0,4] 1000 1500
Distribution configuration
Configure fixed distance drop probability of 5.4321 %
PED_FIXED[0,4] 54321
Turn on the impairment.
PED_ENABLE[0,4] ON
Turn off impairment.
PED_ENABLE[0,4] OFF
Gaussian Jitter:
This example illustrates how to configure a Gaussian jitter distribution with an average = 50 us and standard deviation = 2 us. This will be configured for fid = 7 (Highest priority flow filter).
The latency / jitter iid = 2 is found in Table 73.
Impairment configuration
There is no impairment configuration for latency / jitter. (See Table 75).
Scheduler configuration
The scheduling command is generally not supported for latency / jitter impairments.
Distribution configuration
Configure Gaussian distribution with average delay = 50 us and std dev = 2 us
PED_GAUSS[7,2] 50000 2000
Turn on the impairment
PED_ENABLE[7,2] ON
Turn off impairment
PED_ENABLE[7,2] OFF