Add bgp.local_role plugin for RFC 9234 BGP Roles on FRR and BIRD#3428
Add bgp.local_role plugin for RFC 9234 BGP Roles on FRR and BIRD#3428jbemmel wants to merge 8 commits into
Conversation
Implements EBGP local role and strict-mode attributes with integration tests, topology validation, and Bird support via the BGP module template (no extra shell script). Co-authored-by: Cursor <cursoragent@cursor.com>
…les. Validate strict mode only when a local role is set, and emit BIRD require roles only inside the local role block. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Use a single intf_neighbors pass over all session types and branch on EBGP apply versus IBGP validation. Co-authored-by: Cursor <cursoragent@cursor.com>
Run validation on FRR probes so the DUT can be FRR or BIRD; add an upstream provider and assert the peer does not receive its prefix. Co-authored-by: Cursor <cursoragent@cursor.com>
Use defaults.bgp.local_role_strict instead of repeating it on every link. Co-authored-by: Cursor <cursoragent@cursor.com>
Allows bgp.local_role plugin validation with none nodes in integration tests. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@jbemmel -- I love that you did this. It has been on my to-do list forever, but since only FRR was supporting it, it never got to the front of it. However, would you agree it makes sense to include this in something like bgp.session, because it's really a session attribute, or maybe bgp.policy because it filters stuff? Also I would call the attribute bgp.role, not bgp.local_role |
Sure, I merely followed - what I believed to be - your preference for an independent plugin. But it's a simple flag, we can call it what you like and merge it with whatever component you prefer |
Thank you!
And that's exactly why I thought it would fit better into one of the existing plugins that already deal with this stuff.
Let's go with bgp.role
Whichever one you prefer (or is easier to fit into), with a tiny preference for bgp.policy (because it is a sort of route filtering policy) |
|
Replaced by #3429 |
Implements EBGP local role and strict-mode attributes with integration tests, topology validation. Initially supported on FRR and Bird.