FRR Mirror
  1. FRR Mirror

FRR

Public
AuthorCommitMessageCommit dateIssues
Mark StappGitHubMark Stapp
2022d4b5e56MMerge pull request #21340 from opensourcerouting/fix/bgp_security_foobarbgpd: A couple fixes for NLRI label parsing and flowspec decoding overflow
Nathan BahrGitHubNathan Bahr
004cbc3f729MMerge pull request #21342 from kaffarell/push-pwxustzvrwludoc: document common daemon options and link -w references
Jafar Al-GharaibehGitHubJafar Al-Gharaibeh
0bc6abdde0aMMerge pull request #21353 from opensourcerouting/fix/github_workflowsci: Adjust github workflows (actions)
Mark StappGitHubMark Stapp
bdba62ffc52MMerge pull request #21351 from opensourcerouting/fix/bgp_attr_parse_stream_position_validationbgpd: Reset the stream to attr_start + attribute_len when WITHDRAWN
Mark StappGitHubMark Stapp
6d1970e5fd9MMerge pull request #21343 from opensourcerouting/fix/bgp_labaled_unicast_underflowbgpd: More validations for labeled unicast and ENCAP attribute
Carmine ScarpittaGitHubCarmine Scarpitta
2176c8e1767MMerge pull request #21344 from opensourcerouting/fix/bgp_ls_parse_attrbgpd: Verify if we correctly parsed BGP-LS attribute
Jafar Al-GharaibehGitHubJafar Al-Gharaibeh
b22e223a8b8MMerge pull request #21316 from mjstapp/fix_eigrp_tlvseigrpd: improve validation and error-handling in tlv parsing
Nathan BahrGitHubNathan Bahr
d3a91118269MMerge pull request #21354 from Jafaral/fix-pim-crashpimd: fix crash due to double free
Jafar Al-GharaibehJafar Al-Gharaibeh
6f3533955b7pimd: fix crash due to double freelocal_membership_del may delete the ifchannel and last upstream, which runs pim_channel_oil_upstream_deref() and frees the channel_oil. IGMP still holds *oilp in that case; a second pim_channel_oil_del() corrupts the RB tree (typed_rb_remove on freed / zeroed links). Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
Donatas AbraitisDonatas Abraitis
f82aa6f272fci: Drop commitling Github actionsNot used anymore. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisDonatas Abraitis
9e71e3c00dcci: Do not trigger Github action when PR is labeled/unlabeledThat causes frrbot to require an approval for running these actions. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisDonatas Abraitis
1efe2527338bgpd: Reset the stream to attr_start + attribute_len when WITHDRAWNbgp_attr_parse does goto done early on WITHDRAW without draining endp, so stream_pnt(s) lands in the middle of the attribute data. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Mark StappMark Stapp
d05029df693eigrpd: skip unknown and ignored TLVsTry to skip unknown TLVs in places where we don't process all types. Reported-by: Haruto Kimura (Stella) <harutokimura0608@gmail.com> Signed-off-by: Mark Stapp <mjs@cisco.com>
Donatas AbraitisDonatas Abraitis
00de111754bbgpd: Verify if we correctly parsed BGP-LS attributeThe loop condition while (stream_get_getp(s) < end_pos) does not catch overshooting. If a sub-parser (e.g. parse_prefix_sid) reads length bytes but length was crafted to extend past end_pos, the stream pointer ends up beyond end_pos. The < condition then terminates the loop normally, and return 0 follows success, with the stream pointer at the wrong offset. Signed-off-by: Donatas Abraitis <do...
Donatas AbraitisDonatas Abraitis
6107151ac9cbgpd: Check the length also when parsing ENCAP attr sub-TLVsIf we don't check for length against 0, then we have a test (length < 1) that triggers the whole ENCAP attr to be malformed. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisDonatas Abraitis
8a7d85ee2eebgpd: Validate prefixlen before subtracting when parsing labeled unicast NLRIWhen multiple labels are consumed without BOS, BSIZE(llen) can exceed prefixlen, causing a uint16_t underflow to 65535. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Gabriel GollerGabriel Goller
530e260c83bdoc: document common daemon options and link -w referencesThe common invocation options (defined in lib/libfrr.c) are already documented in basic.rst under the common-invocation-options label, but several daemon pages refer to them only as "documented elsewhere" without an actual reference. - Replace all "documented elsewhere" occurences with a proper :ref:`common-invocation-options` link in pathd, pbr, sharp, static, and vrrp docs - Document the f...
Donatas AbraitisDonatas Abraitis
a44ef01d835bgpd: Fix compilation for Debian 11 when printing uint64 valuesbuild 25-Mar-2026 08:53:54 375 | #define PRIu64 "Lu" build 25-Mar-2026 08:53:54 bgpd/bgp_flowspec_util.c: In function ‘bgp_flowspec_bitmask_decode’: build 25-Mar-2026 08:53:54 bgpd/bgp_flowspec_util.c:476:44: error: format ‘%Lu’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Werror=format=] build 25-Mar-2026 08:53:54 476 | ...
Donatas AbraitisDonatas Abraitis
4dfd00d46cebgpd: Return zero labels if no BOS found and it's not a withdraw labelWhen bgp_nlri_get_labels() encounters a label without the Bottom-of-Stack (BOS) bit, it consumes subsequent prefix bytes as additional labels, only emitting a warning. If a peer sends prefixlen=48, a 3-byte label without BOS, and 3 bytes of prefix (e.g., 10.0.0.0/24), the parser reads both as labels (llen=6), leaving 0 bytes of prefix data. The resulting p.prefixlen = 48 - 48 = 0 installs a /...
Donatas AbraitisDonatas Abraitis
63a41e8f61fbgpd: Fix signed overflow in hexstr2num()The function accumulates num = hexstr[i] + 256 * num into a signed int. The operator encoding allows up to 8-byte values, causing signed overflow. The result is then silently truncated to uint16_t when stored (mval->value = value), meaning a port value of 0x10050 becomes port 80. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisGitHubDonatas Abraitis
02354aa8cf1MMerge pull request #21315 from donaldsharp/rpki_issuesRpki fix and test improvements
Jafar Al-GharaibehGitHubJafar Al-Gharaibeh
3b7c2ac3eb7MMerge pull request #21277 from mjstapp/fix_ospf6_miscospf6d: improve/harden packet processing
Jafar Al-GharaibehGitHubJafar Al-Gharaibeh
1fbb05f162aMMerge pull request #21302 from opensourcerouting/fix/revalidate_locally_originated_routesbgpd: Revalidate locally originated routes against RPKI changes
Jafar Al-GharaibehGitHubJafar Al-Gharaibeh
f10805f0565MMerge pull request #21310 from mjstapp/fix_pceplib_of_listpceplib: validate during of_list TLV decoding
Nathan BahrGitHubNathan Bahr
c50b07d1886MMerge pull request #20326 from soumyar-roy/soumya/pim-allowrpSoumya/pim allowrp
Mark StappMark Stapp
284c966d540eigrpd: Improve packet validationHarden validation of lengths before accessing packets; detect and handle invalid INT TLVs where they're created. Reported-by: Haruto Kimura (Stella) <harutokimura0608@gmail.com> Signed-off-by: Mark Stapp <mjs@cisco.com>
Donald SharpDonald Sharp
ac1d13ee65cbgpd: Move rpki strict check to bgp_accept()Current code checks on bgp_start and bgp_establish() to prevent incoming and outgoing connections when rpki strict mode is on and bgp is not connected to rpki. Modify the code such that the bgp_establish() code is no longer the place to check this it should be in bgp_accept(). Without this there is a very reproducible crash that happens because the check in bgp_establish() is immediately afte...
Donald SharpDonald Sharp
ce7ebf69cabtests: Add new bgp rpki testingAdd these tests to the bgp rpki topotest to better test the rpki code: a) Test that RPKI invalid state is handled correctly. b) Ensures that neighbor rpki strict works correctly c) Add match rpki invalid route-map and ensure it works correctly. d) Add match rpki-extcommunity and ensure it works correctly. e) Add IPv6 RPKI validation and ensure it works correctly. Signed-off-by: Donald Sharp <...
Donald SharpGitHubDonald Sharp
6f91c88fa2cMMerge pull request #21308 from opensourcerouting/fix/bgp_flowspec_hardeningbgpd: flowspec foobar hardening
Mark StappMark Stapp
76af77ab353pceplib: validate during of_list TLV decodingValidate buffer length in OF TLV decoding; avoid casting buffer as integer pointer; count advance by 2-bytes. Signed-off-by: Mark Stapp <mjs@cisco.com>
Donatas AbraitisDonatas Abraitis
25b2d2d1c66bgpd: Check if prefixlen is not 0 when parsing flowspec stuffWhen len == 0, this wraps to UINT32_MAX/SIZE_MAX, causing an unbounded read from whatever memory follows the buffer. Currently mitigated for the validation path (caller checks psize == 0), but bgp_flowspec_contains_prefix and bgp_fs_nlri_get_string take len from stored prefix data and have no such guard. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisDonatas Abraitis
f51375c736ebgpd: Prevent len_string going negative when trying to display flowspec entriesThe bgp_fs_nlri_get_string() function writes flowspec component strings into a 512-byte stack buffer (BGP_FLOWSPEC_STRING_DISPLAY_MAX). It tracks remaining space using len_string, which is decremented by the return value of snprintf. The critical bug: when snprintf truncates output, it returns the number of characters that would have been written, not the number actually written. This causes ...
Soumya RoySoumya Roy
94e22c3b671tests: add topotest for PIM allow-rp featureAdd a new topotest to verify the 'ip pim allow-rp' functionality. The test validates that PIM joins with mismatched RP addresses are rejected by default, accepted when allow-rp is enabled, and properly filtered when using the rp-list prefix-list option. Signed-off-by: Soumya Roy <souroy@nvidia.com>
Soumya RoySoumya Roy
d3fe1be8d3epimd: add YANG/northbound support for allow-rp configurationWire the allow-rp CLI through the northbound framework with proper YANG modeling, replacing direct struct field manipulation. Add IPv6 pim allow-rp command support. Integrate allow-rp CLI with the northbound framework using proper YANG modeling, replacing direct struct field manipulation. Add IPv6 pim allow-rp command support. Signed-off-by: Soumya Roy <souroy@nvidia.com>
Soumya RoySoumya Roy
24b4a4bb0aapimd: refactor allow-rp logic and remove unused parameter- Remove unused 'allow_rp' parameter from recv_join() function. The parameter was passed but never used; the code accessed pim_ifp->allow_rp directly instead. - Consolidate all allow-rp checking logic into pim_is_rp_allowed(). The function now handles the allow_rp enable check internally, making the calling code cleaner and the function self-contained. - Update function documentation ...
Vijayalaxmi BasavarajSoumya RoyVijayalaxmi Basavaraj
84b9417316bpimd: fix the crash by doing NULL check for pim interfaceAdded the NULL check befor accessing pim interface while processing command "no ip pim allow-rp rp-list sample" Ticket: #3864208 Testing: before: tor-11(config-if)# no ip pim allow-rp rp-list policy vtysh: error reading from pimd: Success (0)Warning: closing connection to pimd because of an I/O error! Broadcast message from root@tor-11 (somewhere) (Thu Apr 18 21:15:45 2024): cumulus-core: R...
Quentin YoungSoumya RoyQuentin Young
7d56dc2f9cfpimd: add allow-rp knob to ignore incorrect rpWhen processing a (*,G) source list entry, the RFC dictates that the source address provided must match the RP address. In some situations it's desirable to forego this check. This patch adds a simple boolean knob, configurable on a per-interface basis, to disable that check. Alternatively, one can specify a prefix-list, which will act as a whitelist for what RP addresses to allow. Signed-off...
Christian HoppsGitHubChristian Hopps
626a93aa906MMerge pull request #21244 from donaldsharp/workflow_update_for_jsondoc: Update json handling specification in workflow.rst
Russ WhiteGitHubRuss White
67fc545383cMMerge pull request #21286 from cscarpitta/fix_bgp_ls_initial_db_syncbgpd: Fix BGP-LS initial TED sync and cleanup on peer deactivation
Russ WhiteGitHubRuss White
095412f5467MMerge pull request #21233 from ak503/rmap-srclib: also compare rmap source address when comparing nexthop source a…
Russ WhiteGitHubRuss White
1de10264dfaMMerge pull request #21231 from Manpreet-k0/wfi_fixbgpd: fix suppress-fib-pending blocking EVPN GR
Russ WhiteGitHubRuss White
d362713b941MMerge pull request #21214 from LabNConsulting/chopps/fix-swapped-vals-and-setsockoptlib: fix swapped values, bad setsockopt, and intermittent test failure
Russ WhiteGitHubRuss White
3169afec27cMMerge pull request #21208 from mjstapp/fix_pceplib_parsingpceplib, pathd: improve pcep parsing and error-handling
Russ WhiteGitHubRuss White
48ad1ad6921MMerge pull request #21092 from cscarpitta/fix_bgp_ls_encoding_decodingbgpd: Fix a couple of issues in BGP-LS NLRI encoding/decoding
Russ WhiteGitHubRuss White
70e4a2442f3MMerge pull request #21068 from donaldsharp/move_import_table_aroundMove import table around
Russ WhiteGitHubRuss White
54ca08d7ff7MMerge pull request #21041 from cscarpitta/srv6_grt_dt46_supportbgpd: Add SRv6 uDT46 SID support for GRT
Russ WhiteGitHubRuss White
0e61612483cMMerge pull request #20720 from opensourcerouting/ospf-connected-routes-v2ospfd, ospf6d: do not install routes for directly attached networks
Donatas AbraitisDonatas Abraitis
93e978bd824bgpd: Revalidate locally originated routes against RPKI changesWithout this patch we evaluated only adj_in for a particular peer, which means we never re-advertise locally originated route if RPKI state changes, e.g.: if RPKI state changes from VALID to INVALID, we still advertise this route to the peer even if we have a route-map that denies announcing INVALID routes. Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Donatas AbraitisGitHubDonatas Abraitis
11cb78b37c6MMerge pull request #21019 from hnattamaisub/evpn_brief_jsonbgpd: brief JSON for L2VPN EVPN loc-rib
Donatas AbraitisGitHubDonatas Abraitis
0b0ca991a89MMerge pull request #21050 from hnattamaisub/unicast_briefbgpd: add brief JSON for ipv4/ipv6 unicast loc-rib