Skip to content

Stream Configuration

To configure a stream's properties select the stream and goto Streams | Edit Stream (or alternatively use the right-click context menu). You can even double click the stream icon in the stream list to edit the stream.

Prior to v1.2.0, stream related menu items were under the File menu

Whichever method you employ to edit the stream, you will now see the Stream Configuration Dialog Box. This dialog box has five tabbed pages -

Stream Config Dialog Top Tab Bar

Protocol Selection

Frame Length

SCD - Frame Length

On this page, you can configure the frame length. You can set the frame length to be a fixed value or use any of the other modes viz. incrementing, decrementing, random or IMIX. For modes other than fixed and IMIX, you can configure a minimum and maximum value between which the frame length will vary.

Info

The frame length values specified includes the 4 byte FCS.

The IMIX mode uses Simple IMIX -

Frame size # Packets Pkt Distribution Bytes Byte Distribution
64 7 58.33% 448 10.32%
594 4 33.33% 2376 54.72%
1518 1 8.33% 1518 34.96%

Tip

For the non-fixed modes, you should configure the stream to send more than 1 packet otherwise you may not see any variation in the frame lengths.

Protocols (Simple Mode)

SCD - Protocol Selection (simple)

For most usual cases, you can configure the protocols in your packet by clicking on the appropriate radio buttons as desired. Only standard combinations of the various protocols are allowed here (e.g. you can't have have TCP after ARP).

If you need a non standard combination, click on advanced mode. Other cases when you may need advanced mode are - * More than 2 VLAN tags * If you need to use the "UserScript" protocol

NOTE: Each protocol level group here has a "Other" choice - this is not available for user selection but is used when a non-standard combination is selected using the advanced mode

Protocols (Advanced Mode)

SCD - Protocol Selection (Advanced)

In this mode, you can stack the protocols that you need in any order that you want (unlike simple mode no checks are performed and you can stack TCP following ARP). You can also stack multiple protocols of the same type (e.g. IP over IP)

The left pane shows all the available protocols. The right pane shows the protocols that you select for your packet in the order that you want

Use the following toolbar buttons to configure the protocols required and their order -

Icon Description
Right Arrow Adds the protocol(s) selected in the left pane to the right pane
Up Arrow Moves the protocol selected in the right pane up in order
Down Arrow Moves the protocol selected in the right pane down in order
Delete (-) Removes the protocol selected in the right pane from the selected list of protocols

Protocol Data

On this page you can configure the fields for each protocol that you selected in the Protocol Selection page

SCD - Protocol Data

Click on the protocol name button to open up the configuration widget for the particular protocol and fill in values as desired.

NOTE: Currently "Protocol Id" fields for the implemented protocols cannot be modified (e.g. if you have Ethernet followed by IP, the Ethertype will be set to 0x0800 - you cannot change it)

Variable Fields

Some protocols allow configuring variable fields on the protocol data page for some fields (e.g. Mac/IP addresses).

SCD - Protocol Variable Fields

The variable fields page (available starting version 0.7) allows you to vary any field of any protocol, irrespective of whether you can do the same on the protocol data page or not.

SCD - Variable Fields

Select the protocol, click the + button to add a variable field, select the variable field in the list and then specify which protocol field to vary and how. You can specify custom fields also, if required.

The computation used for varying fields is as follows -

new = (old AND ~mask) OR ((value op (n/skip)*step) AND mask)
where

  • old is 8/16/32-bit value (depending on counter type) starting at offset bytes from start of protocol
  • op is based on the mode - increment/decrement/random
  • n varies from 0 to (count-1)
  • new is the value that will replace old

The skip parameter is available starting v1.4.0

Non 8/16/32-bit fields

The above computation has an implication for how value/step needs to be provided for fields which aren't aligned to the least significant bit of the counter type - in other words, fields which have trailing zeroes in the mask.

Example: Consider the vlan header format (numbers in braces indicate field size in bits) and the Prio field -

0          1            2                  3
+-----------------------+------+-----+-------------+
|         TPID          | Prio | CFI |   VLAN ID   |
|         (16)          |  (3) | (1) | (4) |  (8)  |
+-----------------------+------+-----+-----+-------+
                        |     Counter8     |
                        |        (8)       |
                        +------------------+
                        |    Mask: 0xE0    |
                        |       (8)        |
                        +------------------+

Using a Counter8, the 3-bit priority field (possible values 0 to 7) is at byte offset 2 with a mask of 0xE0 (binary 1110 0000). The lower 5 bits of this 8-bit counter is masked off and those bits in the packet won't be modified.

To vary this field between values 3 and 6 by 1, you will have to adjust the value and step also as per this mask i.e. configure (initial) value as 3 << 5 = 96 (hex 0x60), step as 1 << 5 = 32 (hex 0x20) and count (no mask adjustment needed) as 4.

Overriding Fields

Some protocol field values are automatically determined by Ostinato based on other fields or protocols in the packet. Some of these fields can be overridden using a simple checkbox e.g. the UDP Source/Destination Ports -

Override UDP fields

That checkbox is available only for some protocol fields, not all though. But there's a way we can override ANY field of ANY protocol by using the Variable Fields feature.

Just select the protocol field, enter the desired value and set count to 1. You can set the mode to Increment or Decrement - it doesn't matter since the count is 1.

Override any packet field value

Stream Control

SCD - Rates

On this page you can configure whether you send packets or bursts.

If you send packets, you can configure the number of packets to send and the pkts/sec rate at which to send the packets.

If you send bursts, you can configure the number of bursts to send and the bursts/sec rate at which to send the bursts; additionally you can configure the burst size in terms of packets per burst (all packets in a burst are sent back to back without any delay between them)

You can also configure the stream transmission order here. After this stream, you can either goto the next stream in the stream list order, or goto stream 0 (i.e. go back to the first stream in the stream list), or stop transmission (even if there are subsequent streams in the stream list)

NOTE: Depending upon the Transmit Mode, some fields may not be available

IMPORTANT: Ostinato tries its best to send the stream at the rate you have requested - but cannot guarantee it. The rates and accuracy achievable for a port depends on the computer running the agent component (drone). The computer's inherent processing capability and the current load on the computer are big factors that may affect the rates. See the FAQ "top-speed" question for achieving maximum transmit rate.

Packet View

SCD - Packet View

On this page you can view the packet that you configured in the traditional fashion - tree view and hex dump.

Not Supported

  • If you have configured multiple packets and a varying packet field, you can only view the first of those packets
  • You can click on any item in the tree view to highlight the corresponding bytes in the hexdump pane, but not vice-versa
Back to top