‹ Reports
The Dispatch

OSS Report: FRRouting/frr


FRRouting Project Faces Stability Challenges Amidst Active Development

FRRouting, a comprehensive routing protocol suite, is experiencing significant development activity focused on bug fixes and feature enhancements, although stability issues persist, particularly with memory management and routing protocol interactions.

FRRouting (FRR) is an open-source routing protocol suite supporting various IPv4 and IPv6 protocols, designed for Linux and BSD systems. It aims to provide robust network routing solutions with extensive protocol support.

Recent Activity

Recent issues and pull requests (PRs) indicate ongoing challenges in maintaining system stability. Key issues include memory leaks, route management inconsistencies, and specific protocol problems with OSPF and BGP. These suggest potential regressions or bugs in recent versions, particularly affecting IPv6 routes and multi-protocol interactions.

Development Team and Recent Contributions

  1. Jafar Al-Gharaibeh (Jafaral)

    • Merged PRs fixing NHRP and OSPF issues; contributed to PIM enhancements.
    • Collaborated with Donald Sharp on multiple PRs.
  2. Donald Sharp

    • Addressed bugs in OSPF and NHRP; engaged in BGP/OSPF testing adjustments.
    • Frequent collaboration with Jafar Al-Gharaibeh and Donatas Abraitis.
  3. Christian Hopps (choppsv1)

    • Focused on Munet test improvements; fixed shell spawning errors.
    • Collaborated with Jafar Al-Gharaibeh on test documentation.
  4. Donatas Abraitis (ton31337)

    • Merged PRs for bug fixes in BGP, IS-IS, PIM; enhanced testing frameworks.
    • Worked with Louis Scalbert on NHRP tests.
  5. Louis Scalbert (louis-6wind)

    • Contributed to ISIS bug fixes; engaged in NHRP test improvements.
    • Collaborated with Donatas Abraitis.
  6. Dmitrii Turlupov

    • Merged PRs fixing OSPF command bugs.
    • Less frequent collaboration noted.
  7. Mark Stapp (mjstapp)

    • Focused on documentation updates and minor bug fixes.
    • Participated in discussions but less active in commits.
  8. Carmine Scarpitta (cscarpit)

    • Contributed SRv6 SID Manager test cases.
    • Worked independently but significantly enhanced testing suite.

Of Note

Quantified Reports

Quantify Issues



Recent GitHub Issues Activity

Timespan Opened Closed Comments Labeled Milestones
7 Days 7 7 13 0 1
30 Days 26 22 73 3 1
90 Days 91 82 268 11 2
1 Year 317 200 1160 44 3
All Time 3651 3299 - - -

Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.

Quantify commits



Quantified Commit Activity Over 30 Days

Developer Avatar Branches PRs Commits Files Changes
Carmine Scarpitta 4 2/2/0 85 70 6555
Louis Scalbert 9 21/12/1 51 61 2839
Donatas Abraitis 8 24/21/1 16 24 717
Christian Hopps 2 8/8/0 11 27 603
Jafar Al-Gharaibeh 4 11/10/1 9 21 329
sri.mohan 1 4/4/0 4 10 316
Donald Sharp 3 23/19/1 7 4 303
Mark Stapp 1 0/0/0 4 7 78
Denys Haryachyy 5 1/1/0 5 1 30
Dmitrii Turlupov 5 0/0/0 5 1 20
Acee Lindem 1 3/2/1 1 1 16
Loïc Sang 1 0/0/0 2 2 15
Corey Siltala 2 0/0/0 2 1 10
aapostoliuk 1 1/1/0 1 1 9
anlancs 1 2/2/0 1 1 8
Giovanni Tataranni 1 4/1/1 1 1 6
Martin Winter 1 1/1/0 1 1 6
Sindhu Parvathi Gopinathan 1 0/0/0 1 1 4
Dmitrii Turlupov (ak503) 0 1/1/0 0 0 0
None (csilt) 0 1/1/0 0 0 0
Olivier Dugeon 0 0/0/0 0 0 0
Adam Smith (yzguy) 0 1/0/1 0 0 0
Nathan Bahr (nabahr) 0 1/0/0 0 0 0
Russ White 0 0/0/0 0 0 0
Mark Stapp 0 6/4/1 0 0 0
Vladislav Odintsov (odivlad) 0 1/0/0 0 0 0
Quentin Young (qlyoung) 0 1/1/0 0 0 0
None (JosiahMg) 0 1/0/0 0 0 0
Julian Klaiber (jklaiber) 0 1/0/0 0 0 0
Kristof Provost (kprovost) 0 1/1/0 0 0 0
None (leonshaw) 0 2/0/0 0 0 0
None (zhou-run) 0 1/0/0 0 0 0
Mingwei Zheng (zmw12306) 0 1/0/0 0 0 0
Martin Buck (gromit1811) 0 1/0/0 0 0 0
None (lsang6WIND) 0 3/2/1 0 0 0
YX (xingrenwai) 0 1/0/0 0 0 0
None (DennyAgussy) 0 1/0/0 0 0 0
None (baozhen-H3C) 0 0/0/1 0 0 0
Chirag Shah (chiragshah6) 0 1/1/0 0 0 0
Joshua Muthii (jmuthiilabn) 0 1/0/0 0 0 0
None (mergify[bot]) 0 53/44/8 0 0 0
None (enkechen-panw) 0 4/0/1 0 0 0
Philippe Guibert (pguibert6WIND) 0 6/1/3 0 0 0
Rajasekar Raja (raja-rajasekar) 0 2/1/0 0 0 0
Yiheng Cao (Crispy-fried-chicken) 0 1/0/1 0 0 0

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch issues



Recent Activity Analysis

The FRRouting project has seen a significant amount of recent activity, with 352 open issues currently logged. Notably, there are several recurring themes in the issues, including memory leaks, route management inconsistencies, and problems related to specific routing protocols like OSPF and BGP. Some issues indicate potential regressions or bugs introduced in recent versions, particularly concerning the handling of IPv6 routes and the interaction between different routing protocols.

Several issues highlight critical failures in route advertisement and management, particularly when interfaces go down or when configurations are changed. The presence of multiple reports about memory leaks and crashes suggests that the project may be experiencing stability challenges as it evolves.

Issue Details

Here are some of the most recently created and updated issues:

  1. Issue #16833: OSPF timers throttle spf: holdTimeMultiplier not reset, causing incorrect min_holdtime

    • Priority: Triage
    • Status: Open
    • Created: 1 day ago
    • Updated: N/A
  2. Issue #16790: Static route missing from config, not configured

    • Priority: Triage
    • Status: Open
    • Created: 4 days ago
    • Updated: N/A
  3. Issue #16770: Non-advertised Interface Down/Up Impacts OSPF Advertised Routes

    • Priority: Triage
    • Status: Open
    • Created: 6 days ago
    • Updated: 5 days ago
  4. Issue #16767: FRR 8.2 version ospf with gre, when gre_0 interface down and up, route can't update automatically

    • Priority: Triage, Unsupported-version
    • Status: Open
    • Created: 6 days ago
    • Updated: 5 days ago
  5. Issue #16763: How to build docs?

    • Priority: Triage
    • Status: Open
    • Created: 7 days ago
    • Updated: 5 days ago
  6. Issue #16755: BGPd: member access within null pointer of type 'struct lysc_node_action'

    • Priority: Triage
    • Status: Open
    • Created: 9 days ago
    • Updated: 8 days ago
  7. Issue #16747: zebra_apic threads not started after FRR service restart

    • Priority: Triage
    • Status: Open
    • Created: 10 days ago
    • Updated: 6 days ago
  8. Issue #16744: Limited number of VRFs in VPNv4

    • Priority: Triage
    • Status: Open
    • Created: 11 days ago
    • Updated: 10 days ago
  9. Issue #16696: vrrp backup node reply virtual ip mac address

    • Priority: Triage
    • Status: Open
    • Created: 16 days ago
    • Updated: 9 days ago
  10. Issue #16666: static routes not removed from kernel

    • Priority:** Triage
    • Status:** Open
    • Created:** 19 days ago
    • Updated:** 4 days ago

Important Themes and Commonalities

  • There is a noticeable focus on issues related to routing protocol behavior (OSPF and BGP), particularly concerning how routes are managed when interfaces go down or configurations change.
  • Memory management appears to be a recurring concern, with multiple reports indicating memory leaks or crashes associated with specific operations.
  • The interaction between different protocols (e.g., BGP and ISIS) is also highlighted in several issues, suggesting potential complexities in managing multi-protocol environments.
  • The documentation around building and configuring FRR is also a focal point for users seeking clarity on how to properly set up their environments.

Overall, these issues reflect ongoing challenges that may require focused development efforts to enhance stability and usability across various configurations and use cases within the FRRouting project.

Report On: Fetch pull requests



Overview

The analysis of the recent pull requests (PRs) for the FRRouting (FRR) project reveals a total of 203 open PRs, with significant activity focused on bug fixes, enhancements for existing features, and improvements in code maintainability. Notably, several PRs address issues related to routing protocols and their interactions with the system's networking stack.

Summary of Pull Requests

  1. PR #16832: zebra: Resolve the nexthop being tracked to a non-BGP route

    • State: Open
    • Significance: This PR aims to ensure that nexthops tracked in the Nexthop Tracking (NHT) system are resolved to non-BGP routes to prevent incorrect IGP metrics during BGP best path calculations. It replaces a previous PR due to branch issues.
    • Notable Comments: Discussion about maintaining history across PRs and ensuring proper tracking.
  2. PR #16831: bgpd: check coalesce time race condition

    • State: Open
    • Significance: This draft PR is primarily for CI checks and is not intended for merging at this stage.
  3. PR #16830: bgpd: fix missing addpath withdrawal race condition

    • State: Open
    • Significance: Addresses a race condition that prevents proper withdrawal of addpaths when coalesce timers are active, which could lead to routing inconsistencies.
  4. PR #16828: zebra: include the prefix in nht show command

    • State: Open
    • Significance: Enhances the output of the "show ip nht" command by including prefix information, improving clarity for users.
  5. PR #16816: bgpd: Implement BGP dual-as feature

    • State: Open
    • Significance: Introduces support for dual AS configurations in BGP, facilitating smoother migrations and interoperability between different AS configurations.
  6. PR #16811: tests: cleanup ospf6 ecmp inter area

    • State: Open
    • Significance: Focuses on cleaning up test cases related to OSPFv3 ECMP scenarios, which may improve test reliability and maintainability.
  7. PR #16809: isisd: fix rcap tlv double-free crash

    • State: Open
    • Significance: Fixes a memory management issue that could lead to crashes due to double-free errors in IS-IS routing protocol handling.
  8. PR #16800: Nhg reuse intf down up

    • State: Open
    • Significance: Enhances the handling of nexthop groups (NHGs) when interfaces go down and come back up, ensuring better route stability.
  9. PR #16797: Create testcase to more easily reproduce #16197

    • State: Open
    • Significance: Introduces a test case aimed at reproducing an existing bug (#16197), which could aid in debugging efforts.
  10. PR #16796: tools: add logfmt option for frr-reload.py

    • State: Open
    • Significance: Adds a logging format option for better integration with observability tools, enhancing the usability of the frr-reload script.

Analysis of Pull Requests

The current landscape of open pull requests within the FRRouting project indicates a strong focus on improving the robustness and functionality of routing protocols, particularly BGP and IS-IS. A recurring theme across several PRs is addressing race conditions and memory management issues, which are critical for maintaining system stability under high load or complex routing scenarios.

Common Themes

  1. Bug Fixes and Stability Improvements: Many recent PRs target specific bugs that have been identified through user reports or internal testing. For instance, PRs addressing race conditions in BGP path withdrawals (#16830) and memory management issues in IS-IS (#16809) highlight ongoing efforts to enhance software reliability.

  2. Enhancements to Existing Features: Several pull requests introduce new features or enhance existing ones, such as dual-AS support in BGP (#16816) and improvements in nexthop group handling (#16800). These enhancements reflect an active development cycle aimed at expanding FRR's capabilities to meet evolving network requirements.

  3. Testing and Validation Improvements: The introduction of new test cases (#16797) and cleanup efforts in existing tests (#16811) demonstrate a commitment to maintaining high-quality code through rigorous testing practices. This is essential for ensuring that new features do not introduce regressions or instability into the system.

  4. Documentation and Usability Enhancements: Several PRs focus on improving documentation or usability aspects of the codebase, such as adding logging options (#16796) or clarifying command functionalities (#16828). These changes are crucial for fostering community engagement and making it easier for users to adopt new features.

Anomalies

  • The presence of multiple open PRs related to similar issues (e.g., memory management and race conditions) suggests that there may be underlying architectural challenges that need addressing.
  • The high number of open issues (555) alongside these PRs indicates potential bottlenecks in development resources or prioritization strategies within the community.
  • Some discussions among contributors reveal differing opinions on implementation strategies, particularly regarding how features should be integrated or how existing functionalities should be modified (e.g., handling RA settings in BGP).

Lack of Recent Merge Activity

While there is significant activity in terms of open PRs, there appears to be a lag in merging these changes into the main branch. This could be attributed to:

  • The complexity of some changes requiring thorough review processes.
  • Ongoing discussions about feature implementations leading to delays.
  • The need for additional testing before merging potentially impactful changes.

In conclusion, while FRRouting continues to evolve with robust contributions from its community, attention should be given to streamlining the merge process and addressing architectural challenges that lead to recurring issues. Enhanced communication among contributors regarding feature implementations may also help mitigate conflicts and expedite development cycles.

Report On: Fetch commits



Repo Commits Analysis

Development Team and Recent Activity

Team Members and Recent Contributions

  1. Jafar Al-Gharaibeh (Jafaral)

    • Recent Activity:
    • Merged PRs related to fixing issues with NHRP (duplicate auth extension) and OSPF (missing commands).
    • Contributed to enhancements in PIM and testing improvements.
    • Collaboration: Worked on multiple PRs with Donald Sharp and other team members.
  2. Donald Sharp

    • Recent Activity:
    • Merged several PRs addressing various bugs, including fixes for OSPF graceful restart commands and handling of NHRP.
    • Engaged in testing adjustments for BGP and OSPF functionalities.
    • Collaboration: Frequently collaborates with Jafar Al-Gharaibeh and Donatas Abraitis.
  3. Christian Hopps (choppsv1)

    • Recent Activity:
    • Focused on test improvements, particularly in the Munet testing framework.
    • Contributed to fixing errors in spawning shells during tests.
    • Collaboration: Collaborated with Jafar Al-Gharaibeh on test documentation.
  4. Donatas Abraitis (ton31337)

    • Recent Activity:
    • Active in merging PRs related to bug fixes across various components, including BGP, IS-IS, and PIM.
    • Worked on enhancing testing frameworks and resolving issues related to NHRP redundancy.
    • Collaboration: Collaborated with multiple developers including Louis Scalbert.
  5. Louis Scalbert (louis-6wind)

    • Recent Activity:
    • Contributed significantly to bug fixes, especially around ISIS configurations and testing improvements for NHRP.
    • Engaged in refactoring efforts for better code maintainability.
    • Collaboration: Worked closely with Donatas Abraitis on NHRP-related tests.
  6. Dmitrii Turlupov

    • Recent Activity:
    • Involved in merging PRs that fix bugs related to OSPF commands.
    • Collaboration: Less frequent collaborator noted in recent activities.
  7. Mark Stapp (mjstapp)

    • Recent Activity:
    • Focused on documentation updates and minor bug fixes.
    • Collaboration: Participated in discussions but less active in recent commits.
  8. Carmine Scarpitta (cscarpit)

    • Recent Activity:
    • Contributed a series of test cases for the SRv6 SID Manager, enhancing coverage for new functionalities.
    • Collaboration: Worked independently but contributed significantly to the testing suite.

Patterns and Themes

  • The team is actively merging PRs that address both feature enhancements and bug fixes across various components of the FRRouting project, particularly focusing on routing protocols like BGP, OSPF, IS-IS, and PIM.
  • Collaboration among team members is evident, especially between Jafar Al-Gharaibeh, Donald Sharp, and Donatas Abraitis, who frequently work together on related issues.
  • Testing improvements are a significant focus area, indicating a commitment to ensuring robustness as new features are added or existing ones are modified.
  • There is a notable emphasis on fixing crashes and improving error handling within the routing protocols, which suggests ongoing stability concerns that the team is addressing proactively.

Conclusions

The development team is engaged in a dynamic workflow characterized by collaborative efforts to enhance the FRRouting project. With a strong focus on bug fixing, feature enhancement, and robust testing practices, they are actively working towards maintaining the project's reliability while expanding its capabilities. The presence of multiple contributors working on similar issues indicates a healthy collaborative environment aimed at achieving project goals efficiently.