8.3.1.7. High-Speed Port
This module contains the L23 high-speed port classes that provide configuration and status for the Gigabit Attachment Unit Interface (CAUI) physical coding sublayer used by 40G, 50G, 100G, 200G, 400G and 800G ports. The data is broken down into a number of lower-speed lanes. For 40G there are 4 lanes of 10 Gbps each. For 100G there are 20 lanes of 5 Gbps each. Within each lane the data is broken down into 66-bit code-words.
During transport, the lanes may be swapped and skewed with respect to each other. To deal with this, each lane contains marker words with a virtual lane index id. The commands are indexed with a physical lane index that corresponds to a fixed numbering of the underlying fibers or wavelengths.
The lanes can also be put into Pseudorandom Binary Sequence (PRBS) mode where they transmit a bit pattern used for diagnosing fiber-level problems, and the receiving side can lock to these patterns.
Errors can be injected both at the CAUI level and at the bit level.
The high-speed port command names all have the form PP_<xxx>
and require a module index id and a port index id, and most also require a physical lane index id.
- class PP_ALARMS_ERRORS[source]
Bases:
object
Obtain the error count of each alarm, PCS Error, FEC Error, Header Error, Align Error, BIP Error, and High BER Error.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- los_error_count
long integer, number of no-sync alarms
- total_alarms
integer, total number of triggered alarms
- total_align_error_count
long integer, number of errors of alignment error alarm
- total_bip_error_count
long integer, number of errors of BIP error alarm
- total_fec_error_count
long integer, number of errors of FEC error alarm
- total_header_error_count
long integer, number of errors of header error alarm
- total_higher_error_count
long integer, number of errors of high BER error alarm
- total_pcs_error_count
long integer, number of errors of PCS error alarm
- valid_mask
8 hex bytes, mask of valid alarms
- class PP_AUTONEG[source]
Bases:
object
Auto-negotiation settings of the PHY - for Thor-400G-7S-1P Thor-400G-7S-1P[b] and [c]
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- fec_capable
coded integer, FEC capable.
- fec_requested
coded integer, FEC requested.
- mode
coded integer, mode
- pause_mode
coded integer, pause mode.
- tec_ability
coded integer, technical ability.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- fec_capable
coded integer, FEC capable.
- fec_requested
coded integer, FEC requested.
- mode
coded integer, mode
- pause_mode
coded integer, pause mode.
- tec_ability
coded integer, technical ability.
- get()[source]
Get the auto-negotiation settings of the PHY.
- Returns:
auto-negotiation settings of the PHY including mode, technical ability, FEC capable, FEC requested, and pause mode.
- Return type:
- set(mode, tec_ability, fec_capable, fec_requested, pause_mode)[source]
Set the auto-negotiation settings of the PHY.
- Parameters:
mode (AutoNegMode) – auto neg mode
tec_ability (AutoNegTecAbility) – technical ability
fec_capable (AutoNegFECOption) – FEC capable
fec_requested (AutoNegFECOption) – FEC requested
pause_mode (PauseMode) – pause mode
- class PP_AUTONEGSTATUS[source]
Bases:
object
Status of auto-negotiation settings of the PHY - for Thor-400G-7S-1P[b] and [c]
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- auto_state
coded integer, auto-negotiation state.
- fec
codec integer, FEC.
- fec_capable
coded integer, FEC capable partner.
- fec_requested
coded integer, FEC requested partner.
- mode
coded integer, mode
- pause_mode
coded integer, pause mode.
- tec_ability
coded integer, technical ability.
- class PP_EYEBER[source]
Bases:
object
Obtain BER estimations of an eye diagram.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- eye_ber_estimation
string, BER estimations of an eye diagram
- class PP_EYEDWELLBITS[source]
Bases:
object
Min and max dwell bits for an eye capture.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- max_dwell_bit_count
integer, maximum dwell bits for an eye capture
- min_dwell_bit_count
integer, minimum dwell bits for an eye capture
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- max_dwell_bit_count
integer, maximum dwell bits for an eye capture
- min_dwell_bit_count
integer, minimum dwell bits for an eye capture
- class PP_EYEINFO[source]
Bases:
object
Read out BER eye-measurement information such as the vertical and horizontal bathtub curve information on a 25G serdes. This must be called after “PP_EYEMEASURE” has run to return valid results. Use “get” to see the status of the data gathering process.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- est_dj_pp
integer, value and unit (mUI) x1000, group = Horizontal bathtub curve
- est_rj_rms_bottom
integer, value and unit (mV) x1000, group = Vertical bathtub curve
- est_rj_rms_left
integer, value and unit (mUI) x1000, group = Horizontal bathtub curve
- est_rj_rms_right
integer, value and unit (mUI) x1000, group = Horizontal bathtub curve
- est_rj_rms_top
integer, value and unit (mV) x1000, group = Vertical bathtub curve
- h_slope_left
integer, value and unit (Q/UI) x100, signed integer, group = Horizontal bathtub curve
- h_slope_right
integer, value and unit (Q/UI) x100, signed integer, group = Horizontal bathtub curve
- height_mv
integer, value and unit 0..1000 (mV), group = Vertical bathtub curve
- r_squared_fit_bottom
integer, value and unit Int x100, group = Vertical bathtub curve
- r_squared_fit_left
integer, value and unit Int x100, group = Horizontal bathtub curve
- r_squared_fit_right
integer, value and unit Int x100, group = Horizontal bathtub curve
- r_squared_fit_top
integer, value and unit Int x100, group = Vertical bathtub curve
- v_slope_bottom
integer, value and unit (mV/Q) x100, signed integer, group = Vertical bathtub curve
- v_slope_top
integer, value and unit (mV/Q) x100, signed integer, group = Vertical bathtub curve
- width_mui
integer, value and unit 0..1000 (mUI), group = Horizontal bathtub curve
- x_intercept_bottom
integer, value and unit (Q) x100), signed integer, group = Vertical bathtub curve
- x_intercept_top
integer, value and unit (Q) x100, signed integer, group = Vertical bathtub curve
- y_intercept_left
integer, value and unit (Q) x100, signed integer, group = Horizontal bathtub curve
- y_intercept_right
integer, value and unit (Q) x100, signed integer, group = Horizontal bathtub curve
- get()[source]
Read out BER eye-measurement information such as the vertical and horizontal bathtub curve information on a 25G serdes. This must be called after “PP_EYEMEASURE” has run to return valid results. Use “get” to see the status of the data gathering process.
- Returns:
BER eye-measurement information such as the vertical and horizontal bathtub curve information on a 25G serdes
- Return type:
- class PP_EYEMEASURE[source]
Bases:
object
Start/stop a new BER eye-measure on a 25G serdes. Use “get” to see the status of the data gathering process.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- dummy
list of bytes, should always be 0, reserved for future expansion.
- status
coded byte, status of the serdes.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- dummy
list of bytes, should always be 0, reserved for future expansion.
- status
coded byte, status of the serdes.
- get()[source]
Get the status of the BER eye-measure data gathering process.
- Returns:
status of the serdes
- Return type:
- set(status)[source]
Start/stop a new BER eye-measure on a 25G serdes.
- Parameters:
status (StartOrStop) – status of the serdes
- set_start()
Stop a new BER eye-measure on a 25G serdes.
- set_stop()
Start a new BER eye-measure on a 25G serdes.
- class PP_EYEREAD[source]
Bases:
object
Read a single column of a measured BER eye on a 25G serdes. Every readout also returns the resolution (x,y) and the number of valid columns (used to facilitate reading out the eye while it is being measured). Note that the columns of the eye-data will be measured in the order: xres-1, xres-2, xres-3, … 0. The values show the number of bit errors measured out of a total of 1M bits at each of the individual sampling points (x=timeaxis, y = 0/1 threshold).
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- valid_column_count
integer, specifying the number of valid columns.
- values
list of integers, showing the number of bit errors measured out of a total of 1M bits at each of the individual sampling points (x=timeaxis, y = 0/1 threshold).
- x_resolution
integer, specifying X resolution.
- y_resolution
integer, specifying Y resolution.
- class PP_EYERESOLUTION[source]
Bases:
object
Set or get the resolution used for the next BER eye-measurement.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- x_resolution
integer, number of columns, must be between 9 and 65 and be in the form 2^n+1
- y_resolution
integer, number of columns, must be between 7 and 255 and be in the form 2^n-1
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- x_resolution
integer, number of columns, must be between 9 and 65 and be in the form 2^n+1
- y_resolution
integer, number of columns, must be between 7 and 255 and be in the form 2^n-1
- class PP_FECMODE[source]
Bases:
object
FEC mode for port that supports FEC.
- get()[source]
Get the FEC mode for port that supports FEC.
- Returns:
the FEC mode for port
- Return type:
- set(mode)[source]
Set the FEC mode for port that supports FEC.
- Parameters:
mode (FECMode) – FEC mode for port
- set_fc_fec()
Turn Firecode FEC on.
- set_off()
Turn FEC off.
- set_rs_fec()
Turn RS FEC on, either RS-FEC KR or RS-FEC KP, automatically selected based on the FEC modes supported by the port.
- class PP_GRAYCODING[source]
Bases:
object
GET/SET Gray-Coding Configurations. (only for Freya)
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- rx_endianness
RX Endianness Normal/Reverted(BigEndian/LittleEndian))
- rx_mode
RX Mode Off/On/Auto
- tx_endianness
TX Endianness Normal/Reverted(BigEndian/LittleEndian))
- tx_mode
TX Mode Off/On/Auto
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- rx_endianness
RX Endianness Normal/Reverted(BigEndian/LittleEndian))
- rx_mode
RX Mode Off/On/Auto
- tx_endianness
TX Endianness Normal/Reverted(BigEndian/LittleEndian))
- tx_mode
TX Mode Off/On/Auto
- get()[source]
Get the Gray-Coding Configurations.
- Returns:
Gray-Coding configurations including rx_mode, rx_endianness, tx_mode, and tx_endianness.
- Return type:
- set(rx_mode, rx_endianness, tx_mode, tx_endianness)[source]
Set the Rx Gray-coding settings of the PHY.
- Parameters:
rx_mode (GrayCodingMode) – The RX Mode(Off/On/Auto)
rx_endianness (Endianness) – RX Endianness type
tx_mode (GrayCodingMode) – The TX Mode(Off/On/Auto)
tx_endianness – TX Endianness type
- class PP_LINKFLAP_ENABLE[source]
Bases:
object
Enable / disable port ‘link flap’.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- on_off
coded byte, whether link flap is enabled.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- on_off
coded byte, whether link flap is enabled.
- get()[source]
Get the port ‘link flap’ status of the port.
- Returns:
whether link flap is enabled
- Return type:
- set(on_off)[source]
Set the port ‘link flap’ status of the port.
- Parameters:
on_off (OnOff) – whether link flap is enabled
- set_off()
Disable the port ‘link flap’.
- set_on()
Enable the port ‘link flap’.
- class PP_LINKFLAP_PARAMS[source]
Bases:
object
Set port ‘link flap’ parameters. Notice: Period must be larger than duration.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- duration
integer, 0 ms - 1000 ms; increments of 1 ms; 0 = permanently link down.
- period
integer, 10 ms - 50000 ms; number of ms - must be multiple of 10 ms.
- repetition
integer, 1 - 64K; 0 = continuous.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- duration
integer, 0 ms - 1000 ms; increments of 1 ms; 0 = permanently link down.
- period
integer, 10 ms - 50000 ms; number of ms - must be multiple of 10 ms.
- repetition
integer, 1 - 64K; 0 = continuous.
- get()[source]
Get port ‘link flap’ settings.
- Returns:
duration, period, and repetition of link flapping.
- Return type:
- class PP_LINKTRAIN[source]
Bases:
object
Link training settings - for Thor-400G-7S-1P and Freya modules
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- mode
coded byte, link training mode
- nrz_pam4_init_cond
coded byte, link training init condition.
- nrz_preset
coded byte, NRZ preset.
- pam4_frame_size
codec byte, PAM4 frame size.
- timeout_mode
coded byte, timeout mode.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- mode
coded byte, link training mode
- nrz_pam4_init_cond
coded byte, link training init condition.
- nrz_preset
coded byte, NRZ preset.
- pam4_frame_size
codec byte, PAM4 frame size.
- timeout_mode
coded byte, timeout mode.
- get()[source]
Get the link training settings of the port.
- Returns:
the link training settings, including mode, PAM4 frame size, link training init condition, NRZ preset, and timeout mode.
- Return type:
- set(mode, pam4_frame_size, nrz_pam4_init_cond, nrz_preset, timeout_mode)[source]
Set the link training settings of the port.
- Parameters:
mode (LinkTrainingMode) – link training mode
pam4_frame_size (PAM4FrameSize) – PAM4 frame size
nrz_pam4_init_cond (LinkTrainingInitCondition) – link training init condition
nrz_preset (NRZPreset) – NRZ preset
timeout_mode (TimeoutMode) – timeout mode
- class PP_LINKTRAINSTATUS[source]
Bases:
object
Per lane Link training status - for Thor-400G-7S-1P and Freya modules
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- failure
coded byte, failure type.
- mode
coded byte, link training mode
- status
coded byte, lane status.
- class PP_PHYAUTONEG[source]
Bases:
object
Auto-negotiation settings of the PHY.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- fec_mode
coded integer, FEC mode ON or OFF.
- reserved_1
integer, reserved for future use.
- reserved_2
integer, reserved for future use.
- reserved_3
integer, reserved for future use.
- reserved_4
integer, reserved for future use.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- fec_mode
coded integer, FEC mode ON or OFF.
- reserved_1
integer, reserved for future use.
- reserved_2
integer, reserved for future use.
- reserved_3
integer, reserved for future use.
- reserved_4
integer, reserved for future use.
- set(fec_mode, reserved_1, reserved_2, reserved_3, reserved_4)[source]
Set auto-negotiation settings of the PHY.
- set_off(reserved_1, reserved_2, reserved_3, reserved_4)
Enable auto-negotiation settings of the PHY.
- set_on(reserved_1, reserved_2, reserved_3, reserved_4)
Disable auto-negotiation settings of the PHY.
- class PP_PHYAUTOTUNE[source]
Bases:
object
Enable or disable the automatic receiving of PHY retuning (see PP_PHYRETUNE), which is performed on the 25G interfaces as soon as a signal is detected by the transceiver. Useful if a bad signal causes the PHY to continuously retune or if for some other reason it is preferable to use manual retuning (PP_PHYRETUNE).
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- on_off
coded byte, enable/disable automatic receiving PHY retuning. Default is enabled.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- on_off
coded byte, enable/disable automatic receiving PHY retuning. Default is enabled.
- get()[source]
Get whether the auto PHY retuning is enabled.
- Returns:
enable/disable automatic receiving PHY retuning
- Return type:
- set(on_off)[source]
Enable/disable automatic receiving PHY retuning. Default is enabled.
- Parameters:
on_off (OnOff) – Enable/disable automatic receiving PHY retuning. Default is enabled
- set_off()
Turn off tap autotune.
- set_on()
Turn off tap autotune.
- class PP_PHYRETUNE[source]
Bases:
object
Trigger a new retuning of the receive equalizer on the PHY for one of the 25G serdes. Useful if e.g. a direct attached copper cable or loop transceiver does not go into sync after insertion. Note that the retuning will cause disruption of the traffic on all serdes.
- class PP_PHYRXEQ[source]
Bases:
object
RX EQ parameters (For non Freya Modules).
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- auto
integer, auto on or off
- ctle
integer, Continuous Time Linear equalization
- reserved
integer, reserved
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- auto
integer, auto on or off
- ctle
integer, Continuous Time Linear equalization
- reserved
integer, reserved
- class PP_PHYRXEQSTATUS_EXT[source]
Bases:
object
Get RX EQ advanced parameter values. (Only for Freya modules)
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- value1
the 1st value for the capability
- value2
the 2nd value for the capability
- class PP_PHYRXEQ_EXT[source]
Bases:
object
GET/SET RX EQ Advanced parameters(Only for Freya Modules).
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- mode
The capability mode
- value
The value for the capability
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- mode
The capability mode Auto/Manual/Freeze
- value
The value for the capability
- set(mode, value)[source]
Set RX EQ Advanced parameters. The type of the capability(RxEqExtCap) should be passed as the second index.
- Parameters:
mode (RxEqExtCapMode) – Auto/Manual/Freeze
value (int) – The value for the capability
- class PP_PHYSETTINGS[source]
Bases:
object
Get/Set low-level PHY settings.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- graycode_on_off
coded integer, enabling/disabling link graycode.
- link_training_on_off
coded integer, enabling/disabling link training.
- pam4_msb_lsb_swap
coded integer, enabling/disabling PAM4 MSB/LSB swap.
- precode_on_off
coded integer, enabling/disabling link precode.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- graycode_on_off
coded integer, enabling/disabling link graycode.
- link_training_on_off
coded integer, enabling/disabling link training.
- pam4_msb_lsb_swap
coded integer, enabling/disabling PAM4 MSB/LSB swap.
- precode_on_off
coded integer, enabling/disabling link precode.
- set(link_training_on_off, precode_on_off, graycode_on_off, pam4_msb_lsb_swap)[source]
Set low-level PHY settings.
- Parameters:
link_training_on_off (OnOff) – enabling/disabling link training
precode_on_off (OnOffDefault) – enabling/disabling link precode
graycode_on_off (OnOff) – enabling/disabling link graycode.
pam4_msb_lsb_swap (OnOff) – enabling/disabling PAM4 MSB/LSB swap.
- class PP_PHYSIGNALSTATUS[source]
Bases:
object
Obtain the PHY signal status.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- phy_signal_status
coded byte, PHY signal status
- class PP_PHYTXEQ[source]
Bases:
object
Control and monitor the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage) on Thor and Loki modules.
Changed in version 1.1.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- main
integer, amplification, (range: Module dependent), default = 0 (neutral).
- mode
integer, value must be 4
- post
integer, postemphasis, (range: Module dependent), default = 0 (neutral).
- post3
integer, postemphasis, (range: Module dependent), default = 0 (neutral).
- pre
integer, preemphasis, (range: Module dependent), default = 0 (neutral).
- pre2
integer, preemphasis, (range: Module dependent), default = 0 (neutral).
- pre3_post2
integer, postemphasis, (range: Module dependent), default = 0 (neutral).
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- main
integer, amplification, (range: Module dependent), default = 0 (neutral).
- mode
integer, value must be 4
- post
integer, postemphasis, (range: Module dependent), default = 0 (neutral).
- post3
integer, postemphasis, (range: Module dependent), default = 0 (neutral).
- pre
integer, preemphasis, (range: Module dependent), default = 0 (neutral).
- pre2
integer, preemphasis, (range: Module dependent), default = 0 (neutral).
- pre3_post2
integer, postemphasis, (range: Module dependent), default = 0 (neutral).
- get()[source]
Get the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage) on Thor and Loki modules.
- Returns:
preemphasis, (range: Module dependent), default = 0 (neutral).
- Return type:
- class PP_PMAERRPUL_ENABLE[source]
Bases:
object
Enable / disable ‘PMA pulse error inject’.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- on_off
coded byte, whether PMA pulse error inject is enabled.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- on_off
coded byte, whether PMA pulse error inject is enabled.
- get()[source]
Get the status of ‘PMA pulse error inject’.
- Returns:
whether PMA pulse error inject is enabled
- Return type:
- set(on_off)[source]
Set the status of ‘PMA pulse error inject’.
- Parameters:
on_off (OnOff) – whether PMA pulse error inject is enabled
- set_off()
Disable ‘PMA pulse error inject’.
- set_on()
Enable ‘PMA pulse error inject’.
- class PP_PMAERRPUL_PARAMS[source]
Bases:
object
The ‘PMA pulse error inject’.
Note
Period must be > duration. BER will be: coeff * 10exp
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- coeff
long integer, (0.01 < coeff < 9.99) * 100
- duration
integer, 0 ms - 5000m s; increments of 1 ms; 0 = constant BER
- exp
integer, -3 < exp < -17
- period
integer, 10 ms - 50000 ms; number of ms - must be multiple of 10 ms
- repetition
integer, 1 - 64K; 0 = continuous
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- coeff
long integer, (0.01 < coeff < 9.99) * 100
- duration
integer, 0 ms - 5000m s; increments of 1 ms; 0 = constant BER
- exp
integer, -3 < exp < -17
- period
integer, 10 ms - 50000 ms; number of ms - must be multiple of 10 ms
- repetition
integer, 1 - 64K; 0 = continuous
- get()[source]
Get PMA pulse error injection settings.
- Returns:
PMA pulse error injection settings
- Return type:
- class PP_PRBSTYPE[source]
Bases:
object
Defines the PRBS type used when the interface is in PRBS mode.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- invert
coded byte, specifying if the PRBS is inverted.
- polynomial
coded byte, specifying which PRBS that is used.
- prbs_inserted_type
coded byte, specifying where the PRBS is inserted.
- statistics_mode
coded byte, specifying PRBS statistics mode, accumulative or for last second
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- invert
coded byte, specifying if the PRBS is inverted.
- polynomial
coded byte, specifying which PRBS to use.
- prbs_inserted_type
coded byte, specifying where the PRBS is inserted.
- statistics_mode
coded byte, specifying PRBS statistics mode, accumulative or for last second
- get()[source]
Get the PRBS type used when the interface is in PRBS mode.
- Returns:
where the PRBS is inserted, which PRBS that is used, if the PRBS is inverted, and PRBS statistics mode
- Return type:
- set(prbs_inserted_type, polynomial, invert, statistics_mode)[source]
Set the PRBS type used when the interface is in PRBS mode.
- Parameters:
prbs_inserted_type (PRBSInsertedType) – specifying where the PRBS is inserted
polynomial (PRBSPolynomial) – specifying which PRBS that is used
invert (PRBSInvertState) – specifying if the PRBS is inverted
statistics_mode (PRBSStatisticsMode) – specifying PRBS statistics mode, accumulative or for last second
- class PP_PRECODING[source]
Bases:
object
GET/SET Pre-Coding Configurations. (only for Freya)
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- rx_endianness
RX Endianness Normal/Reverted(BigEndian/LittleEndian))
- rx_mode
RX Mode Off/On
- tx_endianness
TX Endianness Normal/Reverted(BigEndian/LittleEndian))
- tx_mode
TX Mode Off/On
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- rx_endianness
RX Endianness Normal/Reverted(BigEndian/LittleEndian))
- rx_mode
RX Mode Off/On
- tx_endianness
TX Endianness Normal/Reverted(BigEndian/LittleEndian))
- tx_mode
TX Mode Off/On
- get()[source]
Get the Pre-Coding Configurations.
- Returns:
Pre-Coding configurations including rx_mode, rx_endianness, tx_mode, and tx_endianness.
- Return type:
- set(rx_mode, rx_endianness, tx_mode, tx_endianness)[source]
Set the Rx Pre-coding settings of the PHY.
- Parameters:
rx_mode (PreCodingMode) – The RX Mode(Off/On/Auto)
rx_endianness (Endianness) – RX Endianness type
tx_mode (PreCodingMode) – The TX Mode(Off/On/Auto)
tx_endianness – TX Endianness type
- class PP_PRECODINGSTATUS[source]
Bases:
object
GET Pre-Coding status (only for Freya)
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- rx_endianness
RX Endianness Normal/Reverted(BigEndian/LittleEndian))
- rx_mode
RX Mode Off/On
- tx_endianness
TX Endianness Normal/Reverted(BigEndian/LittleEndian))
- tx_mode
TX Mode Off/On
- class PP_RXFECSTATS[source]
Bases:
object
Provides statistics on how many FEC blocks have been seen with a given number of symbol errors.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- data_count
long integer, number of values.
- stats
list of long integers, array of length value_count. The stats array shows how many FEC blocks have been seen with [0, 1, 2, 3….15, >15] symbol errors and the last one is the sum of FEC blocks with <=n symbol errors
- stats_type
long integer, currently always 0.
- class PP_RXLANEERRORS[source]
Bases:
object
Statistics about errors detected at the physical coding sub-layer on the data received on a specified physical lane.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- alignment_error_count
long integer, the number of alignment errors.
- bip8_error_count
long integer, the number of bip8 errors.
- corrected_fec_error_count
long integer, corrected FEC bit errors.
- header_error_count
long integer, the number of header errors.
- pre_ber
long integer, received_bits / corfecerrs. To get the pre_ber, calculate the inverse: 1/pre_ber. If zero bit errors have been received, the negative value “-received_bits” is provided, which can be used to generate the “< BER” value.
- class PP_RXLANELOCK[source]
Bases:
object
Whether the receiver has achieved header lock and alignment lock on the data received on a specified physical lane.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- align_lock
coded byte, whether this lane has achieved alignment lock.
- header_lock
coded byte, whether this lane has achieved header lock.
- class PP_RXLANESTATUS[source]
Bases:
object
The virtual lane index and actual skew for data received on a specified physical lane. This is only meaningful when the lane is in header lock and alignment lock.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- skew
integer, the measured skew on the lane, in bit units.
- virtual_lane
integer, the logical lane number.
- class PP_RXLASERPOWER[source]
Bases:
object
Reading of the optical power level of the received signal. There is one value for each laser/wavelength, and the number of these depends on the kind of CFP transceiver used. The list is empty if the CFP transceiver does not support optical power read-out.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- nanowatts
list of integers, received signal level, in nanowatts. 0, when no signal.
- class PP_RXPRBSSTATUS[source]
Bases:
object
Statistics about PRBS pattern detection on the data received on a specified SerDes.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- byte_count
long integer, the number of bytes received while in PRBS lock.
- error_count
long integer, the number of errors detected while in PRBS lock.
- lock
coded byte, whether this lane is in PRBS lock.
- class PP_RXPRBSTYPE[source]
Bases:
object
The RX PRBS type used when the interface is in PRBS mode.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- invert
coded byte, PRBS invert state.
- prbs_inserted_type
coded byte, PRBS inserted type.
- prbs_pattern
coded byte, PRBS pattern.
- statistics_mode
coded byte, PRBS statistics mode
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- invert
coded byte, PRBS invert state.
- prbs_inserted_type
coded byte, PRBS inserted type.
- prbs_pattern
coded byte, PRBS pattern.
- statistics_mode
coded byte, PRBS statistics mode
- get()[source]
Get the RX PRBS type used when the interface is in PRBS mode.
- Returns:
PRBS inserted type, PRBS pattern, PRBS invert state, and PRBS statistics mode.
- Return type:
- set(prbs_inserted_type, prbs_pattern, invert, statistics_mode)[source]
Set the RX PRBS type used when the interface is in PRBS mode.
- Parameters:
prbs_inserted_type (PRBSInsertedType) – PRBS inserted type
prbs_pattern (PRBSPattern) – PRBS pattern
invert (PRBSInvertState) – PRBS invert state
statistics_mode (PRBSStatisticsMode) – PRBS statistics mode
- class PP_RXTOTALSTATS[source]
Bases:
object
Provides FEC Total counters.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- total_corrected_codeword_count
integer, total corrected codewords
- total_corrected_symbol_count
integer, total corrected symbol count.
- total_post_fec_ber
integer, total post-FEC BER estimate sent as “total_post_fec_ber = received_bits / total_estimated_uncorrectable_errors”. To get the real total post-BER, calculate the inverse: 1/total_post_fec_ber. If zero physical bit errors have been detected, the negative value “-received_bits” is provided, which can be used to generate the “< BER” value.
- total_pre_fec_ber
integer, total pre-FEC BER estimate sent as “total_pre_fec_ber = received_bits / total_corfecerrs”. To get the real total pre-BER, calculate the inverse: 1/total_pre_fec_ber. If zero physical bit errors have been detected, the negative value “-received_bits” is provided, which can be used to generate the “< BER” value.
- total_rx_bit_count
integer, total received bits
- total_rx_codeword_count
integer, total received codewords
- total_uncorrectable_codeword_count
integer, total uncorrectable codewords
- get()[source]
Get FEC Total counters of the port
- Returns:
Total RX bits
Total codewords
Corrected codewords
Uncorrectable codewords
Corrected symbols
- Pre-FEC BER estimate, sent as “total_pre_fec_ber = received_bits / total_corfecerrs”.
To get the real total pre-BER, calculate the inverse: 1/total_pre_fec_ber. If zero physical bit errors have been detected, the negative value “-received_bits” is provided, which can be used to generate the “< BER” value.
- Post-FEC BER estimate sent as “total_post_fec_ber = received_bits / total_estimated_uncorrectable_errors”.
To get the real total post-BER, calculate the inverse: 1/total_post_fec_ber. If zero physical bit errors have been detected, the negative value “-received_bits” is provided, which can be used to generate the “< BER” value.
- Return type:
- class PP_TXERRORRATE[source]
Bases:
object
The rate of continuous bit-level error injection. Errors are injected evenly across the SerDes where injection is enabled.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- rate
long integer, the number of bits between each error. 0, no error injection.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- rate
long integer, the number of bits between each error. 0, no error injection.
- class PP_TXINJECTONE[source]
Bases:
object
Inject a single bit-level error into the SerDes where injection has been enabled.
- class PP_TXLANECONFIG[source]
Bases:
object
The virtual lane index and artificial skew for data transmitted on a specified physical lane.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- skew
integer, the inserted skew on the lane, in bit units.
- virt_lane_index
integer, virtual lane index.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- skew
integer, the inserted skew on the lane, in bit units.
- virt_lane_index
integer, virtual lane index.
- class PP_TXLANEINJECT[source]
Bases:
object
Inject a particular kind of CAUI error into a specific physical lane.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- inject_error_type
coded byte, specifying what kind of error to inject.
- set(inject_error_type)[source]
Inject a particular kind of CAUI error into a specific physical lane.
- Parameters:
inject_error_type (InjectErrorType) – specifying what kind of error to inject
- set_alignerror()
Inject Alignment error into a specific physical lane.
- set_bip8error()
Inject BIP8 error into a specific physical lane.
- set_headererror()
Inject Header error into a specific physical lane.
- class PP_TXLASERPOWER[source]
Bases:
object
Reading of the optical power level of the transmission signal. There is one value for each laser/wavelength, and the number of these depends on the kind of CFP transceiver used. The list is empty if the CFP transceiver does not support optical power read-out.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- nanowatts
list of integers, received signal level, in nanowatts. 0, when no signal.
- class PP_TXPRBSCONFIG[source]
Bases:
object
The PRBS configuration for a particular SerDes. When PRBS is enabled for any SerDes then the overall link is compromised and drops out of sync.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- error_on_off
code byte, whether bit-level errors are injected into this SerDes.
- prbs_on_off
code byte, whether this SerDes is transmitting PRBS data.
- prbs_seed
integer, PRBS seed value.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- error_on_off
code byte, whether bit-level errors are injected into this SerDes.
- prbs_on_off
code byte, whether this SerDes is transmitting PRBS data.
- prbs_seed
integer, PRBS seed value.
- get()[source]
Get the PRBS configuration for a particular SerDes. When PRBS is enabled for any SerDes then the overall link is compromised and drops out of sync.
- Returns:
the PRBS configuration for a particular SerDes
- Return type:
- set(prbs_seed, prbs_on_off, error_on_off)[source]
Set the PRBS configuration for a particular SerDes.
- Parameters:
prbs_seed (int) – not used, set to 0.
prbs_on_off (PRBSOnOff) – whether this SerDes is transmitting PRBS data.
error_on_off (ErrorOnOff) – whether bit-level errors are injected into this SerDes
- class PP_TXPRBSTYPE[source]
Bases:
object
The TX PRBS type used when the interface is in PRBS mode.
- class GetDataAttr[source]
Bases:
ResponseBodyStruct
- invert
coded byte, PRBS invert state.
- prbs_inserted_type
coded byte, PRBS inserted type.
- prbs_pattern
coded byte, PRBS pattern.
- class SetDataAttr[source]
Bases:
RequestBodyStruct
- invert
coded byte, PRBS invert state.
- prbs_inserted_type
coded byte, PRBS inserted type.
- prbs_pattern
coded byte, PRBS pattern.
- get()[source]
Get the TX PRBS type used when the interface is in PRBS mode.
- Returns:
PRBS inserted type, PRBS pattern, and PRBS invert state.
- Return type:
- set(prbs_inserted_type, prbs_pattern, invert)[source]
Set the TX PRBS type used when the interface is in PRBS mode.
- Parameters:
prbs_inserted_type (PRBSInsertedType) – PRBS inserted type
prbs_pattern (PRBSPattern) – PRBS pattern
invert (PRBSInvertState) – PRBS invert state