Debian Packages - https://deb.frrouting.org
RPM Packages - https://rpm.frrouting.org
Snaps - https://snapcraft.io/frr
Docker - quay.io/frrouting/frr
Release Overview
New Features Highlight
- BGP BFD Strict-Mode
neighbor PEER bfd strict [hold-time N]
- BGP Link-Local Next Hop Capability (draft-ietf-idr-linklocal-capability)
neighbor PEER capability link-local
- BGP Transparent mode
neighbor PEER ip-transparent
- BGP Next Hop Dependent Characteristics Attribute (draft-ietf-idr-entropy-label)
neighbor PEER send-nexthop-characteristics
- IGMP and MLD group/source limits
ip igmp max-groups
ip igmp max-sources
ipv6 mld max-groups
ipv6 mld max-sources
- PIM dense and sparse-dense mode support (RFC3973)
- new interface mode: dense
ip pim dm
- new interface mode: sparse-dense
ip pim sm-dm
- new interface mode: dense
- IGMPv2/MLDv1 immediate leave
- v4-via-v6 nexthop support for static routes
- Timeout for vtysh
exec-timeout
- Discover PREF64 in Router Advertisements (RFC8781)
ipv6 nd nat64
What's Changed
- bgpd: Do not start BGP session if BGP identifier is not set by @ton31337 in #17959
- bgpd: fix add label support to EVPN AD routes by @pguibert6WIND in #17985
- isisd: 'tiebreaker' command line funtionality is inconsistent with its implementation by @baozhen-H3C in #16593
- bgpd: Send non-transitive extended communities from/to OAD peers by @ton31337 in #17896
- Add bgpevpn route type-2 route map filter tests by @lsang6WIND in #17918
- lib: Remove System routes from ip protocol route map choices by @donaldsharp in #17953
- staticd: Add CLI to support steering of IPv4 traffic over SRv6 SID list by @cscarpitta in #17988
- Fpm problems by @donaldsharp in #17962
- bgpd: Fix up memory leak in processing eoiu marker by @donaldsharp in #18000
- doc: fix sbfd.rst doc warnings by @forrestchu in #18018
- Nexthop leak by @donaldsharp in #18014
- lib: actually hash all 16 bytes of IPv6 addresses, not just 4 by @eqvinox in #17901
- bgpd: add L2 attr community support as per RFC8214 by @pguibert6WIND in #17987
- tests: Remove improper pymark by @donaldsharp in #18025
- tools: Add some more support bundle commands by @donaldsharp in #18029
- Coverity 2024 new hotness by @donaldsharp in #17865
- pimd: fix memory leak and assign allocation type by @rzalamena in #18038
- isisd: Do not leak a linked list in the circuit by @donaldsharp in #18033
- pimd: Fix for FHR mroute taking longer to age out by @routingrocks in #14105
- pimd: fix DR election race on startup by @rzalamena in #18048
- bgpd: rfapi: fix mem leak when killed by @gpziemba in #18045
- bgpd: Implement Link-Local Next Hop capability by @ton31337 in #17871
- Fix journald logging via "log stdout" by @gromit1811 in #17775
- babeld: Improve code clarity and maintainability by @y-bharath14 in #18077
- bgpd: fix for the validity and the presence of prefixes in the BGP VPN table. by @louis-6wind in #17370
- bgpd: Show internal data for BGP routes by @ton31337 in #17870
- isisd: Remove unneeded modify functions by @donaldsharp in #18034
- bgpd: fix bgp vrf instance creation from implicit by @chiragshah6 in #18081
- lib: crash handlers must be allowed on threads by @eqvinox in #18060
- Bmp bgp open router id and as val by @pguibert6WIND in #18037
- nhrpd: fix dont consider incomplete L2 entry by @pguibert6WIND in #18078
- bgpd: Request SRv6 locator after zebra connection by @cscarpitta in #18069
- zebra: Allow fpm_listener to continue to try to read by @donaldsharp in #18049
- lib (+bfd): improve late timer warnings by @eqvinox in #18094
- bgpd: Do not check for capability length for Link-Local Next Hop capability by @ton31337 in #18068
- Cid 1636504 by @pguibert6WIND in #18062
- Bfd fixups by @donaldsharp in #18026
- tests: clear
-Wcalloc-transposed-args
warnings by @ariel-anieli in #17649 - bfdd: 0 is a valid fd. by @donaldsharp in #18125
- yang: Reorder the revision statements by @y-bharath14 in #18118
- bgpd: fix incorrect JSON in bgp_show_table_rd by @louis-6wind in #18120
- pimd,pim6d: implement GMP group / source limits by @rzalamena in #18032
- ospfd: Replace LSDB callbacks with LSA Update/Delete hooks. by @aceelindem in #18046
- bgpd: Fix crash in bgp_labelpool by @donaldsharp in #18079
- lib: fix false context information for SRv6 route by @pguibert6WIND in #18023
- staticd: Fix SRv6 SID installation and deletion by @cscarpitta in #18064
- Vrf tableid debugs by @donaldsharp in #18142
- bgpd: Some fixes/improvements for Link-Local Next Hop capability by @ton31337 in #18080
- bgpd: release manual vpn label on instance deletion by @louis-6wind in #18121
- watchfrr: Allow -w option to be ignored by @donaldsharp in #18127
- bgpd: factorize bgp_table_cleanup() by @louis-6wind in #18122
- bgpd: When removing the prefix list drop the pointer by @donaldsharp in #18160
- sharpd: add
crashme
commands by @eqvinox in #18163 - isisd: Request SRv6 locator after zebra connection by @cscarpitta in #18178
- bgpd: fix vty output of evpn route-target AS4 by @mjstapp in #18109
- tests: Fix intermittent failures in
srv6_encap_src_addr
topotest by @cscarpitta in #18187 - yang: Default value for a key leaf to be ignored by @y-bharath14 in #18139
- tools: add logfmt option for frr-reload.py by @gtataranni in #16796
- lib: nb: call child destroy CBs when YANG container is deleted by @choppsv1 in #18082
- isisd, lib: add some codepoints usually shared with other vendors by @pguibert6WIND in #17957
- Use ipv4 class E addresses (240.0.0.0/4) as connected routes by default by @davischw in #18095
- doc: correct
ip rip split-horizon
command in the documentation by @Shbinging in #18189 - staticd: Failed to register nexthop after networking restart by @Pdoijode in #18164
- pimd,pim6d: support IGMPv2/MLDv1 immediate leave by @rzalamena in #18111
- zebra: Do not flush an existing vni configuration trying to remove wrong vni by @ton31337 in #18108
- pimd: filter neighbors by address by @rzalamena in #17914
- tests: Remove warning about passive command by @donaldsharp in #18197
- bgpd: Fix another crash in orf by @donaldsharp in #18194
- pimd: Fix for data packet loss when FHR is LHR and RP by @routingrocks in #14227
- pimd: During prefix-list update, behave as PIM_UPSTREAM_NOTJOINED sta… by @routingrocks in #17666
- *: Remove unneeded IPV6_JOIN|LEAVE_GROUP by @donaldsharp in #18213
- yang: Corrected Pyang errors or warnings by @y-bharath14 in #18218
- doc: update mgmtd list of converted by @choppsv1 in #18223
- tests: add docstrings to frontend mgmtd client by @choppsv1 in #18224
- bgpd: remove dmed check not required in bestpath selection by @donaldsharp in #18210
- Fix oper-state queries that involve choice/case nodes by @choppsv1 in #18231
- zebra: Add operational retrieval of Multipath Number by @donaldsharp in #18236
- pim: Fix autorp group joins by @nabahr in #18225
- pim: Fix vrf binding of autorp and mroute socket by @nabahr in #18226
- pimd: Fix PIM VRF support (send register/register stop in VRF) by @gromit1811 in #18216
- Drop unused code by @dksharp5 in #18243
- bgpd: fix default instance when leaving the hidden state. by @louis-6wind in #18119
- ripd: fix no ip rip split-horizon poisoned-reverse command by @Shbinging in #18256
- staticd: Fix crash because registering unknown vrf by @donaldsharp in #18235
- staticd: Add support for SRv6 uA behavior by @cscarpitta in #18198
- fabricd: add option to treat dummy interfaces as loopback interfaces by @kaffarell in #18242
- support pre-built oper state in libyang tree by @choppsv1 in #18237
- tests: Fixed input dict at create_router_bgp by @y-bharath14 in #18261
- ospf6d: Fix use after free of router in OSPFv3 ABR route calculation. by @aceelindem in #18254
- staticd: Do not log uninitialized
nexthop
variable by @cscarpitta in #18271 - lib: Prevent crash in getting label chunk by @donaldsharp in #18270
- mgmtd: Prevent use after free by @donaldsharp in #18264
- Bgp ecommlist count by @pguibert6WIND in #18159
- staticd: Add
no
form forstatic-sids
command by @cscarpitta in #18263 - pimd: fix null memory access on IGMP source limit by @rzalamena in #18285
- tools: Fix
frr-reload.py
error related tostatic-sids
by @cscarpitta in #18290 - staticd: Fix
no srv6
command by @cscarpitta in #18289 - isisd: Correct edge insertion into TED by @odd22 in #18294
- zebra: reduce memory usage by streams when redistributing routes by @fdumontet6WIND in #18030
- bgpd: Do not advertise aggregate routes to contributing ASes by @ton31337 in #17961
- Allow retrieval of v4/v6 forwarding state via NB by @dksharp5 in #18253
- Vpn prefix aggregate export and accept by @pguibert6WIND in #18301
- bfdd: Add "log-session-changes" command to BFD configuration and operational state via YANG Northbound API. by @aceelindem in #18306
- yang: Imported modules are not in use by @y-bharath14 in #18293
- lib: Correct handling of /frr-vrf:lib/vrf/state/active by @donaldsharp in #18268
- configure.ac: fix sed failure on FreeBSD by @rzalamena in #18310
- More connection cleanup by @donaldsharp in #18195
- doc: don't override automake builtin targets by @qlyoung in #18319
- lib: Document --command-log-always in help by @donaldsharp in #18313
- zebra: Bring up 514 BGP neighbor sessions by @soumyar-roy in #18214
- pimd: Fix PIM6 MLD VRF support (use recvmsg() pktinfo) by @gromit1811 in #18315
- bgpd: Fix dead code in bgp_route.c #1637664 by @donaldsharp in #18327
- Revert "bgpd: Make keepalive pthread be connection based." by @donaldsharp in #18337
- Documentation typesafe by @donaldsharp in #18338
- tests: bgp_evpn_route_map_match fix invalid escape sequence by @donaldsharp in #18344
- lib: use memcpy in bf_copy by @karthikeyav in #18335
- Topotest startup order by @donaldsharp in #18348
- ospfd: minor change for style by @anlancs in #18342
- Clean up some code and bad assumptions in zebra by @donaldsharp in #18346
- tests: Fixed NameError at bmpserver.py by @y-bharath14 in #18362
- zebra: fix table heap-after-free crash by @louis-6wind in #16614
- zebra: Fix neigh delete causing heap-use-after-free error by @routingrocks in #18336
- Revert "bgpd: upon if event, evaluate bnc with matching nexthop" by @donaldsharp in #18368
- staticd: Install known nexthops upon connection with zebra by @donaldsharp in #18367
- Add Testing for community and Extended community match limit zero by @pguibert6WIND in #18366
- bgpd: Show bgp shouldn't display peers in groups by @donaldsharp in #18380
- yang: Fixed pyang errors at frr-bgp-common.yang by @y-bharath14 in #18388
- isisd: fix bit flag collision in options field by @kaffarell in #18377
- Fix bug with oper-state queries including list node by @choppsv1 in #18383
- zebra: ensure proper return for failure for Sid allocation by @raja-rajasekar in #18360
- ospf6d: Disable and delete OSPFv3 areas that no longer have interfaces or configuration. by @aceelindem in #18393
- bgpd: Remove unnecessary stream_new/stream_copies in bgp_open_make by @donaldsharp in #18395
- zebra: add ability to specify output file with fpm_listener by @donaldsharp in #18394
- bgpd: Fixed crash upon bgp network import-check command by @Manpreet-k0 in #18387
- lib: suppress libyang logs during expected error result by @choppsv1 in #18384
- 2 unit-test fixes by @choppsv1 in #18399
- bgpd: Do not keep stale paths in Adj-RIB-Out if not addpath aware by @ton31337 in #18275
- bgpd, zebra, tests: disable rtadv when bgp instance unconfiguration. by @dmytroshytyi-6WIND in #18364
- fix(vrrp): display vrrp version by default by @echkenluo in #18407
- bgpd: Print the real reason why the peer is not accepted (incoming) by @ton31337 in #18410
- tests: Corrected input dict at pim.py by @y-bharath14 in #18414
- More yang state by @donaldsharp in #18349
- babled: reset wired/wireless internal only when wired/wireless status changed by @Shbinging in #18413
- doc: Modify typesafe documentation by @donaldsharp in #18419
- ripngd: Access and Prefix lists are being leaked on shutdown by @donaldsharp in #18418
- zebra: Fix reinstalling nexthops in NHGs upon interface flaps by @raja-rajasekar in #18374
- RedHat: Fixing for PR17793 - Allow RPM build without docs and/or rpki by @mwinter-osr in #18426
- lib: Create VRF if needed by @nabahr in #18430
- bgpd: fix "delete in progress" flag on default instance by @lsang6WIND in #18412
- Fix topotest to wait for zebra connection by @donaldsharp in #18432
- bgpd: Fix leaked memory when showing some bgp routes by @donaldsharp in #18435
- Fpm listener reject by @donaldsharp in #18431
- topotests: Add EVPN RT5 multipath flap test by @chdxD1 in #18325
- Typesafe zclient by @donaldsharp in #18409
- pimd: Skip RPF check for SA message from mesh group peer by @usrivastava-nvidia in #18330
- tests: Catch specific exceptions by @y-bharath14 in #18277
- lib: fix static analysis error by @dmytroshytyi-6WIND in #17986
- zebra: zebra crash for zapi stream by @soumyar-roy in #18359
- yang: Code inline with RFC 8407 rules by @y-bharath14 in #18442
- tests: Change up start order of bmp tests by @donaldsharp in #18452
- tests: add bfd_static_vrf by @louis-6wind in #18446
- tests: Corrected typo at path_attributes.py by @y-bharath14 in #18339
- bgpd: fix
set evpn gateway-ip ipv[46]
route-map by @Tuetuopay in #18378 - tests: add another directory to search path for pylint by @choppsv1 in #18475
- tests: high_ecmp creates 2 update groups by @donaldsharp in #18469
- staticd: Fix a crash that occurs when modifying an SRv6 SID by @cscarpitta in #18467
- babeld: Missing Validation for AE=0 and Plen!=0 by @zmw12306 in #18473
- Bgp clear batch by @donaldsharp in #18447
- bgpd: fix handling of configured route-targets for l2vni, l3vni by @mjstapp in #18484
- bgpd: Fix holdtime not working properly when busy by @donaldsharp in #18483
- babeld: add check incorrect AE value for NH TLV. by @zmw12306 in #18471
- isisd:IS-IS hello packets not sent with configured hello timer by @Z-Yivon in #18311
- isisd: Fix the issue where redistributed routes do not change when th… by @huchaogithup in #18369
- babeld: Hop Count must not be 0. by @zmw12306 in #18474
- lib: Return duplicate prefix-list entry test by @ton31337 in #18494
- bgpd: fix SA warning in bgp clearing code by @mjstapp in #18496
- tests: Handling potential errors gracefully by @y-bharath14 in #18476
- babeld: fix hello packets not sent with configured hello timer by @Shbinging in #18448
- Eigrp typesafe by @donaldsharp in #18482
- ospf6d: Fix LSA memory leaks related to graceful restart by @gromit1811 in #18503
- tests: Add ripng aggregate address testing by @donaldsharp in #18506
- yang: Fixed pyang errors at frr-isisd.yang by @y-bharath14 in #18500
- bgpd: Set the label for MP_UNREACH_NLRI 0x800000 instead of 0x000000 by @ton31337 in #18502
- tests: Modify simple_snmp_test to use frr.conf by @donaldsharp in #18508
- bgpd: Retain the routes if we do a clear with N-bit set for Graceful-Restart by @ton31337 in #18498
- lib:
show route-map
should not print (null) by @donaldsharp in #18515 - tests: Fix potential issues at send_bsr_packet.py by @y-bharath14 in #18520
- tests: Irrelevant code in lutil.py by @y-bharath14 in #18532
- tools: Add option to frr-reload to specify alternate logfile by @mwinter-osr in #15471
- Memory leaks all over by @donaldsharp in #18544
- Bgp packet reads conversion to a FIFO by @donaldsharp in #18450
- babeld: Add next hop initialization by @zmw12306 in #18470
- yang: Limit eigrp to just 1 instance per vrf by @donaldsharp in #18524
- yang: Corrected pyang errors in frr-zebra.yang by @y-bharath14 in #18543
- bgpd: optimize attrhash_cmp calls by @louis-6wind in #18097
- lib: Return duplicate ipv6 prefix-list entry test by @ton31337 in #18561
- eigrpd: Fix possible use after free in nbr deletion by @donaldsharp in #18525
- bgpd: Skip EVPN MAC processing for non-EVPN peers by @routingrocks in #18564
- tests: Resource leaks in test_all_protocol_startup by @y-bharath14 in #18553
- Add BGP redistribution in SRv6 BGP by @pguibert6WIND in #18396
- bgpd: rfapi: track outstanding rib and import timers, free mem at exit by @gpziemba in #18546
- tests: Fix typo when configuring delayopen timer by @ton31337 in #18572
- pimd: Initialize gm proxy to false by @nabahr in #18567
- bgpd: Treat the peer as not active due to BFD down only if established by @ton31337 in #18562
- bgpd: flowspec: remove sizelimit check applied to the wrong length field (issue 18557) by @spoignant-proton in #18558
- staticd: Avoid requesting SRv6 sid from zebra when loc and sid block dont match by @raja-rajasekar in #18580
- babeld: Hop Count must not be 0. by @zmw12306 in #18547
- babeld: Request forwarding does not prioritize feasible routes by @zmw12306 in #18581
- babeld: Fix starvation handling on route loss per RFC 8966 §3.8.2.1 by @zmw12306 in #18582
- babeld: Add a check to prevent all-ones case by @zmw12306 in #18584
- babel: fix incorrect check in known_ae() by @zmw12306 in #18585
- doc: add a diagram for config datastore cleanup on file reads by @choppsv1 in #18602
- pimd: Fix memory leak on shutdown by @donaldsharp in #18526
- nhrpd: Add Hop Count Validation Before Forwarding in nhrp_peer_recv() by @zmw12306 in #18598
- babeld: check valid babel port by @zmw12306 in #18583
- bgpd: On shutdown free up memory leak found by topotest by @donaldsharp in #18614
- *: expose and fix variable shadowing warnings by @mjstapp in #17915
- yang: Pyang errors in frr-bfdd.yang by @y-bharath14 in #18604
- mgmtd: remove bogus "hedge" code which corrupted active candidate DS by @choppsv1 in #18601
- zebra: Fix shadow warning in irdp_packet.c by @donaldsharp in #18627
- bgpd: On shutdown free up table for static routes by @donaldsharp in #18625
- bgpd: Paths not deleted received from shutdown peer by @soumyar-roy in #18594
- bgpd: remove useless calls to afi2family by @louis-6wind in #18624
- bfdd: Fix demultiplexing to rely solely on Your Discriminator by @zmw12306 in #18586
- babeld: fix incorrect type assignment in parse_request_subtlv by @zmw12306 in #18548
- babeld: Add input validation for update TLV. by @zmw12306 in #18472
- bgpd: add usid behavior for bgp srv6 instructions by @pguibert6WIND in #18611
- bgpd: fix add prefix sent in 'show bgp neighbor' by @pguibert6WIND in #18376
- tools: Add pathspace option to generate_support_bundle by @mwinter-osr in #18635
- tests: Fix potential issues in mcast-tester.py by @y-bharath14 in #18633
- babeld: Add MBZ and Reserved field checking by @zmw12306 in #16735
- isisd: fix asla memory leak by @louis-6wind in #18642
- lib, staticd, isisd: add B6.ENCAPS codepoint extensions by @pguibert6WIND in #18597
- zebra: modify fpm_listener to display data about nhgs by @donaldsharp in #18640
- tools: fix reload script for SRv6 locators and formats by @raja-rajasekar in #18628
- tests: Shadowing the built-in function by @y-bharath14 in #18574
- zebra: fix pbr_iptable memory leak by @louis-6wind in #18645
- Rpki testing and bug fix by @donaldsharp in #18649
- pim6d: fix missing 'use-source' interface command by @ak503 in #18578
- zebra: Add ability to dump routes received from fpm_listener by @donaldsharp in #18641
- Add v4-via-v6 nexthop support to staticd by @chdxD1 in #18654
- lib,bgpd: clean up clang warnings by @mjstapp in #18655
- bgpd: fix pbr memory leaks by @louis-6wind in #18653
- fix yang commands that don't have yang attr by @lsang6WIND in #18610
- lib: nb: add list_entry_done() callback to free resources by @choppsv1 in #18540
- bfdd: Set bfd.LocalDiag when transitioning to AdminDown by @zmw12306 in #18592
- tests: Fix northbound endian use in a unit-test by @mjstapp in #18662
- isisd: fix srv6_sid memory leak by @louis-6wind in #18667
- zebra: change fpm_read to batch the messages by @krishna-samy in #18579
- zebra: show command to display metaq info by @krishna-samy in #18497
- yang: Corrected pyang errors in frr-pathd.yang by @y-bharath14 in #18665
- bgpd: fix misused rfapi conditional by @eqvinox in #18669
- pimd: Only create and bind the autorp socket when really needed by @nabahr in #18538
- tests: Resource leak in common_config.py by @y-bharath14 in #18658
- lib,pimd,bgpd,bfdd: Fix clang 18 warnings by @mjstapp in #18675
- zebra: Save event pointer for rib sweeping by @donaldsharp in #18692
- bgpd: ensure that bgp_generate_updgrp_packets shares nicely by @donaldsharp in #18689
- Implement RFC8781 (NAT64 prefix in RA's) by @donaldsharp in #18626
- zebra: implement RFC8781 (NAT64 prefix in RAs) by @eqvinox in #11224
- Update EVPN prefix routes properly instead of withdraw/install by @chdxD1 in #18158
- bgpd: fix vty's version of show advertised-routes by @askorichenko in #18695
- Improve notification selectors (sort, eliminate dups) by @choppsv1 in #18683
- tests: Shadowing the built-in function by @y-bharath14 in #18698
- bgpd: Fix deref after free in bgp_vrf_unlink by @petrvaganoff in #18694
- doc: line vty was not documented by @donaldsharp in #18703
- bgpd: Clean extended communities for VRF routes imported from EVPN by @leonshaw in #18656
- zebra: Add CLI to display SRv6 SIDs allocated by @cscarpitta in #16836
- zebra: add vtep_ip to rmac nh_list in all cases by @chdxD1 in #18677
- doc: state correct default behaviour of VTYSH_PAGER env if unset (vtysh manpage) by @valentinbinotto in #18691
- pimd: Fix for crash during networking restart by @usrivastava-nvidia in #18672
- yang: Fix pyang errors in frr-interface.yang by @y-bharath14 in #18716
- Fix Pim ssmpingd by @donaldsharp in #18652
- change to 18652 to test by @choppsv1 in #18713
- topotests: clarify bgp evpn rt5 by @louis-6wind in #18708
- zebra: Display nhg's afi as
No Afi
by @donaldsharp in #18709 - *: enable the missing-noreturn compiler warning by @mjstapp in #18720
- *: Fix MULTIPATH_NUM check in nhg encode by @karthikeyav in #18690
- zebra: Cancel new client accept events after zsock is closed by @Pdoijode in #18704
- tests: Proper handling of resource allocation by @y-bharath14 in #18730
- *: Allow returns to work with --enable-undefined-behavior by @donaldsharp in #18731
- zebra: use nexthop instead of route vrf_id for EVPN by @chdxD1 in #18309
- bgpd: fix bmp heap use after free on non connected session by @pguibert6WIND in #18700
- ldpd: Option for disabled LDP hello message during TCP by @AndriiFullroot in #18417
- Add sharp support for seg6local routes with uSID flavor by @pguibert6WIND in #18605
- doc: add commit message guidelines to the dev guide by @Jafaral in #18657
- tests: Unidiomatic-typecheck in bgp.py by @y-bharath14 in #18738
- *: Remove deprecated EVENT_OFF macro by @mjstapp in #18739
- Isis run level issue by @donaldsharp in #18734
- staticd: Add support for other SRv6 Headend Behaviors by @cscarpitta in #18623
- zebra: Fixes allowing SRv6 func-bits length 0 by @raja-rajasekar in #18737
- add total path count for bgp net in json output by @soumyar-roy in #18740
- show ipv6 route [json] displays seg6local flavors by @pguibert6WIND in #18563
- ospf6d: Remove dead code by @donaldsharp in #18752
- yang: Fix pyang errors in frr-ospfd.yang by @y-bharath14 in #18756
- Remove dead code found by @donaldsharp in #18757
- yang: Correct unidiomatic-typecheck in pim.py by @y-bharath14 in #18764
- zebra: show nexthops count in nexthop-group command by @krishna-samy in #18762
- Move where nhe_installed_id is set in zebra by @donaldsharp in #18749
- staticd: Fix an issue where SRv6 SIDs may not be allocated on heavily loaded systems by @cscarpitta in #18317
- Allow using reserved ranges in RIP by @ton31337 in #18768
- Remove unused functions as well as cleanup a header file by @donaldsharp in #18766
- build: fail on docstring problems by @eqvinox in #18765
- Fix spelling error in bgp as well as clean up bgp documentation by @donaldsharp in #18770
- tests: Unreachable code in ospf.py by @y-bharath14 in #18767
- docker: Build with 256 way ecmp by @donaldsharp in #18779
- eigrpd: Clean up comment to reflect reality by @donaldsharp in #18780
- zebra: Allow
show ip route table X A.B.C.D/M
to work by @donaldsharp in #18776 - bgpd: restart R-bit startup timer on no shutdown by @ton31337 in #18773
- Add initial state dump on frontend datastore notify subscribe by @choppsv1 in #18778
- Gather vtysh return codes up to report to operator by @donaldsharp in #18783
- BGP should stay in Idle if BFD profile is in admin shutdown state by @ton31337 in #18763
- bfdd: Adding my discriminator id in show bfd peers counters json by @sougata-github-nvidia in #18772
- mgmtd: need to set default notify_format for protobuf message too by @choppsv1 in #18788
- zebra: Allow nhg's to be reused when multiple interfaces are going amuck by @donaldsharp in #18723
- Replace use of
__
as identifier prefix by @choppsv1 in #18790 - lib/clippy: pointer offsets are signed by @eqvinox in #18792
- zebra: Prevent vrf table 254 being used by non-default vrf by @donaldsharp in #18702
- *: some gcc warnings clean up by @rzalamena in #18794
- bgpd: Remove linklist.h inclusion in bgp_mpath.c by @donaldsharp in #18800
- bgpd: fix second router-id of loc-rib peer-up message set to 0.0.0.0 by @pguibert6WIND in #18799
- bgpd: Not advertised to any peer in peer-group by @soumyar-roy in #18587
- bgpd: Add support for BGP to use SRv6 SID in an explicit way by @GaladrielZhao in #18519
- bgpd: fix show bgp vpn rd json by @louis-6wind in #18802
- bgpd: Fix flag issue in delete_vrf_tovpn_sid_per_vrf by @GaladrielZhao in #18808
- ripd, ripngd: Timer values by @ton31337 in #18805
- zebra: guard against use of zapi client data during close by @mjstapp in #18721
- docker: install correct python protobuf in ubuntu docker images by @choppsv1 in #18816
- tests: Fix unreachable code in pim.py by @y-bharath14 in #18817
- tests: bgp_evpn_rt5 add route-reflector by @louis-6wind in #18733
- bgpd: Rename bgp_path_info_delete to bgp_path_info_mark_for_delete by @donaldsharp in #18818
- isid, lib: Fix gcc 15 warnings by @mjstapp in #18820
- Fix bestpath reason being incorrectly set in some cases by @donaldsharp in #18819
- tests: Remove
version
(BGP version) from JSON by @ton31337 in #18831 - ci: harden wget from github servers by @vjardin in #18833
- doc: topotest add missing media type MIB by @vjardin in #18832
- Ipforwarding modify by @donaldsharp in #18316
- Prefix list leak bfdd ldpd by @donaldsharp in #18830
- Bgp encaps reduced by @pguibert6WIND in #18803
- End psp flavor by @pguibert6WIND in #18647
- Fix up from a bunch of ubsan issues found. by @donaldsharp in #16074
- Add PIC support in the srv6 VPN scenario. by @zice312963205 in #16879
- bgpd: Implement BGP Next Hop Dependent Characteristics Attribute (NNHN only) by @ton31337 in #18729
- bgpd: fix view deletion and main socket deletion by @rzalamena in #18758
- SRv6: Allow configuring node-len 0 by @raja-rajasekar in #18774
- bgpd: fix to show exist/non-exist-map in 'show run' properly by @krishna-samy in #18828
- zebra: finish moving
ip[v6] forwarding
to NB/mgmtd by @choppsv1 in #18845 - mgmtd top level root query by @choppsv1 in #18835
- Clang-19 cleanup and removal of scheduled functionality by @donaldsharp in #18821
- pimd: add support for group range prefix-list filter for v6 by @rzalamena in #18260
- pimd,pim6d: require router alert configuration by @rzalamena in #18202
- zebra: V6 RA not sent anymore after interface up-down-up by @soumyar-roy in #18451
- redhat: Add Workaround for inet_ntop replacement which breaks rpms by @mwinter-osr in #18864
- staticd, bgp: fix srv6 encap-value displayed with _ instead of . by @pguibert6WIND in #18858
- bgpd: fix PEER_FLAG_CONFIG_DAMPENING to be ULL by @vjardin in #18869
- Revert 16879 by @ton31337 in #18856
- build: the great war against
config.h
, issue 0 of ∞ by @eqvinox in #18860 - yang: Fix pyang errors in frr-staticd.yang by @y-bharath14 in #18857
- Keep the original NHE associated with a re around by @donaldsharp in #18751
- build: the war against
config.h
continues, 1 of ∞ by @eqvinox in #18874 - bgpd: fix import all adj-rib-in and loc-rib after bmp connects by @pguibert6WIND in #18843
- lib: fix mis-done endian check by @eqvinox in #18875
- Eliminate protobuf from mgmtd backend (daemon) messaging by @choppsv1 in #18878
- *: SPDX license spring cleaning by @eqvinox in #18883
- build: the war on
config.h
is a war of attrition, 2 of ∞ by @eqvinox in #18877 - bgpd: two minor fixes for command by @anlancs in #18882
- bfdd: Only apply increased transmission interval after Poll Sequence by @zmw12306 in #18589
- bfdd: Check for passive mode with zero discriminator by @zmw12306 in #18591
- ospfd: Fix crash when ospf client connects before configuring an OSPF instance by @Jafaral in #18785
- lib: fix copying of resolved addresses by @kunkku in #18871
- *: oh no,
config.h
is mobilizing its forces! - 3 of ∞ by @eqvinox in #18884 - doc/developer: update instructions for NetBSD by @eqvinox in #18879
- yang: Correct pyang errors in frr-bgp-route-map.yang by @y-bharath14 in #18781
- nhrpd: ignore non-host addresses on NHRP interfaces by @kunkku in #18873
- staticd: fix deref of NULL pointer in srv6 code by @mjstapp in #18890
- vtysh,doc: add an idle timeout for vtysh by @mjstapp in #18711
- pimd: add support for PIM dense and sparse-dense modes by @Jafaral in #18648
- doc: add a note about dplane API version to the release docs by @mjstapp in #18896
- zebra: bump the dplane api version for FRR 10.4 by @mjstapp in #18893
- lib: fix coverity defect CID 1643927 by @choppsv1 in #18892
- bgpd: add neighbor ip-transparent by @vjardin in #18789
- pimd, yang: move bsr xpath to be consistent with other rp implementations by @Jafaral in #18898
- lib: fix build failure in darr by @eqvinox in #18863
- github: Do not cache docker foobar by @ton31337 in #18909
- bgpd: Drop deprecated JSON field
gracefulRestartCapability
by @ton31337 in #18900 - pimd: fix a coverity issue with state refresh by @Jafaral in #18902
- pbrd: Fix memory leak when destroying an interface by @ton31337 in #18906
- zebra: [SRv6] persist func-len 0 across frr restart by @raja-rajasekar in #18847
- bgpd: correct no form commands by @anlancs in #18911
- mgmtd simplify frontend CLI config path by @choppsv1 in #18888
- build: check for libunwind.h, not unwind.h by @eqvinox in #18912
- mgmtd: remove unused and unneeded code. by @choppsv1 in #18927
- zebra: Add some more debugging when netlink read fails for a route by @donaldsharp in #18914
- build:
autoconf
cleanup pass by @eqvinox in #18913 - Revert "tools: ignore spaces only in macro empty line." by @donaldsharp in #18934
- tests: Address resource leaks in bmpserver.py by @y-bharath14 in #18935
- bgpd: do not accept a host route that matches a local address by @enkechen-panw in #17976
- bgpd: Add Hold Time(r) for BFD strict mode by @ton31337 in #18901
- tools: ignore spaces only in macro empty line. by @choppsv1 in #18937
- redhat: make FRR RPM build to work on RedHat 10 by @mwinter-osr in #18920
- tools: Fix VRF static routes deletion on config reload instead of update by @dendergunov in #18908
- Handle VRF blackhole routes in SRv6 L3VPN setup with static routes by @pguibert6WIND in #18931
- bgpd: use AS4B format for BGP loc-rib messages. by @pguibert6WIND in #18936
- BGP evpn testing and bug fixes related to non default EVPN backbone by @pguibert6WIND in #18358
- bgpd: Supporting Graceful Shutdown feature for Peer-Group by @Manpreet-k0 in #18659
- *: fix a bunch of header file /
#include
loops by @eqvinox in #18953 - Fix up dplane handling of some edge cases by @donaldsharp in #18919
- pimd, tests: Fix dense mode flooding/grafting, expand dense/mixed mode testing by @nabahr in #18903
- lib: use forward-refs to remove bgp header from lib header by @mjstapp in #18960
- zebra: Do not show SRv6 locator params when they are set to default by @cscarpitta in #18961
- tools: Ensure that checkpatch.sh checks return code of checkpatch.pl by @donaldsharp in #18938
- bgpd: Force adj-rib-out updates if MRAI is kicked in by @ton31337 in #18959
- zebra: add ability to dump fpm listener nhg by @donaldsharp in #18676
- Replace lock and commit protobuf messages with native variants by @choppsv1 in #18928
- bgpd: Unset TOVPN_SID_EXPLICIT flag to ensure BGP can release SRv6 SIDs by @cscarpitta in #18969
- Remove last bits of protobuf from MGMTD by @choppsv1 in #18948
- zebra: Provide SID value when sending SRv6 SID release notify message by @cscarpitta in #18971
- lib: fix coverity "free address-of" issues by @choppsv1 in #18968
- zebra: Allow routes that could be considered connected to exist by @donaldsharp in #18967
- pimd: fix coverity issues by @Jafaral in #18985
- bgpd: Free up leaked memory in case where routemap is not used by @donaldsharp in #18529
- bgpd: Don't send notification if IPv6 Link-Local is not assigned on the interface by @ton31337 in #18930
- zebra: Cleanup SRv6 output of
show running-config
by @cscarpitta in #18970 - bgpd: Set atomic aggregate attribute if we drop AS_SETs by @ton31337 in #18983
- bgpd: Add new CLI to show the counters of each attribute by @ton31337 in #18984
- yang: Fix pyang errors in frr-pim-rp.yang by @y-bharath14 in #18992
- pimd: use the correct vrf with recv prune and state refresh by @Jafaral in #18986
- bgpd: Clean up evpn mac hash on shutdown. (backport #18996) by @mergify[bot] in #18998
- bgpd: Do not reuse the same adj->adv when flushing fifo (attributes too long) (backport #18993) by @mergify[bot] in #18999
- pimd: add boundary checks when parsing join/graft source lists (coverity) (backport #18989) by @mergify[bot] in #19006
- bgpd: Fix crash when fetching statistics for bgp instance (backport #19003) by @mergify[bot] in #19004
- tests: add new /run/netns tmpfs to each topotest router namespace (backport #19007) by @mergify[bot] in #19012
- Fix some coverity issues (backport #18897) by @mergify[bot] in #19021
- Add frr-host yang module - fix bug with reserved IP range config (backport #19019) by @mergify[bot] in #19026
- static: [SRv6] Fixing uninstall and reinstall uA Sids upon Intf flaps (backport #19027) by @mergify[bot] in #19032
- nhrpd: fix crash when accessing invalid memory zone (backport #18994) by @mergify[bot] in #19035
- bgpd: [TOPOTEST] stabilize bgp_peergroup_gshut test case (backport #18991) by @mergify[bot] in #19046
- pathd: fix compare function overflow (backport #19050) by @mergify[bot] in #19053
- Nhrp redundancy ping (backport #19048) by @mergify[bot] in #19052
- zebra: Initialize RB tree for router tables (backport #19049) by @mergify[bot] in #19055
- tests: Fix
bgp_srv6_sid_explicit
test failures (backport #19068) by @mergify[bot] in #19075 - debian, redhat: add missing info to changelog by @Jafaral in #19072
- zebra: fix null pointer dereference in zebra_evpn_sync_neigh_del (backport #19054) by @mergify[bot] in #19081
- zebra: fix stale NHG in kernel (backport #18899) by @mergify[bot] in #19085
- Doc and test update (backport #19070) by @mergify[bot] in #19084
- bgpd: Fix incorrect stripping of transitive extended communities due … (backport #19065) by @mergify[bot] in #19093
- lib: Fix
no on-match goto NUM
command (backport #19108) by @mergify[bot] in #19112 - bgpd: fix missing BGP_ROUTE_AGGREGATE for announcing to zebra (backport #19105) by @mergify[bot] in #19130
- bgpd: Fix extended community check for IP non-transitive type (backport #19097) by @mergify[bot] in #19133
- bgpd: Fix DEREF_OF_NULL.EX.COND in bgp_updgrp_packet (backport #19126) by @mergify[bot] in #19142
- zebra: zebra core with v6 RA (backport #19000) by @mergify[bot] in #19152
- lib: revert addition of vtysh_flush() call in vty_out() (backport #19109) by @mergify[bot] in #19153
- bgpd: free json objects in error paths (backport #19158) by @mergify[bot] in #19163
- bgpd: Extract link bandwidth value from extcommunity before using for WCMP (backport #19165) by @mergify[bot] in #19169
- lib,bgpd,ospf6d,zebra: Free json objects in error paths (backport #19182) by @mergify[bot] in #19184
- zebra: clean up a json object leak (backport #19192) by @mergify[bot] in #19195
- bgpd: Do not try to reuse freed route-maps (backport #19191) by @mergify[bot] in #19200
New Contributors
- @ariel-anieli made their first contribution in #17649
- @kaffarell made their first contribution in #18242
- @karthikeyav made their first contribution in #18335
- @echkenluo made their first contribution in #18407
- @chdxD1 made their first contribution in #18325
- @usrivastava-nvidia made their first contribution in #18330
- @Z-Yivon made their first contribution in #18311
- @huchaogithup made their first contribution in #18369
- @valentinbinotto made their first contribution in #18691
- @AndriiFullroot made their first contribution in #18417
- @kunkku made their first contribution in #18871
- @dendergunov made their first contribution in #18908
Full Changelog: frr-10.3...frr-10.4.0