FRR Mirror
  1. FRR Mirror

FRR

Public
AuthorCommitMessageCommit dateIssues
David LamparterGitHubDavid Lamparter
2c43029ef04MMerge pull request #21979 from anlancs/fix/ospfd-redundant-whiteospfd: remove unnecessary space
Russ WhiteGitHubRuss White
e761f6211c4MMerge pull request #21958 from kaffarell/bgpd-nexthop-ipv6-ipv4bgpd: preserve IPv6 nexthops when importing EVPN IPv4 routes
Russ WhiteGitHubRuss White
c96c7037553MMerge pull request #21962 from usrivastava-nvidia/usrivastava/bgp-crashbgpd: BGPd crash due to multiple bnc entry linked to same peer.
Mark StappGitHubMark Stapp
e56d2023f15MMerge pull request #21985 from opensourcerouting/gcc-16-20250519*: GCC 16 warnings
David LamparterDavid Lamparter
597f18b0bfflib: make bison warning pragma unconditionalGCC 16 has started complaining about this as well; the warning was already masked for clang. GCC doesn't seem to mind the pragma being unconditional, even on older versions. clang (on OpenBSD) does complain, so the pragma is still conditional. Due to this being generated code, there isn't really a better fix, sadly. Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
David LamparterDavid Lamparter
e124d77e2d4pathd: remove unused loop countersGCC 16 doesn't like these: ``` pathd/path_pcep_debug.c:1368:21: error: variable 'i' set but not used [-Werror=unused-but-set-variable=] ``` and they are indeed just pointless. Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
Donald SharpGitHubDonald Sharp
8785a9e8b9aMMerge pull request #21951 from cscarpitta/fix_bgp_ls_node_name_tlvbgpd: Fix BGP-LS Attribute Node Name TLV
Russ WhiteGitHubRuss White
a81c3789702MMerge pull request #21908 from cscarpitta/bgp_ls_fix_igp_router_idbgpd: Format IGP Router-ID in BGP-LS NLRI based on protocol
Russ WhiteGitHubRuss White
c22717d6b21MMerge pull request #21912 from cscarpitta/bgp_ls_srv6_extensions_bgp_fabricbgpd: Fix missing SRv6 advertisement with `distribute bgp-fabric-link-state`
Russ WhiteGitHubRuss White
359c8e86670MMerge pull request #21753 from opensourcerouting/feature/check_ping_vrf_support_topoteststests: Add VRF support for check_ping command
Mark StappGitHubMark Stapp
8c22e6b4ea7MMerge pull request #21973 from opensourcerouting/netns_other_unusedlib: remove netns_other.c (unused)
Mark StappGitHubMark Stapp
5bb5be18811MMerge pull request #21957 from opensourcerouting/rollup-pile-20250515*: small fixes roll-up pile
Gabriel GollerGabriel Goller
11f69963d39tests: add EVPN RT-2 IPv6 VTEP import-vrf testAdd a minimal topotest for an IPv4 EVPN RT-2 route learned over an IPv6 VTEP and leaked with BGP import vrf. Verify the route keeps its IPv6 nexthop in both BGP and zebra, covering regressions where the nexthop is corrupted during import. Signed-off-by: Gabriel Goller <g.goller@proxmox.com>RT-2
anlan_csanlan_cs
7a45f27f422ospfd: remove unnecessary spaceRemove unnecessary spaces in config written with `interface_config_auth_str()`. Before: ``` interface enp1s0 ip ospf authentication 1.2.3.4 ``` After: ``` interface enp1s0 ip ospf authentication 1.2.3.4 ``` Also, remove trailing one from "area <> virtual-link <> authentication" in this same way. Signed-off-by: anlan_cs <anlan_cs@126.com>
Donatas AbraitisGitHubDonatas Abraitis
e056b8d8288MMerge pull request #21932 from hnattamaisub/llgrbgpd: skip stalepath-timer clear for LLGR-negotiated AFI/SAFIs
Donatas AbraitisGitHubDonatas Abraitis
f77c07110e6MMerge pull request #21926 from Z-Yivon/bgpd-bfd-strict-hold-peer-deletebgpd: cancel BFD strict hold timer on peer delete
Donatas AbraitisGitHubDonatas Abraitis
1defef96773MMerge pull request #21942 from karthikeyav/bgpd-gate-gr-stale-delete-on-nsf-waitbgpd: limit GR-stale NHT-unreach delete to GR helper context
David LamparterDavid Lamparter
99dc0acba6ctests: clean out a few warningsEnforcing `-Werror` on the tests isn't particularly helpful, but might as well make it clean while at it. The noreturn stuff isn't worth it IMHO, hence just disabling that warning for tests. Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
David LamparterDavid Lamparter
e24db024a9aospfd: work around known frr-format plugin issueThe `frr-format` plugin (which checks format strings for correct use of e.g. `%pI4`) has some shortcomings that I can't fix since they'd either need touching GCC (so you'd need a custom GCC version to use it... yeah, no.) or they would need an excessive amount of time from me to try and understand GCC interna (that I will never again need.) Specifically, the type `(size_t) ( ... )` here is "co...
David LamparterDavid Lamparter
1d34a2bb98disisd, tools: fix 2 uninitialized warningsStupidly enough I didn't note down which compiler is complaining about these, but I know I haven't gone and randomly added initializers for fun. Some version of something complained about these two. Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
David LamparterDavid Lamparter
d1bdccb35cflib: silence a `.l` clang unused-but-set warning``` lib/command_lex.l:77:24: error: variable 'buffer' set but not used [-Werror,-Wunused-but-set-global] ``` I'm not digging further into this since this is dealing in flex-generated code, and while it might be "unused-but-set" with my specific flex version (being in fact unused), it'll probably break with some random other flex version. Signed-off-by: David 'equinox' Lamparter <equinox@opens...
David LamparterDavid Lamparter
e0992f4c502zebra/fpm_listener: add a `FRR_NORETURN` for clangclang-23 is unhappy: ``` zebra/fpm_listener.c:1124:1: error: function 'sigterm_handler' could be declared with attribute 'noreturn' [-Werror,-Wmissing-noreturn] ``` Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
David LamparterDavid Lamparter
09626bd7c01lib: fix event loop shutdown conditionWhen clearing out events from a loop, we just set the fd to `-1`, which is perfectly fine. But we didn't update the highest-used index, which is used for determining if a loop still has things to do. It was never getting to zero, leading to another broken shutdown condition. Again, no impact to normal daemon operation, just `test_zmq` hanging. (I haven't dug up where this broke, it worked a...
David LamparterDavid Lamparter
3993d45ba36lib: fix epoll refactor of event_fetch loopWhen epoll support was added, `event_fetch_inner_loop` got split off from the containing function, which in itself is a good thing. Unfortunately this change missed the fact that the inner loop code there has (*had*) side effects carried through to the next loop iteration by way changing some variables that take effect into the next loop. This doesn't break anything - almost. It affects proce...
David LamparterDavid Lamparter
a25ab72ac5clib: don't crash on xref=NULL events in `%pTHD``%pTHD` isn't really used in a lot of places, and those that exist AFAICS can't run into this condition, but either way we shouldn't crash when printing a zeroed/unused `struct event` with `%pTHD`. (`->xref` won't ever be NULL while an event is in use.) (I ran into this after adding some printf debugging.) Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
David LamparterDavid Lamparter
26f5abfc08dzebra: strip unneeded casts that trip frr-formatThis only shows up with the frr-format plugin loaded into GCC: ``` zebra/zebra_dplane.c:6759: warning: format ‘%Lu’ expects argument of type ‘uint64_t’, but argument 4 has type ‘long unsigned int’ (strict match required [B]) [-Wformat=] ``` The arguments are, in fact, correctly typed `uint64_t`, but there's this GCC "peculiarity" that using a cast in an argument list "boils down" the cast all...
David LamparterDavid Lamparter
39ad72b162czebra: match config write to CLI in PREF64Well, the test didn't try writing the configuration and loading it back, so a mismatch snuck in :(. The CLI expects `lifetime` to be there as a word, but it's not written back out. So we write invalid config. Sigh. Add the missing word to config writes, but also allow the broken form as a hidden command. Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
Russ WhiteGitHubRuss White
f8dfc735b0bMMerge pull request #21754 from PierreNeltner6WIND/topotest-client-to-clienttopotests: Add a topotest for the no bgp client-to-client reflection command
Karthikeya Venkat MuppallaKarthikeya Venkat Muppalla
f2d723d8b02bgpd: limit GR-stale NHT-unreach delete to GR helper contextPR #21742 added deletion of stale paths in evaluate_paths() when the nexthop becomes unreachable, gated on BGP_PATH_STALE. However, BGP_PATH_STALE is also set during Enhanced Route Refresh (RFC 7313) in bgp_clear_route_node(), clearing_clear_one_pi(), and bgp_set_stale_route(), so the existing gate could in principle act on stales set via the enhanced-refresh path. Mirror the GR-specific half ...
David LamparterDavid Lamparter
0f0d36603bflib: rename `netns_linux.c` to `netns.c`Since the file is used on all platforms, just name it `netns.c`. Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
David LamparterDavid Lamparter
c1a77f62feclib: remove netns_other.cThe condition at the top of this file can never be met, because the defines it is checking are defined in `config.h`, which is included from `zebra.h`, which is included *after* the condition check. So, this file was never even compiled. Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
Carmine ScarpittaCarmine Scarpitta
211e849b859tests: Add topotest for BGP-LS SRv6 extensions in BGP-only fabricAdd a dedicated topotest suite bgp_link_state_bgp_fabric_srv6 to verify BGP-LS export of SRv6 NLRIs and attributes in a BGP-only fabric scenario. The topology consists of four fabric routers (r1-r4) with SRv6 locators and static uN/uA SIDs configured, peering with a route reflector (rr) acting as the BGP-LS collector. r1/r2 form an iBGP pair (AS 65001), r3/r4 form an eBGP pair (AS 65002/65003)...
Carmine ScarpittaCarmine Scarpitta
bb77583964abgpd: Advertise SRv6 Capabilities TLV in BGP-LS Node attributesAdd a helper bgp_ls_has_srv6_capability() that returns true when the BGP-LS instance has received at least one SRv6 locator. When originating the BGP Node NLRI, include the SRv6 Capabilities TLV in the node attributes if the instance has SRv6 capability. This signals to BGP-LS consumers that the node is SRv6-capable. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
Carmine ScarpittaCarmine Scarpitta
4b88d5ad8afbgpd: Request all SRv6 locators on BGP-LS instance registrationWhen a BGP instance with BGP-LS fabric distribution enabled registers with the SRv6 SID Manager, request all locators instead of a specific one. This ensures BGP-LS receives the full locator set at startup and can originate Prefix NLRIs with SRv6 Locator TLVs for each configured locator. Signed-off-by: Carmine Scarpitta <cscarpit@cisco.com>
Carmine ScarpittaCarmine Scarpitta
27f783c2708bgpd: Originate and withdraw SRv6 locator prefixes as BGP-LS Prefix NLRIsWhen a new SRv6 locator is received from the SRv6 SID Manager, originate a BGP-LS Prefix NLRI carrying an SRv6 Locator TLV with the locator flags, metric and algorithm number. When a locator is removed, withdraw the corresponding Prefix NLRI. On the first locator advertisement, set has_srv6_locator on the BGP-LS instance and re-originate the Node NLRI so the SRv6 Capabilities TLV is included. ...
Carmine ScarpittaCarmine Scarpitta
abb2adb0bb1bgpd: Refactor BGP-LS prefix origination into shared helperExtract common BGP-LS prefix NLRI construction into a new internal helper to avoid duplication between route-prefix and locator-prefix origination paths. Add bgp_ls_originate_prefix_internal() to centralize: - allocating the prefix NLRI and selecting the NLRI type from AFI - populating local-node descriptors (ASN and BGP Router-ID) - building prefix descriptors (BGP route type and IP reachabi...
Carmine ScarpittaCarmine Scarpitta
4c471588630zebra,lib: Allow SRv6 locator query for all locatorsAllow SRv6 get-locator requests to omit the locator name and treat that as a request for all locators. Update zclient and zapi message handling so NULL locator names are encoded/decoded safely and passed through to the SRv6 manager callback. In zebra SRv6 manager, when locator_name is NULL, iterate all configured locators and send each one to the requesting client. This adds bulk locator ret...
Carmine ScarpittaCarmine Scarpitta
8b3a623fffdbgpd: Export static SRv6 END.X SIDs in BGP-LS link attributesAdd BGP-LS support for static SRv6 END.X LocalSIDs and attach them to BGP link NLRIs as SRv6 End.X attributes. Maintain a per-instance END.X SID list keyed by SID/prefix and store peer matching keys (next-hop IPv6 and ifindex). When END.X localsids are added or removed, update the list and refresh the corresponding BGP link advertisement. Refactor link origination to accept optional attribute...
Carmine ScarpittaCarmine Scarpitta
f0eb283a3c0bgpd: Export static SRv6 END SIDs as BGP-LS SRv6 SID NLRIsAdd BGP-LS support for static SRv6 LocalSIDs (END behaviors) learned via zebra route redistribution. Introduce BGP-LS handlers to process redistribute add/delete events and react to SRv6 localsid updates. For eligible static IPv6 routes, map seg6local action/context to SRv6 endpoint behavior and optional SID structure fields, then originate/withdraw SRv6 SID NLRIs. Signed-off-by: Carmine Scar...
Carmine ScarpittaCarmine Scarpitta
1bcfef7ecdbbgpd: Subscribe IPv6 redistribution with distribute bgp-fabric-link-stateWhen BGP-LS fabric distribution is enabled, bgpd must receive IPv6 redistributed routes from zebra so SRv6-related route information can be exported through BGP-LS. On distribute bgp-fabric-link-state, register IPv6 ZEBRA_ROUTE_ALL redistribution by calling bgp_redist_add() and bgp_redistribute_set(). Log a warning if subscription setup fails. On no distribute bgp-fabric-link-state, remove th...
Carmine ScarpittaCarmine Scarpitta
f302c9fc4fczebra: Encode seg6local action/context in redistributed nexthopsWhen zebra sends redistributed routes, SRv6 seg6local metadata attached to nexthops is not propagated in the ZAPI payload. Encode seg6local metadata in zsend_redistribute_route() by setting ZAPI_NEXTHOP_FLAG_SEG6LOCAL and filling seg6local_action plus seg6local_ctx when a nexthop has a valid seg6local action. This preserves SRv6 LocalSID metadata across zebra-to-bgpd redistribution, so bgpd c...
Donatas AbraitisGitHubDonatas Abraitis
76c1cb02d04MMerge pull request #21947 from Z-Yivon/bgpd-llgr-stale-timer-af-deletebgpd: cancel LLGR stale timer on peer AF delete
Russ WhiteGitHubRuss White
47f5ef42b66MMerge pull request #21960 from anlancs/fix/ospf6-remove-globalospf6d: fix missing updating the global table
Russ WhiteGitHubRuss White
29d59843e8fMMerge pull request #21859 from opensourcerouting/feature/reintroduce_attr_extra_2bgpd: Move some optional feature-specific attributes from struct attr to struct attr_extra
Russ WhiteGitHubRuss White
bdd272d6947MMerge pull request #21448 from chdxD1/fix/zebra-rmac-updatezebra: fix EVPN zero-RMAC in some situations
Russ WhiteGitHubRuss White
b28973fc1c6MMerge pull request #20894 from opensourcerouting/ospf-nssa-translate ospfd: eliminate direct origination of Type-5 LSAs on NSSA routers
Russ WhiteGitHubRuss White
015d2920b9fMMerge pull request #8895 from leonshaw/vxlan-nszebra: Get link from the correct netns for vxlan
Gabriel GollerGabriel Goller
99df15ec40fbgpd: preserve IPv6 nexthops when importing EVPN IPv4 routesWhen importing an EVPN route into a VRF unicast table, install_evpn_route_entry_in_vrf() converted every imported IPv4 route into a route with the legacy IPv4 NEXT_HOP attribute set: attr.nexthop = attr.mp_nexthop_global_in; SET_FLAG(attr.flag, ATTR_FLAG_BIT(BGP_ATTR_NEXT_HOP)); This is only valid when the imported EVPN nexthop is IPv4. With IPv6 VTEPs we can get IPv4 prefixes with IP...
anlan_csanlan_cs
a52a6e2ae5bospf6d: fix missing updating the global tableWhen the `old_route->paths` in `ospf6_intra_prefix_route_ecmp_path` changes, the corresponding entry in the area table has already been updated. However, when the global table is updated subsequently, the corresponding entry cannot be deleted due to the changed `old_route->paths`. So, relax `ospf6_area_route_hook_remove`'s search and ignore the paths. This way, the corresponding entry in the g...
Jafar Al-GharaibehGitHubJafar Al-Gharaibeh
cb1e6946eb0MMerge pull request #21961 from usrivastava-nvidia/usrivastava/pimd_crashpimd: Fix crash when up->channel_oil is NULL