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
Draft
Enable option to hold xcvrs in lpmode until host_tx is stable/ready#797mzwang-arista wants to merge 1 commit intosonic-net:masterfrom
mzwang-arista wants to merge 1 commit intosonic-net:masterfrom
Conversation
Signed-off-by: Michael Wang <mzwang@arista.com>
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.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)