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:
objectANLT action
- 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:
objectGet 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.
- rx_link_codeword_count
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.
- tx_link_codeword_count
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.
- class PL1_AUTONEG_ABILITIES[source]
Bases:
objectReturn 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.
- class PL1_AUTONEG_CONFIG[source]
Bases:
objectAuto-negotiation configuration for Freya
- get()[source]
Get the advertised technology abilities, FEC abilities, and pause abilities of the port.
- Returns:
The advertised abilities
- Return type:
- 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:
objectReturns 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
AutoNegFECAbilityenum IntFlag.
- received_pause_mode
Received pause capabilities bitmask from the remote port
To parse the bitmask, refer to the
AutoNegPauseAbilityenum IntFlag.
- received_tech_abilities
Received technology abilities bitmask from the remote port
To parse the bitmask, refer to the
AutoNegTecAbilityenum IntFlag.
- tech_ability_hcd_status
HCD technology ability negotiation status
- tech_ability_hcd_value
HCD technology ability negotiation result
- class PL1_CDRLOL_STATUS[source]
Bases:
objectReturns 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.
- class PL1_CFG_TMP[source]
Bases:
objectWarning
Still in beta mode. Subjected to changes
Configure some L1 parameters.
- class PL1_CLEAR[source]
Bases:
objectClear Layer 1 counters in the specified direction(s).
- 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:
objectThe 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.
- set(opcode)[source]
Set the control command
- Parameters:
opcode (Layer1Opcode) – operation code
- class PL1_CWE_BIT_ERR_MASK[source]
Bases:
objectConfigure 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:
- 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:
objectControl 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:
- 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:
objectConfigure 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:
- 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:
objectConfigure 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).
- class PL1_CWE_FEC_ENGINE[source]
Bases:
objectConfigure 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)
- set_all_engines()
Use all FEC engines
- class PL1_CWE_FEC_STATS[source]
Bases:
objectFEC 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.
- class PL1_DEGSER_STATUS[source]
Bases:
objectThis 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.
- class PL1_DEGSER_THRESH[source]
Bases:
objectThis 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_threshRS-FEC symbol errors are detected within a contiguous block ofdegrade_intervalRS-FEC codewords. It is no longer signaled when the error count falls belowdeact_threshwithin 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_intervalparameter 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_intervalto activate Degraded SER Alarm. Valid range is 1 to 65535.act_threshmust be strictly greater thandeact_thresh
- deact_thresh
Number of RS-FEC symbol errors in the specified
degrade_intervalto deactivate Degraded SER Alarm. Valid range is 0 to 65534.deact_threshmust be strictly less thanact_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_intervalto activate Degraded SER Alarm. Valid range is 1 to 65535.act_threshmust be strictly greater thandeact_thresh
- deact_thresh
Number of RS-FEC symbol errors in the specified
degrade_intervalto deactivate Degraded SER Alarm. Valid range is 0 to 65534.deact_threshmust be strictly less thanact_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:
- 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_intervalto activate Degraded SER Alarm.deact_thresh (int) – Number of RS-FEC symbol errors in the specified
degrade_intervalto 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:
objectThe 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_noandage_usare 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.
- class PL1_HIBER_STATUS[source]
Bases:
objectReturns 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.
- class PL1_HISER_ALARM[source]
Bases:
objectControls 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_STATUSto 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:
- 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:
objectReturns the current and latched High SER status of the port, when High SER Alarm, controlled by
PL1_HISER_ALARMcommand, 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.
- class PL1_INJECT_ERR[source]
Bases:
objectInject an error on the Tx port immediately when called.
- 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:
objectReturns 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.
- class PL1_LINKDOWN_STATUS[source]
Bases:
objectReturns 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.
- class PL1_LINKTRAININFO[source]
Bases:
objectGet 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.
- class PL1_LINKTRAIN_CMD[source]
Bases:
objectWarning
Still in beta mode. Subjected to changes
Link training RPC. Issue link training commands on a given serdes and poll for status
- class PL1_LINKTRAIN_CONFIG[source]
Bases:
objectPer-port link training settings
- get()[source]
Get the current per-port link training settings.
- Returns:
The current per-port link training settings
- Return type:
- set(oos_preset, timeout_mode)[source]
Set the current per-port link training settings.
- Parameters:
oos_preset (FreyaOutOfSyncPreset) – Out-of-sync preset value
timeout_mode (TimeoutMode) – Timeout mode value
- Returns:
A token indicating the completion of the set operation
- class PL1_LINKTRAIN_STATUS[source]
Bases:
objectPer-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.
- class PL1_LOA_STATUS[source]
Bases:
objectReturns 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.
- class PL1_LOG[source]
Bases:
objectReturn a log line of either AN or LT for the given Serdes. The log string line contains the latest 100 lines.
- class PL1_LT_PHYTXEQ_RANGE[source]
Bases:
objectConfigure 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:
- 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:
objectConfigure 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:
- 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:
objectPCS variant configuration.
- get()[source]
Get the PCS variant configuration.
- Returns:
The PCS variant configuration
- Return type:
- 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:
objectControl 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
numtxeqtapsandnumtxeqpretapsto 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
numtxeqtapsandnumtxeqpretapsto determine the format.- Returns:
list of TX EQ tap values (native values)
- Return type:
- class PL1_PHYTXEQ_COEFF[source]
Bases:
objectControl 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
numtxeqtapsandnumtxeqpretapsto 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
numtxeqtapsandnumtxeqpretapsto determine the format.- Returns:
list of TX EQ tap values as IEEE coefficients scaled by 1E3
- Return type:
- class PL1_PHYTXEQ_LEVEL[source]
Bases:
objectControl 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
numtxeqtapsandnumtxeqpretapsto determine the number of taps and layout.Note
PL1_PHYTXEQ,PL1_PHYTXEQ_LEVEL, andPL1_PHYTXEQ_COEFFfacilitate 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
numtxeqtapsandnumtxeqpretapsto determine the format.- Returns:
list of TX EQ tap values in mV/dB
- Return type:
- class PL1_PNSWAP_RX[source]
Bases:
objectEnable/disable P/N polarity swap of the SerDes in the receiving direction
- 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:
- 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:
objectEnable/disable P/N polarity swap of the SerDes in the transmission direction
- 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:
- 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:
objectConfigure 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.
- class PL1_PRESET_CONFIG_COEFF[source]
Bases:
objectConfigure 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:
- 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:
objectConfigure 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:
- 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_RX_CNT[source]
Bases:
objectReturns 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.
- link_down_count
Number of cumulated Link Down events since the last clearance.
- loa_count
Number of cumulated Loss of Alignment (LOA) events since the last clearance.
- class PL1_RX_DATARATE[source]
Bases:
objectReturn 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.
- class PL1_RX_FREQ[source]
Bases:
objectReturn 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.
- class PL1_RX_PPM[source]
Bases:
objectReturn 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.
- class PL1_TX_DATARATE[source]
Bases:
objectReturn 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.
- class PL1_TX_FREQ[source]
Bases:
objectReturn 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.
- class PL1_TX_PPM[source]
Bases:
objectReturn 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.