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

get()[source]

Get the error count of each alarm, PCS Error, FEC Error, Header Error, Align Error, BIP Error, and High BER Error.

Returns:

the error count of each alarm, PCS Error, FEC Error, Header Error, Align Error, BIP Error, and High BER Error.

Return type:

PP_ALARMS_ERRORS.GetDataAttr

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:

PP_AUTONEG.GetDataAttr

set(mode, tec_ability, fec_capable, fec_requested, pause_mode)[source]

Set the auto-negotiation settings of the PHY.

Parameters:
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.

get()[source]

Get the status of auto-negotiation settings of the PHY.

Returns:

the status of auto-negotiation settings of the PHY

Return type:

PP_AUTONEGSTATUS.GetDataAttr

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

get()[source]

GEt BER estimations of an eye diagram.

Returns:

BER estimations of an eye diagram

Return type:

PP_EYEBER.GetDataAttr

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

get()[source]

Get the min and max dwell bits for an eye capture.

Returns:

the min and the max dwell bits for an eye capture

Return type:

PP_EYEDWELLBITS.GetDataAttr

set(min_dwell_bit_count, max_dwell_bit_count)[source]

Set the min and max dwell bits for an eye capture.

Parameters:
  • min_dwell_bit_count (int) – minimum dwell bits for an eye capture

  • max_dwell_bit_count (int) – maximum 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:

PP_EYEINFO.GetDataAttr

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:

PP_EYEMEASURE.GetDataAttr

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.

get()[source]

Read a single column of a measured BER eye on a 25G serdes.

Returns:

x resolution, y resolution, number of valid columns, and 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).

Return type:

PP_EYEREAD.GetDataAttr

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

get()[source]

Get the resolution used for the next BER eye-measurement.

Returns:

x resolution and y resolution

Return type:

PP_EYERESOLUTION.GetDataAttr

set(x_resolution, y_resolution)[source]

Set the resolution used for the next BER eye-measurement.

Parameters:
  • x_resolution (int) – number of columns, must be between 9 and 65 and be in the form 2^n+1

  • y_resolution (int) – 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.

class GetDataAttr[source]

Bases: ResponseBodyStruct

mode

coded byte, FEC mode for port.

class SetDataAttr[source]

Bases: RequestBodyStruct

mode

coded byte, FEC mode for port.

get()[source]

Get the FEC mode for port that supports FEC.

Returns:

the FEC mode for port

Return type:

PP_FECMODE.GetDataAttr

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:

PP_GRAYCODING.GetDataAttr

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:

PP_LINKFLAP_ENABLE.GetDataAttr

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:

PP_LINKFLAP_PARAMS.GetDataAttr

set(duration, period, repetition)[source]

Set port ‘link flap’ settings. Notice: Period must be larger than duration.

Parameters:
  • duration (int) – 0 ms - 1000 ms; increments of 1 ms; 0 = permanently link down.

  • period (int) – 10 ms - 50000 ms; number of ms - must be multiple of 10 ms.

  • repetition (int) – 1 - 64K; 0 = continuous.

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:

PP_LINKTRAIN.GetDataAttr

set(mode, pam4_frame_size, nrz_pam4_init_cond, nrz_preset, timeout_mode)[source]

Set the link training settings of the port.

Parameters:
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.

get()[source]

Get link training status of a lane of a port.

Returns:

link training status of a lane of a port, including mode, lane status, and failure type.

Return type:

PP_LINKTRAINSTATUS.GetDataAttr

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.

get()[source]

Get auto-negotiation settings of the PHY.

Returns:

FEC mode ON or OFF

Return type:

PP_PHYAUTONEG.GetDataAttr

set(fec_mode, reserved_1, reserved_2, reserved_3, reserved_4)[source]

Set auto-negotiation settings of the PHY.

Parameters:
  • fec_mode (OnOff) – FEC mode ON or OFF

  • reserved_1 (int) – reserved for future use.

  • reserved_2 (int) – reserved for future use.

  • reserved_3 (int) – reserved for future use.

  • reserved_4 (int) – reserved for future use.

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:

PP_PHYAUTOTUNE.GetDataAttr

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 SetDataAttr[source]

Bases: RequestBodyStruct

dummy

byte, reserved for future improvements, always set to 1

set(dummy)[source]

Trigger a new retuning of the receive equalizer on the PHY for one of the 25G serdes.

Parameters:

dummy (int) – reserved for future improvements, always set to 1

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

get()[source]

Get RX EQ parameters.

Returns:

auto on or off, CTLE, and reserved.

Return type:

PP_PHYRXEQ.GetDataAttr

set(auto, ctle, reserved)[source]

Set RX EQ parameters.

Parameters:
  • auto (int) – auto on or off

  • ctle (int) – Continuous Time Linear equalization

  • reserved (int) – 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

get()[source]

Get RX EQ Advanced parameters.

Returns:

mode Auto/Manual/Freeze, value.

Return type:

PP_PHYRXEQ_EXT.GetDataAttr

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

get()[source]

Get RX EQ Advanced parameters.

Returns:

mode Auto/Manual/Freeze, value.

Return type:

PP_PHYRXEQ_EXT.GetDataAttr

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.

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.

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.

get()[source]

Get low-level PHY settings.

Returns:

low-level PHY settings

Return type:

PP_PHYSETTINGS.GetDataAttr

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

get()[source]

Get the PHY signal status.

Returns:

PHY signal status

Return type:

PP_PHYSIGNALSTATUS.GetDataAttr

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:

PP_PHYTXEQ.GetDataAttr

set(pre2, pre, main, post, pre3_post2, post3)[source]

Set the equalizer settings of the on-board PHY in the transmission direction (towards the transceiver cage) on Thor and Loki modules.

Parameters:
  • pre2 (int) – pre2 emphasis

  • pre (int) – pre emphasis

  • main (int) – main emphasis

  • post (int) – post emphasis

  • pre3_post2 (int) – post2 or pre3 emphasis

  • post3 (int) – post3 emphasis

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:

PP_PMAERRPUL_ENABLE.GetDataAttr

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:

PP_PMAERRPUL_PARAMS.GetDataAttr

set(duration, period, repetition, coeff, exp)[source]

Set PMA pulse error injection settings.

Parameters:
  • duration (int) – 0 ms - 5000m s; increments of 1 ms; 0 = constant BER

  • period (int) – 10 ms - 50000 ms; number of ms - must be multiple of 10 ms

  • repetition (int) – 1 - 64K; 0 = continuous

  • coeff (int) – (0.01 < coeff < 9.99) * 100

  • exp (int) – -3 < exp < -17

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:

PP_PRBSTYPE.GetDataAttr

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:

PP_PRECODING.GetDataAttr

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

get()[source]

Get the Pre-Coding Configurations.

Returns:

Pre-Coding configurations including rx_mode, rx_endianness, tx_mode, and tx_endianness.

Return type:

PP_PRECODING.GetDataAttr

class PP_RXCLEAR[source]

Bases: object

Clear all the PCS/PMA receiver statistics for a port.

class SetDataAttr[source]

Bases: RequestBodyStruct

set()[source]

Clear all the PCS/PMA receiver statistics for a port.

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.

get()[source]

Get statistics on how many FEC blocks have been seen with a given number of symbol errors.

Returns:

stats type (currently always 0), number of values, correction stats array, and the number of received uncorrectable code words.

Return type:

PP_RXFECSTATS.GetDataAttr

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.

get()[source]

Get statistics about errors detected at the physical coding sub-layer on the data received on a specified physical lane.

Returns:

the number of header errors, the number of alignment errors, the number of bip8 errors, and corrected FEC bit errors

Return type:

PP_RXLANEERRORS.GetDataAttr

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.

get()[source]

Get whether the receiver has achieved header lock and alignment lock on the data received on a specified physical lane.

Returns:

whether this lane has achieved header lock, and whether this lane has achieved alignment lock.

Return type:

PP_RXLANELOCK.GetDataAttr

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.

get()[source]

Get the virtual lane index and actual skew for data received on a specified physical lane.

Returns:

the virtual lane index and actual skew for data received on a specified physical lane

Return type:

PP_RXLANESTATUS.GetDataAttr

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.

get()[source]

Get the readings of the optical power level of the received signal.

Returns:

received signal level, in nanowatts. 0, when no signal.

Return type:

PP_RXLASERPOWER.GetDataAttr

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.

get()[source]

Get the statistics about PRBS pattern detection on the data received on a specified SerDes.

Returns:

the number of bytes received while in PRBS lock, the number of errors detected while in PRBS lock, and whether this SerDes is in PRBS lock.

Return type:

PP_RXPRBSSTATUS.GetDataAttr

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:

PP_RXPRBSTYPE.GetDataAttr

set(prbs_inserted_type, prbs_pattern, invert, statistics_mode)[source]

Set the RX PRBS type used when the interface is in PRBS mode.

Parameters:
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:

  1. Total RX bits

  2. Total codewords

  3. Corrected codewords

  4. Uncorrectable codewords

  5. Corrected symbols

  6. 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.

  7. 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:

PP_RXTOTALSTATS.GetDataAttr

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.

get()[source]

Get the rate of continuous bit-level error injection. Errors are injected evenly across the SerDes where injection is enabled.

Returns:

the number of bits between each error. 0, no error injection

Return type:

PP_TXERRORRATE.GetDataAttr

set(rate)[source]

Set the rate of continuous bit-level error injection. Errors are injected evenly across the SerDes where injection is enabled.

Parameters:

rate (int) – 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 SetDataAttr[source]

Bases: RequestBodyStruct

set()[source]

Inject a single bit-level error into one of the SerDes where injection is 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.

get()[source]

Get the virtual lane index and artificial skew for data transmitted on a specified physical lane.

Returns:

virtual lane index, and the inserted skew on the lane, in bit units.

Return type:

PP_TXLANECONFIG.GetDataAttr

set(virt_lane_index, skew)[source]

Set the virtual lane index and artificial skew for data transmitted on a specified physical lane.

Parameters:
  • virt_lane_index (int) – virtual lane index

  • skew (int) – the inserted skew on the lane, in bit units

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.

get()[source]

Get the reading of the optical power level of the transmission signal.

Returns:

received signal level, in nanowatts. 0, when no signal.

Return type:

PP_TXLASERPOWER.GetDataAttr

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:

PP_TXPRBSCONFIG.GetDataAttr

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:

PP_TXPRBSTYPE.GetDataAttr

set(prbs_inserted_type, prbs_pattern, invert)[source]

Set the TX PRBS type used when the interface is in PRBS mode.

Parameters: