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)
- In burst mode, this specifies:
- number of sequential FEC codewords with one or more symbols with errors, followed by the number of FEC codewords without symbol errors.
number of sequential Lane Markers (Alignment Markers) with symbol errors, followed by a number of Lane Markers without errors.
- In continuous mode, this specifies:
- the number of sequential FEC codewords with one or more symbols with errors, followed by the number of FEC codewords without symbol errors. This sequence will be repeated until stopped.
the number of sequential Lane Markers (Alignment Markers) with symbol errors, followed by a number of Lane Markers without errors. This sequence will be repeated until stopped.
-
In 400G and 200G modes, the total number of FEC symbol errors sent will be doubled due to the presence of two FEC engines. In 100G and 50G modes, there is only a single FEC engine present.
-
The symbol errors are not evenly distributed across the PCS lanes (use Random error insertion mode for that case)
- Per 802.3bs and 802.3cd, reception of 3 or more consecutive uncorrectable codewords will result in Loss of Link.
-
Per 802.3bs and 802.3cd, reception of 5 or more Alignment Marker errors will result in Loss of Link.
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:
- No connection to a chassis
- Invalid port number
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:
- No connection to a chassis
- Invalid port number
- The port is being used by another user
- Configured parameters are not valid for this setting
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:
- No connection to a chassis
- Invalid port number
- The port is being used by another user
kp4FecError stop chasID cardID portID
Stops the FEC error insertion process for port with id portID on card cardID, chassis chasID. Specific errors are:
- No connection to a chassis
- Invalid port number
- The port is being used by another user
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