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. 179.

../../_images/flow_impair_1.png

Fig. 179 Scheduler ON / OFF function.#

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. 180 illustrates how to associate two TG and network impairment ports.

../../_images/flow_impair_2.png

Fig. 180 Associating the TG and network impairment ports in the UI.#

To associate TG and network impairment ports:

  1. Select the two ports to be associated using the Ctrl button.

  2. Right click with the mouse on one of the ports.

  3. 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.

../../_images/flow_impair_3.png

Fig. 181 Configuring the Chimera port impairment from the TG port.#

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 72.

Table 72 Impairment IDs#

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 73.

Table 73 How to configure impairments using [fid,iid]#

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.

Table 74 Impairment configuration commands.#

Impairment Name

Configuration command

Drop

N.A.

Misordering

PE_MISORDER[fid]

Delay / Jitter

N.A.

Duplication

N.A.

Corruption

PE_CORRUPT[fid]

Policer

PE_BANDPOLICER[fid]

Shaper

PE_BANDSHAPER[fid]

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.

Table 75 Distribution configuration commands#

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 72.

  • 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 72.

  • Impairment configuration

There is no impairment configuration for latency / jitter. (See Table 74).

  • 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