-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Adding BFD enhancements #3385
Adding BFD enhancements #3385
Conversation
Retest this please |
diff --git a/bfdd/bfd.c b/bfdd/bfd.c | ||
index fc2d0bea9..abbd0e6a7 100644 | ||
--- a/bfdd/bfd.c | ||
+++ b/bfdd/bfd.c |
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.
this patch is large, @pavel-shirshov , is this really the way we want to manage frr sonic patch? or, we should take this patch in sonic-frr repo?
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.
Yes. I'd prefer to have them as individual patches.
In this case, though, I'd try to push the changes into FRR itself.
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.
This is not a patch anymore. Non bug fixes, must be upstreamed to frr first.
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.
All - I think our position here is that if we are required to upstream to FRR first, then this contribution will miss the current cycle (201908). This is because: -
- We likely won't have time to get it through the FRR community in time
- Doing so may require us to advance the FRR in SONiC
To avoid this we should proceed with the patch as presented, and upstream to FRR in parallel. We will then converge in a future FRR release.
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.
We should avoid 1500+ lines of functional code changes being treated as a patch. Any change by frr or sonic that interacts with that patch/file, or even changes bfd functionality, will create issues since people (in both frr and sonic) will be unaware of these changes.
Have you at least opened up a PR in frr repo for these changes to get them upstreamed? What's the PR for it?
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.
the frr patch lack of description, need to add description, what are the enhancements. Without description, it is hard to know what enhancements are. Then, we should consider add to sonic-frr 7.0.1 branch as a commits. @pavel-shirshov . Meanwhile, I agree with @nikos-github , we need at least open PR for frr and check the response from them.
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.
@lguohan as soon as we integrate such patches as part of our frr we're going to stuck with one version of frr. Do we want that? Also as soon as we push the patch to our branch it's going to be our responsibility of fixing issues.
@ben-gale why your patch is critical for Aug branch of sonic? Will aug branch work without it?
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.
@pavel-shirshov The patch is needed for us to contribute the BFD feature to the SONiC community. Without it, no feature .....
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.
@pavel-shirshov , i think broadcom will maintain the patch. I do not think it will us to fix those issues w.r.t to BFD. @ben-gale, correct?
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.
Correct
conflict for bgpcfgd code since there is a PR to refactor the code. |
@@ -0,0 +1,1562 @@ | |||
diff --git a/bfdd/bfd.c b/bfdd/bfd.c |
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.
is this patch upstreamed?
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.
I have submitted Pull request in FRR to upstream these chages.
diff --git a/bfdd/bfd.c b/bfdd/bfd.c | ||
index fc2d0bea9..abbd0e6a7 100644 | ||
--- a/bfdd/bfd.c | ||
+++ b/bfdd/bfd.c |
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.
This is not a patch anymore. Non bug fixes, must be upstreamed to frr first.
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.
We can see in /usr/bing/start.sh that for separated mode it makes use of bgpd.conf.j2 to generate the configuration. So I suggest updating bgpd.conf.j2 as well.
Similarly, src/sonic-config-engie/minigraph.py is supposed to be changed in order to support loading configuration from mini-graph,
Scheduling issues can also impact BFD, causing it to raise a false alarm. |
It is also risky to have a BFD neighbor in a LAG interface or mhop BFD neighbor in an ECMP routing entry.
In this case, if the member interface on the BFD neighbor switch really works in a shorter time period and the BFD neighbor happens to designate the member interface which is just up as the one from which the BFD protocol should be sent, the SONiC switch is very likely to drop the BFD packets until the member interface really works and identifies the BFD neighbor as down. |
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.
As commented:
- suggest updating bgpd.conf.j2 which is used in separated configuring mode.
- suggest supplying test cases in sonic-mgmt correspondingly.
- suggest adopting proper scheduling policy on BFD daemon, like SCHED_FIFO.
- suggest fixing the issue comming along with new VM supporting BFD before BFD is merged.
BTW I find that the BFD is not supported on the current version of VM we're using (4.15.10M). So far the version I found with BFD support is 4.22.0F.
In this sense, I suggest also have that issue fixed before merging BFD. |
Refer Section 7 of HLD, BFD packet trapping to CPU. Further we have done extensive testing in scaled setup, we haven't come across a situation when BFD did not get enough CPU resources. |
Hi, |
Thanks for the inputs and we can look into these as separate BFD enhancements |
retest this, please. |
e7eead4
to
fc36ca6
Compare
…atically (#19627) #### Why I did it src/sonic-utilities ``` * f2b76213 - (HEAD -> master, origin/master, origin/HEAD) [SfpUtil] sfp eeprom with option dom is not working on Xcvrs with flat memory (#3385) (4 hours ago) [mihirpat1] * fd3096c7 - Enable show ip bgp on sup and -n all for show ip bgp network (#3417) (9 hours ago) [Changrong Wu] ``` #### How I did it #### How to verify it #### Description for the changelog
…atically (sonic-net#19627) #### Why I did it src/sonic-utilities ``` * f2b76213 - (HEAD -> master, origin/master, origin/HEAD) [SfpUtil] sfp eeprom with option dom is not working on Xcvrs with flat memory (sonic-net#3385) (4 hours ago) [mihirpat1] * fd3096c7 - Enable show ip bgp on sup and -n all for show ip bgp network (sonic-net#3417) (9 hours ago) [Changrong Wu] ``` #### How I did it #### How to verify it #### Description for the changelog
…atically (sonic-net#19627) #### Why I did it src/sonic-utilities ``` * f2b76213 - (HEAD -> master, origin/master, origin/HEAD) [SfpUtil] sfp eeprom with option dom is not working on Xcvrs with flat memory (sonic-net#3385) (4 hours ago) [mihirpat1] * fd3096c7 - Enable show ip bgp on sup and -n all for show ip bgp network (sonic-net#3417) (9 hours ago) [Changrong Wu] ``` #### How I did it #### How to verify it #### Description for the changelog
- What I did
Enhancement as in HLD below
https://github.com/Azure/SONiC/blob/master/bfd/BFD_Enhancement_HLD.md
- How I did it
Modified existing code
- How to verify it
Added Python scripts to test all the unit test case mentioned in HLD.
Verification logs attached.
results_tests_ut_protocols_bfd_test_ut_bfd_mhop.log.txt
results_tests_ut_protocols_bfd_test_ut_bfd.log.txt
results_tests_ut_protocols_bfd_test_ut_bfd_trunk_lag.log.txt
- Description for the changelog
- A picture of a cute animal (not mandatory but encouraged)