FRR Mirror
  1. FRR Mirror

FRR

Public
AuthorCommitMessageCommit dateIssues
Donatas AbraitisGitHubDonatas Abraitis
1323200beafMMerge pull request #21265 from chiragshah6/zdevzebra: add debug in route install around nhg not ready
Donatas AbraitisGitHubDonatas Abraitis
5b6923f8927MMerge pull request #21264 from soumyar-roy/soumya/cleanupNHTbgpd: fix BNC cleanup for explicit link-local peers
Jafar Al-GharaibehGitHubJafar Al-Gharaibeh
6503ac50956MMerge pull request #21251 from mjstapp/fix_vrrp_pktsvrrrpd: improve error handling in several paths
Chirag ShahChirag Shah
f2e9b0ddfcczebra: add debug route install nhg not readyTicket: #4929905 debug log: 2026/03/20 01:41:09.401823 ZEBRA: [ZSM84-3K06X] dplane_ctx_route_init route 81.0.0.5/32 op ROUTE_UPDATE nhg id 225 flags 0x5 nh 27.0.0.1 if 4 vrfid 0 not installed nor queued Tracepoint: 2026-03-20T01:35:06.111 frr_zebra:dplane_ctx_route_kernel_nhg_not_ready {'op': 2, 'nhe_id': 141, 'nhe_flags': 515, 'vrf_id': 41} 2026-03-20T01:35:10.366 frr_zebra:dplane_ctx_route...
Soumya RoySoumya Roy
8bcc683650ftests: add orphan BNC cleanup test for explicit LL peer deletionVerify that deleting an explicit link-local BGP neighbor leaves no orphan BNC behind. Without the conf_if guard in bgp_unlink_nexthop_by_peer() and bgp_delete_connected_nexthop(), the BNC lookup uses scope_id (non-zero after TCP) while the BNC was created with ifindex 0, causing the cleanup to miss. Signed-off-by: Soumya Roy <souroy@nvidia.com>
Soumya RoySoumya Roy
dbc1354e589bgpd: fix BNC cleanup for explicit link-local peersbgp_unlink_nexthop_by_peer() and bgp_delete_connected_nexthop() look up the BNC using scope_id to derive the ifindex. For explicit LL peers (conf_if NULL) the BNC was created with ifindex 0, but after the TCP handshake scope_id is non-zero. The mismatch causes the lookup to miss, leaving an orphan BNC with a stale nht_info pointer after the peer is deleted. Add the same conf_if guard that pee...
Donatas AbraitisGitHubDonatas Abraitis
9a3093847edMMerge pull request #21192 from chiragshah6/bgp_bp_genbgpd: backpressure generic framework
Mark StappMark Stapp
fa04cad40f8vrrpd: replace some assertsReplace several asserts with error returns, especially in packet-processing paths. Signed-off-by: Mark Stapp <mjs@cisco.com>
Mark StappMark Stapp
ccca97b5a44vrrpd: only support ethernet in GARP codeDon't mix explicit ethernet and per-interface hw values; we only support ethernet for g-ARP messages. Signed-off-by: Mark Stapp <mjs@cisco.com>
Mark StappMark Stapp
f923267f083vrrpd: limit advertised timers to 12-bitsEnsure advertised vrrpv3 timers are limited to 12 bits. Signed-off-by: Mark Stapp <mjs@cisco.com>
Russ WhiteGitHubRuss White
1d91017edfaMMerge pull request #21211 from opensourcerouting/fix/cap_overflow_parsing_unknownbgpd: Check if we are not overusing error_data buffer when unknown cap received
Russ WhiteGitHubRuss White
b771d8fe1c5MMerge pull request #20854 from sougatahitcs/sougatab/static-to-dynamic-bfd-socketsbfdd: moving bfd socket allocation from static to dynamic
Jafar Al-GharaibehGitHubJafar Al-Gharaibeh
d9b35d944b2MMerge pull request #21217 from mjstapp/fix_ripng_miscripngd: fix data handling in several places
Donatas AbraitisGitHubDonatas Abraitis
c6227bbfcfcMMerge pull request #21102 from cscarpitta/fix_bgp_ls_coverity_defectsbgpd: Fix coverity defects in BGP-LS code
Russ WhiteGitHubRuss White
89b87964cb3MMerge pull request #18217 from Shbinging/fix_ip_rip_versionripd: fix ip rip send/receive version command
Donatas AbraitisDonatas Abraitis
5fd5e495446bgpd: Check if we are not overusing error_data buffer when unknown cap receivedThere is no bounds check before the memcpy(). With Extended Message support enabled, incoming OPEN messages can be up to 65535 bytes, so the total size of unknown capability TLVs can far exceed 4096 bytes, overflowing the stack buffer. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Russ WhiteGitHubRuss White
9530e0ab16bMMerge pull request #21215 from mjstapp/fix_ripd_pktsripd: fix data-handling in several places
Russ WhiteGitHubRuss White
05cdd4a81bfMMerge pull request #21203 from enkechen-panw/bgp-dup-test2tests: bgp_suppress_duplicates: simplify and split into four tests
Russ WhiteGitHubRuss White
735cdb057b8MMerge pull request #21191 from cscarpitta/fix_rmap_cleanup_orderingbgpd: Fix route-map cleanup ordering in SRv6 unicast SID export
Russ WhiteGitHubRuss White
5d28c9ad6b5MMerge pull request #21187 from Jafaral/nhrp-crash[WIP] nhrpd: guard AFI/table lookups in route resolution
Russ WhiteGitHubRuss White
10498c0e9bbMMerge pull request #21166 from enkechen-panw/network-nexthopbgpd: fix BGP_ATTR_NEXT_HOP flag handling in bgp_attr_default_set()
Russ WhiteGitHubRuss White
4825b5ba563MMerge pull request #21098 from mjstapp/fix_bgp_parse_evpn_vncbgpd: improve packet parsing for EVPN and ENCAP/VNC
Russ WhiteGitHubRuss White
3d09b69d358MMerge pull request #21126 from Manpreet-k0/stale_vtep_mrtests: add EVPN VTEP cleanup and recovery test on uplink flap
Russ WhiteGitHubRuss White
efe5c083dabMMerge pull request #21113 from opensourcerouting/fix/bgp_aspath_count_hopsbgpd: Return original as-path when reconciling AS versus AS4
Russ WhiteGitHubRuss White
3a2c202d925MMerge pull request #21097 from Jafaral/nhrp-scannhrpd: harden against malformed packets
Russ WhiteGitHubRuss White
8eb50e82ebeMMerge pull request #21095 from opensourcerouting/fix/bgp_vulnerabilitiesbgpd: harden attribute parsing and packet handling in a few places
Russ WhiteGitHubRuss White
54574457ce0MMerge pull request #21075 from opensourcerouting/fix/bgp_mp_reach_nlri_0.0.0.0bgpd: Validate MP_REACH_NLRI attribute against incorrect next-hop
Russ WhiteGitHubRuss White
27d7a2b22f8MMerge pull request #20350 from anlancs/zebra/fix-empty-vidzebra: fix missing vlan change
Chirag ShahChirag Shah
6d5aaf74c0ebgpd: backpressure per instnace queued dest statsnode# show bgp statistics BGP IPv6 Unicast RIB statistics (VRF default) Total Advertisements : 15 Total Prefixes : 15 Average prefix length : 98.13 Unaggregateable prefixes : 15 Maximum aggregateable prefixes: 0 BGP Aggregate advertisements : 0 Address space advertised : 6.01295e+10 ...
Chirag ShahChirag Shah
a88f99e46dbbgpd: backpressure add list count in global show cmdBGP started at Mon Mar 16 19:27:16 2026 BGP GSHUT is disabled. Number of BGP instances (including default): 1 BGP suppress-fib-pending is disabled. BGP Input Queue Limit: 10000 BGP Output Queue Limit: 10000 Zebra Announce Count: 0 <<< BGP Global Update Delay Timers: Update Delay Time: 0s Establish Wait Time: 0s { "bgpStartedAt":"Mon Mar 16 19:27:16 2026\n", "bgpStartedGracefully":"No...
Chirag ShahChirag Shah
5cbcc686b3abgpd: backpressure generic framework dest back ptrFor generic backpressur logic, the dest carrying the backpressure list node pointer. Signed-off-by: Chirag Shah <chirag@nvidia.com> Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Chirag ShahChirag Shah
a2c022b4d4cbgpd: backpressure generic frameworkThis change decouples the backpressure logic from being tied exclusively to bgp_dest. It introduces a generic structure that can hold a void pointer to any BGP-related object that needs to send to zebra using the the backpressure framework. The associated enum identifies the object type so the correct ZAPI handler can be invoked. Signed-off-by: Chirag Shah <chirag@nvidia.com> Signed-off-by: Do...
Mark StappMark Stapp
35e3a1e0235ripngd: fix data handling in several placesDon't accept responses unless interface is configured; be more careful with route_node before dereferencing the info pointer; validate min and max packet size before processing. Signed-off-by: Mark Stapp <mjs@cisco.com>
Mark StappMark Stapp
4fe4861af36ripd: ensure simple-auth value is NULL-terminatedEnsure the simple-auth string is in a NULL-terminated buffer before printing it with '%s'. Signed-off-by: Mark Stapp <mjs@cisco.com>
Mark StappMark Stapp
9d0a6bfd808ripd: use rn->info properly in process_response()route_node->info is a list, not a single object; use it correctly, and avoid NULL-deref potential. Signed-off-by: Mark Stapp <mjs@cisco.com>
Donatas AbraitisGitHubDonatas Abraitis
3da324e3678MMerge pull request #21188 from soumyar-roy/soumya/nexthopLLbgpd: fix NHT for explicit link-local BGP peers
Donald SharpGitHubDonald Sharp
13f726016fcMMerge pull request #21210 from opensourcerouting/fix/bgp_route_refresh_borrbgpd: Do not process route-refresh for AFI/SAFI if it's not negotiated
Russ WhiteGitHubRuss White
51f40797ea7MMerge pull request #21043 from opensourcerouting/fix/memory_leak_fqdn_capabilitybgpd: Free hostname for FQDN capability if the parsing goes wrong
Donald SharpGitHubDonald Sharp
69b3aba54d9MMerge pull request #21204 from cscarpitta/fix_isis_link_paramsisisd: Fix missing neighbor address Sub-TLVs after link-params change
Donatas AbraitisDonatas Abraitis
25520d45d15bgpd: Do not process route-refresh for AFI/SAFI if it's not negotiatedWe shouldn't allow processing AFI/SAFI received in route-refresh message if we don't have this AFI/SAFI enabled for this peer. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisGitHubDonatas Abraitis
a4b2f06ec94MMerge pull request #21099 from enkechen-panw/bgp-ipv6-nexthopbgpd: add config "nexthop prefer-global" for ipv6 address family
Carmine ScarpittaCarmine Scarpitta
b477964e288tests: Verify neighbor addr Sub-TLVs after link-params resetAdd test_step11() to the isis_te_topo1 topotest suite to verify that the IPv4 and IPv6 Neighbor Address Sub-TLVs in the Extended IS Reachability TLV are correctly restored after link-params changes. The test removes link-params from r1-eth0 and then re-adds them, and checks that the neighbor address Sub-TLVs are still present in the TED on all routers after the reconfiguration. Signed-off-by:...
Carmine ScarpittaCarmine Scarpitta
bfa173f319aisisd: Fix missing neighbor address Sub-TLVs after link-params changeWhen link-params are removed from an interface, Zebra notifies IS-IS via the zebra_if_update_link_params hook, triggering isis_mpls_te_update(). That function calls isis_link_params_update(), which resets ext->status to keep only SR-related Sub-TLV flags — clearing EXT_NEIGH_ADDR and EXT_NEIGH_ADDR6, which control advertisement of the IPv4 and IPv6 Neighbor Address Sub-TLVs, so those Sub-TLVs d...
Donatas AbraitisGitHubDonatas Abraitis
df9b9ecf3b5MMerge pull request #20988 from enkechen-panw/cluster-cmpbgpd: include length in cluster_hash_cmp()
Enke ChenEnke Chen
826e380da86bgpd: include length in cluster_hash_cmp()For robustness, the lengths should be compared even when the pointers are equal. Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
Enke ChenEnke Chen
35044b86010tests: add topotest for bgp "nexthop prefer-global"Add a topotest for bgp "nexthop prefer-global". Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
Enke ChenEnke Chen
4e9fd325707doc: add documentation for bgp "nexthop prefer-global"Add documentation for bgp "nexthop prefer-global". Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>
Enke ChenEnke Chen
1265922cc0abgpd: add config "nexthop prefer-global" for ipv6 address familyThis command is similar to "set ipv6 next-hop prefer-global" in a route-map, but it's global and is applied to the ipv6 routes from all neighbors. BGP may receive a link-local ipv6 address, and a global IPv6 address as the nexthops from a directly connected peer. The default in FRR is to use the link-local address. This config would override the default and use the global ipv6 address instead...
Enke ChenEnke Chen
d33a1dd19fabgpd: fix BGP_ATTR_NEXT_HOP flag handling in bgp_attr_default_set()bgp_attr_default_set() unconditionally set the BGP_ATTR_NEXT_HOP flag on every call, even though attr.nexthop (the IPv4 address field) is all-zeros and not yet assigned. This flag is used by BGP_ATTR_NEXTHOP_AFI_IP6 to distinguish IPv4 vs IPv6 nexthops, so having it always set caused non-IPv4 routes to be misidentified. Callers were working around this by manually calling UNSET_FLAG for non-IPv...
Enke ChenEnke Chen
2becd7b1ab7tests: bgp_suppress_duplicates: simplify and split into four testsConvert the iBGP session between r1 and r2 to eBGP. This eliminates rmap-to-r2 (which existed solely to normalize local-pref to 100 at r2), next-hop-self, and the now-empty address-family block on r2. Since local-pref is not carried over eBGP, drop the local_pref parameter from _bgp_check_route_attributes(). Add a step to wait for the initial route to appear at r2 before recording the baseline...