Data Transmission

Streams and Flows

Streams and flows are the means by which data is applied to the DUT. Streams are generated ‘on the fly’ by the Ixia hardware. Flows are data arrays located on disk and associated with a port. Multiple streams are defined and associated with a port through the use of the stream command. stream provides for the transitions between streams, gaps, addressing and basic frame control. See the Ixia Reference Manual for a general discussion. The following additional commands are required for further packet header and data contents:

stream

stream controls the basic structure of streams: stream to stream transition, inter-stream/frame/burst gaps, and addressing. It also controls the common frame contents: size, base data pattern, checksum, and identity record. The other commands in this section may be used for specific protocols and header data. Multiple streams may be created and connected to each other through the use of their IDs. See the Ixia Reference Guide for a general discussion. stream for full details.

Some ports support the scheduled transmit duration feature, which may be tested with the portisValidFeature command. This feature allows a group of ports to run for a fixed number of seconds, or for the period indicated by its streams, which ever comes first. This feature is controlled with the portGroupsetScheduledTransmitTime and clearScheduledTransmitTime commands.

The setQueue and getQueue sub-commands are used to set up streams within ATM ports. Queues are discussed in streamQueueList and streamQueue. ATM streams may have incrementing and/or random frame sizes, but only 16 of either type. All other streams are forced to fixed size.

Note: To modify the options of any command that contributes to the configuration of streams, it is always necessary to perform a stream get chassis card port stream command.

The important options and sub-commands of this command are mentioned in the following table:

Table: stream Options

Category Member Usage

Stream Control

enable

This stream is enabled or not. Disabled streams are skipped during transmission.

 

dma

The type of stream and relationship to another stream:

  • Continuous packet
  • Continuous burst
  • Stop after stream
  • Advance to next stream
  • Return to stream ID (labeled as gotoFirst for historical reasons)
  • Loop to stream ID (labeled as firstLoopCount for historical reasons)
  • Fixed Count Burst

 

returnToId

The stream ID to return to for the return to and loop to stream ID dma types.

 

loopCount

This is the repeat count for the dma choice ‘loop to stream ID’.

 

numBursts

The number of bursts, ignored for dma choices continuous packet and continuous burst.

 

numFrames

The number of maximum frames in a stream, ignored for dma choice continuous packet.

 

priorityGroup

Specifies the priority group of the stream.

Inter-Frame Gap

gapUnit

The choice of units for ifg, isg and ibg. The choices are mentioned as follows:

  • Nano-seconds
  • Micro-seconds
  • Milli-seconds
  • Seconds
  • Clock ticks that vary with the port type

 

ifgType

Indicates whether the inter-frame gap is a fixed value or random between a minimum (ifgMIN) and maximum value (ifgMAX).

 

ifg

The inter-frame gap expressed in gapUnit units.

 

ifgMIN

The minimum gap generated for ifgType of random.

 

ifgMAX

The maximum gap generated for ifgType of random.

 

rateMode

Indicates whether to use the ifg value, percentage of the maximum transmission rate, frames per second or bits per second.

 

percentPacket
Rate

If rateMode indicates, then ifg is calculated based on a desired percentage of maximum transmission rate.

 

fpsRate

If indicated by rateMode, the desired frames per second.

 

bpsRate

If indicated by rateMode, the desired bits per second.

 

framerate

(Read-only) The actual rate, in frames per second that the stream transmits at.

Inter-Burst Gap

enableIbg

Enables the use of inter-burst gaps.

 

ibg

The inter-burst gap expressed in gapUnit units.

Inter-Stream Gap

enableIsg

Enables the use of inter-stream gaps.

 

isg

The inter-stream gap expressed in gapUnit units.

Addressing

da

First destination MAC address assigned to the stream.

 

daMaskValue/daMaskSelect

Indicates which bits of the destination MAC address are to be manipulated and their initial values.

 

numDA

The number of destination MAC addresses that is used.

 

daRepeatCounter

Indicates how the destination MAC address is to be incremented or decremented from packet to packet.

 

sa

First source MAC address assigned to the stream.

 

saMaskValue/saMaskSelect

Indicates which bits of the source MAC address are to be manipulated and their initial values.

 

numSA

The number of source MAC addresses that is used.

 

saRepeatCounter

Indicates how the source MAC address is to be incremented or decremented from packet to packet.

 

enableSourceInterface

Enables the use of the MAC and IP addresses from the interface table in lieu of the sa value.

 

sourceInteraceDescription

The name of the interface on the port to use.

Frame Control

frameSizeType

The type of frame size calculation:

  • Fixed size as indicated in framesize.
  • Random size between frameSizeMin and frameSizeMax. Some modules support more advanced random frame sizes, weightedRandomFramesize.
  • Incrementing packet to packet.
  • Automatically calculated, depending on protocol dependent contents.

 

framesize

The size of all frames if frameSizeType is fixed.

 

frameSizeMin

The minimum frame size if frameSizeType is random.

 

frameSizeMax

The maximum frame size if frameSizeType is random.

 

frameType

The type field of the Ethernet frame.

 

preambleSize

Number of bytes in the frame preamble.

 

patternType

Dictates the type of data pattern manipulation:

  • increment/decrement bytes or words
  • random data
  • fixed repeating pattern chosen from dataPattern
  • fixed non-repeating pattern chosen from dataPattern

 

dataPattern

One of a number of fixed patterns of data, including all 1’s and all 0’s, plus a choice for a user specified pattern.

 

pattern

If dataPattern indicates a user specified pattern, this string specifies the contents.

 

fcs

The type of FCS error to be inserted into the frame (or none).

 

enableTimestamp

Whether to insert a Frame Identity Record into the last 6 bytes of the packet.

Misc

asyncIntEnable

Allow asynchronous interrupts required by the protocol server.

 

packetView

(Read-only) Shows the packets that are about to be transmitted. If the port’s port.transmitMode is set to portTxPacketFlows, then this displays all of the packets to be transmitted. This data may be saved and used to specify a port.packetFlowFileName.

Table:stream Sub-Commands

Member Usage

setQueue

For use with ATM ports only. Sets the parameters for a stream within a stream queue. atmPort, atmHeader, streamQueueList, and streamQueue.

getQueue

For use with ATM ports only. Gets the parameters associated with a stream in a queue.

export
import

Write stream data to files and read it at a later time.

exportQueue
importQueue

As in export/import but for a particular queue on ATM ports.

remove

Remove a stream from the port. stream remove chasID cardID portID streamID.

All of the stream sub-commands include an additional, optional argument named sequenceType. For POS cards that support DCC, this controls whether the stream is used by the DCC or normal data (SPE) channel.

streamRegion

The streamRegion command is used to manage several properties that apply to all streams. Refer to streamRegion for a full description of this command. The important options of this class are mentioned in the following table:

Table: streamRegion Options

Member Usage

gapControl

For ports that have the portFeatureGapControlMode capability, this controls the manner in which minimum inter-packet gaps are enforced.

weightedRandomFramesize

The weightedRandomFramesize command is used to configure possible different modes of generating random frame sizes for a particular stream. The following command is used for ports which support this feature and where the port has been programmed for random stream generation with:

stream config -frameSizeType sizeRandom

The following basic types of random streams are available:

For the pre-programmed and custom choices, the weights for all of the frame sizes are added up. Each frame size is then given a proportion of the total number of frames as dictated by its weight value. For example, one of the pre-programmed distributions is 64:7, 594:4, 1518:1. In this case, the total of the weights is 12 (7+4+1). Frames are randomly generated such that 64-byte frames are 7/12 of the total, 594-byte frames are 4/12 of the total and 1518-byte frames are 1/12 of the total.

Note that streamget must be called before this command’s get sub-command. Refer to weightedRandomFramesize for a full description of this command. The important options and sub-commands of this class are mentioned in the following table:

Table:weightedRandomFramesize Options

Member Usage

randomType

The type of random distribution: uniform, pre-programmed, or custom.

pairList

Read-only list of framesize-weight pairs that are being used.

center
widthAtHalf
weight

The values associated with one of the four Gaussian curves.

Table: weightedRandomFramesize Sub-Commands

Member Usage

addPair

Add a framesize-weight pair to the list.

delPair

Delete a pair from the list

updateQuadGaussianCurve

Sets the value for one of the four Gaussian curves.

retreiveQuadGaussianCurve

Retrieves the values associated with one of the four Gaussian curves.

flexibleTimestamp

The flexibleTimestamp command is used to configure the placement of the time stamp. It normally is placed just at the end of the packet, just before the CRC. Time stamp insertion is controlled by the enableTimestamp option of the stream command.

The following basic types of time stamp placement are available:

The important options of this class are mentioned in the following table:

Table: flexibleTimestamp Options

Member Usage

type

The basic type of time stamp placement.

offset

If ‘at offset’ is used, then this is the offset to place the time stamp at.

Frame Data

udf

Up to five User Defined Fields may be defined, which allow arbitrary data to be algorithmically constructed within the data portion of the frames. The getstream sub-command must be called before getudf sub-command and setstream sub-command must be called after set udf sub-command. See the Ixia Reference Guide for a general discussion.udf for full details. The important options of this command are mentioned in the following table:

Table: udf Options

Member Usage

enable

Enable or disable this UDF definition.

counterMode

Indicates the type of counter:

  • up-down
  • random
  • value list
  • nested
  • range list
  • IPv4.

offset

The offset within the packet to place the UDF data. Also known as Byte Offset.

countertype

The size and shape of the UDF counter. One to four 32 to 8 bit counters. Also known as Type.

Note: On boards and modes that support udfSize, countertype is deprecated in favor of udfSize.

random

If set, all counters have random data.

continuousCount

If set, all counters operate continuously.

repeat

If continuousCount is not set, this is the repeat count for all counters.

updown

A four-bit mask indicating whether each counter counts up or down.

initval

The initial value of the counter.

maskselect/maskval

Together these indicate which initial value bits to use and increment/decrement.

enableCascade

For PoS ports, enables a counter to continue with a count from stream to stream.

cascadeType

Indicates whether to cascade from the previous stream or the previous value on this stream.

step

The increment step for Up or Down increment mode can be specified. (Default = 1).

innerLoop
innerRepeat
innerStep

Controls the inner loop for a nested counterMode.

enableSkipZeros
AndOnes
skipMaskBits

Controls skipping over broadcast addresses for an IPv4 counterMode.

valueList

A list which holds the values to be used in value list mode.

chainFrom

Allows you to select what UDF the current UDF should chain from. When this option is employed, the UDF stays in its initial value until the UDF it is chained from reaches its terminating value.

bitOffset

Origins from bit 0 (LSB) in the byte specified in offset (Byte Offset). The range is 0 to 7 bits.

udfSize

Sets the UDF field size (in bits). This must be a value from 1-32 and is only supported on certain cards in certain modes.

tableUdf

The tableUdf command is used to define tables of data that is applied at the same time as other UDFs. The tableUdf feature is only available for selected ports; the availability of the feature may be tested with the portisValidFeature... portFeatureTableUDF command.

The feature is enabled with the enable option. Tables consist of rows and columns. Columns define the locations within a packet that are to be modified, while rows hold the data that is simultaneously applied at the locations indicated by the columns. Columns are defined with tableUdfColumn; column attributes include the following:

Columns are then added to the table using the addColumn sub-command of this command. Once columns have been defined, data is added to the table, row by row, using the addRow sub-command.

Table UDF configurations, including row data, may be saved to disk using the export sub-command; a comma separated values (csv) file format is used. Table UDF configurations may be retrieved using the import sub-command.

The important options and sub-commands of this command are mentioned in the following table:

Table: tableUdf Options

Member Usage

enable

Enables the use of the table UDF.

numColumns
numRows

Read-only indicates of the current table size.

Table: tableUdf Sub-Commands

Member Usage

addColumn

Add a new column to the table from the data in the tableUdfColumn command.

addRow

Add a new row of data to the table.

clearColumns
getFirstColumn
getNextColumn

Clear all columns and row data, access columns in the table.

clearRows
getFirstRow
getNextRow

Clear all row data, access rows in the table.

export
import

Save and retrieve table UDF data to the file system.

tableUdfColumn

The tableUdfColumn command is used columns used in table UDFs. Columns define the locations within a packet that are to be modified. Columns are defined with the options of this command and then added to a table using the addColumn sub-command of the tableUdf command. Column attributes include the following:

Column data for existing tables is retrieved with the getFirstColumn and getNextColumn sub-commands of the tableUdf; the values retrieved are available in this command. The important options of this command are mentioned in the following table:

Table: tableUdfColumn Options

Member Usage

name

Name of the column

offset

Offset in the packet to the start of the data.

size

Size of the data within the packet. Columns in a table UDF may not overlap.

formatType
customFormat

The format of the data expected for the column. This is applied by the addRow sub-command of tableUdf.

tcpRoundTripFlows

The tcpRoundTripFlows command sets up values to be used in measuring round-trip times. See the Ixia Reference Guide for a general discussion.tcpRoundTripFlow for full details.

The important options of this command are listed in the Table: tcpRoundTripFlows options below.

Table: tcpRoundTripFlows options

Category Member Usage

Data

patternType

Dictates the type of data pattern manipulation:

  • increment/decrement bytes or words
  • random data
  • fixed repeating pattern chosen from dataPattern
  • fixed non-repeating pattern chosen from dataPattern

 

dataPattern

One of a number of fixed patterns of data, including all 1’s and all 0’s, plus a choice for a user specified pattern.

 

pattern

If dataPattern indicates a user specified pattern, this string specifies the contents.

 

framesize

The number of bytes in each package.

Addresses

macSA

The source MAC address used for outbound packets.

 

macDA

The destination MAC address used for outbound packets. This may be overridden through the use of useArpTable.

 

useArpTable

If set, the ARP table is used instead to set the MAC address based on the destination IP address. gatewayIpAddr is used for the ARP query.

 

gatewayIpAddr

If useArpTable is set, this is the address of the gateway that responds to ARP requests.

 

forceIpSA

If set, IpSA is used to set the outbound IP address.

 

IpSA

Outbound IP source address.

packetGroup

The packetGroup command sets up values to be used in measuring latency, classed by tagged groups of packets. See the Ixia Reference Guide for a description of this feature. packetGroup for full details. To calculate latency values the fir object in the stream command should be set to true and the value of the port’s receiveMode option should be set to portPacketGroup.

An additional feature available on some port types is the ability to collect latency measurements per packet group. The availability of this feature for a given port can be tested using the port isValidFeature... portFeatureRxLatencyBin. The port must be configured for wide packet groups (the port’s receiveMode includes the portRxModeWidePacketGroup bit); the availability of this mode may be tested with port isValidFeature... portFeatureRxWidePacketGroups. No configuration is necessary on the transmit port; only the receive port must be configured to receive latency bin operation. This feature is enabled on the receive port with the enableLatencyBins option.

The latency measurements for each packet group may be collected in a set up to 16 continuous latency buckets. The first bucket always starts at 0 and the last bucket always ends at the maximum latency. The packetGroup interface allows for the specification of up to 15 time dividers between latency bins. For example, to specify five latency buckets for the following:

one programs four dividing times:

This is done through the latencyBins option. No other setup is required for the receive side port. The latency statistics per latency bin are obtained through the use of the packetGroupStats command.

An additional feature available on some port types is the ability to measure latency as it varies over time. The availability of this feature for a given port can be tested using the port isValidFeature... portFeatureRxTimeBin. The port must be configured for wide packet groups (the port’s receiveMode includes the portRxModeWidePacketGroup bit); the availability of this mode may be tested with port isValidFeature... portFeatureRxWidePacketGroups. No configuration is necessary on the transmit port; only the receive port must be configured to receive time bin operation. This feature is enabled on the receive port with the enableTimeBins option.

The latency over time for each packet group may be collected for a number of evenly spaced time periods, as indicated by the numTimeBins and timeBinDuration options. The number of packet groups used per time bin must also be specified in the numPgidPerTimeBin option.

The product of numPgidPerTimeBin (which must be a power of 2) and the next higher power of 2 of the numTimeBins must be less than the total number of packet group IDs available for the port when not in time bin mode.

The latency statistics per time bin are obtained through the use of the packetGroupStats command. Time bins and latency bins may be used at the same time. The important options and sub-commands of this class are mentioned in the following table:

Table: packetGroup Options

Category Member Usage

Signature

signatureOffset

Where to place the signature in each transmitted packet.

 

signatureMask

Masks specific bits for signature matching.

 

signature

The signature to be inserted at the signature offset.

 

insertSignature

Whether to insert the signature or not.

Packet ID

groupIdMode

Allows the group ID offset to be placed at one of several common locations, or set to a custom location indicated in groupIdOffset and groupIdMask.

 

groupIdOffset

Where to place the group ID in each transmitted packet.

 

enableGroupIdMask
groupIdMask

Masks specific bits for group ID identification.

 

groupId

The value to use as the packet group ID.

 

maxRxGroupId

Displays the maximum number of PGIDs based on the port receive configuration.

Receive mode

preambleSize

The expected size of the received preamble.

 

latencyControl

The type of latency measurement are as follows:

  • cutThrough: First data bit in to first data bit out
  • storeAndForward: Last data bit in to first data bit out
  • storeAndForwardPreamble: Last data bit in to first preamble out
  • interArrivalJitter: The jitter between packet arrivals

 

enableLatencyBins
latencyBinList

Enables and sets the latency bins dividers.

 

enableTimeBins
enable128kBinMode
numPgidPerTimeBin
numTimeBins
timeBinDuration

Enables and sets up the time bin parameters:

  • Number of packet group IDs per time bin
  • Number of time bins
  • The size of each time bin

 

enableFilterMask
headerFilterMask

Controls filtering of incoming packets to a specific pattern. Only filtered packets are used for packet group matching.

Sequence checking

sequenceChecking-
Mode

The mode of sequence checking:

  • Based on out-of-sequence checking.
  • Based on multi-switched path loss and duplication checking.

 

sequenceNumber-
Offset

For out-of-sequence checking, where the sequence number is located.

 

sequenceError-
Threshold

For out-of-sequence checking, the threshold that is called an error.

 

multiSwitchedPath-
Mode

Controls the use of time stamps in multi-switched path mode.

Header

headerFilter

A value to be matched in the packet before signature matching occurs.

 

headerFilter
Mask

A value used to mask the headerFilter.

Table: packetGroup Sub-Commands

Member Usage

setTx

Sets the packet group transmit characteristics for the port.

getTx

Gets the packet group transmit characteristics for the port.

setRx

Sets the packet group receive characteristics for the port.

getRx

Gets the packet group receive characteristics for the port.

dataIntegrity

The dataIntegrity class sets up values to be used to check data validity. Seethe Ixia Reference Guide for a description of this feature. In order for data integrity to operate, port -receiveModeportRxDataIntegrity must be performed (and committed to the hardware). dataIntegrity for full details. The important options and sub-commands of this command are mentioned in the following table:

Table: dataIntegrity Options

Category Member Usage

Signature

signatureOffset

Where to place the signature in each transmitted packet.

 

signature

The signature to be inserted at the signature offset.

 

insertSignature

Whether to insert the signature or not.

Receive mode

enableTimeStamp

Enables the placement of a 48-bit timestamp just before the FCS value with a 20ns accuracy.

Table: dataIntegrity Sub-Commands

Member

Usage

setTx

Sets the data integrity transmit characteristics for the port.

getTx

Gets the data integrity transmit characteristics for the port.

setRx

Sets the data integrity receive characteristics for the port.

getRx

Gets the data integrity receive characteristics for the port.

Sequence Checking

See the Ixia Reference Guide for a general discussion. There is no specific command that controls the operation of sequence checking. Instead, the following steps should be used to enable sequence checking:

  1. Set the value of the port’s receiveMode option to portRxSequenceChecking.
  2. Set the location of the signature in the packet through the signatureOffset and signature members of the packetGroup command.
  3. Set the location of the sequence check value through the groupIdOffset member of the packetGroup class.
  4. Set the values to the hardware through the setTx sub-command of the TclPacketGroup command.
  5. The statistics values signatureErrors and signatureValues relate to signature checking. Refer to stat.

forcedCollisions

Collisions may be forced on the data transmission from any port. Refer to the Ixia Reference Guide for the full discussion of this feature and to forcedCollisions for command details. The important options and sub-commands of this class are mentioned in the following table:

Table: forcedCollisions options

Member

Usage

enable

Enables forced collisions.

packetOffset

The offset from the beginning of packet to the start of the collision.

collisionDuration

The duration of each collision

consecutiveCollisions

The number of consecutive collisions to generate.

consecutiveNonColliding
Packets

After each time that collisions have occurred, this is the number of packets that is not be modified.

continuous

Indicates that collisions are to occur continuously.

repeatCount

For non-continuous operation, the number of times to repeat the cycle of collisions and non-collisions.

Protocols

The following commands relate to protocol selection, header options and, in some cases, message formatting.

protocol

Basic protocol parameters are set with the protocol command. protocol for full details. The important options of this command are mentioned in the following table:

Table: protocol Options

Category

Member

Usage

Protocol

appName

The protocol running on top of IP are the following: UDP, ARP, RIP, DHCP, DHCPv6, SRP, or PTP.

 

name

Protocol selected: MAC, IP, IPv4, IPv6, IPX, pauseControl, and FCoE.

Data Link Layer

enable802dot1qTag

Enables 802.1q single or stacked VLAN tagged frames.

 

enableISLtag

Enables Cisco ISL tagged frames.

 

enableMPLS

Enables MPLS tagged frames.

 

enableMacSec

Enable MacSec frame insertion in streams.

 

enableOam

Enable OAM frame insertion in streams.

 

ethernetType

Type of ethernet frame: EthernetII, IEEE802.3, IEEE802.3 Snap, or IEEE802.2

protocolOffset

The protocolOffset command allows the IP and other headers to be relocated from their default location to further into the packet. This allows additional headers to be inserted ahead of the protocol header, for example PPP headers. protocolOffset for full details. The important options of this command are mentioned in the following table:

Table: protocolOffset Options

Member

Usage

offset

The new offset of the protocol header

userDefinedTag

The contents of the space where the protocol header was previously located.

fibreChannel

The fibreChannel command supports FCoE header and trailer in streams. See fibreChannel for details.

fcoe

The fcoe command is used to configure Fibre Channel over Ethernet (FCoE) header and trailer packet. FCoE is a method of communicating data for streams and protocols.fcoe for details. Associated commands include fcoeDiscoveredInfo, fcoeProperties, “fibreChannel”, and npivProperties.

Data Link Layer

isl

The isl command sets up the header for Cisco ISL messages. The enableISLtag option of the protocol command must be set. The data portion of the message, including the tunneled SA and DA may be created using stream. isl for full details.

The important options of this command are mentioned in the following table:

Table: isl Options

Member Usage

islDA

The multicast address indicating to the receiver that this is an ISL formatted packet.

frameType

The type of frame being encapsulated are as follows:

  • Ethernet
  • Token Ring
  • FDDI
  • ATM

userPriority

Two bits of packet priority.

islSA

(Read-only) The source MAC address. The upper three bytes are reflected in the hsa field.

vlanID

The virtual LAN identifier.

bpdu

Set for all Bridge Protocol Data Units that are encapsulated by the ISL packet.

index

For diagnostic purposes, the port index of the packet as it exits the switch.

reserved

The ‘reserved’ field of the packet.

vlan

The vlan command sets up the header for VLAN specific messages. The enable802dot1qtag option of the protocol command must be set. The data portion of the message may be created using stream. vlan for full details. The important options of this command are mentioned in the following table:

Table: vlan Options

Member Usage

userPriority

User priority level.

cfi

Canonical format indicator bit.

vlanID

The VLAN identifier.

mode

Indicates whether the VLAN tag is incremented/decremented or random between packets.

repeat

For each new value of the VLAN ID, this is the number of times it is repeated before the next change.

step

The step size between incremented/decremented values.

maskval

This masks the values of the VLAN ID that may be changed.

stackedVlan

The stackedVlan command is used to configure an ordered stack of VLAN entries. This command is only used when the enable802dot1qTag in the protocol command is set to true. Elements of the stack are constructed in the vlan command. The top two elements of the stack are always present and may be modified by using the setVlan sub-command. Other elements are added to the bottom of the stack using addVlan; they may later be modified with the setVlan sub-command.

The top two VLANs in a stack may be configured to increment or decrement their VLAN ID. They may either increment/decrement independently or operate in a special nested mode. To use nested mode, the top (outer) VLAN should be set to one of the non-nested increment/decrements modes and the second (inner) VLAN should be set to the nested increment or decrement mode. In this mode the inner VLAN’s ID changes most rapidly.

stackedVlan for full details. The important sub-commands and options of this command are mentioned in the following table:

Table: stackedVlan Sub-Commands

Member Usage

addVlan

Adds a VLAN specification to the bottom of the stack.

delVlan

Deletes a specify VLAN from the list

setVlan

Changes the values of a VLAN stack element in place.

getFirst/getNext

Cycles through the stack of VLAN elements.

Table: stackedVlan Options

Member Usage

numVlans

The read-only count of the number of defined VLANs.

mpls

The enableMPLS member of the associated protocol command must be set to successfully use this command. The mpls command sets up the base information for MPLS specific messages. The data portion of the message may be created using mplsLabel.mpls for full details. Note that streamget must be called before this command’s get sub-command. The important options of this command are mentioned in the following table:

Table: mpls Options

Member Usage

type

The MPLS type: Unicast or multicast.

forceBottomOfStack

Automatically set bottom of stack bit.

mplsLabel

The enableMPLS member of the associated protocol object must be set to successfully use this command. The mplsLabel command is used to generate MPLS labels. mplsLabel for full details. The important options of this command are mentioned in the following table:

Table: mpls Options

Member Usage

label

The value of the label is one of the following:

  • IPV4 Explicit Null
  • Router Alert
  • IPV6 Explicit Null
  • Implicit Null
  • Reserved

experimentalUse

Sets the experimental use field.

bottomOfStack

Sets the bottom of stack bit.

IPX

The ipx command provides for the setting of IPX header elements. ipx for full details. Note that streamget must be called before this command’s get sub-command. The important options of this command are mentioned in the following table:

Table: ipx options

Category Member Usage

Source

sourceNetwork

The network number of the source node.

 

sourceNetworkCounterMode

Indicates whether the network number increments, decrements or receives a random setting.

 

sourceNetworkRepeatCounter

The number of times that the network number changes.

 

sourceNetworkMaskValue
sourceNetworkMaskSelect

Together these set the mask of network number bits that changes.

 

sourceNode
sourceNodeCounterMode
sourceNodeRepeatCounter
sourceNodeMaskValue
sourceNodeMaskSelect

As in sourceNetwork... for the sourceNode.

 

sourceSocket
sourceSocketCounterMode
sourceSocketRepeatCounter
sourceSocketMaskValue
sourceSocketMaskSelect

As in sourceNetwork... for the sourceSocket.

Destination

destNetwork
destNetworkCounterMode
destNetworkRepeatCounter
destNetworkMaskValue
destNetworkMaskSelect

As in sourceNetwork... for the destNetwork.

 

destNode
destNodeCounterMode
destNodeRepeatCounter
destNodeMaskValue
destNodeMaskSelect

As in sourceNetwork... for the destNetwork.

 

destSocket
destSocketCounterMode
destSocketRepeatCounter
destSocketMaskValue
destSocketMaskSelect

As in sourceNetwork... for the destNetwork.

Misc

length

The total length of the IPX packet, including header. May be set if lengthOverride is set.

 

lengthOverride

Allows the length value to be changed.

 

packetType

The type of IPX packet.

 

transportControl

The number of routers that the packet has passed through.

ARP

The name of the associated protocol object must be set to ‘ip’ and the appName must be set to ‘arp’ to successfully use this command.The arp command allows ARP packets to be constructed. arp for full details.

The important options of this command are mentioned in the following table:

Table: arp options

Category Member Usage

Basic

operation

The type of ARP operation is one of the following:

  • ARP Request
  • ARP Reply
  • Reverse ARP Request
  • Reverse ARP Reply

Physical

hardwareAddrLength

(Read-only) The length of the hardware address.

 

hardwareType

(Read-only) The hardware type of the physical layer.

 

protocolAddrLength

(Read-only) The length of the protocol addresses.

 

protocolType

(Read-only) The type of network protocol address.

Source

sourceHardwareAddr

The MAC address of the sender.

 

sourceProtocolAddr

The protocol address of the sender.

Destination

destHardwareAddr

The MAC address of the receiver.

 

destProtocolAddr

The protocol address of the receiver.

IP

The ip command allows IPv4 header values to be constructed. The name of the associated protocol object must be set to ‘ip’ to successfully use this command.

The source and destination addresses may be set from the result of a PPP negotiation through the use of the enableDestSyncFromPpp and enableSourceSyncFromPpp options. Note that it is necessary to wait until the PPP session has been negotiated before doing the following:

ip for full details. The important options of this command are mentioned in the following table:

Table: ip Options

Category Member Usage

Header

precedence
delay
throughput
reliability
cost
reserved

The parts of the Type of Service (TOS) byte.

 

qosMode
dscpMode
dscpValue
classSelector
assuredForwardingClass
assuredFowardingPrecedence

Allows the specification of the TOS byte using DSCP (DiffSrv).

 

totalLength

The total length of the IP packet, including header. This may be overridden from the automatically calculated setting if lengthOverride is set.

 

lengthOverride

Allows the totalLength of the packet to be overridden from the calculated setting.

 

identifier

An identifier used to re-assemble fragments.

 

fragment

Indicates whether this is a fragmented datagram.

 

fragmentOffset

For fragmented packets, the offset in the re-assembled datagram where this packet’s data belongs.

 

lastFragment

Indicates that this is the last fragment of the datagram.

 

ttl

Time to live for packet, in seconds.

 

ipProtocol

The next level protocol contained in the data portion of the packet.

 

useValidChecksum

Indicates whether a valid or invalid checksum should be included in the header.

 

checksum

(Read-only) The value of the header checksum. Only valid after stream.set is performed.

Source

sourceIpAddr

The source IP address.

 

sourceIpAddrMode

Indicates how the IP address changes from packet to packet: Remains the same, increments/decrements host, network, or random values.

 

sourceIpAddrRepeatCount

The number of different source addresses generated.

 

sourceIpMask

The source IP subnet mask.

 

sourceCommand

The command type for the source address: A, B, C, D, or no command.

 

enableSourceSyncFromPpp

Sets the sourceIpAddr from the result of a PPP negotiation.

Destination

destIpAddr

The destination IP address.

 

destIpAddrMode

Indicates how the IP address changes from packet to packet: Remains the same, increments/decrements host, network, or random values.

 

destIpAddrRepeatCount

The number of different destination addresses generated.

 

destIpMask

The destination IP subnet mask.

 

destClass

The class type for the destination address: A, B, C, D, or no class.

 

enableDestSyncFromPpp

Sets the destIpAddr from the result of a PPP negotiation.

Misc

options

Variable length options field.

 

destDutIpAddr

The address of the device under test.

 

destMacAddr

The MAC address of the device under test. Received ARP frames modifies this value.

ipV6

The ipV6 command allows IPv6 header values to be constructed. The name of the associated protocol object must be set to ‘ipV6’ to successfully use this command. ipV6Address is a convenience command which can be used to encode/decode and IPv6 address. ipV6 for full details.

The ipV6 command also includes list of extension headers. Extension headers are built-in with the following specific objects:

An extension header is added to a ipV6 object by configuring the extension header with the appropriate command from the list above and then adding it to the group with ipV6 addExtensionHeader type, where type indicates which of the extensions to use. An extension may be retrieved from an ipV6 object through the use of getFirstExtensionHeader / getNextExtensionHeader. These commands return the name of the command that was used to configure the header extension. The type of the extension header can be determined from the nextHeader value from the ipV6 command (for the first extension header) or from the previous extension header otherwise. This is typically used in the following sequence of commands:

set eHeader [ipV6 getFirstExtensionHeader]

set nextType [$eHeader cget -nextHeader]

In addition, if this is to be the header to a TCP, UDP or ICMP packet, then a separate call to ipV6 addExtensionHeader must be made with tcp, udp or icmpV6 must be made. For example:

ipV6 addExtensionHeader tcp

Although it is the default, ipV6 addExtensionHeader ipV6NoNextHeader may be used to indicate that there is no header following this one.

Note that streamget must be called before this command’s get sub-command.

The source and destination addresses may be set from the result of a PPP negotiation through the use of the enableDestSyncFromPpp and enableSourceSyncFromPpp options. Note that it is necessary to wait until the PPP session has been negotiated before doing the following:

The important options and sub-commands of this command are mentioned in the following table:

Table: ipV6 Options

Category Member Usage

Header

trafficClass

The traffic class of the ipV6 header.

 

flowLabel

The flow label of the ipV6 header.

 

hopLimit

The hop limit of the ipV6 header.

Source

sourceAddr

The source ipV6 address.

 

sourceMask

The mask associated with the source address.

Note: If the ipV6 address is user-defined, then the range of values for sourceMask is 1 to 128.

 

sourceAddrMode

The manner in which to modify the source address between iterations: idle or increment/decrement network/host as well as address prefix dependent sub-components of the address.

 

sourceAddrRepeatCount

The number of times to modify the address before restoring it to sourceAddr.

 

sourceAddrStepSize

The size of the increment for increment/decrement modes.

 

enableSourceSyncFromPpp

Sets the sourceAddr from the result of a PPP negotiation.

Destination

destAddr

The destination ipV6 address.

 

destMask

The mask associated with the destination address.

Note: If the ipV6 address is user-defined, then the range of values for destMask is 1 to 128.

 

destAddrMode

The manner in which to modify the destination address between iterations: idle or increment/decrement network/host.

 

destAddrRepeatCount

The number of times to modify the address before restoring it to destAddr.

 

destAddrStepSize

The size of the increment for increment/decrement modes.

 

enableDestSyncFromPpp

Sets the destAddr from the result of a PPP negotiation.

Misc

payloadLength

(Read-only) The calculated length of the packet payload

 

nextHeader

(Read-only) The type of the next payload header

Table: ipV6 Sub-Commands

Member Usage

clearAllExtensionHeaders

Removes all extension headers.

addExtensionHeader

Adds a new extension header.

getFirstExtensionHeader
getNextExtensionHeader

Iterates through the extension headers.

ipV6Authentication

The ipV6Authentication command is used to build an IPv6 authentication header to be added to an ipV6 header using ipV6 addExtensionHeader. ipV6Authentication for full details. The important options of this command are mentioned in the following table:

Table: ipV6Authentication options

Member Usage

nextHeader

(Read-only) The type of the next header in the IPv6 header.

authentication

A variable length string containing the packets integrity check value (ICV).

payloadLength

The length of the authentication data, expressed in 32-bit words.

securityParamIndex

The security parameter index (SPI) associated with the authentication header.

sequenceNumberField

A sequence counter for the authentication header.

ipV6Destination

The ipV6Destination command is used to build an IPv6 destination header to be added to an ipV6 header using ipV6addExtensionHeader. ipV6Destination for full details. The important options of this command are mentioned in the following table:

Table: ipV6Destination options

Member Usage

nextHeader

(Read-only) The type of the next header in the IPv6 header.

ipV6Fragment

The ipV6Fragment command is used to build an IPv6 fragment header to be added to an ipV6 header using ipV6addExtensionHeader. ipV6Fragment for full details. The important options of this command are mentioned in the following table:

Table: ipV6Fragment options

Member Usage

nextHeader

(Read-only) The type of the next header in the IPv6 header.

enableFlag

Indicates whether there are more fragments to be received (true) or this is the last fragment (false).

fragmentOffset

A 13-bit value which is the offset for the data contained in this packet, relative to the start of the fragmentable part of the original packet, in 8-octet units.

identification

A 32-bit value that uniquely identifies the original packet which is to be fragmented.

ipV6HopByHop

The ipV6HopByHop command is used to build an IPv6 Hop by Hop header to be added to an ipV6 header using ipV6addExtensionHeader. ipV6HopByHop for full details.

The important options of this command are mentioned in the following table:

Table: ipV6HopByHop options

Member Usage

getFirstOption

Read-only. Gets the first option configured in the packet.

getNextOption

Read-only. The type of the next option.

optionsList

Displays a list of the Hop by Hop headers included in the packet.

It is necessary to configure the Hop by Hop options before using this command, using the following Hop by Hop option commands:

ipV6Routing

The ipV6Routing command is used to build an IPv6 routing header to be added to an ipV6 header using ipV6addExtensionHeader. ipV6Routing for full details. The important options of this command are mentioned in the following table:

Table: ipV6Routing options

Member

Usage

nextHeader

(Read-only) The type of the next header in the IPv6 header.

nodeList

A list of 128-bit IPv6 addresses, which may be constructed with the ipV6Address command.

tcp

The name of the associated protocol object must be ‘ip’ and the ipProtocol member of the associated ip object must be set to ‘tcp’ to successfully use this command. The tcp command allows TCP header values to be constructed. tcp for full details. Note that streamget must be called before this command’s get sub-command. The important options of this command are mentioned in the following table:

Table: tcp options

Category Member Usage

Header

offset

Offset from the beginning of the header to the packet data.

 

sourcePort

Source port number.

 

destPort

Destination port number.

 

sequenceNumber

Packet sequence number.

 

acknowledgement
Number

Next byte that the receiver expects.

 

window

The number of bytes the recipient may send back, starting with the ack byte.

 

urgentPointer

Byte offset to urgent data with the packet.

 

checksum

Read-only checksum after a decode operation.

Flags

urgentPointerValid

Indicates whether the urgentPointer field is valid.

 

acknowledgeValid

Indicates whether the acknowledementNumber is valid.

 

pushFunctionValid

Request that the receiver push the packet to the receiving application without buffering.

 

resetConnection

Resets the connection.

 

synchronize

Indicates either a connection request or acceptance.

 

finished

Indicates that this is the last packet to be sent for the connection.

 

useValidChecksum

Indicates whether a valid or specified checksum is to be used.

udp

The name of the associated protocol object must be set to ‘ip’ and the appName member must be set to ‘udp’ to successfully use this command.The udp command is used to format UDP headers. udp for full details. Note that streamget must be called before this command’s get sub-command. The important options of this command are mentioned in the following table:

Table: udp Options

Member Usage

sourcePort

Port of the sending process.

destPort

Port of the destination process.

length

Length of the datagram including the header. If lengthOverride is set, this value is used instead of the calculated value.

lengthOverride

Allows the length parameter to be used to set the packet length.

enableChecksum

Causes a valid or invalid checksum to be generated in the UDP header.

checksum

The actual value generated. Valid only after stream.set has been used.

enableChecksum
Override

Enables the setting of a checksum from checksum.

checksumMode

Indicates whether to use the correct checksum or it’s invalid one’s complement.

igmp

The name of the associated protocol object must be set to ‘ip’ and the ipProtocol member of the associated ip object must be set to ‘igmp’ to successfully use this command. The igmp command is used to format IGMP messages. "igmp" for full details. Note that streamget must be called before this command’s get sub-command. The options and sub-commands are mentioned in the following table:

Table:igmp Options

Member Usage

version

Which version of IGMP to use: 1, 2, or 3.

type

The type of IGMP message to generate:

  • membership Query
  • membership Report: type 1, 2, or 3.
  • DVMRP Message: Distance Vector Multicast Routing Protocol
  • Leave Group

maxResponseTime

The maximum allowed response time.

groupIpAddress

The IP multicast address of the group being joined or left.

mode

Describes how groupIpAddress changes from one message to the next: idle, increment or decrement.

repeatCount

The number of IGMP messages to send.

useValidChecksum

Use a valid or over-written checksum.

qqic
qrv
enableS
sourceIpAddressList

Options used for an IGMP v.3 group membership request.

Table: igmp Sub-Commands

Member Usage

clearGroupRecords

Clears the group records list.

addGroupRecord

Adds a group record from the igmpGroupRecord command to the list.

getFirstGroupRecord
getNextGroupRecord
getGroupRecord

Iterates through the group records or accesses one directly.

igmpGroupRecord

The igmpGroupRecord command holds a Group Record to be included in an IGMPv.3 group membership report. “igmpGroupRecord” for full details. The important options of this command are mentioned in the following table:

Table: igmpGroupRecord Options

Member Usage

type

The type of the group record.

multicastAddress

The multicast address that this group record pertains to.

sourceIpAddressList

A set of source IP addresses for the multicast group.

icmp

The name of the associated protocol object must be set to ‘ip’ and the ipProtocol member of the associated ip object must be set to ‘icmp’ to successfully use this command. The icmp command is used to format ICMP messages. Any data not covered in the options below must be entered in the stream’s data portion. “icmp” for full details. Note that stream get must be called before this command’s get sub-command. The important options of this command are mentioned in the following table:

Table: icmp Options

Member Usage

type

The type of ICMP message to be sent.

code

The code for each type of message.

checksum

(Read-only) The value of the checksum to be sent in the stream. This is only valid after stream.set is used.

id

ID for each echoRequest type message.

sequence

Sequence number for each echoRequest type message.

rip

Note that the rip and ripRoute commands allow you to create RIP packets for transmission as part of a stream. They are not associated with the RIP aspect of the Protocol Server, described in rip. The name of the associated protocol object must be set to ‘ip’ and the appName member of the associated protocol object must be set to ‘Rip’ to successfully use this command. The rip command is used to configure the RIP header. Individual RIP route entries are associated with the ripRoute command and the use of RouteIds. rip for full details. Note that stream get must be called before this command’s get sub-command. The important options of this command are mentioned in the following table:

Table: rip Options

Member Usage

command

The RIP command. One of the following options:

  • RIP Request
  • RIP Response
  • RIP Trace On/Off
  • RIP Reserved

version

The RIP version: 1 or 2.

ripRoute

The ripRoute command is used to format RIP route messages. Header information is contained in the associated rip command. ripRoute for full details. The important options of this command are mentioned in the following table:

Table: ripRoute Options

Member Usage

familyId

Address family identifier.

routeTag

Used to distinguish multiple sources of routing information.

ipAddress

IP address of the entry.

subnetMask

Subnet mask for the entry.

nextHop

For version 2 records only, the IP address of the next routing hop for the entry.

metric

The cost of the route, from 1 to 16.

authenticationType

The type of authentication to use.

authentication

Data associated with the authentication method.

dhcp

The name of the associated protocol object must be set to ‘ip’ and the appName member of the associated protocol object must be set to ‘Dhcp’ to successfully use this command. The dhcp command is used to format DHCP messages. Multiple options are entered into the message through repeated use of the setOption method.

Both DHCPv4 and DHCPv6 are supported.

A DHCP server may also be used to obtain an address for a port. Refer to Using DHCP with Interfaces for full details.

dhcp for full details. Note that streamget must be called before this command’s get sub-command. The important options and sub-commands of this command are mentioned in the following table:

Table: dhcp Options

Member Usage

opCode

Operation code:

  • DHCP Boot Request
  • DHCP Boot Reply

hwType

Hardware address type.

hwLen

Hardware address length.

hops

Set to 0 to indicate packet origin.

transactionID

Random identifier for message pairing.

seconds

Elapsed time since start of request.

flags

Indicates broadcast or non-broadcast handling.

clientIpAddr

Client’s IP address.

yourIpAddr

Your IP address.

relayAgentIpAddr

Relay agent’s IP address; used if booting through a proxy.

clientHWAddr

Client’s hardware address.

serverHostName

Optional server host name.

serverIpAddr

Server’s IP address.

bootFileName

Boot file name to use.

optionCode

Code for optional data.

optionDataLength

Length of the option data.

optionData

The actual data.

Table: dhcp Sub-Commands

Member Usage

setOption

Sets an option value.

getOption

Gets a previously set option.

getFirstOption
getNextOption

Gets options by iterating through the list.

ptp

Precision Time Protocol (PTP) enables precise synchronization of clocks in measurement and control systems implemented with technologies such as network communication, local computing, and distributed objects. ptpfor details. Associated commands include ptpAnnounce, ptpDelayRequest, ptpDelayResponse, ptpDiscoveredInfo, ptpFollowUp, ptpProperties, and ptpSync.

pauseControl

The pauseControl command is used to format pause control messages. The important options of this command are mentioned in the following table:

Table: pauseControl Options

Member Usage

da

The MAC address of the interface receiving the pause control message. 10GE cards may set this value.

pauseTime

The pause time, measured in pause quanta units. (1 Pause Quanta = 512 bit times.) The valid range is 0 to 65535 pause quanta.

pauseControlType

Configure the priority control type, ieee 8023x or ieee 8021Qbb.

pauseFrame

Configure the hex byte priorities; 16 byte hex list.

pfcEnableValueList

Use to configure the priority parameters using pair list, where each pair contains the enable/disable value and pause quanta value.

srpArp

The srpArp command is used to format SRP based ARP messages for SONET cards. The SRP header options which are common to all of the SRP commands are mentioned in the following table:

Table: SRP Header Options

Member Usage

mode

The type of packet: ATM cell, control message, usage message, or data packet.

parity

The ability to insert a good or bad parity bit in the header.

priority

The priority of the packet, from 0 through 7.

ringIdentifier

Whether the packet is intended for the inner or outer loop.

ttl

The time-to-live value.

The important additional options for the srpArp command are mentioned in the following table:

Table: srpArp Options

Member Usage

macDestAddress

The destination MAC address for the ARP packet.

sourceDestAddress

The source MAC address for the ARP packet.

srpIps

The srpIps command is used to format SRP Intelligent Protection Switching (IPS) messages for SONET cards. The SRP header options which are common to all of the SRP commands are shown in Table:SRP Header Options.

The additional options common to control messages (srpIps and srpDiscovery) are mentioned in the following table:

Table: SRP Control Message Options

Member Usage

controlChecksum

Whether to insert a good or bad checksum.

controlTtl

The hop-count associated with the control message.

controlVersion

The protocol version number. Only 0 is currently supported.

The important additional options for the srpIps command are mentioned in the following table:

Table: srpIps Options

Member Usage

originatorMac
Address

The original packet author’s MAC address

pathIndicator

Whether the IPS packet is sent to the adjacent node or around the entire ring.

requestType

The type of IPS request.

statusCode

The IPS state of the sending node.

srpDiscovery

The srpDiscovery command is used to format SRP Discovery messages for SONET cards. The SRP header options which are common to all of the SRP commands are shown in Table:SRP Header Options. The additional options common to control messages are shown in Table: SRP Control Message Options.

The important additional options and sub-commands for the srpDiscovery command are mentioned in the following table:

Table: srpDiscovery Options

Member Usage

topologyLength

The length of the topology data which follows.

Table: srpDiscovery Sub-Commands

Member Usage

clearAllMacBindings

Clears the MAC bindings associated with the discovery packet.

addMacBinding

Adds a MAC binding from the srpMacBinding command to the list.

getFirstMacBinding
getNextMacBinding
getMacBinding

Iterates through the MAC bindings or addresses one directly.

srpMacBinding

The srpMacBinding command is used to format MAC bindings that are part of an SRP Discovery packets for SONET cards. The important additional options for the srpDiscovery command are mentioned in the following table:

Table: srpMacBinding Options

Member Usage

address

The bound MAC address.

ringIdentifier

The ring to which the binding applies.

wrappedNode

Whether the node is currently wrapped or not.

srpUsage

The srpUsage command is used to format SRP Usage messages for SONET cards. The SRP header options which are common to all of the SRP commands are shown in Table:SRP Header Options. The important additional options for the srpUsage command are mentioned in the following table:

Table: srpUsage Options

Member Usage

rxMacAddress

The source MAC address for the usage packet.

rxTimeout

The receive timeout value.

rxTimeoutThreshold

The number of timeouts to wait before declaring the neighbor node as down.

txMacAddress

The destination MAC address of the usage packet.

txRepeatInterval

The interval at which usage packets are transmitted.

txUsageEnabled

Enables the repeated transmission of usage packets.

txValue

The data value to accompany the usage packet.

streamQueueList

See the Ixia Reference Guide for a general discussion. streamQueueList for full details. ATM streams are organized into up to 15 queues, each queue may contain a number of streams. Up to 4096 streams may be distributed across the 15 queues. All queues are transmitted in parallel. The streamQueueList command adds and deletes stream queues to a port. Stream queues may also be automatically created with the stream setQueue command. The important options and sub-commands of this class are mentioned in the following table:

Table: streamQueueList Options

Member Usage

avgDataBitRate

The average bit rate across all queues (read-only).

avgCellRate

The average cell rate across all queues (read-only).

avgPercentLoad

The average percentage load across all queues (read-only).

avgFramerate

The average framerate across all queues (read-only).

Table: streamQueueList Sub-Commands

Member Usage

select

Selects the port to operate on.

clear

Removes all stream queues from a port.

add

Adds a stream queue to the port.

del

Deletes a stream queue from the port.

streamQueue

streamQueue for full details. The streamQueue command sets the transmission rate for all of the streams in a queue.The important options and sub-commands of this class are mentioned in the following table:

Table: streamQueue Options

Member Usage

rateMode
percentMaxRate
aal5PduBitRate
cellBitRate

Control for and different means by which the ATM bit rate may be configured.

aal5FrameRate
aal5PayloadBitRate
aal5SduBitRate
cellRate

Read-only. The ATM bit rate expressed in alternate units.

enableInterleave

Controls whether a stream queue’s cells may be interleaved with other stream queues.

Table:streamQueue Sub-Commands

Member Usage

clear

Removes all streams from a queue.

npiv

The npivProperties command is used to configure an unconnected NPIV interface. (NPIV means N_Port_ID Virtualization). npivProperties for details.