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 |
0 |
use ifg |
streamRateModePercentRate |
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:
- No connection to a chassis
- Stream IDs are not valid
- Invalid port
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:
- No connection to a chassis
- Queue ID is not valid
- Stream IDs are not valid
- Invalid port
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:
- No connection to a chassis
- Invalid port
- The card is owned by another user
- fileName does not exist
- fileName does not contain valid data
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:
- No connection to a chassis
- Invalid port
- Invalid Queue ID
- The card is owned by another user
- fileName does not exist
- fileName does not contain valid data
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