pl1_commands module

This module contains the advanced layer 1 classes that mainly deal auto-negotiation and link training on a Freya port.

Port Layer 1 Commands

class PL1_ANLT[source]

Bases: object

ANLT action

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

disable_anlt()

Disable ANLT.

enable_an_lt_auto()

Enable Autoneg + Link Training (auto).

enable_an_lt_interactive()

Enable Autoneg + Link Training (interactive).

enable_an_only()

Enable Autoneg only.

enable_lt_auto_only()

Enable Link Training (auto) only.

enable_lt_interactive_only()

Enable Link Training (interactive) only.

class PL1_AUTONEGINFO[source]

Bases: object

Get advanced auto-negotiation statistics. Statistics are split into a number of pages.

class GetDataAttr[source]

Bases: ResponseBodyStruct

duration_us

duration of the auto-negotiation in microseconds, from autoneg is enabled on the port to the negotiation is finished.

negotiation_fec_fail_count

number of negotiation FEC failures.

negotiation_hcd_fail_count

number of negotiation HCD (Highest Common Denominator) failures.

negotiation_loss_of_sync_count

number of negotiation Loss of Sync failures.

negotiation_success_count

number of negotiation successes.

negotiation_timeout_count

number of negotiation timeouts.

received number of Link Code Words (Base Pages).

rx_next_page_message_count

received number of Next Pages - Message Pages.

rx_next_page_unformatted_count

received number of Nex Pages - Unformatted Pages.

transmitted number of Link Code Words (Base Pages).

tx_next_page_message_count

transmitted number of Next Pages - Message Pages.

tx_next_page_unformatted_count

transmitted number of Nex Pages - Unformatted Pages.

get()[source]

Get L1 auto-negotiation information. Information is split into a number of pages.

Returns:

L1 auto-negotiation information

Return type:

PL1_AUTONEGINFO.GetDataAttr

class PL1_AUTONEG_ABILITIES[source]

Bases: object

Return the supported technology abilities, FEC abilities, and pause abilities of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

fec_modes_supported

Supported FEC modes by the port. This returns a value in Hex of the format HH (8 bits). Each bit corresponds to FEC mode as defined in AutoNegFECAbility. A bit of 1 means the corresponding FEC mode is supported by the port.

pause_modes_supported

Pause abilities supported by the port. This returns a value in Hex of the format HH (8 bits). Each bit corresponds to pause mode as defined in AutoNegPauseAbility. A bit of 1 means the corresponding FEC mode is supported by the port.

tech_abilities_supported

Supported technology abilities by the port. This returns a value in Hex of the format HHHHHHHH (64 bits). Each bit corresponds to technology ability as defined in AutoNegTecAbility. A bit of 1 means the corresponding technology ability is supported by the port.

get()[source]

Get the supported technology abilities, FEC abilities, and pause abilities of the port.

Returns:

The supported abilities

Return type:

Token[GetDataAttr]

class PL1_AUTONEG_CONFIG[source]

Bases: object

Auto-negotiation configuration for Freya

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

get()[source]

Get the advertised technology abilities, FEC abilities, and pause abilities of the port.

Returns:

The advertised abilities

Return type:

PL1_AUTONEG_CONFIG.GetDataAttr

set(tech_abilities, fec_abilities, pause_mode)[source]

Set the advertised technology abilities, FEC abilities, and pause abilities of the port.

Parameters:
  • tech_abilities (Hex) – Advertised technology abilities bitmask

  • fec_abilities (Hex) – Advertised FEC abilities bitmask

  • pause_mode (Hex) – Advertised pause mode bitmask

class PL1_AUTONEG_STATUS[source]

Bases: object

Returns received technology abilities, FEC abilities, pause abilities, HCD technology ability, FEC mode result, and pause mode result.

class GetDataAttr[source]

Bases: ResponseBodyStruct

autoneg_state

Autoneg status

fec_mode_result

FEC mode negotiation result

mode

Autoneg mode

pause_mode_result

Pause mode negotiation result

received_fec_abilities

Received FEC capabilities bitmask from the remote port

To parse the bitmask, refer to the AutoNegFECAbility enum IntFlag.

received_pause_mode

Received pause capabilities bitmask from the remote port

To parse the bitmask, refer to the AutoNegPauseAbility enum IntFlag.

received_tech_abilities

Received technology abilities bitmask from the remote port

To parse the bitmask, refer to the AutoNegTecAbility enum IntFlag.

tech_ability_hcd_status

HCD technology ability negotiation status

tech_ability_hcd_value

HCD technology ability negotiation result

get()[source]

Get the autonegotiation status.

Returns:

The autonegotiation status

Return type:

PL1_AUTONEG_STATUS.GetDataAttr

class PL1_CDRLOL_STATUS[source]

Bases: object

Returns the current and the latched CDR Loss of Lock (LOL) status of the specified SerDes lane.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current CDR Loss of Lock (LOL) status. True indicates a current LOL condition.

latched

Latched CDR Loss of Lock (LOL) status. True indicates a LOL condition has occurred.

get()[source]

Get the current and latched CDR Loss of Lock (LOL) status of the specified SerDes lane.

Returns:

Current and latched CDR Loss of Lock (LOL) status of the specified SerDes lane

Return type:

PL1_CDRLOL_STATUS.GetDataAttr

class PL1_CFG_TMP[source]

Bases: object

Warning

Still in beta mode. Subjected to changes

Configure some L1 parameters.

class GetDataAttr[source]

Bases: ResponseBodyStruct

Data structure of the get response.

class SetDataAttr[source]

Bases: RequestBodyStruct

Data structure of the set action.

get()[source]

Get various L1 parameters

Returns:

various L1 parameters

Return type:

PL1_CFG_TMP.GetDataAttr

set(values)[source]

Get various L1 parameters

Parameters:

values (List[int]) – L1 parameters

class PL1_CLEAR[source]

Bases: object

Clear Layer 1 counters in the specified direction(s).

class SetDataAttr[source]

Bases: RequestBodyStruct

direction

Direction of counters to clear.

set(direction)[source]

Clear Layer 1 counters in the specified direction(s).

Parameters:

direction (ClearStatsDirection) – Direction of counters to clear

set_all()

Clear all counters

set_none()

Clear no counters

set_rx()

Clear RX counters

set_tx()

Clear TX counters

class PL1_CTRL[source]

Bases: object

The Signal Integrity feature offers the equivalent of an Equivalent Time oscilloscope trace of the RX PAM4 signal (later, also PAM2). The trace is done with the A/D converter in the GTM receiver also doing the data sampling / CDR function, i.e. the trace is taken after the RX equalizer.

The HW characteristics of the Versal GTM used in Freya are: Trace length = 2000 samples, sample resolution = 7 bits 2’s complement, i.e. range = -64..63.

Using the sampled eye scan feature through CLI involves two steps:

Trigger the acquisition of a trace (PL1_CTRL)

Retrieve the trace data (PL1_GET_DATA)

This command is a generic control function related to Layer 1 / SERDES. For now, only used for signal integrity scan.

class SetDataAttr[source]

Bases: RequestBodyStruct

opcode

Operation code

set(opcode)[source]

Set the control command

Parameters:

opcode (Layer1Opcode) – operation code

class PL1_CWE_BIT_ERR_MASK[source]

Bases: object

Configure the bit error mask for the errored symbols.

class GetDataAttr[source]

Bases: ResponseBodyStruct

bitmask

bit error mask for the errored symbols, big endian, only 10 bits are effective.

mode

bit error mask mode.

class SetDataAttr[source]

Bases: RequestBodyStruct

bitmask

bit error mask for the errored symbols, big endian, only 10 bits are effective.

mode

bit error mask mode.

get()[source]

Get the bit error mask configuration.

Returns:

The bit error mask mode and bitmask

Return type:

PL1_CWE_BIT_ERR_MASK.GetDataAttr

set(mode, bitmask)[source]

Set the bit error mask configuration.

Parameters:
  • mode (FecCodewordBitErrorMaskMode) – Bit error mask mode

  • bitmask (Hex) – Bit error mask for the errored symbols, big endian, only 10 bits are effective

set_all_bits()

Set all bits to errored bits in an errored symbol.

set_no_bits()

Set no bits to errored bits in an errored symbol.

class PL1_CWE_CONTROL[source]

Bases: object

Control the FEC codeword error injection.

class GetDataAttr[source]

Bases: ResponseBodyStruct

action

Control action for FEC codeword error injection

class SetDataAttr[source]

Bases: RequestBodyStruct

action

Control action for FEC codeword error injection

get()[source]

Get the current control action for FEC codeword error injection.

Returns:

The current control action for FEC codeword error injection

Return type:

PL1_CWE_CONTROL.GetDataAttr

set(action)[source]

Set the control action for FEC codeword error injection.

Parameters:

action (StartOrStop) – Control action for FEC codeword error injection

Returns:

A token indicating the completion of the set operation

set_start()

Start FEC codeword error injection.

set_stop()

Stop FEC codeword error injection.

class PL1_CWE_CYCLE[source]

Bases: object

Configure the FEC codeword error injection cycle.

class GetDataAttr[source]

Bases: ResponseBodyStruct

cycle_len

The number of FEC codewords in the cycle, must be larger than 0 and an even number.

error_len

The number of consecutive errored FEC codewords in a cycle, must not be larger than cycle_len

loop

Loop count of the FEC codeword error injection cycle. <loop> == 0 means continuous.

class SetDataAttr[source]

Bases: RequestBodyStruct

cycle_len

The number of FEC codewords in the cycle, must be larger than 0 and an even number.

error_len

The number of consecutive errored FEC codewords in a cycle, must not be larger than cycle_len

loop

Loop count of the FEC codeword error injection cycle. <loop> == 0 means continuous.

get()[source]

Get the FEC codeword error injection cycle configuration.

Returns:

The FEC codeword error injection cycle configuration

Return type:

PL1_CWE_CYCLE.GetDataAttr

set(loop, cycle_len, error_len)[source]

Set the FEC codeword error injection cycle configuration.

Parameters:
  • loop (int) – Loop count of the FEC codeword error injection cycle. <loop> == 0 means continuous.

  • cycle_len (int) – The number of FEC codewords in the cycle, must be larger than 0 and an even number.

  • error_len (int) – The number of consecutive errored FEC codewords in a cycle, must not be larger than cycle_len

set_continuous(cycle_len, error_len)

Set continuous loop

class PL1_CWE_ERR_SYM_INDICES[source]

Bases: object

Configure the positions of the errored symbols in errored codewords.

class GetDataAttr[source]

Bases: ResponseBodyStruct

error_sym_indices

the indices of the position of the errored symbols.

  • An empty list means there is no errored symbol in the errored codewords.

  • The indices in the list must not duplicate.

  • The indices in the list do not necessarily need to be sorted.

  • The maximum value of an index must not be larger than what the FEC schema allows, e.g. an index must not be larger than 543 for RS(544, 514).

class SetDataAttr[source]

Bases: RequestBodyStruct

error_sym_indices

the indices of the position of the errored symbols.

  • An empty list means there is no errored symbol in the errored codewords.

  • The indices in the list must not duplicate.

  • The indices in the list do not necessarily need to be sorted.

  • The maximum value of an index must not be larger than what the FEC schema allows, e.g. an index must not be larger than 543 for RS(544, 514).

get()[source]

Get the positions of the errored symbols in errored codewords.

Returns:

The positions of the errored symbols in errored codewords

Return type:

PL1_CWE_ERR_SYM_INDICES.GetDataAttr

set(error_sym_indices)[source]

Set the positions of the errored symbols in errored codewords.

Parameters:

error_sym_indices (List[int]) – The positions of the errored symbols in errored codewords

class PL1_CWE_FEC_ENGINE[source]

Bases: object

Configure which FEC engines to use.

class GetDataAttr[source]

Bases: ResponseBodyStruct

bitmask

big endian.

  • the highest bit corresponds to FEC engine 4 (0x08)

  • the lowest bit corresponds to FEC engine 1 (0x01)

class SetDataAttr[source]

Bases: RequestBodyStruct

bitmask

big endian.

  • the highest bit corresponds to FEC engine 4 (0x08)

  • the lowest bit corresponds to FEC engine 1 (0x01)

get()[source]

Get which FEC engines are used.

Returns:

The FEC engines bitmask

Return type:

PL1_CWE_FEC_ENGINE.GetDataAttr

set(bitmask)[source]

Set which FEC engines to use.

Parameters:

bitmask (Hex) – FEC engines bitmask

set_all_engines()

Use all FEC engines

class PL1_CWE_FEC_STATS[source]

Bases: object

FEC error injection statistics.

class GetDataAttr[source]

Bases: ResponseBodyStruct

total_correctable_cw

Total injected correctable codewords.

total_cw

Total codewords transmitted.

total_error_free_cw

Total error-free codewords transmitted.

total_symbol_error

Total injected symbol errors.

total_uncorrectable_cw

Total uncorrectable codewords transmitted.

get()[source]

Get FEC error injection statistics.

Returns:

FEC error injection statistics

Return type:

PL1_CWE_FEC_STATS.GetDataAttr

class PL1_CWE_FEC_STATS_CLEAR[source]

Bases: object

Clear FEC codeword injection TX stats

class SetDataAttr[source]

Bases: RequestBodyStruct

set()[source]

Clear FEC codeword injection TX stats

class PL1_DEGSER_STATUS[source]

Bases: object

This command retrieves the current and latched Degraded SER status of the port.

A Degraded SER (Symbol Error Rate) Alarm indicates that the pre-FEC (Forward Error Correction) SER has exceeded a predefined threshold, signaling potential signal degradation.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current Degraded SER status. True indicates a current Degraded SER condition.

latched

Latched Degraded SER status. True indicates a Degraded SER condition has occurred.

get()[source]

Get the current and latched Degraded SER status of the port.

Returns:

Current and latched Degraded SER status of the port

Return type:

PL1_DEGSER_STATUS.GetDataAttr

class PL1_DEGSER_THRESH[source]

Bases: object

This command configures the thresholds for the Degraded SER Alarm.

A Degraded SER (Symbol Error Rate) Alarm indicates that the pre-FEC (Forward Error Correction) SER has exceeded a predefined threshold, signaling potential signal degradation.

Degraded SER is signaled when more than act_thresh RS-FEC symbol errors are detected within a contiguous block of degrade_interval RS-FEC codewords. It is no longer signaled when the error count falls below deact_thresh within a similar degrade_interval.

An uncorrectable RS-FEC codeword is counted as 16 erroneous symbols to account for the worst-case scenario of complete codeword failure.

Threshold changes take effect immediately. The activation threshold must be strictly greater than the deactivation threshold.

The degrade_interval parameter must be an even number and a multiple of the number of PCS flows as follows:

  • 100G: 2 flows (1 PCS flow, but must be even)

  • 200G/400G: 2 flows (2 PCS flows)

  • 800G/1.6T: 4 flows (4 PCS flows)

class GetDataAttr[source]

Bases: ResponseBodyStruct

act_thresh

Number of RS-FEC symbol errors in the specified degrade_interval to activate Degraded SER Alarm. Valid range is 1 to 65535. act_thresh must be strictly greater than deact_thresh

deact_thresh

Number of RS-FEC symbol errors in the specified degrade_interval to deactivate Degraded SER Alarm. Valid range is 0 to 65534. deact_thresh must be strictly less than act_thresh.

degrade_interval

Number of RS-FEC codewords over which to monitor for symbol errors. Valid range is 2 to 65534. Must be an even number and a multiple of the number of PCS flows.

class SetDataAttr[source]

Bases: RequestBodyStruct

act_thresh

Number of RS-FEC symbol errors in the specified degrade_interval to activate Degraded SER Alarm. Valid range is 1 to 65535. act_thresh must be strictly greater than deact_thresh

deact_thresh

Number of RS-FEC symbol errors in the specified degrade_interval to deactivate Degraded SER Alarm. Valid range is 0 to 65534. deact_thresh must be strictly less than act_thresh.

degrade_interval

Number of RS-FEC codewords over which to monitor for symbol errors. Valid range is 2 to 65534. Must be an even number and a multiple of the number of PCS flows.

get()[source]

Get the thresholds for the Degraded SER Alarm.

Returns:

Thresholds for the Degraded SER Alarm

Return type:

PL1_DEGSER_THRESH.GetDataAttr

set(act_thresh, deact_thresh, degrade_interval)[source]

Set the thresholds for the Degraded SER Alarm.

Parameters:
  • act_thresh (int) – Number of RS-FEC symbol errors in the specified degrade_interval to activate Degraded SER Alarm.

  • deact_thresh (int) – Number of RS-FEC symbol errors in the specified degrade_interval to deactivate Degraded SER Alarm.

  • degrade_interval (int) – Number of RS-FEC codewords over which to monitor for symbol errors.

class PL1_GET_DATA[source]

Bases: object

The Signal Integrity feature offers the equivalent of an Equivalent Time oscilloscope trace of the RX PAM4 signal (later, also PAM2). The trace is done with the A/D converter in the GTM receiver also doing the data sampling / CDR function, i.e. the trace is taken after the RX equalizer.

The HW characteristics of the Versal GTM used in Freya are: Trace length = 2000 samples, sample resolution = 7 bits 2’s complement, i.e. range = -64..63.

Using the sampled eye scan feature through CLI involves two steps:

Trigger the acquisition of a trace (PL1_CTRL)

Retrieve the trace data (PL1_GET_DATA)

This command is a generic function to retrieve dynamic data related to Layer 1 / SERDES. For now, only used for signal integrity scan.

For func==0, sampled eye scan:

  • result==0: No data available.

    “No data available” means that either a scan was never started, an acquisition was started and in progress, or the acquired data has become too old (e.g. older than 500 ms). The acquisition time for a trace is in the very low ms-range. If result==0, sweep_no and age_us are dummy (=0), and no additional data are returned.

  • result==1: Data returned. In that case, the rest of the parameters apply:

    sweep_no: per-SERDES trace acquisition counter: 1,2,3… Each trace can be returned multiple times, to different users, within its lifetime. A new trace acquisition is triggered with the PL1_CTRL command.

    age_us: The “age” of the trace data in microseconds, i.e. the time from data acquisition from hardware was completed until the time the command reply data is generated.

    value: The rest of the reply is a set of 16 bit signed 2-complement sample values. With present hardware, the range of each sample is -64..63. In XMP scripting, each sample value is represented as two bytes, msb first.

    With present implementation, 2006 sample values (4012 bytes) are returned.

    The first 6 sample values are so-called “sampled levels”: <p1> <p2> < p3> <m1> <m2> <m3>

class GetDataAttr[source]

Bases: ResponseBodyStruct

age_us

the age of the trace data in microseconds, i.e. the time from data acquisition from hardware was completed until the time the command reply data is generated.

result

Data availability.

sweep_no

per-SERDES trace acquisition counter.

value

a set of 16 bit signed 2-complement sample values. With present hardware, the range of each sample is -64..63. In CLI scripting, each sample value is represented as two bytes, msb first.

get()[source]

Get SIV sample data.

Returns:

SIV sample data

Return type:

PL1_GET_DATA.GetDataAttr

class PL1_HIBER_STATUS[source]

Bases: object

Returns the current and the latched High BER status of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current High BER status. True indicates a current High BER condition.

latched

Latched High BER status. True indicates a High BER condition has occurred.

get()[source]

Get the current and latched High BER status of the port.

Returns:

Current and latched High BER status of the port

Return type:

PL1_HIBER_STATUS.GetDataAttr

class PL1_HISER_ALARM[source]

Bases: object

Controls the High SER Alarm state of the port. When enabled, the port will signal a High SER Alarm if 5560 RS-FEC symbol errors are detected in a contiguous block of 8192 non-overlapping RS-FEC codewords (Use PL1_HISER_STATUS to retrieve the status). When disabled, the High SER Alarm will not be signaled regardless of the symbol error rate.

class GetDataAttr[source]

Bases: ResponseBodyStruct

alarm_state

Enables or disables the High SER Alarm on the port. ON enables the alarm, OFF disables it.

class SetDataAttr[source]

Bases: RequestBodyStruct

alarm_state

Enables or disables the High SER Alarm on the port. ON enables the alarm, OFF disables it.

get()[source]

Get the High SER Alarm state of the port.

Returns:

High SER Alarm state of the port

Return type:

PL1_HISER_ALARM.GetDataAttr

set(alarm_state)[source]

Set the High SER Alarm state of the port.

Parameters:

alarm_state (OnOff) – Enables or disables the High SER Alarm on the port. ON enables the alarm, OFF disables it.

set_off()

Set the High SER Alarm state of the port to OFF, disabling the alarm.

set_on()

Set the High SER Alarm state of the port to ON, enabling the alarm.

class PL1_HISER_STATUS[source]

Bases: object

Returns the current and latched High SER status of the port, when High SER Alarm, controlled by PL1_HISER_ALARM command, is enabled. If High SER Alarm is disabled, both status will be False.

High SER status is set if 5560 RS-FEC symbol errors are detected in a contiguous block of 8192 non-overlapping RS-FEC codewords.

class GetDataAttr[source]

Bases: ResponseBodyStruct

alarm_state

Current state of the High SER Alarm of the port. ON indicates that High SER Alarm is enabled, OFF indicates it is disabled. The same alarm state can also be retrieved using PL1_HISER_ALARM.

current

Current High SER status. True indicates a current High SER condition.

latched

Latched High SER status. True indicates a High SER condition has occurred.

get()[source]

Get the current and latched High SER status of the port.

Returns:

Current and latched High SER status of the port

Return type:

PL1_HISER_STATUS.GetDataAttr

class PL1_INJECT_ERR[source]

Bases: object

Inject an error on the Tx port immediately when called.

class SetDataAttr[source]

Bases: RequestBodyStruct

type

Type of error to inject.

set(type)[source]

Inject an error on the Tx port immediately when called.

Parameters:

type (PcsErrorInjectionType) – Type of error to inject

class PL1_INJECT_ERR_CNT[source]

Bases: object

Returns the cumulative number of Tx Layer-1 errors since last clearance.

class GetDataAttr[source]

Bases: ResponseBodyStruct

err_cw_count

Number of erroneous Tx 64b/66b codewords since the last clearance.

hi_ser_count

Number of cumulated Tx High SER events since the last clearance.

itb_count

Number of cumulated Tx Invalid 256b/257b Transcode Blocks since the last clearance.

loa_count

Number of cumulated Tx Loss of Alignment (LOA) events since the last clearance.

get()[source]

Returns the cumulative number of Tx Layer-1 errors since last clearance.

Returns:

Cumulative number of Tx Layer-1 errors since last clearance

Return type:

PL1_INJECT_ERR_CNT.GetDataAttr

class PL1_LINKDOWN_STATUS[source]

Bases: object

Returns the current and the latched Link Down status of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current Link Down status. True indicates a current Link Down condition.

latched

Latched Link Down status. True indicates a Link Down condition has occurred.

get()[source]

Get the current and latched Link Down status of the port.

Returns:

Current and latched Link Down status of the port

Return type:

PL1_LINKDOWN_STATUS.GetDataAttr

class PL1_LINKTRAININFO[source]

Bases: object

Get L1 link training information. Information is per Serdes and split into a number of pages.

class GetDataAttr[source]

Bases: ResponseBodyStruct

duration_us

duration of the auto-negotiation process in microseconds, from autoneg is enabled on the port to the negotiation is finished.

frame_lock

frame lock status of the local end.

lock_lost_count

number of lost locks on auto-neg.

main_current_level

c(0) current level.

main_rx_coeff_at_limit_count

c(0) received number of coefficients at limit.

main_rx_coeff_eq_limit_reached_count

c(0) received number of maximum limits of coefficient and equalization requests reached.

main_rx_coeff_not_supported_count

c(0) received number of coefficients not supported.

main_rx_decrement_req_count

c(0) received number of decrement requests.

main_rx_eq_limit_reached_count

c(0) received number of maximum limits of equalization requests reached.

main_rx_increment_req_count

c(0) received number of increment requests.

main_tx_coeff_at_limit_count

c(0) transmitted number of coefficients at limit.

main_tx_coeff_eq_limit_reached_count

c(0) transmitted number of maximum limits of coefficient and equalization requests reached.

main_tx_coeff_not_supported_count

c(0) transmitted number of coefficients not supported.

main_tx_decrement_req_count

c(0) transmitted number of decrement requests.

main_tx_eq_limit_reached_count

c(0) transmitted number of maximum limits of equalization requests reached.

main_tx_increment_req_count

c(0) transmitted number of increment requests.

post1_current_level

c(1) current level.

post1_rx_coeff_at_limit_count

c(1) received number of coefficients at limit.

post1_rx_coeff_eq_limit_reached_count

c(1) received number of maximum limits of coefficient and equalization requests reached.

post1_rx_coeff_not_supported_count

c(1) received number of coefficients not supported.

post1_rx_decrement_req_count

c(1) received number of decrement requests.

post1_rx_eq_limit_reached_count

c(1) received number of maximum limits of equalization requests reached.

post1_rx_increment_req_count

c(1) received number of increment requests.

post1_tx_coeff_at_limit_count

c(1) transmitted number of coefficients at limit.

post1_tx_coeff_eq_limit_reached_count

c(1) transmitted number of maximum limits of coefficient and equalization requests reached.

post1_tx_coeff_not_supported_count

c(1) transmitted number of coefficients not supported.

post1_tx_decrement_req_count

c(1) transmitted number of decrement requests.

post1_tx_eq_limit_reached_count

c(1) transmitted number of maximum limits of equalization requests reached.

post1_tx_increment_req_count

c(1) transmitted number of increment requests.

prbs_total_bits_high

PRBS total bits (most significant 32-bit).

prbs_total_bits_low

PRBS total bits (least significant 32-bit).

prbs_total_error_bits_high

PRBS total error bits (most significant 32-bit, only bit 15-0 should be used).

prbs_total_error_bits_low

PRBS total error bits (least significant 32-bit).

pre1_current_level

c(-1) current level.

pre1_rx_coeff_at_limit_count

c(-1) received number of coefficients at limit.

pre1_rx_coeff_eq_limit_reached_count

c(-1) received number of maximum limits of coefficient and equalization requests reached.

pre1_rx_coeff_not_supported_count

c(-1) received number of coefficients not supported.

pre1_rx_decrement_req_count

c(-1) received number of decrement requests.

pre1_rx_eq_limit_reached_count

c(-1) received number of maximum limits of equalization requests reached.

pre1_rx_increment_req_count

c(-1) received number of increment requests.

pre1_tx_coeff_at_limit_count

c(-1) transmitted number of coefficients at limit.

pre1_tx_coeff_eq_limit_reached_count

c(-1) transmitted number of maximum limits of coefficient and equalization requests reached.

pre1_tx_coeff_not_supported_count

c(-1) transmitted number of coefficients not supported.

pre1_tx_decrement_req_count

c(-1) transmitted number of decrement requests.

pre1_tx_eq_limit_reached_count

c(-1) transmitted number of maximum limits of equalization requests reached.

pre1_tx_increment_req_count

c(-1) transmitted number of increment requests.

pre2_current_level

c(-2) current level.

pre2_rx_coeff_at_limit_count

c(-2) received number of coefficients at limit.

pre2_rx_coeff_eq_limit_reached_count

c(-2) received number of maximum limits of coefficient and equalization requests reached.

pre2_rx_coeff_not_supported_count

c(-2) received number of coefficients not supported.

pre2_rx_decrement_req_count

c(-2) received number of decrement requests.

pre2_rx_eq_limit_reached_count

c(-2) received number of maximum limits of equalization requests reached.

pre2_rx_increment_req_count

c(-2) received number of increment requests.

pre2_tx_coeff_at_limit_count

c(-2) transmitted number of coefficients at limit.

pre2_tx_coeff_eq_limit_reached_count

c(-2) transmitted number of maximum limits of coefficient and equalization requests reached.

pre2_tx_coeff_not_supported_count

c(-2) transmitted number of coefficients not supported.

pre2_tx_decrement_req_count

c(-2) transmitted number of decrement requests.

pre2_tx_eq_limit_reached_count

c(-2) transmitted number of maximum limits of equalization requests reached.

pre2_tx_increment_req_count

c(-2) transmitted number of increment requests.

pre3_current_level

c(-3) current level.

pre3_rx_coeff_at_limit_count

c(-3) received number of coefficients at limit.

pre3_rx_coeff_eq_limit_reached_count

c(-3) received number of maximum limits of coefficient and equalization requests reached.

pre3_rx_coeff_not_supported_count

c(-3) received number of coefficients not supported.

pre3_rx_decrement_req_count

c(-3) received number of decrement requests.

pre3_rx_eq_limit_reached_count

c(-3) received number of maximum limits of equalization requests reached.

pre3_rx_increment_req_count

c(-3) received number of increment requests.

pre3_tx_coeff_at_limit_count

c(-3) transmitted number of coefficients at limit.

pre3_tx_coeff_eq_limit_reached_count

c(-3) transmitted number of maximum limits of coefficient and equalization requests reached.

pre3_tx_coeff_not_supported_count

c(-3) transmitted number of coefficients not supported.

pre3_tx_decrement_req_count

c(-3) transmitted number of decrement requests.

pre3_tx_eq_limit_reached_count

c(-3) transmitted number of maximum limits of equalization requests reached.

pre3_tx_increment_req_count

c(-3) transmitted number of increment requests.

remote_frame_lock

frame lock status of the remote end.

get()[source]

Get L1 link training information. Information is per Serdes and split into a number of pages.

Returns:

L1 link training information

Return type:

PL1_LINKTRAININFO.GetDataAttr

class PL1_LINKTRAIN_CMD[source]

Bases: object

Warning

Still in beta mode. Subjected to changes

Link training RPC. Issue link training commands on a given serdes and poll for status

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

get()[source]

Get status of current command

Returns:

4 bytes: command, arg, result, flags

Return type:

PL1_LINKTRAIN_CMD.GetDataAttr

set(cmd, arg)[source]

Issue a link train command (cmd, arg)

class PL1_LINKTRAIN_CONFIG[source]

Bases: object

Per-port link training settings

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

get()[source]

Get the current per-port link training settings.

Returns:

The current per-port link training settings

Return type:

PL1_LINKTRAIN_CONFIG.GetDataAttr

set(oos_preset, timeout_mode)[source]

Set the current per-port link training settings.

Parameters:
Returns:

A token indicating the completion of the set operation

class PL1_LINKTRAIN_STATUS[source]

Bases: object

Per-lane link training status

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

Bases: object

Returns the current and the latched LOA status of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current LOA status. True indicates a current LOA condition.

latched

Latched LOA status. True indicates a LOA condition has occurred.

get()[source]

Get the current and latched LOA status of the port.

Returns:

Current and latched LOA status of the port

Return type:

PL1_LOA_STATUS.GetDataAttr

class PL1_LOG[source]

Bases: object

Return a log line of either AN or LT for the given Serdes. The log string line contains the latest 100 lines.

class GetDataAttr[source]

Bases: ResponseBodyStruct

log_string

ANLT log string

get()[source]

Return a log line of ANLT of all serdes on a port. (latest 100 lines)

Returns:

a log line from AN/LT for the given Serdes.

Return type:

PL1_LOG.GetDataAttr

class PL1_LT_PHYTXEQ_RANGE[source]

Bases: object

Configure the lower and the upper bound of transmit equalizer (native value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

class GetDataAttr[source]

Bases: ResponseBodyStruct

max

integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.)

min

integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

response

byte, the response when either of the bounds is triggered. Default is AUTO.

class SetDataAttr[source]

Bases: RequestBodyStruct

max

integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.)

min

integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

response

byte, the response when either of the bounds is triggered. Default is AUTO.

get()[source]

Get the lower and the upper bound of transmit equalizer (native value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

Returns:

lower and upper bound of transmit equalizer (native value) and response mode

Return type:

PL1_LT_PHYTXEQ_RANGE.GetDataAttr

set(response, min, max)[source]

Set the lower and the upper bound of transmit equalizer (native value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

Parameters:
  • response (FreyaLinkTrainingRangeResponse) – byte, the response when either of the bounds is triggered. Default is AUTO.

  • min (int) –

    integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

    • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

    • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

  • max (int) –

    integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.

    • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

    • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

class PL1_LT_PHYTXEQ_RANGE_COEFF[source]

Bases: object

Configure the lower and the upper bound of transmit equalizer (IEEE coefficient value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

Whenever <response> == AUTO (the default), min and max will have their default values, which can be read with “get”. Any value that attempt to set the min and max when <response> == AUTO will be ignored by the chassis.

class GetDataAttr[source]

Bases: ResponseBodyStruct

max

integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.

  • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

  • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

min

integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

  • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

  • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

response

byte, the response when either of the bounds is triggered. Default is AUTO.

class SetDataAttr[source]

Bases: RequestBodyStruct

max

integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.

  • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

  • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

min

integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

  • For <tap_index> == PRE3/PRE/POST, negative, scaled by 1E3.

  • For <tap_index> == MAIN/PRE2, positive, scaled by 1E3.

response

byte, the response when either of the bounds is triggered. Default is AUTO.

get()[source]

Get the lower and the upper bound of transmit equalizer (IEEE coefficient value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

Returns:

lower and upper bound of transmit equalizer (IEEE coefficient value) and response mode

Return type:

PL1_LT_PHYTXEQ_RANGE_COEFF.GetDataAttr

set(response, min, max)[source]

Set the lower and the upper bound of transmit equalizer (IEEE coefficient value) of the serdes, and how the serdes responds to an increment/decrement request when either bound is reached.

Parameters:
  • response (FreyaLinkTrainingRangeResponse) – byte, the response when either of the bounds is triggered. Default is AUTO.

  • min (int) – integer, the lower bound of the tap. When set, the value is ignored when <response> == AUTO.

  • max (int) – integer, the upper bound of the tap. When set, the value is ignored when <response> == AUTO.

class PL1_PCS_VARIANT[source]

Bases: object

PCS variant configuration.

class GetDataAttr[source]

Bases: ResponseBodyStruct

variant

PCS variant

class SetDataAttr[source]

Bases: RequestBodyStruct

variant

PCS variant

get()[source]

Get the PCS variant configuration.

Returns:

The PCS variant configuration

Return type:

PL1_PCS_VARIANT.GetDataAttr

set(variant)[source]

Set the PCS variant configuration.

Parameters:

variant (FreyaPCSVariant) – The PCS variant configuration to set

Returns:

A token indicating the completion of the set operation

class PL1_PHYTXEQ[source]

Bases: object

Control and monitor the equalizer settings (native values) of the on-board PHY in the transmission direction (towards the transceiver cage).

This command returns a variable number of tap values with module-dependent ordering:

  • Regular Freya: Original fixed format [pre3, pre2, pre, main, post]

  • Loki-4P and H-Freya/Edun: Variable number in N*pre, main, M*post layout [pre_n, pre_n-1, …, pre_1, main, post_1, post_2, …, post_m]

Use P_CAPABILITIES to query numtxeqtaps and numtxeqpretaps to determine the number of taps and layout.

Note

PL1_PHYTXEQ, PL1_PHYTXEQ_LEVEL, and PL1_PHYTXEQ_COEFF facilitate the configuration and retrieval of TX tap values, each offering a unique perspective. Modifications made with any of these parameters will result in updates to the read results across all of them.

class GetDataAttr[source]

Bases: ResponseBodyStruct

tap_values

list of integers, TX EQ tap values (native values). The number and layout depend on the platform:

  • Regular Freya: [pre3, pre2, pre, main, post]

  • Loki-4P and H-Freya/Edun: [pre_n, …, pre_1, main, post_1, …, post_m] where N = numtxeqpretaps and M = numtxeqtaps - numtxeqpretaps - 1

class SetDataAttr[source]

Bases: RequestBodyStruct

tap_values

list of integers, TX EQ tap values (native values). The number and layout depend on the platform:

  • Regular Freya: [pre3, pre2, pre, main, post]

  • Loki-4P and H-Freya/Edun: [pre_n, …, pre_1, main, post_1, …, post_m] where N = numtxeqpretaps and M = numtxeqtaps - numtxeqpretaps - 1

get()[source]

Get the TX equalizer settings (native values) of the on-board PHY.

The returned tap values layout depends on the platform. Query P_CAPABILITIES for numtxeqtaps and numtxeqpretaps to determine the format.

Returns:

list of TX EQ tap values (native values)

Return type:

PL1_PHYTXEQ.GetDataAttr

set(tap_values)[source]

Set the TX equalizer settings (native values) of the on-board PHY.

The tap values layout depends on the platform. Query P_CAPABILITIES for numtxeqtaps and numtxeqpretaps to determine the required format.

Parameters:

tap_values (List[int]) – list of TX EQ tap values (native values) in platform-specific order

class PL1_PHYTXEQ_COEFF[source]

Bases: object

Control and monitor the equalizer settings (IEEE coefficient values) of the on-board PHY in the transmission direction (towards the transceiver cage).

This command returns a variable number of tap values with module-dependent ordering:

  • Regular Freya: Original fixed format [pre3, pre2, pre, main, post]

  • Loki-4P and H-Freya/Edun: Variable number in N*pre, main, M*post layout

    [pre_n, pre_n-1, ..., pre_1, main, post_1, post_2, ..., post_m]

Use P_CAPABILITIES to query numtxeqtaps and numtxeqpretaps to determine the number of taps and layout.

Note

PL1_PHYTXEQ, PL1_PHYTXEQ_LEVEL, and PL1_PHYTXEQ_COEFF facilitate the configuration and retrieval of TX tap values, each offering a unique perspective. Modifications made with any of these parameters will result in updates to the read results across all of them.

The following rules apply:

  • 0.5 approx. <= main <= 1

  • -0.4 approx <= post <= 0

  • -0.4 approx <= pre <= 0

  • 0 <= pre2 <= 0.25 approx.

  • -0.25 approx <= pre3 <= 0

  • The sum of the absolute value of each coefficients must be <= 1.

  • A sum of 1 corresponds to a TX output voltage swing of 1000 mVpp approximately.

class GetDataAttr[source]

Bases: ResponseBodyStruct

tap_values

list of integers, TX EQ tap values as IEEE coefficients scaled by 1E3. The number and layout depend on the platform:

  • Regular Freya: [pre3, pre2, pre, main, post] where pre3/pre/post are negative, pre2/main are positive

  • Loki-4P and H-Freya/Edun: [pre_n, …, pre_1, main, post_1, …, post_m] where N = numtxeqpretaps and M = numtxeqtaps - numtxeqpretaps - 1

class SetDataAttr[source]

Bases: RequestBodyStruct

tap_values

list of integers, TX EQ tap values as IEEE coefficients scaled by 1E3. The number and layout depend on the platform:

  • Regular Freya: [pre3, pre2, pre, main, post] where pre3/pre/post are negative, pre2/main are positive

  • Loki-4P and H-Freya/Edun: [pre_n, …, pre_1, main, post_1, …, post_m] where N = numtxeqpretaps and M = numtxeqtaps - numtxeqpretaps - 1

get()[source]

Get the TX equalizer settings (IEEE coefficient values) of the on-board PHY.

The returned tap values layout depends on the platform. Query P_CAPABILITIES for numtxeqtaps and numtxeqpretaps to determine the format.

Returns:

list of TX EQ tap values as IEEE coefficients scaled by 1E3

Return type:

PL1_PHYTXEQ_COEFF.GetDataAttr

set(tap_values)[source]

Set the TX equalizer settings (IEEE coefficient values) of the on-board PHY.

The tap values layout depends on the platform. Query P_CAPABILITIES for numtxeqtaps and numtxeqpretaps to determine the required format.

Parameters:

tap_values (List[int]) – list of TX EQ tap values as IEEE coefficients scaled by 1E3 in platform-specific order

class PL1_PHYTXEQ_LEVEL[source]

Bases: object

Control and monitor the equalizer settings (mV/dB values) of the on-board PHY in the transmission direction (towards the transceiver cage).

This command returns a variable number of tap values with module-dependent ordering:

  • Regular Freya: Original fixed format [pre3, pre2, pre, main, post]

  • Loki-4P and H-Freya/Edun: Variable number in N*pre, main, M*post layout

    [pre_n, pre_n-1, ..., pre_1, main, post_1, post_2, ..., post_m]

Query port capabilities for numtxeqtaps and numtxeqpretaps to determine the number of taps and layout.

Note

PL1_PHYTXEQ, PL1_PHYTXEQ_LEVEL, and PL1_PHYTXEQ_COEFF facilitate the configuration and retrieval of TX tap values, each offering a unique perspective. Modifications made with any of these parameters will result in updates to the read results across all of them.

class GetDataAttr[source]

Bases: ResponseBodyStruct

tap_values

list of integers, TX EQ tap values in mV/dB. The number and layout depend on the platform:

  • Regular Freya: [pre3, pre2, pre, main, post] where pre3/pre2 in dB/10 (0-71), pre/post in dB/10 (0-187), main in mV (507-998)

  • Loki-4P and H-Freya/Edun: [pre_n, …, pre_1, main, post_1, post_2, …, post_m] where N = numtxeqpretaps and M = numtxeqtaps - numtxeqpretaps - 1

class SetDataAttr[source]

Bases: RequestBodyStruct

tap_values

list of integers, TX EQ tap values in mV/dB. The number and layout depend on the platform:

  • Regular Freya: [pre3, pre2, pre, main, post] where pre3/pre2 in dB/10 (0-71), pre/post in dB/10 (0-187), main in mV (507-998)

  • Loki-4P and H-Freya/Edun: [pre_n, …, pre_1, main, post_1, post_2, …, post_m] where N = numtxeqpretaps and M = numtxeqtaps - numtxeqpretaps - 1

get()[source]

Get the TX equalizer settings (mV/dB values) of the on-board PHY.

The returned tap values layout depends on the platform. Query P_CAPABILITIES for numtxeqtaps and numtxeqpretaps to determine the format.

Returns:

list of TX EQ tap values in mV/dB

Return type:

PL1_PHYTXEQ_LEVEL.GetDataAttr

set(tap_values)[source]

Set the TX equalizer settings (mV/dB values) of the on-board PHY.

The tap values layout depends on the platform. Query P_CAPABILITIES for numtxeqtaps and numtxeqpretaps to determine the required format.

Parameters:

tap_values (List[int]) – list of TX EQ tap values in mV/dB in platform-specific order

class PL1_PNSWAP_RX[source]

Bases: object

Enable/disable P/N polarity swap of the SerDes in the receiving direction

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

get()[source]

Get the P/N polarity swap setting of the SerDes in the receiving direction.

Returns:

P/N polarity swap setting of the SerDes in the receiving direction

Return type:

PL1_PNSWAP_RX.GetDataAttr

set(on_off)[source]

Set the P/N polarity swap setting of the SerDes in the receiving direction.

Parameters:

on_off (OnOff) – P/N polarity swap setting of the SerDes in the receiving direction.

set_off()

Set P/N polarity swap of the SerDes in the receiving direction to OFF

set_on()

Set P/N polarity swap of the SerDes in the receiving direction to ON

class PL1_PNSWAP_TX[source]

Bases: object

Enable/disable P/N polarity swap of the SerDes in the transmission direction

class GetDataAttr[source]

Bases: ResponseBodyStruct

class SetDataAttr[source]

Bases: RequestBodyStruct

get()[source]

Get the P/N polarity swap setting of the SerDes in the transmission direction.

Returns:

P/N polarity swap setting of the SerDes in the transmission direction

Return type:

PL1_PNSWAP_TX.GetDataAttr

set(on_off)[source]

Set the P/N polarity swap setting of the SerDes in the transmission direction.

Parameters:

on_off (OnOff) – P/N polarity swap setting of the SerDes in the transmission direction.

set_off()

Set P/N polarity swap of the SerDes in the transmission direction to OFF

set_on()

Set P/N polarity swap of the SerDes in the transmission direction to ON

class PL1_PRESET_CONFIG[source]

Bases: object

Configure the preset values (native values) of a serdes and the response to the received IC request.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value.

post

integer, post tap value. Default = 0 (neutral)

pre

integer, pre tap value. Default = 0 (neutral)

pre2

integer, pre2 tap value. Default = 0 (neutral)

pre3

integer, pre3 tap value. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value.

post

integer, post tap value. Default = 0 (neutral)

pre

integer, pre tap value. Default = 0 (neutral)

pre2

integer, pre2 tap value. Default = 0 (neutral)

pre3

integer, pre3 tap value. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

get()[source]

Get the preset values (native values) of a serdes and the response to the received IC request.

set(response, pre3, pre2, pre, main, post)[source]

Set the preset values (native values) of a serdes and the response to the received IC request.

class PL1_PRESET_CONFIG_COEFF[source]

Bases: object

Configure the preset values (IEEE coefficient values) of a serdes and the response to the received IC request.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value, positive, scaled by 1E3. Default = 1000

post

integer, post tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre

integer, pre tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre2

integer, pre2 tap value, positive, scaled by 1E3. Default = 0 (neutral)

pre3

integer, pre3 tap value, negative, scaled by 1E3. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value, positive, scaled by 1E3. Default = 1000

post

integer, post tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre

integer, pre tap value, negative, scaled by 1E3. Default = 0 (neutral)

pre2

integer, pre2 tap value, positive, scaled by 1E3. Default = 0 (neutral)

pre3

integer, pre3 tap value, negative, scaled by 1E3. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

get()[source]

Get the preset values (IEEE coefficient values) of a serdes and the response to the received IC request.

Returns:

Custom preset values and response

Return type:

PL1_PRESET_CONFIG_COEFF.GetDataAttr

set(response, pre3, pre2, pre, main, post)[source]

Set the preset values (IEEE coefficient values) of a serdes and the response to the received IC request.

Parameters:
  • response (FreyaPresetResponse) – How to respond to the received IC request.

  • pre3 (int) – The pre3 tap value, negative, scaled by 1E3.

  • pre2 (int) – The pre2 tap value, positive, scaled by 1E3.

  • pre (int) – The pre tap value, negative, scaled by 1E3.

  • main (int) – The main tap value, positive, scaled by 1E3.

  • post (int) – The post tap value, negative, scaled by 1E3.

class PL1_PRESET_CONFIG_LEVEL[source]

Bases: object

Configure the preset values (mV/dB values) of a serdes and the response to the received IC request.

class GetDataAttr[source]

Bases: ResponseBodyStruct

main

integer, main tap value in mV, ranges from 507 to 998.

post

integer, post tap value in dB/10, ranges from 0 to 187 Default = 0 (neutral)

pre

integer, pre tap value in dB/10, ranges from 0 to 187. Default = 0 (neutral)

pre2

integer, pre2 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

pre3

integer, pre3 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

class SetDataAttr[source]

Bases: RequestBodyStruct

main

integer, main tap value in mV, ranges from 507 to 998.

post

integer, post tap value in dB/10, ranges from 0 to 187 Default = 0 (neutral)

pre

integer, pre tap value in dB/10, ranges from 0 to 187. Default = 0 (neutral)

pre2

integer, pre2 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

pre3

integer, pre3 tap value in dB/10, ranges from 0 to 71. Default = 0 (neutral)

response

integer, byte, the response to the received IC request. Default = ACCEPT.

get()[source]

Get the preset values (mV/dB values) of a serdes and the response to the received IC request

Returns:

Custom preset values and response

Return type:

PL1_PRESET_CONFIG_LEVEL.GetDataAttr

set(response, pre3, pre2, pre, main, post)[source]

Set the preset values (mV/dB values) of a serdes and the response to the received IC request

Parameters:
  • response (FreyaPresetResponse) – How to respond to the received IC request.

  • pre3 (int) – The pre3 tap value in dB/10, ranges from 0 to 71.

  • pre2 (int) – The pre2 tap value in dB/10, ranges from 0 to 71.

  • pre (int) – The pre tap value in dB/10, ranges from 0 to 187.

  • main (int) – The main tap value in mV, ranges from 507 to 998.

  • post (int) – The post tap value in dB/10, ranges from 0 to 187.

class PL1_PRESET_RESET[source]

Bases: object

Reset the preset of the serdes to its default values.

class SetDataAttr[source]

Bases: RequestBodyStruct

set()[source]

Reset the preset of the serdes to its default values.

class PL1_RX_CNT[source]

Bases: object

Returns the cumulative number of Layer-1 errors since last clearance.

class GetDataAttr[source]

Bases: ResponseBodyStruct

err_cw_count

Number of erroneous 64b/66b codewords since the last clearance.

itb_count

Number of cumulated Invalid 256b/257b Transcode Blocks since the last clearance.

Number of cumulated Link Down events since the last clearance.

loa_count

Number of cumulated Loss of Alignment (LOA) events since the last clearance.

get()[source]

Returns the cumulative number of Layer-1 errors since last clearance.

Returns:

Cumulative number of Layer-1 errors since last clearance

Return type:

PL1_RX_CNT.GetDataAttr

class PL1_RX_DATARATE[source]

Bases: object

Return the current, minimum and maximum Rx data rates of the specified SerDes in bits per second (bps).

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current Rx data rate in bps.

maximum

Maximum Rx data rate in bps.

minimum

Minimum Rx data rate in bps.

get()[source]

Get the current, minimum and maximum Rx data rates of the specified SerDes.

Returns:

Current, minimum and maximum Rx data rates

Return type:

PL1_RX_DATARATE.GetDataAttr

class PL1_RX_FREQ[source]

Bases: object

Return the current, minimum and maximum port Rx frequency in Hz of the specified SerDes.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current port Rx frequency in Hz.

maximum

Maximum port Rx frequency in Hz.

minimum

Minimum port Rx frequency in Hz.

get()[source]

Get the current, minimum and maximum port Rx frequency in Hz of the specified SerDes.

Returns:

Current, minimum and maximum port Rx frequency in Hz

Return type:

PL1_RX_FREQ.GetDataAttr

class PL1_RX_PPM[source]

Bases: object

Return the current, minimum and maximum Rx PPM of the specified SerDes.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current Rx PPM.

maximum

Maximum Rx PPM.

minimum

Minimum Rx PPM.

get()[source]

Get the current, minimum and maximum Rx PPM of the specified SerDes.

Returns:

Current, minimum and maximum Rx PPM

Return type:

PL1_RX_PPM.GetDataAttr

class PL1_TX_DATARATE[source]

Bases: object

Return the current, minimum and maximum Tx data rates of the port in bits per second (bps).

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current Tx data rate in bps.

maximum

Maximum Tx data rate in bps.

minimum

Minimum Tx data rate in bps.

get()[source]

Get the current, minimum and maximum Tx data rates of the specified port.

Returns:

Current, minimum and maximum Tx data rates

Return type:

PL1_TX_DATARATE.GetDataAttr

class PL1_TX_FREQ[source]

Bases: object

Return the current, minimum and maximum port Tx frequency in Hz.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current port Tx frequency in Hz.

maximum

Maximum port Tx frequency in Hz.

minimum

Minimum port Tx frequency in Hz.

get()[source]

Get the current, minimum and maximum port Tx frequency in Hz.

Returns:

Current, minimum and maximum port Tx frequency in Hz

Return type:

PL1_TX_FREQ.GetDataAttr

class PL1_TX_PPM[source]

Bases: object

Return the current, minimum and maximum Tx PPM of the port.

class GetDataAttr[source]

Bases: ResponseBodyStruct

current

Current Tx PPM.

maximum

Maximum Tx PPM.

minimum

Minimum Tx PPM.

get()[source]

Get the current, minimum and maximum Tx PPM of the specified port.

Returns:

Current, minimum and maximum Tx PPM

Return type:

PL1_TX_PPM.GetDataAttr