Enforce another toggle after config mux to active first toggle failed#95
Merged
lolyu merged 1 commit intosonic-net:masterfrom Jul 2, 2022
Merged
Conversation
Signed-off-by: Longxiang Lyu <lolv@microsoft.com>
d6defa7 to
9ea5c44
Compare
zjswhhh
reviewed
Jun 30, 2022
zjswhhh
approved these changes
Jul 1, 2022
7 tasks
zjswhhh
added a commit
to sonic-net/sonic-buildimage
that referenced
this pull request
Jul 12, 2022
[master][sonic-linkmgrd] submodule update 58d8aae Longxiang Lyu Sat Jul 2 10:14:50 2022 +0800 Enforce switch after config mux to active (sonic-net/sonic-linkmgrd#95) 600df46 Longxiang Lyu Thu Jun 30 15:09:10 2022 +0800 Add unittest to verify mux toggle active (sonic-net/sonic-linkmgrd#94) 400b1b8 gregshpit Wed Jun 29 21:32:45 2022 +0300 For Sonic cross-compilation build. CC variable is used as gcc compiler. CXX variable is used as g++ compiler. (sonic-net/sonic-linkmgrd#91) a516668 Jing Zhang Tue Jun 28 11:07:23 2022 -0700 Use Vlan MAC as src MAC for link prober by default (sonic-net/sonic-linkmgrd#93) 6b5d739 Longxiang Lyu Tue Jun 28 22:46:12 2022 +0800 Fix inconsistent mux state (sonic-net/sonic-linkmgrd#92) 9265497 Jing Zhang Fri Jun 24 09:10:12 2022 -0700 Remove exception throwing when initializing missing loopback interface (sonic-net/sonic-linkmgrd#90) sign-off: Jing Zhang zhangjing@microsoft.com
yxieca
pushed a commit
that referenced
this pull request
Aug 11, 2022
Approach What is the motivation for this PR? After config mux state active EthernetXX, the first toggle might not be able to be succeeded as xcvrd has a chance to fail to setup the gRPC connection as the route changed by muxorch needs time to work. Signed-off-by: Longxiang Lyu lolv@microsoft.com How did you do it? The state change sequence after linkmgrd boots up and receives a mux config active: (unknown, unknown, up) --> config mux active --> (unknown, active, up) --> mux state unknown[as xcvrd could not setup gRPC connection] --> (unknown, unknown, up) --> probe mux state, return unknown --> (unknown, unknown, up) Once linkmgrd reaches (unknown, unknown, up), it will keep probing the mux till xcvrd returns either active or standby: if the probe result is active, we need an extra toggle to active to let show mux status shows active. if the probe result is standby, we also need an extra toggle to active to notify the gRPC server the port is standby and let show mux status shows active. How did you verify/test it?
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.
Description of PR
Summary:
Fixes # (issue)
Type of change
Approach
What is the motivation for this PR?
After
config mux state active EthernetXX, the first toggle might not be able to be succeeded asxcvrdhas a chance to fail to setup the gRPC connection as the route changed bymuxorchneeds time to work.Signed-off-by: Longxiang Lyu lolv@microsoft.com
How did you do it?
The state change sequence after
linkmgrdboots up and receives a mux config active:(unknown, unknown, up) --> config mux active --> (unknown, active, up) --> mux state unknown[as xcvrd could not setup gRPC connection] --> (unknown, unknown, up) --> probe mux state, return unknown --> (unknown, unknown, up)
Once
linkmgrdreaches (unknown, unknown, up), it will keep probing the mux tillxcvrdreturns either active or standby:if the probe result is active, we need an extra toggle to active to let
show mux statusshows active.if the probe result is standby, we also need an extra toggle to active to notify the gRPC server the port is standby and let
show mux statusshows active.How did you verify/test it?
Any platform specific information?
Documentation