Skip to content

Conversation

@rzalamena
Copy link
Member

This PR implements the optional knob to enable eBGP integration to detect loops in SAs. The detection of MSDP SA loops works as follow:

  1. eBGP AS number is configured in the MSDP peer
  2. When SA is received the RP value is used in RPF check
    2.a. If the RPF route AS Path number matches the neighbor AS then the SA is accepted
    2.b. if the RPF route AS Path number doesn't match the neighbor (or doesn't exist) the SA is rejected (means that the SA is not coming from the shortest path)

@rzalamena rzalamena marked this pull request as draft December 20, 2024 21:28
@github-actions github-actions bot added size/XXL and removed size/XL labels Dec 23, 2024
@rzalamena rzalamena force-pushed the msdp-ebgp branch 4 times, most recently from 718e421 to cacc6cf Compare December 28, 2024 21:25
@rzalamena rzalamena marked this pull request as ready for review December 28, 2024 21:26
@rzalamena rzalamena force-pushed the msdp-ebgp branch 3 times, most recently from 2db17c5 to c2609ce Compare January 2, 2025 17:57
@riw777 riw777 self-requested a review January 7, 2025 16:38
@donaldsharp
Copy link
Member

Is there any particular reason we've added a second slightly different address lookup for pim instead of just modifying the first one?

@donaldsharp donaldsharp self-requested a review January 7, 2025 21:01
@github-actions
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@rzalamena
Copy link
Member Author

Is there any particular reason we've added a second slightly different address lookup for pim instead of just modifying the first one?

Removed the new Zebra API and incremented the existing one (zebra next hop lookup). Now there is just a slight variation on the next hop lookup in PIM: there is a new function that does next hop lookup and also returns the BGP AS number.

Copy link
Member

@riw777 riw777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

code looks okay to me ... it would be good to have someone with more pom code exposure look at this before pushing ...

what happens here if the AS Path changes once PIM has "read" it?

@donaldsharp
Copy link
Member

I do not see documentation for the new clear command? It would be nice that it was tested as well. Once that happens I'll get it in.

Put all parameters inside a single structure to avoid passing them over
many different function levels.

Signed-off-by: Rafael Zalamena <[email protected]>
When doing a route / next hop lookup include the route type and the
opaque data. This will later be used to implement MSDP eBGP integration.

Signed-off-by: Rafael Zalamena <[email protected]>
Implement function to do route lookups using eBGP routes.

Signed-off-by: Rafael Zalamena <[email protected]>
Implement the 'RFC 4611 Section 2.1. Peering between PIM Border Routers'
knob to configure the expected eBGP remote AS number for detecting
loops.

Signed-off-by: Rafael Zalamena <[email protected]>
Implement the 'RFC 4611 Section 2.1. Peering between PIM Border Routers'
recommendation of using the peer AS number to check for loops in the
topology when using direct inter-domains connections.

Signed-off-by: Rafael Zalamena <[email protected]>
Let users know that they can utilize the BGP AS integration to detect
loops in SAs using the network topology.

Signed-off-by: Rafael Zalamena <[email protected]>
Allow MSDP peers to hold the following new information:
- Amount of RPF look up failures
- Amount of incoming SAs filtered
- Amount of outgoing SAs filtered

Signed-off-by: Rafael Zalamena <[email protected]>
Add new version of `show msdp peer` command with extra details and
a new command to clear MSDP peer counters.

Signed-off-by: Rafael Zalamena <[email protected]>
@rzalamena
Copy link
Member Author

Rebased and added missing documentation for clear command. I don't think it is necessary to add a test for zeroing statistic counters.

eqvinox and others added 3 commits June 18, 2025 13:22
The previous logic was backwards.

Signed-off-by: David Lamparter <[email protected]>
Add topology for testing MSDP eBGP integration.

Signed-off-by: Rafael Zalamena <[email protected]>
Copy link
Member

@riw777 riw777 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good

@riw777 riw777 merged commit fe3fc50 into FRRouting:master Jun 24, 2025
13 checks passed
@rzalamena rzalamena deleted the msdp-ebgp branch June 24, 2025 14:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants