With ZMQ enabled between fpmsyncd to orchagent, default routes are se…#3979
Merged
prsunny merged 5 commits intosonic-net:masterfrom Nov 12, 2025
Merged
With ZMQ enabled between fpmsyncd to orchagent, default routes are se…#3979prsunny merged 5 commits intosonic-net:masterfrom
prsunny merged 5 commits intosonic-net:masterfrom
Conversation
…t to DROP Issue# #3978 Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code.
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Contributor
Author
|
tagging @xwjiang-ms |
Contributor
Author
|
/azpw run Azure.sonic-swss |
Collaborator
|
/AzurePipelines run Azure.sonic-swss |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Created test PR: sonic-net/sonic-buildimage#24484 |
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Contributor
Author
|
/azpw run Azure.sonic-swss |
Collaborator
|
/AzurePipelines run Azure.sonic-swss |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Collaborator
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
prsunny
approved these changes
Nov 12, 2025
Collaborator
prsunny
left a comment
There was a problem hiding this comment.
approving to unblock the test failures. @dgsudharsan for viz
balanokia
pushed a commit
to balanokia/sonic-swss
that referenced
this pull request
Nov 17, 2025
sonic-net#3979) * With ZMQ enabled between fpmsyncd to orchagent, default routes are set to DROP Issue# sonic-net#3978 Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code. * ZMQ configuration does not work when mgmt VRF is configured
YairRaviv
pushed a commit
to YairRaviv/sonic-swss
that referenced
this pull request
Nov 22, 2025
sonic-net#3979) * With ZMQ enabled between fpmsyncd to orchagent, default routes are set to DROP Issue# sonic-net#3978 Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code. * ZMQ configuration does not work when mgmt VRF is configured
yijingyan2
added a commit
to yijingyan2/sonic-swss
that referenced
this pull request
Dec 2, 2025
sonic-net#3979) * With ZMQ enabled between fpmsyncd to orchagent, default routes are set to DROP Issue# sonic-net#3978 Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code. * ZMQ configuration does not work when mgmt VRF is configured
Pterosaur
pushed a commit
to Janetxxx/sonic-swss
that referenced
this pull request
Jan 6, 2026
sonic-net#3979) * With ZMQ enabled between fpmsyncd to orchagent, default routes are set to DROP Issue# sonic-net#3978 Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code. * ZMQ configuration does not work when mgmt VRF is configured
yehjunying
pushed a commit
to yehjunying/sonic-swss
that referenced
this pull request
Jan 16, 2026
sonic-net#3979) * With ZMQ enabled between fpmsyncd to orchagent, default routes are set to DROP Issue# sonic-net#3978 Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code. * ZMQ configuration does not work when mgmt VRF is configured
venkit-nexthop
added a commit
to venkit-nexthop/sonic-swss
that referenced
this pull request
Jan 16, 2026
Refer to sonic-net/sonic-buildimage#19638 The previous PR (sonic-net#3979) inadvertantly caused the above issue. This commit fixes that by connecting to zmq from fpmsyncd using the vrf as well (if one is configured) Signed-off-by: Venkit Kasiviswanathan <venkit@nexthop.ai>
theasianpianist
pushed a commit
to theasianpianist/sonic-swss
that referenced
this pull request
Feb 4, 2026
sonic-net#3979) * With ZMQ enabled between fpmsyncd to orchagent, default routes are set to DROP Issue# sonic-net#3978 Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code. * ZMQ configuration does not work when mgmt VRF is configured Signed-off-by: Lawrence Lee <lawlee@microsoft.com>
baorliu
pushed a commit
to baorliu/sonic-swss
that referenced
this pull request
Feb 23, 2026
sonic-net#3979) * With ZMQ enabled between fpmsyncd to orchagent, default routes are set to DROP Issue# sonic-net#3978 Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code. * ZMQ configuration does not work when mgmt VRF is configured Signed-off-by: Baorong Liu <96146196+baorliu@users.noreply.github.com>
prsunny
pushed a commit
that referenced
this pull request
Feb 24, 2026
* Make fpmsyncd use the mgmt vrf to bind to zmq when configured. Refer to sonic-net/sonic-buildimage#19638 The previous PR (#3979) inadvertantly caused the above issue. This commit fixes that by connecting to zmq from fpmsyncd using the vrf as well (if one is configured) What I did Fix for sonic-net/sonic-buildimage#25397 Improve performance in fpmsyncd by writing only the non-empty fields into redis. This is done only when zmq is not enabled. Why I did it To improve performance when ZMQ is not enabled in the northbound direction.
ksravani-hcl
pushed a commit
to ksravani-hcl/sonic-swss
that referenced
this pull request
Feb 27, 2026
…t#4219) * Make fpmsyncd use the mgmt vrf to bind to zmq when configured. Refer to sonic-net/sonic-buildimage#19638 The previous PR (sonic-net#3979) inadvertantly caused the above issue. This commit fixes that by connecting to zmq from fpmsyncd using the vrf as well (if one is configured) What I did Fix for sonic-net/sonic-buildimage#25397 Improve performance in fpmsyncd by writing only the non-empty fields into redis. This is done only when zmq is not enabled. Why I did it To improve performance when ZMQ is not enabled in the northbound direction.
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.
The following issues are resolved in this PR:
Issue# #3978
#3985
What I did
Fixed orchagent to be able to handle DEL+SET. This was the root cause for the default route being set to DROP.
Fix fpmsyncd to not send DEL+SET and instead only send a SET for routes. This is achieved by including all the fields, even the ones not present, with a default empty value.
This is more efficient now.
Why I did it
Recently ZMQ was enabled in sonic-mgmt (refer to sonic-net/sonic-mgmt@111e635). fpmsyncd sends a DEL+SET for every route. This was coalesced by the producerStateTable infra. But with ZMQ enabled, this coalescing does not happen. As a result, orchagent gets a DEL+SET for every route. This works well normally. But for default routes, there is a bug in orchagent, where it adds a DROP action when it receives the DEL. But when the subsequent SET is received, it does not reset it to FORWARD action. This is due to a bug in its checking code.
How I verified it
The default route is set to the correct FORWARD entry.
Details if related