Skip to content

Enable option to hold xcvrs in lpmode until host_tx is stable/ready#797

Draft
mzwang-arista wants to merge 1 commit intosonic-net:masterfrom
mzwang-arista:master
Draft

Enable option to hold xcvrs in lpmode until host_tx is stable/ready#797
mzwang-arista wants to merge 1 commit intosonic-net:masterfrom
mzwang-arista:master

Conversation

@mzwang-arista
Copy link
Copy Markdown

In this PR, a extra argument is added to sff_mgr/ xcvrd. When xcvrd is run with --hold_lpmode_tx_ready_time=<time (s)>, we hold QSFP transceivers in low power mode for that duration before bringing it up to high power.

Description

For example, if --hold_lpmode_tx_ready_time=5, this will be the xcvr bringup process.

  1. Transceiver inserted
  2. Host Tx Becomes Ready
  3. Wait 5s <--- New
  4. Bring to high power mode using software lpmode register
  5. Enable module tx

Motivation and Context

Transceivers may require a good/ stable host_tx signal when it is first brought out of low power mode in order to ensure the CDR locks properly. Otherwise the link may be down or suboptimal.

However, we can not just use the host_tx_ready flag from redis to know when to bring the module up as host_tx_ready may flap during module initialization. To ensure the signal is good, we set a timer when host_tx_ready is first reported good. Then after that timer expires, we bring the module to high power and enable tx.

How Has This Been Tested?

This has been tested by stressing reboot, physical removal, and admin shut/no shut. A subsequent unit test will be added to this PR once ready

Additional Information (Optional)

Signed-off-by: Michael Wang <mzwang@arista.com>
@mssonicbld
Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@mzwang-arista mzwang-arista marked this pull request as draft April 16, 2026 23:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants