-
Notifications
You must be signed in to change notification settings - Fork 539
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[fpmsyncd] Skip routes to eth0 or docker0 #1606
Conversation
Which FRR behaviour change is it that causes fpmsyncd to update default route? What did this behaviour break? |
{ | ||
SWSS_LOG_NOTICE("Skip routes to eth0 or docker0: %s %s %s", | ||
destipprefix, nexthops.c_str(), ifnames.c_str()); | ||
return; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Take this as a example: At first route 0.0.0.0/0 had a multipath nexthop "Ethernet0,Ethernet1", and some minutes later it became "Ethernet0,Ethernet1,eth0". Last it becomes "eth0". Since the change filters all routes including the eth0 nexthop, in the example this changes prevent "Ethernet0,Ethernet1" from exiting the next-hop list in ASIC. This is a rare situation but I suggest to take this into consideration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in our design, we would not have such mixed scenario.
Fix sonic-net/sonic-buildimage#6483 An FRR behavior change from 7.2 to 7.5 makes FRR update the default route to eth0 in interface up/down events. Skipping routes to eth0 or docker0 to avoid such behavior.
*/ | ||
if (alias == "eth0" || alias == "docker0") | ||
{ | ||
SWSS_LOG_NOTICE("Skip routes to eth0 or docker0: %s %s %s", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Minor comment, route updates can be in INFO level log.
After some investigation, I figured that the problem is actually introduced by this change. SONiC uses See |
@imzyxwvu Thanks for your investigation. I still have some trouble understanding how |
I'd suggest you to have a look at https://github.com/Azure/sonic-frr/blob/frr/7.5/zebra/zebra_vrf.c#L361 This function includes a lookup on |
Reduce loglevel to DEBUG for eth0 route update. Ref PR: #1606
Reduce loglevel to DEBUG for eth0 route update. Ref PR: #1606
Reduce loglevel to DEBUG for eth0 route update. Ref PR: sonic-net#1606
Fix sonic-net/sonic-buildimage#6483 An FRR behavior change from 7.2 to 7.5 makes FRR update the default route to eth0 in interface up/down events. Skipping routes to eth0 or docker0 to avoid such behavior.
Reduce loglevel to DEBUG for eth0 route update. Ref PR: sonic-net#1606
Fix sonic-net/sonic-buildimage#6483 An FRR behavior change from 7.2 to 7.5 makes FRR update the default route to eth0 in interface up/down events. Skipping routes to eth0 or docker0 to avoid such behavior.
Reduce loglevel to DEBUG for eth0 route update. Ref PR: sonic-net#1606
Fix sonic-net/sonic-buildimage#6483 An FRR behavior change from 7.2 to 7.5 makes FRR update the default route to eth0 in interface up/down events. Skipping routes to eth0 or docker0 to avoid such behavior.
* Add 'default' option for sFlow. Signed-off-by: Venkatesan Mahalingam <[email protected]>
What I did
Skip routes to eth0 or docker0 in fpmsyncd.
Fix sonic-net/sonic-buildimage#6483
Why I did it
An FRR behavior change from 7.2 to 7.5 makes FRR update the default route to eth0 in interface up/down events. Skipping routes to eth0 or docker0 to avoid such behavior.
How I verified it
Tested locally that the default route does not change in interface up/down events.
Details if related