To configure a stream's properties select the stream and goto File | 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.
Whichever method you employ to edit the stream, you will now see the Stream Configuration Dialog Box. This dialog box has five tabbed pages -
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 or random. For the non-fixed modes, you can configure a minimum and maximum value between which the frame length will vary.
NOTE: 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.
NOTE: The frame length values specified includes the 4 byte FCS.
Protocols (Simple Mode)
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)
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 -
|Adds the protocol(s) selected in the left pane to the right pane|
|Moves the protocol selected in the right pane up in order|
|Moves the protocol selected in the right pane down in order|
|Removes the protocol selected in the right pane from the selected list of protocols|
On this page you can configure the fields for each protocol that you selected in the Protocol Selection page
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)
Some protocols allow configuring variable fields on the protocol data page for some fields (e.g. Mac/IP addresses). This 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.
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*step) AND mask)
- 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
NOTE: 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.
Consider the vlan header format (numbers in braces indicate field size in bits) -
+-----------------------+------+-----+-----------+ | TPID | Prio | CFI | VLAN ID | | (16) | (3) | (1) | (12) | +-----------------------+------+-----+-----------+
Using a Counter8, the 3-bit priority field (possible values 0 to 7) is at byte offset 2 with a mask of 0xE0 - to vary this field between values 3 and 6, you will have to configure (initial) value as 96 (hex 0x60), count as 4 and step as 32 (hex 0x20).
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 controller 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.
On this page you can view the packet that you configured in the traditional fashion - tree view and hex dump.
- 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