Data Capture and Statistics

Data is captured as a result of the use of the following commands:

Raw data and statistics are collected through the use of the following commands:

See the Ixia Reference Guide and the Ixia Reference Guide for a general discussion.

filter

filter sets up the conditions under which data capture is triggered and filtered. Conditions for the collection of user defined statistics (UDS) 1, 2, 5 and 6 are also specified. User defined statistics 5 and 6 are also known as async trigger 1 and 2. "filter" for full details.

There are six sets of eight options for the capture trigger and filter and the four user UDFs. The following contribute a prefix to the option name:

The options for the suffix to these names are mentioned in the following table:

Table: filter Options

Member Usage

Enable

Enables or disables the filter, trigger or statistic.

DA

Two destination address matches (DA1 and DA2) are set through the use of filterPallette. This member chooses which conditions relating to those addresses are required for a match:

Any address

  • DA1
  • Not DA1
  • DA2
  • Not DA2

SA

Two source address matches (SA1 and SA2) are set up through the use of filterPallette. This member chooses which conditions relating to those addresses are required for a match:

Any address

  • SA1
  • Not SA1
  • SA2
  • Not SA2

Pattern

Two pattern matches (pattern1 and pattern2) are set up through the use of filterPallette. This member chooses which conditions relating to those pattern matches are required for a match:

Any address

  • pattern1
  • Not pattern1
  • pattern2
  • Not pattern2
  • pattern1 and pattern2

Error

The error condition under which a match occurs including the following:

  • Anytime, without concern over errors.
  • Only for good packets
  • Any of a number of other error conditions.

FrameSizeEnable

Enables or disables the size constraint as specified in the two entries below.

FrameSizeFrom
FrameSizeTo

The minimum and maximum frame size for a match.

For example, at a minimum the Enable option of the captureTrigger command and the Enable option of the captureFilter command must be set for any data to be captured.

filterPallette

filterPallete sets up address and data pattern matching criteria used in filter. “filterPallette” for full details.

There are four sets of two options for the source and destination addresses 1 and 2. These are mentioned in the following table:

Table: filterPallete Options - DA/SA

Member Usage

DA1

Destination address 1 data.

DAMask1

Mask of valid bits for destination address 1.

DA2 / DAMask2

Same for destination address 2.

SA1 / SAMask1

Same for source address 1.

SA2 / SAMask2

Same for source address 2.

There are two sets of four options for each of the two data patterns. These are mentioned in the following table:

Table: filterPallette Options - Pattern 1/2

Member Usage

matchType1

The basic form of match performed. This is a one of a number of pre-programmed choices in which the packet type and data pattern are pre-programmed and/or specially interpreted. One additional choice allows for user specification of the data and type.

patternOffset1
patternOffsetType1

If the user choice is made in matchType1, this is the offset of pattern 1 in the frame. For some port types, it is possible to specify where the offset is with respect to; for example, from the start of the IP header.

pattern1

The data within the pattern to match for. For the pre-programmed choices in matchType1, this pattern has a special interpretation.

patternMask1

The mask to apply against pattern1 to obtain a match.

patternOffset2
matchType2
pattern2
patternMask2

The same as for pattern 1, but for pattern 2.

In addition the following options control matching on GFP errors:

Table: filterPallette Options

Member Usage

enableGfpBadFcsError
enableGfpeHecError
enableGfpPayloadCrc
enableGfptHecError

Enables or disables the use of a particular GFP error condition.

gfpErrorCondition

Indicates whether the above enables need to all be present (AND’d) or just one (OR’d).

capture

capture sets up the basic parameters associated with the capture buffer usage.

The capture process itself is started through the use of the portGroup setCommand startCapture command, or the ixStartCapture high-level command. The capture is stopped with the use of the portGroup setCommand stopCapture command, or the ixStopCapture high-level command, or a captureBufferget command. That is, the act of reading the capture buffer stops the capture process. The high-level command, ixCheckTransmitDone, may be used to wait until all ports have finished transmitting.

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

Table: capture Options

Member Usage

sliceOffset

The offset within the frame from which to begin capturing data.

sliceSize

The maximum number of octets per frame to capture. 8192 is the largest slice size supported.

nPackets

(Read-only) The actual number of packets available in the capture buffer.

captureBuffer

captureBuffer allows the raw captured data to be obtained, or calculated latency data to be viewed. Data is held in the hardware until the get method is called, which copies the captured data for a range of frame numbers into local computer memory. Following the use of get, getframe makes an individual frame available. Latency and deviation values may be calculated, subject to constraints through the use of setConstraint and getStatistics. Latency is defined as the difference between the transmit and receive times, in nanoseconds. Jitter is defined as the deviation of the latency. captureBuffer for full details.

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

Table: captureBuffer Options

Category Member Usage

Data

frame

(Read-only) The contents of the selected frame based on sliceSize.

 

length

(Read-only) The total length of the frame, regardless of the slice captured.

 

numFrames

The number of frames in the hardware’s capture buffer. After setConstraints is called, this value is updated with the number of frames that met the constraints.

 

status

The status of the frame: either no errors, or one of a number of possible error conditions.

 

timestamp

The arrival time of the captured frame in nanoseconds.

Measure-ments

averageLatency

(Read-only) The average latency of the frames in the retrieved capture buffer (in nanoseconds).

 

latency

(Read-only) The frame’s latency (in nanoseconds).

 

minLatency

(Read-only) The minimum latency (in nanoseconds) of the frames in the retrieved capture buffer.

 

maxLatency

(Read-only) The maximum latency (in nanoseconds) of the frames in the retrieved capture buffer.

 

averageDeviation

(Read-only) The average deviation of the average latencies of the frames in the retrieved capture buffer.

 

standardDeviation

(Read-only) The standard deviation of the average latencies of the frames in the retrieved capture buffer.

Constraints

enableEthernetType

Enables jitter calculations to occur only over those frames with the ethernet type indicated in ethernetType.

 

ethernetType

If enableEthernetType is set, this is the ethernet type to match on.

 

enableFramesize

Enables jitter calculations to occur only over those frames with the frame size indicated in framesize.

 

framesize

If enableFramesize is set, this is the frame size to match on.

 

enablePattern

Enables jitter calculations to occur only over those frames with a pattern match as indicated in patternOffset and pattern.

 

patternOffset

If enableFramesize is set, this is the expected offset within the frame for the pattern match.

 

patternOffset

If enableFramesize is set, this is the expected pattern for the pattern match.

Table: captureBuffer Sub-Commands

Member Usage

get

Copies the data for a range of frame numbers from the hardware capture buffer.

The high-level command, ixCheckTransmitDone, may be used to wait until all ports have finished transmitting.

Note: For cards like 10GE LSMXM(4), LavaAP40/100GE2P, HSE40GE, and FlexAP40GE, this sub-command stops the capture process if it is still active.

getframe

Gets an individual frame’s data.

clearConstraint

Clears the constraint values for jitter calculation.

setConstraint

Sets a new set of jitter calculation constraints.

getConstraint

Gets the current set of jitter calculation constraints.

getStatistics

Gets the jitter statistics for the current set of constraints.

export

Export the contents of a capture buffer for later import or usage by another program.

import

Import a previously saved and exported capture buffer for analysis.

The following example imports a previously saved capture buffer and print out the number of bytes in each frame:

captureBuffer import d:/adrian.cap 1 1 1

set numRxPackets [captureBuffer cget -numFrames]

ixPuts "$numRxPackets packets in buffer"

for {set frame 1} {$frame <= $numRxPackets} {incr frame} {

captureBuffer getframe $frame

set capframe [captureBuffer cget -frame]

ixPuts "Frame $frame is [llength $capframe] bytes long"

}

Note: For some load modules (that is, LSM10GE), it is advisable to request capturBuffer data in chunks. Unless both the chassis and client machines have sufficiently high available memory, they may be overloaded by captured data.

qos

qos allows the user to set up the QoS counter filters and offsets. qos for full details. The important options and sub-commands of this command are mentioned in the following table:

Table: qos Options

Member Usage

patternOffset
patternOffsetType

The offset in the frame where a particular pattern is matched before QoS counting occurs.

patternMatch

The value to look for at the patternOffset.

patternMask

The mask to be applied in the pattern match.

byteOffset

The offset in the packet where the priority value is located - to be used to increment the correct QoS counter.

Table: qos Sub-Commands

Member Usage

setup

Sets the QoS counters for certain types of packets:

  • Ethernet II
  • 802.3 Snap
  • VLAN
  • ppp
  • Cisco HDLC

atmReassembly

The atmReassembly command is used to configure an ATM port to reassemble received data for particular VPI/VCIs. This is necessary if a receive port is to be used in an atmStat receive list or in atmFilter. Note that these commands automatically calls this command for the port, if it is not in the reassembly list. Except for receive ports using other than default encapsulation (atmEncapsulationLLCRoutedCLIP) in packet group mode, the add sub-command need never be called; the del and removeAll commands proves useful when changing a list. atmReassembly for details. The important options and sub-commands of this command are mentioned in the following table:

Table: atmReassembly Options

Member Usage

vpi
vci

The VPI and VCI to match.

encapsulation

The expected ATM encapsulation.

enableIpTcpUdpChecksum
enableIpQos

If set, indicates that packets with this VPI/VCI pair are to be used in collecting TCP/UDP Checksum or QoS statistics.

Table: atmReassembly Sub-Commands

Member Usage

add
del

Add or remove a particular VPI/VCI on a particular port to the reassembly list.

removeAll

Remove all items from the reassembly list.

getFirstPair
getNextPair

Cycles through the VPI/VCI pairs in the list.

atmFilter

The atmFilter command is used to set up capture/filter values for use with ATM ports. The frame data from one or more VPI/VCIs may be used to set the User Defined Statistics 1/2 (UDS 1, UDS 2), capture trigger or capture filter. The settings for a particular VPI/VCI on a port are set up with the command options and then memorized through the set sub-command. atmFilter for details. The important options and sub-commands of this command are mentioned in the following table:

Table: atmFilter Options

Member Usage

enable

Enables or disables the use of a particular entry.

enableUds1
enableUds2
enableFilter
enableTrigger

Selects one or more uses for the filter setup.

comparisonData
comparisonMask

Establishes the data that is matched to satisfy the count, trigger, or filter function.

Table: atmFilter Sub-Commands

Member Usage

set

Sets the options for a particular VPI/VCI on a particular port.

get

Gets the options for a particular VPI/VCI on a particular port.

stat

See the Ixia Reference Guide for a general discussion. Provides access to a wide range of statistics; the instantaneous value or rate is retrieved. stat for full details. Statistics may be gathered in the following ways:

Note also that most of the statistics are 64-bit values. mpexpr should be used to perform calculations on these values.

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

Table: stat Options

Member Usage

mode

Sets the mode of the counters:

  • Normal.
  • QoS: Reuses eight of the counters for QoS values.
  • UDS 5,6: Reuses two of the counters for User Defined Statistics 5 and 6.
  • Checksum Errors: Reuses six hardware counters for IP, TCP, and UDP checksum errors.
  • Data Integrity: Reuses two counters for data integrity errors.

<statistics>

The number and type of statistics is too large to mention here. stat for a description of the stat command and the Ixia Reference Guide for description of all statistics available.

Table: stat Sub-Commands

Member Usage

get

Gets a particular statistic value or all statistics.

getRate

Gets the frame rate for a particular statistic value or all statistics.

getCaptureState

Determines whether a port’s capture buffer is active or idle.

stat getLinkState 1 1 1

Gets the link state for the chassis indexed 1, card indexed 1, and port indexed 1. It means, this command fetches the state of port 1 for the card 1.

getTransmissionState

Determines whether a port is actively transmitting or idle.

set

Sets the port’s statistics mode as indicated in the mode member.

Table: getLinkState command for VM Ports

State Values

Explanation

Connected and Link Up

1

Port up and running

Connected and Link Down

0

Port link down

Disconnected

57

Port disconnected from the chassis

IxOS Version Mismatch

73

IxOS Version Mismatch between the Virtual Chassis and the Virtual Load Modules

Connect but No License

66

Connected but No Licenses Available (check license server)

statGroup, statList and statWatch

These commands provide alternate means for accessing statistics across a set of ports.statGroup, statList and statWatch for full details. These commands are more efficient means of collecting multiple statistics or statistics from a group of ports.

A group of port may be formed using statGroup and all of the valid statistics for the ports in the group are available through statList.

As an alternative, statWatch may be used to set up a number of statistics watch sets. Each statistics watch has a unique ID and holds a list of ports and statistics. Once a stat watch is started, the indicated set of statistics is regularly retrieved for the indicated set of ports. statList is used to read the actual statistics.

Note also that most of the statistics are 64-bit values. mpexpr should be used to perform calculations on these values. The important options and sub-commands of statGroup are mentioned in the following table:

Table: statGroup Options

Member Usage

numPorts

The current number of ports in the group.

Table: statGroup Sub-Commands

Member Usage

setDefault

Resets the list to empty.

add

Adds a port to the group.

del

Deletes a specific port from the group.

get

Retrieves all of the valid statistics for all of the ports in the group. The individual statistics are available through statList.

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

Table: statList Options

Member Usage

<statistics>

The number and type of statistics is too large to mention here. stat for a description of the stat command and the Ixia Reference Guide for description of all statistics available.

Table: statList Sub-Commands

Member Usage

get

Gets a particular statistic value or all statistics.

getRate

Gets the frame rate for a particular statistic value or all statistics.

The important sub-commands of statWatch are mentioned in the following table:

Table: statWatch Sub-Commands

Member Usage

create
destroy

Creates and destroys a stat watch.

addPort
delPort

Adds or deletes a port to a particular stat watch.

addStat
delStat

Adds or deletes a statistics to a particular stat watch.

addStatRate
delStatRate

Adds or deletes a statistics rates to a particular stat watch.

start
stop

Starts and stops the stat watch process.

packetGroupStats

The packetGroupStats command is used to retrieve the statistics associated with packet groups, such as minimum latency, maximum latency and average latency. Some of the statistics are only available on specific types of ports; an attempt to read an unavailable statistic results in a error. Refer to the Ixia Reference Guide for list of which statistics are available.

Three sub-commands are used to retrieve the actual statistics.

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. (Note: When the port is in PRBS mode, all latency specific stats are removed.)

Latency bin dividing times must be set up with the packetGroup’s enableLatencyBins, latencyBinList option. Following a call to packetGroupStats getGroup, the numLatencyBins option is set and thse latency bin information is available through calls to getFirstLatencyBin, getNextLatencyBin and getLatencyBin. The latency information is available in the options of the latencyBin command. Note that there is one more latency bin available than the number of dividers set in packetGroup’s latencyBinList, due to the implicit creation of a latency bin from the last divider to the maximum possible latency value.

An additional feature available on some port types is the ability to measure latency over time, per packet group. 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.

Time bins must be set up with the packetGroup’s enableTimeBins, numPgidPerTimeBin, numTimeBins and timeBinDuration options. Following a call to packetGroupStats getGroup, the numTimeBins, numPgidPerTimeBin and timeBinDuration options are set. Latency information for a particular time bin can be obtained by using the additional timeBin argument to the getGroup and getGroupFrameCount sub-commands.

packetGroupStats for full details. The important options and sub-commands are mentioned in the following table:

Table: packetGroupStats options

Category Member Usage

Basic

numGroups

The number of actual groups received.

 

totalFrames

The total number of frames used to calculate the statistics.

Latency

averageLatency
minLatency
maxLatency
standardDeviation

The average/min/max latency for a group.

Latency Bins

numLatencyBins

The number of latency bins active.

Time Stamps

firstTimeStamp
lastTimeStamp

First and last time stamp for packets in the packet group.

Rates

bitRate
byteRate
frameRate

The bit rate.

The stats bitRate and byteRate are not available in Latency view when delay variation is specified as with Latency Min Max Average.

Note: To get the valid frame rate, execute the packetGroupStats get command twice. In this case it is PG stats::packetGroupStats get $chassId $cardId $portId 0 $ExpectedPgId . When you execute this command the first time, it returns 0. When you execute it the second time, it returns the valid count. This is because frame rate is calculated as per the difference in value between the current frame count and the previous frame count. The first time when you execute the packetGroupStats command, it will return the base value, which is the difference between current frame count and previous frame count. So you get the value as 0. The second time when you execute the command, it will calculate the frame rate by taking the difference between the base value and the current value.

PRBS

prbsBitsReceived
prbsErroredBitgs
prbsBerRatio

Per-PGID stats available when port is in PRBS mode

Table: packetGroupStats Sub-Commands

Member Usage

get

Used to get the data for a range of group IDs into local memory.

getGroup

Used to retrieve the latency for a particular group.

getGroupFrameCount

Used to retrieve the number of frames for a group.

getFirstLatencyBin
getNextLatencyBin
getLatencyBin

Used to retrieve latency bin values to the latencyBin command’s options.

latencyBin

This command holds the result of a packetGroupStats getFirstLatencyBin/getNextLatencyBin/getLatencyBin call. latencyBin for full details. The important options of this command are mentioned in the following table:

Table: latencyBin options

Category Member Usage

Basic

startTime
stopTime

The start and stop times of the latency bin.

 

numFrames

The number of frames in the bin.

Latency

minLatency
maxLatency

The min/max latency for a bin.

Time Stamps

firstTimeStamp
lastTimeStamp

First and last time stamp for packets in the bin.

Rates

bitRate
byteRate
frameRate

The bit rate. Note that this requires multiple calls to get before valid values are obtained.

(Note: When the port is in PRBS mode, all latency specific stats are removed.)

vsrStat

vsrStat is used to retrieve statistics for VSR equipped 10GE cards. vsrStat for full details. The important options and sub-commands of this command are mentioned in the following table:

Table: vsrStat options

Member Usage

tx
rx

Global transmit/receive statistics.

rxCodeWordViolationCounter
rxLossOfSychronization
rxOutOfFrame
rxCrcErrorCounter

Receive statistics available on a per-channel basis.

Table: vsrStat Sub-Commands

Member Usage

get

Used to get all of the global and per channel statistics

getChannel

Used to fetch the channel specific statistics for one channel.

vsrError

vsrError is used to insert deliberate errors in VSR equipped 10Gigabit Ethernet cards. vsrStat for full details. The important options and sub-commands of this command are mentioned in the following table:

Table: vsrError options

Member Usage

enableChannelSwap
enableDelimiterInsert
enableProtectSwitch
enableErorrCorrection

Controls features related to error detection and recovery.

bipErrorMask
bipErrorFrameCount
bipInsertionMode

Controls insertion of Section BIP errors.

crcErrorBlockCount
crcInsertionMode
crcChannelSelection

Controls insertion of CRC errors.

frameDelimiterErrorMask
frameDelimiterErrorFrameCount
frameDelimiterInsertionMode
enableControlByte1
enableControlByte2Ch1To6
enableControlByte2Ch7To12
enableControlByte3
frameDelimiterControlByte1
frameDelimiterControlByte2Ch1To6
frameDelimiterControlByte2Ch7To12
frameDelimiterControlByte3
frameDelimiterChannelSelection

Controls insertion of frame delimiter errors.

channelSkewMode
channelSkewDelayTime
channelSkewInsertionMode
channelSkewChannelSelection

Controls insertion of channel skew errors.

error8b10bCodeWordCount
error8b10bCodeWordValue
error8b10bInsertionMode
error8b10bChannelSelection
enableDisparityErrorCodeWord
enableControlCharCodeWord

Controls insertion of 8b/10b code word errors.

Table:vsrError Sub-Commands

Member

Usage

insertError

Momentarily inserts a single instance of a particular error type.

start

Starts error insertion for all modes.

stop

Stops error insertion.

atmStat

The atmStat command is used to access statistics for particular VPI/VCI streams. VPI/VCIs for particular ports are added to a receive or transmit list with the addRx and addTx sub-commands. The statistics for all ports and VPI/VCIs in the lists is retrieved from the ports with the get sub-command. Individual statistics or rate statistics are accessed through the use of the getStat and getRate commands. The statistics are available in the command’s options.atmStat for full details. The important options and sub-commands of this command are mentioned in the following table:

Table: atmStat Options

Member Usage

rxAtmCells
rxAal5Frames
rxAal5LengthErrors
rxAal5TimeoutErrors

Statistics for receive ports.

txAtmCells
txAal5Bytes
txAal5Frames
txAal5ScheduledBytes
txAal5ScheduledFrames

Statistics for transmit ports.

vpi
vci

The current VPI/VCI pair.

Table: atmStat Sub-Commands

Member Usage

addRx
addTx

Adds a VPI/VCI for a particular port to the receive or transmit list.

delRx
delTx

Deletes a VPI/VCI for a particular port from the receive or transmit list.

removeAllRx
removeAllTx

Clears all VPI/VCI pairs from the receive or transmit list for a particular port.

getFirstRxPair
getNextRxPair
getFirstTxPair
getNextRxPair

Cycles through the receive or transmit lists.

get

Gets all of the statistics for all VPI/VCI pairs for all ports. Must be followed by a call to getStat or getRate.

getStat

Gets the statistics for a particular VPI/VCI on a particular port.

getRate

Gets the rate statistics for a particular VPI/VCI on a particular port.

streamTransmitStats

The streamTransmitStats command may be used to retrieve the per-stream transmit statistics. This may be checked through the use of the port isValidFeature... portFeaturePerStreamTxStats command. Per-stream transmit stats are retrieved by the stream id <number> per configuration on the port. They vary per port per transmit mode.

Note: The TXS8 supports 1 to 255 streams in packet stream transmit mode, and 1 to 128 streams in advanced mode.

StreamTransmitStats on ATM cards is limited to displaying statistics for 127 streams.

Statistics for a block of streams are retrieved through the use of the get command. Statistics for disabled streams are set to 0. Statistics for a particular stream are retrieved into the options of this command through the use of the getGroup command.

The getGroup command uses a ‘1’ based index into the block of streams fetched in the get command. For example, if get was used to fetch streams 101 through 200, then the statistics for stream 105 may be obtained by calling getGroup for index 5. The important options and sub-commands of this command are mentioned in the following table:

Table: streamTransmitStats Options

Member Usage

numGroups

The number of groups retrieved by the get command.

frameRate

The command returns the rate at which the frames are sent.

Note: To get the valid frame rate, execute the streamTransmitStats get command twice. In this case it is Stream stats::streamTransmitStats get $chassId $cardId $portId $streamId. When you execute this command the first time, it returns 0. When you execute it the second time, it returns the valid count. This is because frame rate is calculated as per the difference in value between the current frame count and the previous frame count. The first time when you execute the streamTransmitStats command, it will return the base value, which is the difference between current frame count and previous frame count. So you get the value as 0. The second time when you execute the command, it will calculate the frame rate by taking the difference between the base value and the current value.

framesSent

The command returns the number of frames sent.

theoreticalAverageFrameRate

Calculates the long-term average frame rate for each stream

Table: streamTransmitStats Sub-Commands

Member Usage

get

Fetches a block of data for a number of streams.

getGroup

Accesses a particular stream’s statistics.