dataIntegrity

dataIntegrity - configure the Data Integrity parameters.

SYNOPSIS

dataIntegrity sub-command options

DESCRIPTION

The dataIntegrity command is used to configure the parameters for Data Integrity operations for Gigabit and OC-12/OC-48 ports. Data integrity values are additional checksums taken over a subset of a packet. In order for data integrity to operate, receiveModeportRxDataIntegrity must be performed (and committed).

Note that when using ATM ports, different types of ATM encapsulation result in different length headers, as discussed in atmHeader. The data portion of the packet normally follows the header, except in the case of the two LLC Bridged Ethernet choices, where 12 octets of MAC address and 2 octets of Ethernet type follow the header. The offsets used in this command are with respect to the beginning of the AAL5 packet and must be adjusted by hand to account for the header.

STANDARD OPTIONS
enableTimeStamp

true/false

For receive-mode only. Indicates that the received data integrity packets are expected to have a 48-bit timestamp before the FCS value. (default = false)

insertSignature

true/false

For transmit-mode only. Inserts the data integrity signature into the transmitted stream. (default = false)

signature

In the transmitted packet, the signature uniquely identifies the transmitted packet as one destined for receive port data integrity filtering .. On the receive port, the signature is used to filter only those packets that have a matching signature. (default = '08 71 18 05')

signatureOffset

The offset, within the packet, of the data integrity signature. (default = 40)

floatingTimestampAndDataIntegrityMode

Enables adding timestamp as part of floating instrumentation header, and addresses similar issue in Data Integrity checking. (default = dataIntegrityNumberOfBytesFromEndOfFrame)

Option

Value

Usage

dataIntegrityNumberOfBytesFromEndOfFrame

0

(default) See numBytesFromEndOfFrame option, below

dataIntegrityPayloadLength

1

See payloadLength option, below

numBytesFromEndOf

Frame

Specify the number of padding bytes needed from the end of the frame. The number of padding bytes remains fixed with changing frame sizes. (default = 4)

payloadLength

Specify the fixed data integrity payload length. This length will not change with changing frame sizes. (default = 0)

COMMANDS

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

dataIntegrity cget option

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

dataIntegrity config option value

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

dataIntegrity getCircuitTx chasID cardID portID [circuitID] streamID

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.

dataIntegrity getQueueTx chasID cardID portID [queueID] streamID

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.

dataIntegrity getRx chasID cardID portID

Gets the current receive Data Integrity configuration of the port with id portID on card cardID, chassis chasID. Call this command before calling dataIntegrity cget option value to get the value of the configuration option. Specific errors are:

dataIntegrity getTx chasID cardID portID streamID [streamType]

Gets the current transmit Data Integrity configuration of the stream with id portID on card cardID, chassis chasID, stream streamID.

In the first form, the queueID indicates the particular queue for load modules which use multiple queues, such as ATM cards.

In the second form, the type of stream (stream or flow) is selected. One of.

Option

Value

Usage

streamSequenceTypeAll

0

(default) Both streams and flows. This option can be used for ports that do not use flows.

streamSequenceTypeStreams

1

Stream only.

streamSequenceTypeFlows

1

Flow only.

Call this command before calling dataIntegrity cget option value to get the value of the configuration option. Specific errors are:

dataIntegrity setCircuitTx chasID cardID portID [circuitD] streamID

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 dataIntegrity config option value command.

dataIntegrity setDefault

Sets to IxTclHal default values for all configuration options.

dataIntegrity setQueueTx chasID cardID portID [queueID] streamID

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 dataIntegrity config option value command.

dataIntegrity setRx chasID cardID portID

Sets the receive Data Integrity configuration of the port with id portID on card cardID, chassis chasID by reading the configuration option values set by the dataIntegrity config option value command. Specific errors are:

dataIntegrity setTx chasID cardID portID streamID [streamType]

Sets the transmit Data Integrity configuration of the stream with id portID on card cardID, chassis chasID, and stream streamID by reading the configuration option values set by the dataIntegrity config option value command.

In the first form, the queueID indicates the particular queue for load modules which use multiple queues, such as ATM cards.

In the second form, the type of stream (stream or flow) is selected. One of.

Option

Value

Usage

streamSequenceTypeAll

0

(default) Both streams and flows. This option can be used for ports that do not use flows.

streamSequenceTypeStreams

1

Stream only.

streamSequenceTypeFlows

1

Flow only.

After calling this command, the Data Integrity configuration should be committed to hardware using stream write or ixWriteConfigToHardware commands. Specific errors are:

EXAMPLES

package require IxTclHal

# In this example we'll use an OC12c card with port 1 (transmit) is

# directly connected to port 2 (receive)

# Data integrity is transmitted with a time stamp and received and checked

# by the receive port

set host galaxy

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]

# Assumes that card 2 is a OC12c card with ports 1 and 2 directly connected

set card 2

set txPort 1

set rxPort 2

# Useful port lists

set portList [list [list $chas $card $txPort] \

[list $chas $card $rxPort]]

# 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

}

# Set up Transmit Port

# Nothing special about the port

port setFactoryDefaults $chas $card $txPort

port setDefault

port set $chas $card $txPort

# One port must use recovered clock and the other not

sonet setDefault

sonet config -useRecoveredClock true

sonet set $chas $card $txPort

# Stream: 100,000 packets

stream setDefault

stream config -numFrames 100000

stream config -framesize 4148

stream config -fir true

stream config -dma stopStream

stream config -percentPacketRate 100

stream config -rateMode usePercentRate

stream set $chas $card $txPort 1

dataIntegrity setDefault

dataIntegrity config -insertSignature true

dataIntegrity setTx $chas $card $txPort 1

# Set up the Receive Port

# Set the receive mode to data integrity

port setFactoryDefaults $chas $card $rxPort

port setDefault

port config -receiveMode portRxDataIntegrity

port set $chas $card $rxPort

# This port does not use recovered clock

sonet setDefault

sonet config -useRecoveredClock false

sonet set $chas $card $rxPort

# Enable receive mode DI and expect a time stamp

dataIntegrity setDefault

dataIntegrity config -enableTimeStamp true

dataIntegrity setRx $chas $card $rxPort

# Commit to hardware

ixWritePortsToHardware portList

# Make sure link is up

after 1000

ixCheckLinkState portList

# Clear stats on receive side and start transmitting

ixClearPortStats $chas $card $rxPort

ixStartPortTransmit $chas $card $txPort

after 1000

# Wait until done

ixCheckPortTransmitDone $chas $card $txPort

# Get the DI frames received and errors

stat get allStats $chas $card $rxPort

set diFrames [stat cget -dataIntegrityFrames]

set diErrors [stat cget -dataIntegrityErrors]

ixPuts "$diFrames Data Integrity Frames received, $diErrors errors"

# 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