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?
This issue occurs when running
config load_minigraph
to load new configs at both ToRs.After
write_standby.py
, themuxorch
will try to direct all traffic downstream to the SoC IP and server IP to the tunnel, butxcvrd
might fail to set theadminforwardingstate
of the port via gRPC because the gRPC channel could not be established because the other ToR is instandby
state.After
linkmgrd
starts to run and receives heartbeats from itself, it will try to toggle to active[toggle#1], butxcvrd
might not be able to make the hardware toggle at the moment, solinkmgrd
will mux wait. Also, because the mux probe table is initialized withUnknown
state,linkmgrd
will handle the initial mux probe state to have the composite states(active, unknown, up)
and tries to probe the mux state.As the
muxorch
has been toggled to active[toggle#1], the gRPC channel will be established at some point after,xcvrd
will be able to answer the mux probe, so thelinkmgrd
will be able to change into(active, active, up)
state.But the toggling to active[toggle#1] is only finished half way, the mux status in
STATE_DB:MUX_CABLE_TABLE
is not updated, soshow mux status
will showunknown
for those ports.Signed-off-by: Longxiang Lyu lolv@microsoft.com
How did you do it?
When the
linkmgrd
changes into states(active, active, up)
and has the original mux state asunknown
, it will toggle the mux toactive
again to have those DB tables updated:How did you verify/test it?
On dualtor-mixed topo with
icmp_responder
running, doconfig load_minigraph
on both ToRs, verify theshow mux status
on both ToRs:Any platform specific information?
Documentation