Commit Graph

37523 Commits

Author SHA1 Message Date
Philippe Guibert
2f3fb0128e bgpd: add rpki json attributes to bgp path
Add missing json attribute to BGP path.

Fixes: 82c298be73 ("bgpd: Show RPKI short state in `show bgp <afi> <safi>`")
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2024-12-19 17:14:36 +01:00
Donald Sharp
4a0e8ed8da
Merge pull request #17671 from Jafaral/static-propagation
tests: add a test case for static route propagation
2024-12-19 08:53:06 -05:00
Jafar Al-Gharaibeh
f78b1786a6
Merge pull request #17599 from opensourcerouting/fix/reduce_default_connect_timer
bgpd: Connect retry timer backoff
2024-12-18 16:26:37 -06:00
Jafar Al-Gharaibeh
76f403cf75 tests: add a test case for static route propagation
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
2024-12-18 12:16:15 -06:00
Donald Sharp
6c3e1e4fd6
Merge pull request #17654 from mjstapp/remove_bgp_pRN
bgpd: remove unneeded printfrr reg for pRN
2024-12-17 14:44:18 -05:00
Russ White
76e0c84595
Merge pull request #16488 from JosiahMg/isis-subif-neighbor
vlan-subif isis neigbor
2024-12-17 11:39:20 -05:00
Russ White
f4cdd5ce4d
Merge pull request #17613 from donaldsharp/evpn_bgp_bestpath_failure
bgpd: Fix evpn bestpath calculation when path is not established
2024-12-17 11:31:52 -05:00
Russ White
acea7d5d7d
Merge pull request #17615 from opensourcerouting/fix/ip_prefix_list_show_prefix
lib: Take ge/le into consideration when checking the prefix with the prefix-list
2024-12-17 11:30:01 -05:00
Russ White
c8ba5b09b3
Merge pull request #17544 from anlancs/zebra/fix-plug-interface
zebra: fix wrong nexthop status for kernel routes
2024-12-17 11:16:32 -05:00
Russ White
a3e0e4eb49
Merge pull request #17526 from raja-rajasekar/rajasekarr/evpn_bp_and_optimizations_3864372_FINAL_upstream
EVPN L2VNI/L3VNI Optimize inline Global walk for remote route installations
2024-12-17 11:15:27 -05:00
Russ White
0d5a94d12d
Merge pull request #16830 from louis-6wind/fix-addpath-race
bgpd: fix missing addpath withdrawal race condition
2024-12-17 11:10:12 -05:00
anlan_cs
2f1bd3fe4d tests: add nexthop/interface's down/up topo for kernel routes
Signed-off-by: anlan_cs <anlan_cs@126.com>
2024-12-17 16:14:35 +08:00
anlan_cs
4d2ac714f0 zebra: check kernel routes when interface becomes up
Just like `link down`, check all kernel routes when interface become up.
And, they maybe will be selected as the best one by zebra.

Signed-off-by: anlan_cs <anlan_cs@126.com>
2024-12-17 16:14:30 +08:00
anlan_cs
298bc623e7 zebra: don't uninstall kernel routes
After the nexthop check is fixed, zebra will wrongly uninstall the kernel routes
with inactive nexthop.

This commit would skip the uninstallation for kernel routes.

Signed-off-by: anlan_cs <anlan_cs@126.com>
2024-12-17 16:14:30 +08:00
anlan_cs
b9538fe481 zebra: fix wrong nexthop check
The kernel routes are wrongly selected even the nexthop interface is linkdown.

Use `ip link set dev <interface> down` on the other box to set the box's
nexthop interface linkdown. The kernel routes will be kept as `linkdown`,
but are still with active nexthop in `zebra`.

Add three changes/commits for kernel routes in this PR:

1) The active nexthop should be the operative interface.
2) Don't uninstall the kernel routes from `zebra` even no active nexthops.
   (It doesn't affect the kernel routes' deletion from kernel netlink messages.)
3) Update the kernel routes when the nexthop interface becomes up.

Before: (during nexthop interface is linkdown)
```
K>* 3.3.3.3/32 [0/0] via 88.88.88.1, enp2s0, weight 1, 00:00:14
```

After: (during nexthop interface is linkdown, with all three changes)
```
K   3.3.3.3/32 [0/0] via 88.88.88.1, enp2s0 inactive, weight 1, 00:00:07
```

This commit is 1st change:
Improve the judgment for "active" nexthop to be more accurate, the active
nexthop should be the operative interface.

Signed-off-by: anlan_cs <anlan_cs@126.com>
2024-12-17 16:14:30 +08:00
Mark Stapp
b94e720480 bgpd: remove unneeded printfrr reg for pRN
Remove a printfrr registration for pRN from bgpd.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-12-16 15:35:29 -05:00
Rafael Zalamena
3bebb7be92
Merge pull request #17252 from nabahr/mcast-mode
Fix PIMD RPF lookup mode and nexthop tracking
2024-12-16 09:57:31 -03:00
Jafar Al-Gharaibeh
30467f8f2b
Merge pull request #17645 from donaldsharp/support_bundle_rip
tools: Add rip support bundle commands
2024-12-13 14:24:31 -06:00
Jafar Al-Gharaibeh
26cd0339c2
Merge pull request #17646 from donaldsharp/give_more_zserv_data
zebra: Give a bit more data about zclient connection on errors
2024-12-13 14:23:58 -06:00
Nathan Bahr
06c3436a12 doc: Clean up Multicast RIB documentation
Moved it all to PIM section and updated docs for recent changes.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-13 17:36:34 +00:00
Nathan Bahr
d334f84156 tests: Add new pim mrib tests
Test mrib overrides and rpf lookup mode changes.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-13 17:36:34 +00:00
Nathan Bahr
5cce666d49 pimd: Clean up pim RPF/NHT show commands
Moved `show ip rpf A.B.C.D` command here from zebra, deprecated and aliased
to `show ip pim nexthop-lookup`.
Allow group to be optional in the lookup command. Only validate group if
source is ANY. Documented setting source via RP if not provided.
Added new output if ANY source + group lookup is performed and no
RP is found for the group. Updated output to include souce and
group for lookup.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-13 17:36:34 +00:00
Nathan Bahr
9ce7f9b8e8 pimd: Update nexthops when lookup mode changes
Link up the RPF lookup mode changing to a force update to RP's and
upstreams registered for nexthop lookup cache updates.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-13 17:36:34 +00:00
Nathan Bahr
6d30c8f6b5 pimd: Refactor pim NHT
Refactor the next hop tracking in PIM to fully support the configured RPF lookup mode.
Moved many NHT related functions to pim_nht.h/c
NHT now tracks both MRIB and URIB tables and makes nexthop decisions based on the configured lookup mode.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-13 17:36:34 +00:00
Nathan Bahr
cc865c0192 pimd: Refactor synchronous nexthop lookup
Add prefix length in nexthop response.
Apply lookup mode to the sychronous lookups, where we may lookup
the MRIB, URIB, or both and make a decision based on the nexthop.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-13 17:36:34 +00:00
Nathan Bahr
10e2df6530 pimd,yang: Reimplement RPF lookup vty in router pim
Add rpf-lookup-mode MODE vty command under router pim block.
Including NB piping and config write. Using the mode still pending.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-13 17:36:34 +00:00
Donald Sharp
3a53b2dc4f zebra: Give a bit more data about zclient connection on errors
When debugging a crash I noticed that sometimes we talked about
a zclient connection in relation to the fd associated with it
and sometimes we did not.  Let's just always give the data
associated with the fd.  It will make it a bit easier for me
to follow the transitions.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-12-13 11:21:26 -05:00
Donald Sharp
f032106fdf tools: Add rip support bundle commands
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-12-13 10:56:17 -05:00
Jafar Al-Gharaibeh
27b01ce68c
Merge pull request #17642 from opensourcerouting/pim-cs
pimd,pim6d: optimize multicast prefix generation and fix coverity scan defect
2024-12-13 09:37:07 -06:00
Jafar Al-Gharaibeh
330e2c68e1
Merge pull request #17635 from opensourcerouting/pim6-embedded-crash
pim6d: fix crash on clear ipv6 mroute
2024-12-13 09:36:28 -06:00
Rafael Zalamena
a507ca1163 pimd,pim6d: optimize multicast prefix generation
Fix Coverity Scan CID 1602463: make it impossible for the function to fail.

Hardcode the multicast prefix generation instead of calling `str2prefix()`
which caused unnecessary memory allocations and returned error values.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-12-13 08:28:42 -03:00
Jafar Al-Gharaibeh
b28ee727c9
Merge pull request #17640 from opensourcerouting/feature/graphviz_frr_releases
doc: Update the next release dates
2024-12-12 22:02:44 -06:00
Jafar Al-Gharaibeh
38c2505aa0
Merge pull request #17641 from donaldsharp/bgp_path_info_no_infinite_loop
bgpd: When calling bgp_process, prevent infinite loop
2024-12-12 22:02:28 -06:00
Donald Sharp
40c31bdf40 bgpd: When calling bgp_process, prevent infinite loop
If we have this construct:

for (pi = bgp_dest_get_bgp_path_info(dest); pi; pi = pi->next) {
     ...
     bgp_process();
}

This can induce an infinite loop.  This happens because bgp_process
will move the unsorted items to the top of the list for handling,
as such it is necessary to hold the next pointer to the side
to actually look at each possible bgp_path_info.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-12-12 15:08:35 -05:00
Jafar Al-Gharaibeh
f7720ab68f
Merge pull request #17622 from opensourcerouting/msdp-originator
pimd: MSDP originador ID configuration
2024-12-12 10:57:06 -06:00
Donatas Abraitis
f10b20dbbe doc: Update the next release dates
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-12-12 18:10:46 +02:00
Nathan Bahr
ba0a6868e5 test: Fix tests for zebra changes
Remove use of `ip multicast rpf-lookup-mode` from unrelated tests.
Looks like this test was just unlucky enough to pick that command as an
example for use here. Just changed it to something less likely to be
removed in the future.
Update route table output to include AFI SAFI output.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-12 13:50:31 +00:00
Nathan Bahr
8983d24282 zebra: Improve multicast safi route show commands
Add `mrib` flag to existing "show ip route" commands which then use
the multicast safi rather than the unicast safi. Updated the vty output
to include the AFI and SAFI string when printing the table.
Deprecate `show ip rpf` command, aliased to `show ip route mrib`.
Removed `show ip rpf A.B.C.D`.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-12 13:50:31 +00:00
Nathan Bahr
bf8728dcf6 zebra,yang: Completely remove multicast mode from zebra
Multicast mode belongs in PIM, so removing it completely from zebra.
Modified `show (ip|ipv6) rpf ADDRESS` to always lookup from SAFI_MULTICAST.
This means this command is now specific to the multicast table and does
not necessarily reflect the PIM RPF lookup, but that should be implemented
in PIM instead.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-12 13:50:31 +00:00
Nathan Bahr
4250eae00d zebra,pimd,lib: Modify ZEBRA_NEXTHOP_LOOKUP_MRIB
Modified ZEBRA_NEXTHOP_LOOKUP_MRIB to include the SAFI from which to do the lookup.
This generalizes the API away from MRIB specifically and allows the user to decide how it should do lookups.
Rename ZEBRA_NEXTHOP_LOOKUP_MRIB to ZEBRA_NEXTHOP_LOOKUP now that it is more generalized.
This change is in preperation to remove multicast lookup mode completely from zebra.

Signed-off-by: Nathan Bahr <nbahr@atcorp.com>
2024-12-12 13:50:31 +00:00
Rafael Zalamena
e3af4b8c56 doc: document new command MSDP originator ID
Let user know about new MSDP knob to configure originator ID.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-12-12 10:34:21 -03:00
Rafael Zalamena
0a9422f721 topotests: topology to test MSDP originator ID
Import new topology to test originator ID configuration.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-12-12 10:34:21 -03:00
Rafael Zalamena
74834a92f6 pimd: support originator id configuration
Allow user to specify the RP field for the SA messages.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2024-12-12 10:34:19 -03:00
Donald Sharp
f170e9bba9
Merge pull request #17636 from opensourcerouting/msdp-cleanup
pimd: clean up MSDP code
2024-12-12 08:28:49 -05:00
Donatas Abraitis
492750f8bc
Merge pull request #17638 from donaldsharp/zebra_metaq_stuff
zebra: Remove tests for allocation failure
2024-12-12 11:10:31 +02:00
Donald Sharp
9ff0564d7d
Merge pull request #17637 from opensourcerouting/fix/show_which_prefix_is_suppressed
bgpd: Show which prefix is suppressed if debug out is enabled
2024-12-11 19:25:57 -05:00
Donald Sharp
9f88cb56dc bgpd: Fix evpn bestpath calculation when path is not established
If you have a bestpath list that looks something like this:

<local evpn mac route>
<learned from peer out swp60>
<learned from peer out swp57>

And a network event happens that causes the peer out swp60
to not be in an established state, yet we still have the
path_info for the destination for swp60, bestpath
will currently end up with this order:

<learned from peer out swp60>
<local evpn mac route>
<learned from peer out swp57>

This causes the local evpn mac route to be deleted in zebra( Wrong! ).

This is happening because swp60 is skipped in bestpath calculation and
not considered to be a path yet it stays at the front of the list.

Modify bestpath calculation such that when pulling the unsorted_list
together to pull path info's into that list when they are also
not in a established state.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-12-11 12:27:31 -05:00
Donald Sharp
5d8bf74f0a zebra: Remove tests for allocation failure
This cannot happen.  No need to test

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-12-11 11:43:48 -05:00
Donatas Abraitis
024c9446a5
Merge pull request #17605 from donaldsharp/upstream_some_evpn
Upstream some internal code
2024-12-11 18:15:09 +02:00
Donatas Abraitis
50cf94ef60 bgpd: Show which prefix is suppressed if debug out is enabled
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-12-11 18:13:49 +02:00