kp4FecError

kp4FecError - configure kp4 fec errors.

SYNOPSIS

kp4FecError sub-command options

DESCRIPTION

The kp4FecError command is used to insert errors into codewords and PCS lane markers.

STANDARD OPTIONS
berCoefficient

Coefficient of the BER. The desired BER can be achieved by changing the coefficient and exponent of the BER.

Permissible range for this option is 0 to 9.99. (default = 1.0)

berDistribution

The distribution of errored FEC symbols across codewords can be done by varying the Distribution parameter. Permissible range for this option is any positive integer between 0-100. (default = 50)

berExponent

Exponent of the BER. The desired BER can be achieved by changing the coefficient and exponent of the BER.

Permissible range for this option is 5 to 15. (default = 8)

errorBits

Error Bits specifies how many errors will be inserted on each of the two symbol errors of the codeword that carries the Lane Marker. There is a minimum Error Bits required (2) before corrupting the symbol that maps to the Lane Marker.

Permissible range for this option is any positive integer between 1-10. (default = 10)

laneNumber

Lane Number will specify which PCS lane will be affected by the Lane Marker error insertion. (default = 1)

Speed

Lane Number

400G For 400G we have 16 PCS lanes. Lane Number ranges from 0-15

200G

For 200G we have 8 PCS lanes. Lane Number ranges from 0-7
100G For 100G we have 4 PCS lanes. Lane Number ranges from 0-3
50G For 50G we have 2 PCS lanes. Lane Number ranges from 0-1
loopcount

The sequence of correct and incorrect codewords or symbol errors inserted will be repeated by the number specified by this option. (default = 1)

repeat true / false

If set to false, error insertion will be continuous until stopped. If true, sequence of errors will be repeated as per the count specified in loopcount. (default = False, when error type is random) (default = True, when error type is other than random).

symbolCorrectCount

The number of consecutive code words without errors. (default = 0)

symbolErrorCount

The number of consecutive code words with errors. (default = 1)

symbolErrorPerCodeword

This specifies the number of symbol errors per codeword to insert. KP4 FEC can correct up to 15 symbols, and detect up to 30 symbols. If the user specifies 16, an Uncorrectable Codeword will be issued.

Permissible range for this option is any positive integer between 1-16. (default = 1)

type

Configures the type of error injected and corrected by FEC. (default = 0)

Option

Value

Description

Random 0 Random FEC symbol error insertion will introduce a deterministic number of errors, evenly spread across all PCS lanes, on top the intrinsic BER (Bit Error Rate) of the interconnect.
Lane Markers 1 Inserts errors only in the Lane Marker or Alignment Marker.
Code Words 2 Inserts errors in codewords. This is the fundamental unit of data that the FEC engine operates on sequentially.
Max Consecutive Uncorrectable without Loss of Link 3 Inserts 2 consecutive error codewords followed by 1 or more consecutive correct codewords.
Min Consecutive Uncorrectable with Loss of Link 4 Inserts 3 consecutive error codewords followed by 1 or more consecutive correct codewords.
COMMANDS

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

kp4FecError get chasID cardID portID

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

kp4FecError set chasID cardID portID

Sets the configuration of the kp4FecError in IxHAL for the port indicated by portID on card cardID, chassis chasID reading the configuration option values set by the kp4FecError config option value command. Specific errors are:

kp4FecError start chasID cardID portID

Starts the FEC error insertion process for port with id portID on card cardID, chassis chasID. The stop sub-command must be used to stop error insertion. Specific errors are:

kp4FecError stop chasID cardID portID

Stops the FEC error insertion process for port with id portID on card cardID, chassis chasID. Specific errors are:

kp4FecError setDefault

Sets to IxTclHal default values for all kp4FecError configuration options.

kp4FecError cget option

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

kp4FecError config option value

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

CAUTION: 'kp4FecError get' should be called before 'kp4FecError config' in order to maintain consistency between Tcl Client kp4FecError object and Server kp4FecError object.

kp4FecError clear chasID cardID portID

Clears the port-level KP4 FEC statistics.

EXAMPLES
Burst Codeword Error Insertion

# Clear FEC stats

kp4FecError clear $chasId1 $cardId1 $portId1

 

# Set-up burst mode insertion type

kp4FecError get $chasId1 $cardId1 $portId1

kp4FecError config -type kp4FecCodeWords

kp4FecError config -repeat 1

kp4FecError config -loopcount $loopCount

kp4FecError config -symbolErrorCount $seqErrors

kp4FecError config -symbolCorrectCount $seqCorrect

kp4FecError config -symbolErrorPerCodeword $errorsPerCodeword

kp4FecError set $chasId1 $cardId1 $portId1

 

# Start insertion on Tx side

kp4FecError start $chasId1 $cardId1 $portId1

 

# Wait a small amount of time for the burst to finish

after 500

 

# Stop error insertion

kp4FecError stop $chasId1 $cardId1 $portId1

Continuous Codeword Error Insertion

# Clear FEC stats

kp4FecError clear $chasId1 $cardId1 $portId1

 

# Set-up continuous mode insertion type

kp4FecError get $chasId1 $cardId1 $portId1

kp4FecError config -type kp4FecCodeWords

kp4FecError config -repeat 0

kp4FecError config -loopcount 1

kp4FecError config -symbolErrorCount $seqErrors

kp4FecError config -symbolCorrectCount $seqCorrect

kp4FecError config -symbolErrorPerCodeword $errorsPerCodeword

kp4FecError set $chasId1 $cardId1 $portId1

 

# Start insertion on Tx side

kp4FecError start $chasId1 $cardId1 $portId1

 

# Wait for desired number of ms

after $testTime

 

# Stop error insertion

kp4FecError stop $chasId1 $cardId1 $portId1

Burst Mode Lane Marker Error Insertion

# Clear FEC stats

kp4FecError clear $chasId1 $cardId1 $portId1

 

# Set-up burst mode insertion type

kp4FecError get $chasId1 $cardId1 $portId1

kp4FecError config -type kp4FecLaneMarkers

kp4FecError config -repeat 1

kp4FecError config -loopcount $loopCount

kp4FecError config -symbolErrorCount $seqErrors

kp4FecError config -symbolCorrectCount $seqCorrect

kp4FecError config -laneNumber $lane

kp4FecError config -errorBits $errorBits

kp4FecError set $chasId1 $cardId1 $portId1

 

# Start insertion on Tx side

kp4FecError start $chasId1 $cardId1 $portId1

 

# Wait a small amount of time for the burst to finish

after 500

 

# Stop error insertion

kp4FecError stop $chasId1 $cardId1 $portId1

Continuous Lane Marker Error Insertion

# Clear FEC stats

kp4FecError clear $chasId1 $cardId1 $portId1

 

# Set-up continuous mode insertion type

kp4FecError get $chasId1 $cardId1 $portId1

kp4FecError config -type kp4FecLaneMarkers

kp4FecError config -repeat 0

kp4FecError config -loopcount 1

kp4FecError config -symbolErrorCount $seqErrors

kp4FecError config -symbolCorrectCount $seqCorrect

kp4FecError config -laneNumber $lane

kp4FecError config -errorBits $errorBits

kp4FecError set $chasId1 $cardId1 $portId1

 

# Start insertion on Tx side

kp4FecError start $chasId1 $cardId1 $portId1

 

# Wait for desired number of ms

after $testTime

 

# Stop error insertion

kp4FecError stop $chasId1 $cardId1 $portId1

Random BER Error Insertion

# Clear FEC stats

kp4FecError clear $chasId1 $cardId1 $portId1

 

# Set-up continuous mode insertion type

kp4FecError get $chasId1 $cardId1 $portId1

kp4FecError config -type kp4FecRandom

kp4FecError config -berCoefficient $berCoefficient

kp4FecError config -berExponent $berExponent

kp4FecError config -berDistribution $berDistribution

kp4FecError set $chasId1 $cardId1 $portId1

 

# Start insertion on Tx side

kp4FecError start $chasId1 $cardId1 $portId1

 

# Wait for desired number of ms

after $testTime

 

# Stop error insertion

kp4FecError stop $chasId1 $cardId1 $portId1

SEE ALSO

txLane.