FRR Mirror
  1. FRR Mirror

FRR

Public
AuthorCommitMessageCommit dateIssues
Rafael ZalamenaGitHubRafael Zalamena
039b63c10edMMerge pull request #21073 from sougatahitcs/sougatab/bfdd-avoid-prefix-list-mem-alloc-oom-fixbfdd: avoid prefix-list memory allocation in bfd to solve oom issue
Donald SharpGitHubDonald Sharp
2ac63aa73fdMMerge pull request #19564 from hedrok/13561-zebra-kernel-route-last-address-deletezebra: remove kernel route on last address deletion
Donald SharpGitHubDonald Sharp
5cf63641a01MMerge pull request #21450 from opensourcerouting/fix/bgp_peer-group_remote_as_differentbgpd: Allow overriding "remote-as" per-neighbor
Donald SharpGitHubDonald Sharp
bf867d4836dMMerge pull request #21453 from cscarpitta/fix_bgp_ls_wrong_union_member_accessbgpd: Fix wrong union member access in `bgp_ls_nlri_display()`
Donald SharpGitHubDonald Sharp
cb19f335ed9MMerge pull request #21456 from cscarpitta/fix_bgp_ls_use_proper_address_formattersbgpd: Use `%pI4/%pI6` formatters in BGP-LS NLRI display
Donald SharpGitHubDonald Sharp
b5b426305abMMerge pull request #21458 from opensourcerouting/pim_inet4_dumppimd: `pim_inet4_dump` -> `%pI4s`
Sougata BarikSougata Barik
32de64766edbfdd: avoid prefix-list memory allocation in bfd to solve oom issuePrefix-list memory is allocated in all FRR modules even when not needed. Added a mechanism to avoid allocation for modules that do not use prefix lists. Ticket: #4707868 Signed-off-by: Sougata Barik <sougatab@nvidia.com>
David LamparterDavid Lamparter
1a728a982fclib, pimd: `pim_inet4_dump`, begone!Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
David LamparterDavid Lamparter
c20c7e6c632pimd: `pim_inet4_dump` -> `%pI4s`Better late than never, we don't need `pim_inet4_dump` when we have `printfrr`, replace it with `%pI4s` format strings. Signed-off-by: David 'equinox' Lamparter <equinox@opensourcerouting.org>
Donatas AbraitisGitHubDonatas Abraitis
e76579b279eMMerge pull request #21455 from cscarpitta/fix_bgp_ls_oversized_node_link_name_tlvsbgpd: Skip oversized BGP-LS Node and Link Name TLVs
Carmine ScarpittaCarmine Scarpitta
9537a7f416ebgpd: Use %pI4/%pI6 formatters in BGP-LS NLRI displaybgp_ls_nlri_display() converts addresses with inet_ntop() into a local string buffer before printing. FRR already supports %pI4/%pI6 in vty_out(), so the extra conversion path and temporary buffer are unnecessary. Replace inet_ntop()-based formatting with direct %pI4/%pI6 printing for router IDs and link interface/neighbor addresses, and drop the unused ipaddr_str buffer. This simplifies the ...
Carmine ScarpittaCarmine Scarpitta
e9ad308238bbgpd: Skip oversized BGP-LS Node and Link Name TLVsparse_node_name() and parse_link_name() accept a length parameter from the BGP-LS TLV header and allocate a buffer of that size without bounds checking. A malicious peer can send TLVs with length fields up to 64KB, causing per-advertisement memory exhaustion that accumulates across many updates. Fix by adding separate constants BGP_LS_MAX_NODE_NAME_LEN and BGP_LS_MAX_LINK_NAME_LEN (255 bytes e...
Carmine ScarpittaCarmine Scarpitta
1ab257d29cebgpd: Fix wrong union member access in bgp_ls_nlri_display()BGP-LS NLRIs carry different data depending on their type (Node, Link, or Prefix). Internally the data is stored in a C union, where only the member matching the active NLRI type is valid to read. bgp_ls_nlri_display() always reads the protocol_id and identifier fields through the node union member, even when the NLRI is actually a Link or Prefix. Reading the wrong union member is undefined be...
Donatas AbraitisDonatas Abraitis
d4a8cb405e5bgpd: Always print peer-group first for the specific neighborAvoid such a case like below where neighbor X does not have remote-as 1, but gets the remote-as from peer-group G. neighbor G peer-group neighbor G remote-as 2 neighbor X remote-as 1 neighbor X peer-group G Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisDonatas Abraitis
9c43242d32etests: Check if we can override remote-as per neighborSigned-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisDonatas Abraitis
f05fda88329bgpd: Allow overriding "remote-as" per-neighborSince we have a way to specify "remote-as auto", it makes sense to relax this behavior to allow overriding remote-as for an arbitrary neighbor too. E.g. Arista allows this behavior. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Russ WhiteGitHubRuss White
7d94895937cMMerge pull request #21438 from mjstapp/fix_tracepoint_gcc_14bgpd,lib,zebra: use explicit casts in tracepoint definitions
Mark StappGitHubMark Stapp
a9550014bb7MMerge pull request #21443 from cscarpitta/fix_srv6_sid_notify_cidbgpd: Fix copy-paste error in SRv6 DT46 SID duplicate install check (CID 1670455)
Carmine ScarpittaCarmine Scarpitta
0b8b8d3e2c0bgpd: Fix copy-paste error in SRv6 DT46 SID duplicate install checkSRv6 End.DT46 uses a single shared SID for both the IPv4 (AFI_IP) and IPv6 (AFI_IP6) address families within a VRF. When zebra notifies bgpd that a SID has been assigned, bgpd must install it for both AFIs. To avoid sending zebra a duplicate ROUTE_ADD, the AFI_IP6 code path first checks whether AFI_IP has already done the install: 1) do both AFIs currently hold the same SID? 2) has AFI_I...
Kyrylo YatsenkoKyrylo Yatsenko
7186f8484f0zebra: topotest for last address deletionAdd test that checks kernel routes behaviour on last address deletion. For IPv4 last address deletion must delete all routes for kernel and FRR. For IPv6 checks that as expected last address deletion doesn't effect kernel or FRR routes. See #13561 Signed-off-by: Kyrylo Yatsenko <hedrok@gmail.com>
Kyrylo YatsenkoKyrylo Yatsenko
506c9aa4879zebra: remove kernel route on last address deletionFixes: #13561 Linux kernel deletes IPv4 routes when last interface IPv4 address is deleted, but intentionally doesn't send RTM_DELROUTE in this case. IPv6 has no such behaviour: all routes remain intact on last address deletion. FRR has function rib_update_handle_kernel_route_down_possibility that handles setting interface down, but not removal of last address. To fix the situation: * Add ...
Carmine ScarpittaGitHubCarmine Scarpitta
4ef1aa852e7MMerge pull request #21432 from iurmanj6WIND/fix-srv6-doc-bisdoc: fix SRv6 route commands (bis)
Mark StappMark Stapp
689d29b8867bgpd,lib,zebra: cast pointers to intptr_t in tracepointsCast pointers in tracepoint arguments to intptr_t explicitly to keep compilers happy. Signed-off-by: Mark Stapp <mjs@cisco.com>
Mark StappMark Stapp
24e6573a20abgpd: fix error in evpn_mac_ip_zsend tracepoint definitionprefix.macip_addr.eth_tag used as a pointer, but actually an int. Signed-off-by: Mark Stapp <mjs@cisco.com>
Mark StappGitHubMark Stapp
b97fb700b35MMerge pull request #21433 from y-bharath14/srib-yang-V14yang: Correct pyang errors in frr-pim-route-map.yang
Mark StappGitHubMark Stapp
f7e66de6235MMerge pull request #21431 from Jafaral/fix-pim-channel-oil-crashpimd: guard channel OIL detach against stale pointers
Y BharathY Bharath
fa5f2f3866eyang: Correct pyang errors in frr-pim-route-map.yangCorrect pyang errors in frr-pim-route-map.yang Signed-off-by: y-bharath14 <y.bharath@samsung.com>
Justin IurmanJustin Iurman
dce6d938517doc: fix SRv6 route commands (bis)Follow-up fix for something I missed earlier. An example uses `ens3`, while others use `sr0`. Keep it consistent and use `sr0` everywhere. Also fix the output of an example showing `ens3` although `sr0` was configured. Fixes: 62465b9 ("doc: Add SRv6 encapsulation behavior configuration to staticd doc") Signed-off-by: Justin Iurman <justin.iurman@6wind.com>
Jafar Al-GharaibehJafar Al-Gharaibeh
887cf38c21cpimd: use upstream-owned pim pointer in register and upstream timersMultiple upstream control paths fetched the PIM instance through up->channel_oil->pim even though upstream already owns a stable up->pim pointer. In teardown/re-eval edge flows, channel_oil can be detached before these paths execute. Dereferencing channel_oil only to access pim adds an avoidable null/stale pointer risk. Switch these call sites to up->pim: - pim_register_join() - pim_upstream_...
Jafar Al-GharaibehJafar Al-Gharaibeh
c8ca2bf02a3pimd: use upstream-owned pim pointer in MSDP update pathsSeveral MSDP helper paths fetched the PIM instance through up->channel_oil->pim even though they only require the upstream's instance context. In teardown/re-evaluation edge flows, channel_oil can be detached before these paths run (for example while IGMP prune side effects and upstream cleanup overlap). Dereferencing up->channel_oil only to access pim then creates an avoidable null/stale poin...
Jafar Al-GharaibehJafar Al-Gharaibeh
b635d87366apimd: avoid JP build deref through channel OILpim_msg_build_jp_groups() fetched the pim instance via source->up->channel_oil->pim for (*,G) entries. That creates an unnecessary dependency on channel_oil lifetime while building JP messages. In teardown/re-evaluation edge flows, channel_oil may already be detached before JP aggregation/encoding finishes, making this path vulnerable to null/stale dereference. Use source->up->pim directly in...
Jafar Al-GharaibehJafar Al-Gharaibeh
54f605713afpimd: guard RP RPF-failure mroute delete on detached OILpim_upstream_update() unconditionally called pim_mroute_del() when pim_rpf_update() returned PIM_RPF_FAILURE. In teardown/re-eval edge cases, overlapping prune/delete side effects can detach up->channel_oil before this path executes. Control flow can reach this from IGMP prune-driven cleanup where ifchannel/upstream teardown races with RP re-evaluation. If up->channel_oil is already NULL, call...
Jafar Al-GharaibehJafar Al-Gharaibeh
a67a8fc4cbdpimd: avoid null deref in upstream delete debug pathThe upstream delete trace log read up->channel_oil->oil_ref_count unconditionally. In teardown edge cases, channel_oil may already be detached before this debug statement executes, turning diagnostic logging into a potential null dereference. Control flow for the crash case is: igmp_source_forward_stop() -> tib_sg_gm_prune() -> pim_ifchannel_local_membership_del() -> delete_on_noinfo() -> pim_...
Jafar Al-GharaibehJafar Al-Gharaibeh
68b752b626epimd: guard channel OIL detach against stale pointersIGMP prune and ifchannel teardown paths can delete the same (S,G) channel OIL before upstream teardown reaches pim_channel_oil_upstream_deref(). When that happens, upstream delete can pass a stale OIL pointer into RB removal, which crashes in typed_rb_remove() during igmp_source_timer-driven cleanup. This can happen via prune side effects in the same event flow: igmp_source_forward_stop() -> t...
Carmine ScarpittaGitHubCarmine Scarpitta
199f5d4aa0dMMerge pull request #21416 from iurmanj6WIND/fix-srv6-docdoc: fix SRv6 route commands
Russ WhiteGitHubRuss White
e8b39317b88MMerge pull request #21389 from ashred-lnx/split/topotest-v4-v6-separation-onlytopotests: split bgp_evpn_mh_v4_v6_num v4/v6 layout
Justin IurmanJustin Iurman
ae1bee1ab0ddoc: fix SRv6 route commandsMove text out of code block, use H_Encaps and H_Encaps_Red in vtysh commands (instead of H.Encaps and H.Encaps.Red), refresh output. Fixes: 62465b9dcc82 ("doc: Add SRv6 encapsulation behavior configuration to staticd doc") Signed-off-by: Justin Iurman <justin.iurman@6wind.com>
Mark StappGitHubMark Stapp
f649f49a789MMerge pull request #21409 from opensourcerouting/fix/drop_deprecated_branch_deletion_for_mergifytools: Upgrade configuration to current format for Mergify
Russ WhiteGitHubRuss White
057dff41b02MMerge pull request #21399 from opensourcerouting/fix/bgp_send_notification_if_orf_length_too_bigbgpd: Do not allow triggering route-refresh path with a malformed ORF length
Russ WhiteGitHubRuss White
31371c316d4MMerge pull request #21398 from anlancs/bgpd/fix-wrong-writtenbgpd: fix wrong overwritten for evpn
Russ WhiteGitHubRuss White
f2f704f9e40MMerge pull request #21395 from opensourcerouting/fix/bgp_ehne_orf_cap_length_checkbgpd: Check dynamic capability action before validating ENHE capability
Russ WhiteGitHubRuss White
f09eb3ac562MMerge pull request #21394 from opensourcerouting/fix/bgp_do_not_allocate_stream_if_rr_cap_not_receivedbgpd: Do not allocate stream if route-refresh capability is not received
Russ WhiteGitHubRuss White
639b4c226e3MMerge pull request #21392 from enkechen-panw/static-disable-vrfstaticd: fix static_disable_vrf() to always send a route DELETE
Russ WhiteGitHubRuss White
270dac8b261MMerge pull request #21391 from chiragshah6/zdev3zebra: EVPN prevent stale mbr_zifs entries from early return
Donatas AbraitisDonatas Abraitis
27f9f629c32tools: Upgrade configuration to current format for MergifyDrop deprecated (soon) fields for Mergifyio. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Russ WhiteGitHubRuss White
08744af890cMMerge pull request #21383 from nick-bouliane/doc_bgp_interfacedoc: fix BGP interface neighbor IPv4, IPv6, and v6only documentation
Russ WhiteGitHubRuss White
9cce9c05db0MMerge pull request #21378 from hedrok/fix_frr_testtests: Fix time re in all_protocol_startup/test_all_protocol_startup
Russ WhiteGitHubRuss White
f727b034496MMerge pull request #21377 from opensourcerouting/fix/memory_leak_bgp_nhcbgpd: Fix memory leak for nhc attribute if ipv6 is link-local address
Russ WhiteGitHubRuss White
06557a99889MMerge pull request #21372 from mjstapp/fix_pcep_PSTpceplib: add validation to PCEP PST TLV decode
Russ WhiteGitHubRuss White
fad5c9bbbd1MMerge pull request #21357 from donaldsharp/bgp_backpressure_earlybgpd: Modify early route processing to include send to zebra