-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Implement BGP-wide configuration for graceful restart #16099
Conversation
d962059
to
2165b33
Compare
ci:rerun |
a0e03bd
to
80d92e8
Compare
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.
Need a documentation update and topotests yet.
5825807
to
dde73af
Compare
Working on updating documentation and topotest. |
cb6b85a
to
4456f95
Compare
ci:rerun |
0d7c60b
to
4bbb1eb
Compare
This will be reviewed/merged after the stabilization branch is pulled (stable/10.1). |
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.
one small question, but code looks good
4bbb1eb
to
85dc667
Compare
Could you also rebase? It's quite too much behind the base. |
b6615f6
to
e962370
Compare
Added new commit: *: Add and use option for graceful (re)start |
a93fed3
to
233a6eb
Compare
ci:rerun |
Add support for a BGP-wide setting for graceful restart modes and parameters. This setting will apply to all BGP peers across all BGP instances, but per-neighbor configuration can override it. Per-instance configuration is disallowed if the BGP-wide setting is in effect. Signed-off-by: Vivek Venkatraman <[email protected]>
Signed-off-by: Pooja Jagadeesh Doijode <[email protected]>
Streamline the BGP graceful-restart configuration at the global and peer level some more. Similar to many other neighbor capability parameters like MP and ENHE, reset the session immediately upon a change to the configuration. This will be more aligned with the transactional UI model also and will not require a separate 'clear' command to be executed. Note: Peer-group graceful-restart configuration is not yet supported. Signed-off-by: Vivek Venkatraman <[email protected]>
233a6eb
to
96633cd
Compare
Rebased again with master |
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 don't see --graceful_restart
documented, or I'm blind?
96633cd
to
f2cb95c
Compare
Wasn't aware that daemon options were also documented in .rst. Thanks for pointing it out. Updated documentation in 6f342c1 |
f2cb95c
to
d8b898f
Compare
tests/topotests/bgp_gr_notification/test_bgp_gr_notification.py
Outdated
Show resolved
Hide resolved
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.
87a1bc6
to
f7a73fa
Compare
Introduce BGP-wide flags to denote if BGP has started gracefully and GR is in progress or not. Use this for setting of the R-bit in the GR capability, and not a timer which is set for any new instance creation. Mark graceful restart is complete when the deferred path selection has been done and route sync with zebra as well as deferred EOR advertisement has been initiated. Introduce a function to check on F-bit setting rather than just base it on configuration. Subsequent commits will extend these functionalities. Signed-off-by: Vivek Venkatraman <[email protected]>
This also fixes Rx F-bit log which was incorrect. Signed-off-by: Vivek Venkatraman <[email protected]>
Signed-off-by: Vivek Venkatraman <[email protected]>
Signed-off-by: Vivek Venkatraman <[email protected]>
Added topotest and documentation for BGP wide GR configurations Signed-off-by: Pooja Jagadeesh Doijode <[email protected]>
Add a new start option "-K" to libfrr to denote a graceful start, and use it in zebra and bgpd. zebra will use this option to denote a planned FRR graceful restart (supporting only bgpd currently) to wait for a route sync completion from bgpd before cleaning up old stale routes from the FIB. An optional timer provides an upper-bounds for this cleanup. bgpd will use this option to denote either a planned FRR graceful restart or a bgpd-only graceful restart, and this will drive the BGP GR restarting router procedures. Signed-off-by: Vivek Venkatraman <[email protected]>
f7a73fa
to
b5682ff
Compare
ci:rerun |
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.
LGTM
New Features Highlight: - PIM candidate BSR/RP [#16438] - Static IGMP join without an IGMP report [1#6450] - PIM AutoRP discovery/announcements [#16634] - IGMP proxy [#16861] - SRv6 SID Manager [#15604] - Add `bgp ipv6-auto-ra` command [#16354] - Implement `neighbor x remote-as auto` for BGP [#16345] - Implement `bgp dual-as` for BGP [#16816] - Implement BGP-wide configuration for graceful restart [#16099] - Handle kernel routes appropriately (should fix recent NOPREFIXROUTE issue) [#16300] - Add `cisco-authentication` password support for NHRP [#16172] Signed-off-by: Jafar Al-Gharaibeh <[email protected]>
Commit 1:
Add support for a BGP-wide setting for graceful restart modes and
parameters. This setting will apply to all BGP peers across all BGP
instances, but per-neighbor configuration can override it.
Per-instance configuration is disallowed if the BGP-wide setting
is in effect.
Commit2:
Streamline the BGP graceful-restart configuration at the global and
peer level some more. Similar to many other neighbor capability
parameters like MP and ENHE, reset the session immediately upon a
change to the configuration. This will be more aligned with the
transactional UI model also and will not require a separate 'clear'
command to be executed.
Commit3:
bgpd: Refine restarter operation - R-bit & F-bit
Commit 4:
bgpd: Refine OPEN debug logs for graceful restart