stream

stream - configure the streams on a port of a card on a chassis.

SYNOPSIS

stream sub-command options

DESCRIPTION

The stream command is used to set up frames and bursts to be transmitted on a port of a card on a chassis. The number of streams that a port supports varies; consult the Ixia Hardware Guide for the exact numbers. A stream consists of bursts of frames separated by inter-frame gap and inter-burst gap (in nanoseconds). The source and destination MAC addresses, number of frames in a stream, pattern type, frame size, and inter-stream gap are some of the parameters that can be specified to shape the desired transmit traffic.

For SONET cards which support DCC operation, the optional sequenceType argument used in many of the sub-commands indicates whether the sub-command should apply to flows and/or streams. Flows are used when DCC packets are transmitted at the same time as SPE streams.

For ATM cards, is it necessary to set/get stream data to/from a specific queue with the setQueue and getQueue sub-commands. General ATM port options are set using the atmPort command, ATM header options are set using the atmHeader command and the stream queues are managed with the streamQueueList and streamQueue commands. ATM streams may have incrementing and/or random frame sizes, but only 16 of either type. All other streams are forced to fixed size.

Some port types support weighted random framesize distributions, as described in weightedRandomFramesize.

If a Uniform distribution's minimum value is changed and the new minimum value is not already in one of the distributions, then the distribution is forced to the first random range.

If a Uniform distribution's maximum value is changed and the new minimum/maximum values are not used in another distribution, then the distribution is forced to the first random range.

The framesize of an ATM packet is set by a combination of the enableCpcsLength and cpcsLength options in this command and the framesize option in the stream command. If enableCpcsLength is set to true, then the ATM frame's size is set from the cpcsLength value only. Otherwise, it is set from the stream's framesize value and the cpcsLength value is calculated from that. Further, the stream getQueue command resets this command's enableCpcsLength option to false. It is important to correctly set the stream's framesize value and this command's enableCpcsLength and cpcsLength options after each stream getQueue command and call atmHeader set before the next stream setQueue command.

STANDARD OPTIONS
asyncIntEnable

true/false

When this option is set to false, asynchronous transmit events cannot interrupt the stream. The asynchronous event is logged and is invoked as soon as a synchronous stream permits it. Note that only one asynchronous event of a type is logged, that is, if the same timer expired twice, only one asynchronous event is logged due to that counter. (default = false)

adjustMask

The value to adjust Mask. The options include:

Option

gapNone

gapFrame

gapBurst

gapStream

adjustFrameSizeFixed

adjustFrameSizeMin

adjustFrameSizeMax

adjustNumFrames

bpsRate

If rateMode is set to streamRateModeBps, then use this value the desired bits per second. (default = 76190476)

da

Initial destination MAC address assigned to this stream. Specify this address as six hexadecimal numbers delimited by spaces or colons. For example, the following are valid address formats: {00 01 02 03 04 05} and {00:01:02:03:04:05} . Note that this option will not update the isl encapDA value. (default = {00 00 00 00 00 00})

Note: The MAC address format is very important. A failure to use one of the two designated formats results in incorrect script operation.

daMaskSelect

Selects the bits in the 48-bit destination MAC address that are to be masked by the value set by daMaskValue. (default = {00 00 00 00 00 00})

daMaskValue

Value of the masked bits selected by daMaskSelect in the destination MAC address. (default = {00 00 00 00 00 00})

daRepeatCounter

Specifies how the destination MAC address is incremented or decremented. Possible values include:

Option

Value

Usage

increment

0

increment the MAC address for as many numDA specified

contIncrement

1

Continuously increment the MAC address for each frame

decrement

2

decrement the MAC address for as many numDA specified

contDecrement

3

Continuously decrement the MAC address for each frame

idle

4

(default) no change to MAC address regardless of numDA

ctrRandom

5

Generate random destination MAC address for each frame

daArp

6

If an ARP response is received, then the first MAC address from the ARP table is used as the DA, else the DA field remains unchanged.

contJitterTestPattern

7

(For 10GE modules only.) The fixed Continuous Jitter Test Pattern (CJPAT), specified in IETF 802.3ae Annex 48A, is supplied. The data field may not be edited.

contRandomTestPattern

8

(For 10GE modules only.) The fixed Continuous Random Test Pattern (CRPAT), specified in IETF 802.3ae Annex 48A, is supplied. The data field may not be edited.

daStep

If daRepeatCounter is set to increment, contIncrement, decrement, or contDecrement, and the load module supports an arbitrary step size, then this is the value to increment/decrement the destination address by for each address repetition. (default = 1)

dataPattern

Sets up the default data pattern to be inserted into the frames of this stream. type may be one of the following values:

Option

Value

Usage

dataPatternRandom

-1

the frame contains random data

allOnes

0

the frame contains all 1's

allZeroes

1

the frame contains all 0's

xAAAA

2

the frame contains all A's

x5555

3

the frame contains all 5's

x7777

4

the frame contains all 7's

xDDDD

5

the frame contains all D's

xF0F0

6

the frame contains repeating pattern of F0F0's

x0F0F

7

the frame contains repeating pattern of 0F0F's

xFF00FF00

8

the frame contains repeating pattern of FF00FF00's

x00FF00FF

9

the frame contains repeating pattern of 00FF00FF's

xFFFF0000

10

the frame contains repeating pattern of FFFF0000's

x0000FFFF

11

the frame contains repeating pattern of 00000FFFF's

x00010203

12

(default) the frame contains a pattern of incrementing bytes.

x00010002

13

the frame contains a pattern of incrementing 16-bit words.

xFFFEFDFC

14

the frame contains a pattern on decrementing bytes.

xFFFFFFFE

15

the frame contains a pattern of decrementing 16-bit words.

x7E7E7E7E

16

the frame contains a continuous jitter pattern (CJPAT).

x4747476B

17

the frame contains a continuous random pattern (CRPAT).

userpattern

18

select this type to insert user-defined data pattern in the frame

dma

This determines the behaviour of the stream flow. The mode may be one of the following:

Option

Value

Usage

contPacket

0

(default) continuously transmit the frames on this stream

contBurst

1

continuously transmit bursts of frames on this stream

stopStream

2

stop all transmission from the port where this stream resides regardless of existence of other streams on this port

advance

3

after all the frames are sent from the current stream, the frames from the next stream on the port are transmitted.

gotoFirst

4

the last stream on the port is set to this mode to begin transmission of frames of the first stream in the list

firstLoopCount

5

the last stream on the port is set to this mode to begin transmission of the first stream in the list for loopCount intervals

enable true/false

Enable or disable the stream. If disabled, the frames in this stream will not be transmitted along with the other streams on this port. (default = true)

enableDaContinueFrom

LastValue true/false

If true, then the MAC Destination Address of the stream will not reset when returning to a stream ID, but continue from the previous stream(default = false)

enableIbg true/false

Enable the inter-burst gap. (default = false)

enableIsg true/false

Enable the inter-stream gap. (default = false)

enableIncrFrameBurstOverride true/false

Enable the packet burst override for increment frame mode. (default = false)

enableSaContinueFrom

LastValue true/false

If true, then the MAC Source Address of the stream will not reset when returning to a stream ID, but continue from the previous stream(default = false)

enableSourceInterface

true/false

If true, then the MAC address and source IP address associated with an interface is used instead of the sa value and IP source address. The particular interface to be used is specified in interfaceDescription. (default = false)

enableStatistic

true/false

If true, then per-stream transmit statistics are enabled (ATM cards only).

(default = true)

enableSuspend

true/false

If true, then stream suspend command is enabled. (default = false)

enableTimestamp

true/false

If true, 6 bytes of timestamp are inserted before the CRC of the frame. This was previously known as the fir option, which is now deprecated. (default = false)

enforceMinGap

When a port which supports this feature is in Advanced Scheduler Mode, then this is the minimum gap that is ever inserted between packets. The smallest value supported is 3. (default = 12)

fcs

The FCS error to be inserted in the frame. One of the following:

Option

Value

Usage

streamErrorGood

0

(default) a good FCS to be inserted in the frame

streamErrorAlignment

1

an alignment error to be inserted in the frame (only valid for 10/100)

streamErrorDribble

2

dribble error to be inserted in the frame

streamErrorBadCRC

3

a bad FCS error to be inserted in the frame

streamErrorNoCRC

4

no FCS error to be inserted in the frame

floatRate

Read-only. The framerate option expressed as a floating point number.

fpsRate

If rateMode is set to streamRateModeFps, then use this value the desired frames per second. (default = 148810)

framerate

Read-only. It reflects the actual rate in frames per second that this configured stream transmits at, expressed as a INT.

framesize

Number of bytes in each frame in the stream. All frames in the stream have the same size. See the note in the DESCRIPTION section above concerning frame sizes in ATM packets. (default = 64)

frameSizeMAX

The maximum frame size to be used when frame size of type sizeRandom is selected. (default = 1518)

frameSizeMIN

The minimum frame size to be used when frame size of type sizeRandom is selected. (default = 64)

frameSizeStep

If frameSizeType is set to sizeIncr and the load module supports an arbitrary step size, then this is the value to increment the frame size by for each repetition. (default = 1)

frameSizeType

May assume one of the following values:

Option

Value

Usage

sizeFixed

0

(default) All frames in the stream where this packet has been defined have a fixed size specified by framesize option

sizeRandom

1

Frames with random sizes are generated on the stream on which the frames are defined. Some ports support weighted random framesize distributions; weightedRandomFramesize and the note at the beginning of this command.

sizeIncr

2

Every frame generated on the stream has incrementing size.

sizeAuto

3

Frame size is automatically calculated. Used for protocols that have variable frame lengths such as DHCP.

frameType

The type field in the Ethernet frame, which does not apply to the MAC layer frames. (default = { })

gapUnit

Gap may be one of the following unit values:

Option

Value

Usage

gapNanoSeconds

0

(default) Sets units of time for gap to nanoseconds

gapMicroSeconds

1

Sets units of time for gap to microseconds

gapMilliSeconds

2

Sets units of time for gap to milliseconds

gapSeconds

3

Sets units of time for gap to seconds

gapClockTicks

4

Sets units of time for gap to clock ticks of load module card. The number of clock ticks varies between load modules. Ixia recommends that you do not use this option. This option is deprecated.

gapBytes

5

Sets units of gap in terms of the time needed to transmit a number of bytes.

ibg

Inter-Burst Gap is the delay between bursts of frames in clock ticks (see ifg option for definition of clock ticks). If the IBG is set to 0 then the IBG is equal to the ISG and the IBG becomes disabled. (default = 960.0)

ifg

The inter-frame gap specified in clock ticks (default = 960.0).

ifgMAX

The maximum inter-frame gap in clock ticks to be used when IFG of type gapRandom is selected. (default = 960.0)

ifgMIN

The minimum inter-frame gap in clock ticks to be used when IFG of type gapRandom is selected. (default = 960.0)

ifgType

type may be one of the following values:

Option

Value

Usage

gapFixed

0

(default) the gap between all frames is fixed

gapRandom

1

random size of gap is generated between every frame transmitted (not supported yet)

isg

The inter-stream gap is the delay in clock ticks between stream. This delay comes after the receive trigger is enabled. Setting this option to 0 means no delay. (default = 960.0)

loopCount

Number of times to begin transmission of the first stream in the list when stream config -dma firstLoopCount is set. (default = 1)

name

User specified name of the stream. (default ="")

numBursts

Number of bursts in the stream. If the option dma is set to contBurst or contPacket this option is ignored. (default = 1)

numDA

Number of destination MAC addresses the stream is going to be transmitted to. numDA must be > 1 to set the daRepeatCounter to anything other than idle. (default = 1)

numFrames

Number of maximum frames in the stream. If the option dma is set to contPacket this option is ignored. (default = 100)

numSA

Number of source MAC addresses on the stream which is going to transmit frames from. numSA must be > 1 to set the saRepeatCounter to anything other than idle. (default = 1)

packetView

Read-only. Displays the frames as they are going to be transmited. Note: Shows the first frame when the transmitMode is set to portTxPacketStreams and shows all the frames when transmitMode is set to portTxPacketFlows. Note that when the enablePreambleView option of the txRxPreamble command is true, then this string includes the preamble's values as the first 8 characters.

pattern

Specify a user-defined pattern of data to be transmitted on this stream. The dataPattern option must be set to type userpattern or this pattern is ignored. (default = {00 01 02 03})

patternType

Type of given patterns that is inserted in all the frames transmitted on this stream. type can be one of the following:

Option

Value

Usage

incrByte

0

(default) increment each byte of the frame during transmission

incrWord

1

increment each word of the frame during transmission

decrByte

2

decrement each byte of the frame during transmission

decrWord

3

decrement each word of the frame during

patternTypeRandom

4

generate random pattern of data during transmission

repeat

5

transmit the same pattern of data in the frame

nonRepeat

6

transmit a fixed pattern of data. Note: Fixed type in IxExplorer.

continuousJitterTestPattern

7

transmit a CJPAT pattern.

continuousRandomTestPattern

8

transmit a CRPAT pattern.

percentPacketRate

If rateMode is set to usePercentRate, then use this value as a percent of maximum transmit rate for this stream. This command sets all three gaps: IFG, IBG and ISG. For ATM ports, the streamQueue percentMaxRate value overrides this value if set after the stream has been configured. (default = 100.0)

phyMode

Read-only. For cards which support both Copper, Fiber and SGMII PHY modes, this command shows the current PHY mode.

Option

Value

Usage

portPhyModeCopper

0

Copper

portPhyModeFiber

1

Fiber

portPhyModeSgmii

2

SGMII

preambleData

(10 Gigabit modules only) The 8 bytes in the preamble of the 10 Gigabit Ethernet frame. For SFD Detect Mode, Bytes 2 through 7 are configurable. For Byte Count Mode, Bytes 2 through 8 are configurable (default = '55 55 55 55 55 55').

preambleSize

Number of bytes in the preamble field of the frame. Range is between 2 and 255. (default = 8)

priorityGroup

Specifies the priority group of the stream. (default = 0) Possible values include:

Option

Value

Usage

priorityGroup0

0

assign priority group 0

priorityGroup1

1

assign priority group 1

priorityGroup2

2

assign priority group 2

priorityGroup3

3

assign priority group 3

priorityGroup4

4

assign priority group 4

priorityGroup5

5

assign priority group 5

priorityGroup6

6

assign priority group 6

priorityGroup7

7

assign priority group 7

priorityGroupControl

15

Does not respond to priority flow control. No incoming priority can be mapped to PFC Queue Control. So the traffic on PFC Queue Control cannot be paused/ flow controlled with priority flow control.

rateMode

Specifies whether to use the ifg or percentPacketRate to calculate stream gap. Possible values include:

Option

Value

Usage

streamRateModeGap

Deprecated: useGap

0

use ifg

streamRateModePercentRate

Deprecated: usePercentRate

1

(default) use percentPacketRate

streamRateModeFps

2

use fpsRate

streamRateModeBps

3

use bpsRate

region

Reserved for future use and should always be left at its default value of 0. (default = 0)

returnToId streamID

Configures the stream number (streamID) that control loops to. (default = 1)

rxTriggerEnable

true/false

When set to true, the transmit engine waits for a pulse from the receiver to start the stream. (default = false)

sa

Initial source MAC address assigned to this stream. Specify this address as six hexadecimal numbers delimited by spaces or colons. For example, the following are valid address formats: {00 01 02 03 04 05} and {00:01:02:03:04:05} . Note that this option will not update the isl encapSA value. (default = {00 00 00 00 00 00})

Note: The MAC address format is very important. A failure to use one of the two designated formats results in incorrect script operation.

saMaskSelect

Selects the bits in the 48-bit source MAC address that are to be masked by the value set by saMaskValue. (default = {00 00 00 00 00 00})

saMaskValue

Value of the masked bits selected by saMaskSelect in the source MAC address. (default = {00 00 00 00 00 00})

saRepeatCounter

Specifies how the source MAC address is incremented or decremented. Possible values include:

Option

Value

Usage

increment

0

increment the MAC address for as many numSA specified

contIncrement

1

continuously increment the MAC address for each frame

decrement

2

decrement the MAC address for as many numSA specified

contDecrement

3

continuously decrement the MAC address for each frame

idle

4

(default) no change to MAC address regardless of numSA

ctrRandom

5

generate random source MAC address for each frame

cpeMacAddress

6

for ports operating in USB mode, use the source MAC address provided by the DUT (customer premise equipment).

contJitterTestPattern

7

generate jitter test pattern

contRandomTest Pattern

8

generate random test pattern

saStep

If saRepeatCounter is set to increment, contIncrement, decrement, or contDecrement, and the load module supports an arbitrary step size, then this is the value to increment/decrement the destination address by for each address repetition. (default = 1)

sourceInterface

Description

If enableSourceInterface is true, this is the interface's description as set in the description option of the interfaceEntry command when the interface was defined. (default = "")

startOfDataPattern

(Read-only) Sets the data pattern offset, in bytes.

startOfProtocolPad

(Read-only) Calculates the start offset of protocol pad. To know the starting of protocol pad, first protocolPad option is enabled and then stream is set in stream object.

endOfProtocolPad

(Read-only) Calculates the length of data bytes of protocol pad.

startTxDelay

Displays whether the start delay has been set.

startTxDelayUnit

Displays the unit used in the stream start delay.

Option

startTxDelayNanoSeconds = 0

startTxDelayMicroSeconds = 1

startTxDelayMilliSeconds = 2

startTxDelaySeconds = 3

startTxDelayBytes = 4

suspendState

true/false

(Read-only) When true, the selected stream is suspended.

DEPRECATED OPTIONS
fir true/false

(enableTimestamp should be used instead of this option). If Frame Identity Record (FIR) is set to true, 6 bytes of timestamp is inserted before the CRC of the frame.

rateMode

The following rateMode options have been deprecated.

Deprecated Option

Value

Usage

useGap

0

use ifg

usePercentRate

1

(default) use percentPacketRate

COMMANDS

The stream command is invoked with the following sub-commands. If no sub-command is specified, returns a list of all sub-commands available.

stream adjust chasID cardID portID streamIdList adjustMask

Adjusts the rates and frame sizes on the specified streams (stream id list) without stopping the transmission. The corresponding gaps or frame sizes must be configured prior to calling this method using stream config followed by stream set.

Note: The frameSizeType must be configured and committed prior to adjusting stream frame size.

Note: For a frame size adjustment only the hardware state is modified. The software state is unmodified and is not reflected if you do a chassis refresh. The only way to see the size change is to capture the adjusted stream and view the size of the frames in the capture buffer.

The adjustMask options, which can be ORed together, are these:

Option

Value

Usage

gapFrame

2

frame gap

gapBurst

4

burst gap

gapStream

8

stream gap

adjustFrameSizeFixed

32

frame size fixed

adjustFrameSizeMin

64

frame size minimum

adjustFrameSizeMax

128

frame size maximum

stream cget option

Returns the current value of the configuration option given by option. Option may have any of the values accepted by the stream command.

stream config option value

Modify the configuration options of the stream. If no option is specified, returns a list describing all of the available options (see STANDARD OPTIONS) for stream.

stream export fileName chasID cardID portID [fromStreamID toStreamID sequenceType]

Exports the current stream contents of the port at portID, cardID, chasID into the file named fileName; fileName may include a full or relative path. The range of streams is expressed by the range of fromStreamID (default = 1) and toStreamID (default = 0). If fromStreamId is less than or equal to 0 the first stream is used and if toStreamID is 0, then all streams are exported. The file produced by this command may be used by the import sub-command. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

Specific errors are:

stream exportQueue fileName chasID cardID portID queueID [fromStreamID toStreamID]

Exports a particular queue numbered queueId from the current stream contents of the port at portID, cardID, chasID into the file named fileName; fileName may include a full or relative path. The range of streams is expressed by the range of fromStreamID (default = 1) and toStreamID (default = 0). If fromStreamId is less than or equal to 0 the first stream is used and if toStreamID is 0, then all streams are exported. The file produced by this command may be used by the importQueue sub-command. Specific errors are:

stream get chasID cardID portID streamID [sequenceType]

Gets the current configuration of the stream with id streamID on port portID, card cardID, chassis chasID from its hardware. Call this command before calling stream cget option value to get the value of the configuration option. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

stream getCircuit chasID cardID portID circuitID streamID [sequenceType]

For use with ports in VCAT mode only. Gets the current configuration of the stream with id streamID in the circuit with circuitID on port portID, card cardID, chassis chasID from its hardware. Call this command before calling stream cget option value to get the value of the configuration option.

stream getPacketView packetNum

Gets the packetView data for a specified packetNum. The packetView shows the packets that are about to be transmitted. See packetView in the Options section

stream getQueue chasID cardID portID queueID streamID

For use with ATM ports only. Gets the current configuration of the stream with id streamID in the queue with queueID on port portID, card cardID, chassis chasID from its hardware. Call this command before calling stream cget option value to get the value of the configuration option. See the note in the DESCRIPTION section above concerning frame sizes in ATM packets.

stream import fileName chasID cardID portID [sequenceType]

Imports saved stream contents found in the file fileName into the port at portID, cardID, chassis chasID. fileName may include a full or relative path. All of the streams found in the file are appended to the currently defined streams. The file used by this command must have been produced by the export sub-command. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAl

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

Specific errors are:

stream importQueue fileName chasID cardID portID queueID

Imports saved stream contents for a particular queue numbered queueID found in the file fileName into the port at portID, cardID, chassis chasID. fileName may include a full or relative path. All of the streams found in the file are appended to the designated queue in the stream. The file used by this command must have been produced by the exportQueue sub-command. Specific errors are:

stream resume chasID cardID portID streamIdList

Resume the transmission of the streams specified in streamIdList. Packet streams (also known as basic or sequentially scheduled streams) can be suspended and resumed during transmission. When a packet stream is suspended and then resumed, a persistent UDF continues to count from where it left off when the stream was suspended.

If a currently active stream is suspended, it runs to completion and not execute again until it is resumed.

stream send chasID cardID portID streamID [sequenceType]

Send a start transmit on one individual stream: streamID to port portID, card cardID, chassis chasID. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Stream send uses the protocol server to send out the stream; therefore, the -dma mode setting and -percentMaxRate setting is not used. Instead, contBurst dma mode is always used with stream send command. This command is meant to send out frames at a low rate as a debugging tool.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

stream sendCircuit chasID cardID portID circuitID streamID

For use with ports in VCAT mode only. Sends the current configuration of the stream with id streamID in the circuit with circuitID on port portID, card cardID, chassis chasID from its hardware.

stream sendQueue chasID cardID portID queueID streamID

For use with ATM ports only. Sends the current configuration of the stream with id streamID in the queue with queueID on port portID, card cardID, chassis chasID from its hardware.

See the note in the DESCRIPTION section above concerning frame sizes in ATM packets.

stream set chasID cardID portID streamID [sequenceType]

Sets the configuration of the stream with id streamID on port portID, card cardID, chassis chasID in IxHAL by reading the configuration option values set by the stream config option value command. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

stream setCircuit chasID cardID portID circuitID streamID

For use with ports in VCAT mode only. Sets the configuration of the stream with id streamID on its circuit circuitID on port portID, card cardID, chassis chasID in IxHAL by reading the configuration option values set by the stream config option value command.

stream setDefault

Sets to IxTclHal default values for all configuration options.

Note: The command stream setDefault also overwrites the udf set command.

stream setFactoryDefaults chasID chardID portID streamID [sequenceType]

Sets factory default values for all configuration options for a particular stream. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

stream setQueue chasID cardID portID queueID streamID

For use with ATM ports only. Sets the configuration of the stream with id streamID on its queue queueID on port portID, card cardID, chassis chasID in IxHAL by reading the configuration option values set by the stream config option value command. See the note in the DESCRIPTION section above concerning frame sizes in ATM packets.

stream suspend chasID cardID portID streamIdList

Suspend the transmission of the specified streams (streamIdList). Packet streams (also known as basic or sequentially scheduled streams) can be suspended and resumed during transmission. When a packet stream is suspended and then resumed, a persistent UDF continues to count from where it left off when the stream was suspended.

If a currently active stream is suspended, it runs to completion and not execute again until it is resumed.

stream write chasID cardID portID streamID [sequenceType]

Writes or commits the changes in IxHAL to hardware for stream with identification streamID on port portID, card cardID, chassis chasID. Before using this command, use the stream set command to configure the stream related options in IxHAL. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

 

stream remove chasID cardID portID streamID

Removes a stream with identification streamID from port portID, card cardID, chassis chasID.

DEPRECATED

COMMANDS

stream setGaps ifg chasID cardID portID streamID [sequenceType]

A helper command that sets the inter-frame gap, inter-stream gap and inter-burst gap specified by ifg gap units for the frames in the stream with id streamID on port portID, card cardID, chassis chasID in IxHAL and then commits to hardware. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

stream setIFG ifg chasID cardID portID streamID [sequenceType]

A helper command that sets the inter-frame gap specified by ifg gap units for the frames in the stream with id streamID on port portID, card cardID, chassis chasID in IxHAL and then commits to hardware. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

stream setLoopCount loopcount chasID cardID portID streamID [sequenceType]

A helper command that sets the loopcount in the stream with id streamID on port portID, card cardID, chassis chasID in IxHAL and then commits to hardware. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

stream setNumFrames numFrames chasID cardID portID streamID [sequenceType]

A helper or convenience command that sets the number of frames specified by numFrames in the stream with id streamID on port portID, card cardID, chassis chasID in IxHAL and then commits to hardware. The sequenceType optional argument indicates whether the settings apply to all modes or one of the modes.

Option

Value

Usage

streamSequenceTypeAll

0

(default) apply to flows and streams

streamSequenceTypeStreams

1

apply to streams only

streamSequenceTypeFlows

2

apply to flows only

EXAMPLES

package require IxTclHal

# Connect to chassis and get chassis ID

set host localhost

set username user

# Check if we're running on UNIX - connect to the TCL Server

# which must be running on the chassis

if [isUNIX] {

if [ixConnectToTclServer $host] {

ixPuts "Could not connect to $host"

return 1

}

}

# Now connect to the chassis

if [ixConnectToChassis $host] {

ixPuts $::ixErrorInfo

return 1

}

# Get the chassis ID to use in port lists

set chas [ixGetChassisID $host]

# Assume a TXS8 card is in slot 4

set card 4

set port 1

set portList [list [list $chas $card $port]]

# Login before taking ownership

if [ixLogin $username] {

ixPuts $::ixErrorInfo

return 1

}

# Take ownership of the ports we'll use

if [ixTakeOwnership $portList] {

ixPuts $::ixErrorInfo

return 1

}

# Check for missing card

if {[card get $chas $card] != 0} {

ixPuts "Card $card does not exist"

exit

}

# In this example, we'll set up two streams on the port:

# Any parameters not mentioned are factory defaults

#

# 1) Name = First

# Advance to next stream

# 1000 packets per burst

# 10 bursts

# IPG = 1000ns

# IBG = 2000ns

# ISG = 3000ns

# Data = repeating 55 55

# Random frame sizes from 100 - 1000 bytes

# DA = Arp table

# SA = 04 05 06 07 08 09 incrementing by 2's

# 2) Name = Last

# Return to ID # 1 for a count of 10

# 5000 packets per burst

# 1 burst

# IPG = 10000ns

# Random frame sizes from 100 - 1000 bytes

# DA = Arp table

# SA = 04 05 06 07 08 09

# Then, we'll do another example for an ATM card.

# Two queues are used.

# 1) Queue 1

# Two streams

# a) All defaults

# b) VPI/VCI = 33

# 2) Queue 2

# One stream

# All defaults

# Make sure the port is at factory default

port setFactoryDefaults $chas $card $port

# Setup stream 1

stream setDefault

stream config -name "First"

stream config -dma advance

stream config -numFrames 1000

stream config -numBursts 10

stream config -gapUnit gapNanoSeconds

stream config -rateMode useGap

stream config -ifg 1000

stream config -ifgType gapFixed

stream config -enableIbg true

stream config -ibg 2000

stream config -enableIsg true

stream config -isg 3000

stream config -patternType repeat

stream config -dataPattern x5555

stream config -frameSizeType sizeRandom

stream config -frameSizeMIN 100

stream config -frameSizeMAX 1000

stream config -daRepeatCounter daArp

stream config -saRepeatCounter increment

stream config -sa {04 05 06 07 08 09}

stream config -saStep 2

if [stream set $chas $card $port 1] {

ixPuts "Can't stream set $chas $card $port 1"

}

#### For Fixed Count Burst

stream config -dma fixedBurst

 

# Setup stream 2

stream setDefault

stream config -name "Last"

stream config -dma firstLoopCount

stream config -returnToId 1

stream config -loopCount 10

stream config -numFrames 5000

stream config -numBursts 1

stream config -gapUnit gapNanoSeconds

stream config -rateMode useGap

stream config -ifg 10000

stream config -ifgType gapFixed

stream config -enableIbg false

stream config -enableIsg false

stream config -daRepeatCounter daArp

stream config -saRepeatCounter idle

stream config -sa {04 05 06 07 08 09}

if [stream set $chas $card $port 2] {

ixPuts "Can't stream set $chas $card $port 2"

}

ixWritePortsToHardware portList

###################################################

#

# DCC and SPE flows and streams

#

###################################################

# Now we'll use an OC192 card with DCC in slot 73

set card 73

set port 1

set portList [list [list $chas $card $port]]

# Check for missing card

if {[card get $chas $card] != 0} {

ixPuts "Card $card does not exist"

}

# In this example, we'll use an OC192 card with DCC and send

# flows on the DCC and normal streams on the SPE

# We'll set up one stream on each of DCC and SPE

# Any parameters not mentioned are factory defaults

#

# Make sure the port is at factory default and then to correct DCC/SPE

# Mode

port setFactoryDefaults $chas $card $port

port config -transmitMode portTxModeDccFlowsSpeStreams

port config -receiveMode portCapture

if [port set $chas $card $port] {

ixPuts "Can't port set $chas $card $port"

}

# Setup DCC flow

stream setDefault

stream config -name "DCC"

stream config -dma firstLoopCount

stream config -numFrames 1000

stream config -numBursts 10

stream config -gapUnit gapNanoSeconds

stream config -rateMode usePercentRate

stream config -percentPacketRate 100

stream config -ifg 1000

stream config -ifgType gapFixed

stream config -enableIbg true

stream config -ibg 2000

stream config -enableIsg true

stream config -isg 3000

stream config -patternType repeat

stream config -dataPattern x5555

stream config -frameSizeType sizeRandom

stream config -frameSizeMIN 100

stream config -frameSizeMAX 1000

if [stream set $chas $card $port 1 streamSequenceTypeFlows] {

ixPuts "Can't stream set $chas $card $port 1 streamSequenceTypeFlows"

}

# Setup SPE stream

stream setDefault

stream config -name "SPE"

stream config -dma firstLoopCount

stream config -returnToId 1

stream config -loopCount 10

stream config -numFrames 5000

stream config -numBursts 1

stream config -gapUnit gapNanoSeconds

stream config -rateMode usePercentRate

stream config -percentPacketRate 80

stream config -ifg 10000

stream config -ifgType gapFixed

stream config -enableIbg false

stream config -enableIsg false

if [stream set $chas $card $port 1 streamSequenceTypeStreams] {

ixPuts "Can't stream set $chas $card $port 1 streamSequenceTypeStreams"

}

ixWritePortsToHardware portList

##################################################################

# ATM port

##################################################################

# Assume an ATM card is in slot 74

set card 74

set port 1

set portList [list [list $chas $card $port]]

# Make sure the port is at factory default

port setFactoryDefaults $chas $card $port

# Set up port ATM characteristics

atmPort setDefault

atmPort config -interfaceType 0

atmPort config -enableCoset false

atmPort config -fillerCell 0

if [atmPort set $chas $card $port] {

ixPuts "Can't atmPort set $chas $card $port"

}

ixWritePortsToHardware portList

# Clear out all queues and add queue 1

streamQueueList select $chas $card $port

streamQueueList clear

# Add Queue 1 to port at 100% of line rate

set queueID 1

streamQueueList add

streamQueue setDefault

streamQueue config -rateMode usePercentRate

streamQueue config -percentMaxRate 100.0

if [streamQueue set $chas $card $port $queueID] {

ixPuts "Can't streamQueue config $chas $card $port"

}

set streamID 1

# Setup stream 1 - no changes from default

stream setDefault

# Use defaults in ATM header

atmHeader setDefault

atmHeader config -encapsulation atmEncapsulationLLCBridgedEthernetFCS

atmHeader config -genericFlowControl 5

atmHeader config -cellLossPriority 1

if [atmHeader set $chas $card $port] {

ixPuts "Can't atmHeader set $chas $card $port"

}

# Set queue 1 stream 1

if [stream setQueue $chas $card $port $queueID $streamID] {

ixPuts "Can't stream setQueue $chas $card $port $queueID $streamID"

}

# Setup stream 2 in queue 1

set streamID 2

stream setDefault

# change VCI to 33 and set for incrementing 16 times by 1

atmHeader setDefault

atmHeader config -vci 33

if [atmHeader set $chas $card $port] {

ixPuts "Can't atmHeader set $chas $card $port"

}

atmHeaderCounter setDefault

atmHeaderCounter config -type atmCounter

atmHeaderCounter config -mode atmIncrement

atmHeaderCounter config -step 1

atmHeaderCounter config -repeatCount 16

if [atmHeaderCounter set $chas $card $port] {

ixPuts "Can't atmHeaderCounter set $chas $card $port"

}

# Set queue 1 stream 2 -

if [stream setQueue $chas $card $port $queueID $streamID] {

ixPuts "Can't stream setQueue $chas $card $port $queueID $streamID"

}

# Add Queue 2 to port at 50% of line rate

set queueID 2

streamQueueList add

streamQueue setDefault

streamQueue config -percentMaxRate 50.0

if [streamQueue set $chas $card $port $queueID] {

ixPuts "Can't streamQueue config $chas $card $port"

}

# Now one stream in queue 2

set streamID 1

stream setDefault

# Use defaults in ATM header

atmHeader setDefault

if [atmHeader set $chas $card $port] {

ixPuts "Can't atmHeader set $chas $card $port"

}

# Set queue 1 stream 1

if [stream setQueue $chas $card $port $queueID $streamID] {

ixPuts "Can't stream setQueue $chas $card $port $queueID $streamID"

}

ixWritePortsToHardware portList

# Let go of the ports that we reserved

ixClearOwnership $portList

# Disconnect from the chassis we're using

ixDisconnectFromChassis $host

# If we're running on UNIX, disconnect from the TCL Server

if [isUNIX] {

ixDisconnectTclServer $host

}

SEE ALSO

port, isl, atmHeader, atmHeaderCounter, atmPort, streamQueue, streamQueueList