Skip to content
This repository was archived by the owner on Feb 27, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion xoa_driver/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__version__ = "2.4.0"
__version__ = "2.4.3"
__short_version__ = "2.0"
20 changes: 18 additions & 2 deletions xoa_driver/functions/anlt.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ class DoAnlt:
"""should perform link training manually?"""
lt_algorithm: dict[str, enums.LinkTrainAlgorithm]
"""link training algorithm should be used?"""
should_enable_lt_timeout: bool
"""should the port do link training with timeout enabled?"""

_group: tuple["itf.IConnection", int, int] = field(init=False, repr=False)

Expand Down Expand Up @@ -81,12 +83,21 @@ def __pl1_cfg_tmp(
)

def __select_modes(self) -> tuple[enums.LinkTrainingMode, enums.TimeoutMode]:
if self.should_do_an == True and self.should_lt_interactive == False:
if self.should_do_an == True and self.should_lt_interactive == False and self.should_enable_lt_timeout == False:
lt_mode = enums.LinkTrainingMode.START_AFTER_AUTONEG
timeout_mode = enums.TimeoutMode.DISABLED
elif self.should_do_an == True and self.should_lt_interactive == False and self.should_enable_lt_timeout == True:
lt_mode = enums.LinkTrainingMode.START_AFTER_AUTONEG
timeout_mode = enums.TimeoutMode.DEFAULT
elif self.should_do_an == True and self.should_lt_interactive == True:
lt_mode = enums.LinkTrainingMode.INTERACTIVE
timeout_mode = enums.TimeoutMode.DISABLED
elif self.should_do_an == False and self.should_lt_interactive == False and self.should_enable_lt_timeout == False:
lt_mode = enums.LinkTrainingMode.STANDALONE
timeout_mode = enums.TimeoutMode.DISABLED
elif self.should_do_an == False and self.should_lt_interactive == False and self.should_enable_lt_timeout == True:
lt_mode = enums.LinkTrainingMode.STANDALONE
timeout_mode = enums.TimeoutMode.DEFAULT
elif self.should_do_an == False and self.should_lt_interactive == True:
lt_mode = enums.LinkTrainingMode.INTERACTIVE
timeout_mode = enums.TimeoutMode.DISABLED
Expand Down Expand Up @@ -150,6 +161,7 @@ async def anlt_start(
lt_initial_modulations: dict[str, enums.LinkTrainEncoding],
should_lt_interactive: bool,
lt_algorithm: dict[str, enums.LinkTrainAlgorithm],
should_enable_lt_timeout: bool,
) -> None:
"""
.. versionadded:: 1.1
Expand All @@ -172,6 +184,8 @@ async def anlt_start(
:type should_lt_interactive: bool
:param lt_algorithm: Link training algorithm to use
:type lt_algorithm: Dict[str, enums.LinkTrainAlgorithm]
:param should_enable_lt_timeout: should run link training with timeout?
:type should_enable_lt_timeout: bool
"""

anlt = DoAnlt(
Expand All @@ -183,6 +197,7 @@ async def anlt_start(
lt_initial_modulations,
should_lt_interactive,
lt_algorithm,
should_enable_lt_timeout,
)
await anlt.run()

Expand Down Expand Up @@ -546,7 +561,8 @@ async def anlt_stop(port: GenericL23Port) -> None:
lt_preset0=enums.NRZPreset.NRZ_NO_PRESET,
lt_initial_modulations={},
should_lt_interactive=False,
lt_algorithm={}
lt_algorithm={},
should_enable_lt_timeout=True,
)
await anlt.run()

Expand Down
2 changes: 1 addition & 1 deletion xoa_driver/functions/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ def dictionize_anlt_status(
return {
"autoneg_enabled": enums.AutoNegMode(autoneg.mode).name.lower().lstrip("aneg_"),
"link_training_mode": enums.LinkTrainingMode(linktrain.mode).name.lower(),
"link_training_timeout": enums.TimeoutMode(linktrain.timeout_mode).name.lower(),
"link_training_timeout": "enable" if linktrain.timeout_mode == enums.TimeoutMode.DEFAULT else "disable",
"restart_link_down": "on" if link_recovery.values[0] == 1 or link_recovery.values[0] == 3 else "off",
"restart_lt_fail": "on" if link_recovery.values[0] == 2 or link_recovery.values[0] == 3 else "off",
"serdes_count": capabilities.serdes_count,
Expand Down