1 of 18

L3AF Incubation Review

April 17, 2024

2 of 18

L3AF Mission Statement

At L3AF, our vision is to create a marketplace for eBPF programs, where users and developers can share their own signed eBPF programs and download eBPF programs from others. Our L3AF platform can then be used to orchestrate and compose selected eBPF programs from the marketplace to several business needs. In this way, L3AF provides developers with a cloud and vendor-agnostic platform for adding capabilities to an operating system at runtime. We believe that the creation of such a fully integrated software ecosystem around eBPF will unleash its full potential for community adoption.

3 of 18

Project Vitals

  • Project Name: L3AF
  • Project Creation Date: July 19, 2021
  • Project License: Apache 2.0
  • Contributing Organizations: Walmart, University of Delhi, NgKore
  • Release Planning:

4 of 18

Project & Community Resources

5 of 18

Project Overview

6 of 18

Project Governance

7 of 18

Use Case / Problem Statement

  • Problem Statement: The Linux kernel restricts attaching only one eBPF program to an interface, thereby preventing the execution of multiple eBPF programs on a node. This limitation makes orchestrating the simultaneous execution of multiple eBPF programs on the node a challenging task.

  • Use Case Scenarios: In our edge nodes, we have the requirement to gather IPFIX flow data, safeguard our systems against DDoS attacks and deep packet inspection. We have various eBPF programs designed for these purposes, such as flow exporter, ratelimiting, and connection limiting. The challenge lies in executing multiple eBPF programs on the node in the chain to fulfill these requirements.

8 of 18

Project Architecture

9 of 18

Infrastructure & Tooling

10 of 18

L3AF Roadmap

  • Risk/Challenge- L3AF on Windows. It was planned to release L3AF support for Windows (XDP support) in 2024. When Microsoft left the project the Windows expertise left as well. The community will continue to keep this on the roadmap and think this through on how to deliver, but has exhausted its ideas, for now, on how to deliver this. Thoughts and ideas from the TAC are welcome.

  • Long-Term Objective: eBPF Marketplace.

11 of 18

Incubation Criteria/Guidance

Sandbox

Incubation

Graduated

Comments

Code Scanning

An intake scan is conducted to ensure basic security and license compliance.

Scanning is done on an ad-hoc cadence to catch any potential issues early, allowing for timely resolution.

In addition to regular scans, mature tooling and processes are in place to scan all new code submissions, ensuring continuous security and license compliance.

Codeql is used

Seed code hand off

A date for seed code handoff is planned and communicated to stakeholders.

Seed code handoff is completed. It's mandatory at this stage to ensure that the project has a solid foundation to build on.

At this stage, the seed code handoff is already completed (mandatory). The project is now focusing on iterating and improving upon this initial codebase.

Complete

Coding Standards

Coding standards are loosely defined, allowing for flexibility and creativity in the early stages of the project.

A moderate set of coding standards is enforced to ensure code quality and maintainability without stifling innovation.

Strict coding standards are enforced to ensure high code quality, maintainability, and consistency. Regular code reviews are conducted to ensure these standards are adhered to.

Contained in CONTRIBUTING.md

This criteria is capture from Induction Framework Per Lifecycle Stage as documented on LFN Project Lifecycle Wiki

12 of 18

Incubation Criteria/Guidance

Development Governance

Sandbox

Incubation

Graduated

Comments

Adding/Removing Committers

Mandatory - It's essential at this stage to build a diverse and inclusive team of committers to facilitate the project's progress.

Mandatory - The need for committers may shift as the project grows and evolves, hence it's necessary to have a mechanism for adding/removing them.

Mandatory - As the project matures, maintaining the right set of committers is crucial to ensure high quality and continuous progress.

In place

Adding/Removing PTLs (Project Team Leads)

Not required at this early stage, roles might be more informal and fluid.

Mandatory - As the project grows, it's necessary to have designated leaders (PTLs) steering different aspects of the project and a process to add or remove them.

Mandatory - At this mature stage, the mechanism to add/remove PTLs is crucial for maintaining effective leadership and governance.

Defined in Governance under "Project Roles".

Sub-Project Lifecycle

Not required at this early stage, the focus is on the core project.

Adding a sub-project - The project may grow and expand into different areas, requiring the addition of sub-projects.

Adding, advancing, and archiving a sub-project - As the project matures, there's a need for mechanisms to add new sub-projects and advance or archive them based on their activity and relevance.

In place

Sub-Projects Without a Designated Lead

Allowed - At this stage, sub-projects might not yet be formalized

Not recommended - It's important to have a designated lead for each sub-project to ensure its progress and alignment with overall project goals.

Not allowed - At this mature stage, every sub-project must have a designated lead to ensure effective management and progress.

Defined in Governance under "Project Roles".

Dispute Resolution

Not mandatory, but it's beneficial to have some basic dispute resolution mechanism.

Mandatory - As the project and its community grow, it's important to have a defined process for resolving disputes.

Mandatory - With a mature and larger community, a clear dispute resolution process is crucial to ensure a healthy and harmonious community.

Defined in Governance

TSC/TOC Governance 

Appointments OK - At this early stage, key roles can be appointed to steer the project.

Some Meritocracy - As the project progresses, the governance should start to transition towards a merit-based system, though some roles might still be appointed.

Full Meritocracy - At this mature stage, all governance roles are based on merit. Contributors who have demonstrated their commitment and made significant contributions earn their roles.

Appointment model in place until the project grows

13 of 18

Incubation Criteria/Guidance

Development Governance

Sandbox

Incubation

Graduated

Comments

Technical Documentation

Build - Initial creation of technical documentation to guide early adopters and contributors.

Build, deploy - Comprehensive technical documentation is developed and deployed, covering the necessary details of the project's functionality.

Build, deploy, test, debug, upgrade - Extensive documentation is maintained, providing instructions for various tasks, including testing, debugging, and upgrading the project.

Each Release is documented

Contributor onboarding Documentation

Not required at this early stage.

Simple - A basic set of documentation is made available to guide new contributors.

Detailed - Comprehensive documentation is provided, covering all aspects of contributing to the project, from setting up the development environment to submitting patches.

Contained in CONTRIBUTING.md

Company Diversity (past 12 months)

variable

variable

Minimum 6 companies required to maintain diverse and balanced representation.

Walmart, some contribution from University of Delhi & NgKore

# of Contributors�(past 12 months)

Few - At this early stage, the focus is on setting up the project and attracting initial contributors.

10 or more as a target - As the project grows, it attracts more contributors.

More than 2 dozen - As the project matures, the number of contributors increases, reflecting the project's growing community and impact.

6-8 contributors

Release Management

RM consultation with LFN (minimum) - At this stage, the release management process is being set up with guidance from LFN.

Processes established and documented - The release management processes are well-defined and documented, providing clear guidance to the project community.

Processes followed to deliver a release - Mature projects should be following a well-established, documented release process to deliver each release.

In place

14 of 18

Incubation Criteria/Guidance

Development Governance

Sandbox

Incubation

Graduated

Comments

CI/CD

Manual - At this stage, the project might rely more on manual methods for integration and deployment.

Somewhat Integrated - The project starts to integrate some aspects of CI/CD into their development process.

Mostly Integrated - Most parts of the development process are automated through CI/CD, improving efficiency and reliability.

In place. Using GitHub

Adoption

Not a focus at this stage.

Not a focus at this stage.

At least one end user - For a graduated project, it's expected that it has been adopted by at least one end user.

In production at Walmart (runs Black Friday)

Security design principles

Not a focus at this early stage.

OSSF Scorecard has been established and is being tracked as work in progress 

OSSF Scorecard is 80% to "Passing" or better - Mature projects are expected to maintain or improve their OSSF Scorecard performance, demonstrating a continuous focus on security.

OpenSSF Best Practices: PASSING

https://www.bestpractices.dev/en/projects/6075

Working toward Silver badge

15 of 18

Collaboration

  • L3AF is in early discussion with KubeArmor to discuss potential collaboration around around security; zero-trust capabilities using Linux Security Modules (LSM). This was initiated through the 5G Super Blueprint community.
    • Challenge- The project has limited development resources to execute on cross-community collaboration due to the Walmart-centric nature of the project.

  • Challenge- identifying and executing on collaboration with “traditional” LFN project communities.

16 of 18

Request for Vote

  • The L3AF community requests a TAC vote to promote project L3AF to Incubation state.

17 of 18

Parking Lot, Follow-up, & Next Steps

18 of 18

Thank You