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
[doc/voq]: Add HLD for BGP in the VoQ chassis #674
Conversation
Signed-off-by: jmmikkel@arista.com
doc/voq/bgp_voq_chassis.md
Outdated
# 1 Requirements | ||
|
||
Traffic ingressing on any FSI should be routed the same, regardless of which | ||
FSIs learned the route from their eBGP peers. |
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.
Replace FSI with Asic Instance
- Each FSI must advertise eBGP-learned routes to the other FSIs in the chassis. | ||
- Each FSI in a chassis should choose the same BGP route for each prefix. | ||
- When ECMP is enabled and equal-cost routes are learned by any FSI, all FSIs should compute the same ECMP nexthop. | ||
|
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.
Add a note on preserving the nexthop and the AS_PATH
doc/voq/bgp_voq_chassis.md
Outdated
|
||
# 1 Requirements | ||
|
||
Traffic ingressing on any FSI should be routed the same, regardless of which |
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.
Clarify that forwarding behavior can be different, but the nexthop set for the ECMP will be same
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.
Clarify that this is substantially different from an internal-ethernet-clos based chassis because the forwarding decision is made once at the ingress in voq chassis and several times in an ethernet based chassis.
- Each FSI must advertise eBGP-learned routes to the other FSIs in the chassis. | ||
- Each FSI in a chassis should choose the same BGP route for each prefix. | ||
- When ECMP is enabled and equal-cost routes are learned by any FSI, all FSIs should compute the same ECMP nexthop. | ||
|
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.
Restriction: The external routers are connected via eBGP and not iBGP
doc/voq/bgp_voq_chassis.md
Outdated
To ensure that each FSI computes the same ECMP group: | ||
- Enable additional-path send all for each chassis iBGP peer. If FSI1 learns a route from both R1 and R4, both must be advertised to other FSIs. | ||
- Allow BGP to form ECMP groups with paths learned from both eBGP and iBGP peers. The best path algorithm normally prefers eBGP paths (RFC 4271 section 9.1.2.2 step d). Without this change, if a route is learned from R1, R2, and R4, FSI1 would create ECMP group {R1,R4}, FSI2 would use {R2}, and FSI3 would use {R1,R2,R4}. | ||
- The maximum ECMP group size must be set the same for eBGP and iBGP. |
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.
Expand this point a bit more.
doc/voq/bgp_voq_chassis.md
Outdated
- `neighbor <neighbor> addpath-tx-all-paths` | ||
- `bgp bestpath peer-type multipath-relax` | ||
- `maximum-paths ibgp <n>` (where <n> is the same as used in `maximum-paths <n>`) | ||
- `bgp disable-ebgp-connected-route-check` |
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 can change existing eBGP behavior. Need to note down what FRR does today when the nexthop is not over a connected route.
doc/voq/bgp_voq_chassis.md
Outdated
<a:ASN>64542</a:ASN> | ||
<a:Hostname>OCPSCH0104001MS</a:Hostname> | ||
<a:RouteMaps/> | ||
<a:VoQChassisPeer>1</a:VoQChassisPeer> |
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.
Maybe add this to BGP_SESSION definition
<a:VoQChassisPeer>1</a:VoQChassisPeer> | ||
</a:BGPRouterDeclaration> | ||
``` | ||
|
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.
Add a Cli section
- "show ip bgp" shows both internal and external today, should we update the command to show only the external sessions and add a new command to include the internal.
- A flag that brings up the instance with bgp sessions shut down must not do it for the internal BGP sessions.
- 'shutdown' should bring down only the external sessions, not the internal BGP sessions. We need an additional token to also shutdown the internal sessions if needed.
The functional changes are: - Propose to modify bgpd's publish of nexthop groups to RIB instead of using "bgp disable-ebgp-connected-route-check". - Change the new element in the minigraph to BGPSession>VoQChassisInternal. - Add discussion of BGP commands in the CLI.
This document describes how BGP will be configured between each FSI in the chassis.