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:
- No connection to a chassis
- Invalid port number
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:
- No connection to a chassis
- Invalid port number
- The stream does not exist
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:
- No connection to a chassis
- Invalid port number
- The port is being used by another user
- Configured parameters are not valid for this setting
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:
- No connection to a chassis
- Invalid port number
- The port is being used by another user
- Configured parameters are not valid for this setting
- The stream does not exist
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
}