<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Track Awesome Ebpf Updates Weekly</title>
  <id>https://www.trackawesomelist.com/zoidbergwill/awesome-ebpf/week/feed.xml</id>
  <updated>2026-02-08T09:12:30.300Z</updated>
  <link rel="self" type="application/atom+xml" href="https://www.trackawesomelist.com/zoidbergwill/awesome-ebpf/week/feed.xml"/>
  <link rel="alternate" type="application/json" href="https://www.trackawesomelist.com/zoidbergwill/awesome-ebpf/week/feed.json"/>
  <link rel="alternate" type="text/html" href="https://www.trackawesomelist.com/zoidbergwill/awesome-ebpf/week/"/>
  <generator uri="https://github.com/bcomnes/jsonfeed-to-atom#readme" version="1.2.2">jsonfeed-to-atom</generator>
  <icon>https://www.trackawesomelist.com/favicon.ico</icon>
  <logo>https://www.trackawesomelist.com/icon.png</logo>
  <subtitle>A curated list of awesome projects related to eBPF.</subtitle>
  <entry>
    <id>https://www.trackawesomelist.com/2026/6/</id>
    <title>Awesome Ebpf Updates on Feb 09 - Feb 15, 2026</title>
    <updated>2026-02-08T09:12:30.300Z</updated>
    <published>2026-02-08T09:12:30.299Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Security</p>
</h3>
<ul>
<li><a href="https://github.com/gen0sec/synapse" rel="noopener noreferrer">Synapse (⭐71)</a> - Extended detection and response (XDR) with eBPF-powered firewall and proxy, to protect your Linux servers.</li>
</ul>

<ul>
<li><a href="https://github.com/gen0sec/bpfjailer" rel="noopener noreferrer">BPFJailer (⭐21)</a> - BpfJailer is an eBPF-based process jailing system that provides mandatory access control (MAC) for Linux.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2026/6/"/>
    <summary>2 awesome projects updated on Feb 09 - Feb 15, 2026</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2025/51/</id>
    <title>Awesome Ebpf Updates on Dec 22 - Dec 28, 2025</title>
    <updated>2025-12-19T13:02:56.736Z</updated>
    <published>2025-12-19T13:02:56.736Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Security</p>
</h3>
<ul>
<li><a href="https://github.com/bombinisecurity/bombini" rel="noopener noreferrer">Bombini (⭐37)</a> - An eBPF-based security agent written entirely in Rust using the <a href="https://github.com/aya-rs/aya" rel="noopener noreferrer">Aya (⭐4.3k)</a> library and built on LSM (Linux Security Module) BPF hooks.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2025/51/"/>
    <summary>1 awesome projects updated on Dec 22 - Dec 28, 2025</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2025/49/</id>
    <title>Awesome Ebpf Updates on Dec 08 - Dec 14, 2025</title>
    <updated>2025-12-04T13:05:38.173Z</updated>
    <published>2025-12-04T13:05:38.173Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/hengyoush/kyanos" rel="noopener noreferrer">kyanos (⭐5k)</a> - Kyanos is an eBPF-based network issue analysis tool that enables you to capture network requests, such as HTTP, Redis, and MySQL requests.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2025/49/"/>
    <summary>1 awesome projects updated on Dec 08 - Dec 14, 2025</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2025/48/</id>
    <title>Awesome Ebpf Updates on Dec 01 - Dec 07, 2025</title>
    <updated>2025-11-24T16:14:23.557Z</updated>
    <published>2025-11-24T16:14:23.512Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Networking</p>
</h3>
<ul>
<li><a href="https://github.com/twisted-pear/ipx_wrap" rel="noopener noreferrer">ipx_wrap (⭐7)</a> - A proof-of-concept IPX implementation for Linux using eBPF.</li>
</ul>
<h3><p>Projects Related to eBPF / Linux Scheduler</p>
</h3>
<ul>
<li><a href="https://github.com/sched-ext/scx" rel="noopener noreferrer">scx (⭐1.8k)</a> - sched_ext schedulers and tools.</li>
</ul>

<ul>
<li><a href="https://github.com/Gthulhu/Gthulhu" rel="noopener noreferrer">Gthulhu (⭐370)</a> - Gthulhu optimizes cloud-native workloads using the Linux Scheduler Extension for different application scenarios.</li>
</ul>
<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/pythops/oryx" rel="noopener noreferrer">oryx (⭐2.4k)</a> - A TUI for sniffing network traffic using eBPF on Linux.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2025/48/"/>
    <summary>4 awesome projects updated on Dec 01 - Dec 07, 2025</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2025/19/</id>
    <title>Awesome Ebpf Updates on May 12 - May 18, 2025</title>
    <updated>2025-05-08T12:57:45.893Z</updated>
    <published>2025-05-08T12:57:45.893Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Networking</p>
</h3>
<ul>
<li><a href="https://github.com/liudf0716/apfree-wifidog" rel="noopener noreferrer">ApFree WiFiDog (⭐916)</a> - A high performance and lightweight captive portal solution for wireless networks. It leverages eBPF for traffic control and deep packet inspection capabilities, with plans to gradually replace nftables firewall functionality with eBPF-based solutions.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2025/19/"/>
    <summary>1 awesome projects updated on May 12 - May 18, 2025</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2025/13/</id>
    <title>Awesome Ebpf Updates on Mar 31 - Apr 06, 2025</title>
    <updated>2025-03-27T02:01:15.374Z</updated>
    <published>2025-03-27T02:01:15.374Z</published>
    <content type="html"><![CDATA[<h3><p>Reference Documentation / Other</p>
</h3>
<ul>
<li><a href="https://pchaigno.github.io/bpf/2025/01/07/research-papers-bpf.html" rel="noopener noreferrer">A List of Research Papers</a></li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2025/13/"/>
    <summary>1 awesome projects updated on Mar 31 - Apr 06, 2025</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2025/10/</id>
    <title>Awesome Ebpf Updates on Mar 10 - Mar 16, 2025</title>
    <updated>2025-03-05T12:53:14.194Z</updated>
    <published>2025-03-05T12:53:14.033Z</published>
    <content type="html"><![CDATA[<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://inspektor-gadget.io/docs/latest/gadget-devel/hello-world-gadget" rel="noopener noreferrer">Inspektor Gadget - Hello world gadget</a> - An introductory guide to writing image-based eBPF gadgets and sharing them via OCI registries.</li>
</ul>

<ul>
<li><a href="https://inspektor-gadget.io/docs/latest/gadget-devel/hello-world-gadget-wasm" rel="noopener noreferrer">Inspektor Gadget - Hello world gadget with Wasm</a> - An introductory guide to writing image-based eBPF gadgets and performing post-processing with WASM.</li>
</ul>
<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://inspektor-gadget.io" rel="noopener noreferrer">inspektor-gadget</a> - A collection tools and framework for data collection and system inspection on Kubernetes clusters and Linux hosts using eBPF.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2025/10/"/>
    <summary>3 awesome projects updated on Mar 10 - Mar 16, 2025</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2025/4/</id>
    <title>Awesome Ebpf Updates on Jan 27 - Feb 02, 2025</title>
    <updated>2025-01-22T07:43:46.866Z</updated>
    <published>2025-01-22T07:43:46.764Z</published>
    <content type="html"><![CDATA[<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://blog.maxgio.me/posts/unleashing-power-frame-pointers-writing-simple-continuous-profiler/" rel="noopener noreferrer">Writing a basic continuous profiler</a> - A step-by-step guide to write an appliation continuous profiler leveraging the eBPF instrumentation, with a complete project as a reference.</li>
</ul>
<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/coroot/coroot" rel="noopener noreferrer">Coroot (⭐7.4k)</a> - Coroot is an open-source APM &amp; Observability tool, a DataDog and NewRelic alternative.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2025/4/"/>
    <summary>2 awesome projects updated on Jan 27 - Feb 02, 2025</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2024/48/</id>
    <title>Awesome Ebpf Updates on Nov 25 - Dec 01, 2024</title>
    <updated>2024-11-26T12:54:35.078Z</updated>
    <published>2024-11-26T12:54:35.033Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / BTF</p>
</h3>
<ul>
<li><a href="https://cloudchirp.substack.com/p/what-is-btf-bpf-type-format" rel="noopener noreferrer">What is BTF (BPF Type Format)</a> - A community-authored newsletter enriched with useful code illustrations and hands-on examples.</li>
</ul>
<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://cloudchirp.substack.com/p/loops-and-iterators-in-ebpf" rel="noopener noreferrer">Loops and Iterators in eBPF</a> - Newsletter about all the ways to loop and iterate in eBPF.</li>
</ul>

<ul>
<li><a href="https://cloudchirp.substack.com/p/what-insights-can-ebpf-provide-into" rel="noopener noreferrer">What Insights Can eBPF Provide into Real-Time SSL/TLS Encrypted Traffic and How?</a> - A step-by-step guide how eBPF can observe encrypted network traffic.</li>
</ul>

<ul>
<li><a href="https://cloudchirp.substack.com/p/can-ebpf-detect-redis-message-patterns" rel="noopener noreferrer">Can eBPF Detect Redis Message Patterns Before They Become Problems?</a> - A step-by-step guide how eBPF can observe Redis communication between client and server.</li>
</ul>

<ul>
<li><a href="https://cloudchirp.substack.com/p/transparent-proxy-implementation" rel="noopener noreferrer">Transparent Proxy Implementation using eBPF and Go</a> - A step-by-step guide on how to implement a transparent proxy using eBPF.</li>
</ul>

<ul>
<li><a href="https://cloudchirp.substack.com/p/ebpf-powered-load-balancing-for-so_reuseport" rel="noopener noreferrer">eBPF-Powered Load Balancing</a> - Learn how eBPF can infer custom load-balancing for services listening on the same port, through the SO_REUSEPORT TCP option.</li>
</ul>

<ul>
<li><a href="https://ebpfchirp.substack.com/p/unit-testing-ebpf-programs" rel="noopener noreferrer">Unit Testing eBPF Programs</a> - Learn how you can unit test your eBPF programs using libbpf.</li>
</ul>

<ul>
<li><a href="https://cloudchirp.substack.com/p/optimizing-local-socket-communication" rel="noopener noreferrer">Accelerating Local Socket Communication using eBPF</a> - Learn how eBPF can speed-up local socket communication up to 30%.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2024/48/"/>
    <summary>8 awesome projects updated on Nov 25 - Dec 01, 2024</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2024/40/</id>
    <title>Awesome Ebpf Updates on Sep 30 - Oct 06, 2024</title>
    <updated>2024-10-03T01:53:20.387Z</updated>
    <published>2024-10-03T01:53:20.387Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Security</p>
</h3>
<ul>
<li><a href="https://github.com/alegrey91/harpoon" rel="noopener noreferrer">harpoon (⭐178)</a> - Trace syscalls from user-space functions, by using eBPF.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2024/40/"/>
    <summary>1 awesome projects updated on Sep 30 - Oct 06, 2024</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2024/27/</id>
    <title>Awesome Ebpf Updates on Jul 01 - Jul 07, 2024</title>
    <updated>2024-07-07T08:53:38.370Z</updated>
    <published>2024-07-07T08:53:38.259Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://dl.acm.org/doi/pdf/10.1145/3592980.3595319" rel="noopener noreferrer">Delilah: eBPF-offload on Computational Storage</a> - Delilah is a Computational Storage Processor (CSP) built for eBPF offload to storage devices.</li>
</ul>
<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/deepflowio/deepflow" rel="noopener noreferrer">DeepFlow (⭐3.7k)</a> - Instant observability for cloud-native and AI applications based on eBPF.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2024/27/"/>
    <summary>2 awesome projects updated on Jul 01 - Jul 07, 2024</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2024/19/</id>
    <title>Awesome Ebpf Updates on May 06 - May 12, 2024</title>
    <updated>2024-05-07T01:31:25.292Z</updated>
    <published>2024-05-07T01:31:25.292Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/mozillazg/ptcpdump" rel="noopener noreferrer">ptcpdump (⭐1.2k)</a> - A process-aware, eBPF-based tcpdump-like tool.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2024/19/"/>
    <summary>1 awesome projects updated on May 06 - May 12, 2024</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2024/15/</id>
    <title>Awesome Ebpf Updates on Apr 08 - Apr 14, 2024</title>
    <updated>2024-04-08T12:37:13.379Z</updated>
    <published>2024-04-08T12:37:13.379Z</published>
    <content type="html"><![CDATA[<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://bencher.dev/docs/explanation/talks/#linuxcon-2023-12-may-23" rel="noopener noreferrer">Catch Performance Regressions in eBPF</a> - A step-by-step guide to benchmarking both the client and kernel eBPF code written in Rust.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2024/15/"/>
    <summary>1 awesome projects updated on Apr 08 - Apr 14, 2024</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2024/5/</id>
    <title>Awesome Ebpf Updates on Jan 29 - Feb 04, 2024</title>
    <updated>2024-01-30T12:35:50.539Z</updated>
    <published>2024-01-30T12:35:50.539Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/bpfman/bpfman" rel="noopener noreferrer">bpfman (⭐710)</a> - An eBPF Manager for Linux and Kubernetes. Includes a built-in program loader that supports program cooperation for XDP and TC programs, as well as deployment of eBPF programs from OCI images.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2024/5/"/>
    <summary>1 awesome projects updated on Jan 29 - Feb 04, 2024</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/52/</id>
    <title>Awesome Ebpf Updates on Dec 25 - Dec 31, 2023</title>
    <updated>2023-12-27T08:58:56.318Z</updated>
    <published>2023-12-27T08:58:56.251Z</published>
    <content type="html"><![CDATA[<h3><p>Examples / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://github.com/netfoundry/zfw" rel="noopener noreferrer">XDP/TC-eBPF example (⭐77)</a> - Program that uses XDP/TC-eBPF to provide statefull firewalling and socket redirection.</li>
</ul>
<h3><p>Projects Related to eBPF / Networking</p>
</h3>
<ul>
<li><a href="https://pcapplusplus.github.io/" rel="noopener noreferrer">PcapPlusPlus</a> - An open-source C++ library for capturing, parsing and crafting network packets. It features a C++ interface for creating AF_XDP sockets, making it easy to <a href="https://pcapplusplus.github.io/docs/next/features#af_xdp-support-beta" rel="noopener noreferrer">send and receive packets through them</a>.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/52/"/>
    <summary>2 awesome projects updated on Dec 25 - Dec 31, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/39/</id>
    <title>Awesome Ebpf Updates on Sep 25 - Oct 01, 2023</title>
    <updated>2023-09-28T01:22:15.436Z</updated>
    <published>2023-09-28T01:22:15.436Z</published>
    <content type="html"><![CDATA[<h3><p>eBPF Workflow: Tools and Utilities / Aya</p>
</h3>
<ul>
<li><a href="https://github.com/deepfence/ebpfguard" rel="noopener noreferrer">Ebpfguard (⭐314)</a> - Rust library for writing Linux security policies using eBPF.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/39/"/>
    <summary>1 awesome projects updated on Sep 25 - Oct 01, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/36/</id>
    <title>Awesome Ebpf Updates on Sep 04 - Sep 10, 2023</title>
    <updated>2023-09-04T12:39:02.703Z</updated>
    <published>2023-09-04T12:39:02.703Z</published>
    <content type="html"><![CDATA[<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://eunomia.dev/tutorials/" rel="noopener noreferrer">eBPF Developer Tutorial - Learn eBPF by examples</a> - Start with eBPF basics and progress to advanced topics using 20+ hands-on tutorials and examples. Covers performance, networking, and security with libbpf and CO-RE. Available in Chinese and English.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/36/"/>
    <summary>1 awesome projects updated on Sep 04 - Sep 10, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/28/</id>
    <title>Awesome Ebpf Updates on Jul 10 - Jul 16, 2023</title>
    <updated>2023-07-11T01:57:11.116Z</updated>
    <published>2023-07-11T01:57:11.116Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/redcanaryco/ebpfmon" rel="noopener noreferrer">ebpfmon (⭐90)</a> - A TUI (terminal user interface) application for real time monitoring of eBPF programs.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/28/"/>
    <summary>1 awesome projects updated on Jul 10 - Jul 16, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/22/</id>
    <title>Awesome Ebpf Updates on May 29 - Jun 04, 2023</title>
    <updated>2023-05-30T12:42:40.872Z</updated>
    <published>2023-05-30T12:42:40.872Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/ebpfdev/explorer" rel="noopener noreferrer">ebpf-explorer (⭐93)</a> - A web interface to explore system's maps and programs.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/22/"/>
    <summary>1 awesome projects updated on May 29 - Jun 04, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/21/</id>
    <title>Awesome Ebpf Updates on May 22 - May 28, 2023</title>
    <updated>2023-05-26T06:02:40.091Z</updated>
    <published>2023-05-26T06:02:40.029Z</published>
    <content type="html"><![CDATA[<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://blog.trailofbits.com/2021/11/09/all-your-tracing-are-belong-to-bpf/" rel="noopener noreferrer">All your tracing are belong to BPF</a> - A step-by-step walkthrough to integrate tracing capabilities in your C++ applications with the LLVM libraries.</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / zbpf</p>
</h3>
<ul>
<li><a href="https://github.com/tw4452852/zbpf" rel="noopener noreferrer">zbpf (⭐226)</a> - A pure Zig framework for writing cross platform eBPF programs, powered by libbpf and Zig toolchain.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/21/"/>
    <summary>2 awesome projects updated on May 22 - May 28, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/15/</id>
    <title>Awesome Ebpf Updates on Apr 10 - Apr 16, 2023</title>
    <updated>2023-04-12T12:41:34.057Z</updated>
    <published>2023-04-12T12:41:34.054Z</published>
    <content type="html"><![CDATA[<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://arthurchiao.art/blog/firewalling-with-bpf-xdp/" rel="noopener noreferrer">Firewalling with BPF/XDP: Examples and Deep Dive</a> - A simple guide to build basic firewalls with TC and XDP.</li>
</ul>

<ul>
<li><a href="https://medium.com/@nurkholish.halim/a-deep-dive-into-ebpf-writing-an-efficient-dns-monitoring-2c9dea92abdf" rel="noopener noreferrer">A Deep Dive into eBPF: Writing an Efficient DNS Monitoring.</a> - A detailed explanation of methods used to capture DNS requests at the socket filter layer.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/15/"/>
    <summary>2 awesome projects updated on Apr 10 - Apr 16, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/6/</id>
    <title>Awesome Ebpf Updates on Feb 06 - Feb 12, 2023</title>
    <updated>2023-02-07T11:12:04.297Z</updated>
    <published>2023-02-07T11:12:04.289Z</published>
    <content type="html"><![CDATA[<h3><p>eBPF Workflow: Tools and Utilities / Go libraries</p>
</h3>
<ul>
<li><a href="https://github.com/cilium/ebpf" rel="noopener noreferrer">cilium/ebpf (⭐7.5k)</a> - Pure-Go library to read, modify and load eBPF programs and attach them to various hooks in the Linux kernel.</li>
</ul>

<ul>
<li><a href="https://github.com/aquasecurity/libbpfgo" rel="noopener noreferrer">libbpfgo (⭐836)</a> - eBPF library for Go, powered by libbpf.</li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/gobpf" rel="noopener noreferrer">gobpf (⭐2.2k)</a> - Go bindings for BCC for creating eBPF programs.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/6/"/>
    <summary>3 awesome projects updated on Feb 06 - Feb 12, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/3/</id>
    <title>Awesome Ebpf Updates on Jan 16 - Jan 22, 2023</title>
    <updated>2023-01-20T12:46:03.698Z</updated>
    <published>2023-01-20T12:46:03.694Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/cilium/hubble" rel="noopener noreferrer">Hubble (⭐4.1k)</a> - Network, service and security observability for Kubernetes using eBPF.</li>
</ul>

<ul>
<li><a href="https://github.com/groundcover-com/caretta" rel="noopener noreferrer">Caretta (⭐2k)</a> - Instant Kubernetes service dependency map generated by eBPF, right to a Grafana instance.</li>
</ul>
<h3><p>Projects Related to eBPF / Security</p>
</h3>
<ul>
<li><a href="https://github.com/cilium/tetragon" rel="noopener noreferrer">Tetragon (⭐4.4k)</a> - Kubernetes-aware, eBPF-based security observability and runtime enforcement.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/3/"/>
    <summary>3 awesome projects updated on Jan 16 - Jan 22, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2023/2/</id>
    <title>Awesome Ebpf Updates on Jan 09 - Jan 15, 2023</title>
    <updated>2023-01-10T01:53:41.726Z</updated>
    <published>2023-01-10T01:53:41.726Z</published>
    <content type="html"><![CDATA[<h3><p>eBPF Workflow: Tools and Utilities / eunomia-bpf</p>
</h3>
<ul>
<li><a href="https://github.com/eunomia-bpf/eunomia-bpf" rel="noopener noreferrer">eunomia-bpf (⭐846)</a> - A compilation framework and runtime library to build, distribute, dynamically load, and run CO-RE eBPF applications in multiple languages and WebAssembly. It supports writing eBPF kernel code only (to build simple CO-RE libbpf eBPF applications), writing the kernel part in both BCC and libbpf styles, and writing userspace in multiple languages in a WASM module and distributing it with simple JSON data or WASM OCI images. The runtime is based on libbpf only and provides CO-RE to BCC-style eBPF programs without depending on the LLVM library.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2023/2/"/>
    <summary>1 awesome projects updated on Jan 09 - Jan 15, 2023</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2022/44/</id>
    <title>Awesome Ebpf Updates on Oct 31 - Nov 06, 2022</title>
    <updated>2022-10-31T12:59:55.460Z</updated>
    <published>2022-10-31T12:59:55.460Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/javierhonduco/rbperf" rel="noopener noreferrer">rbperf (⭐124)</a> - Sampling profiler and tracer for Ruby.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2022/44/"/>
    <summary>1 awesome projects updated on Oct 31 - Nov 06, 2022</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2022/43/</id>
    <title>Awesome Ebpf Updates on Oct 24 - Oct 30, 2022</title>
    <updated>2022-10-29T18:21:36.950Z</updated>
    <published>2022-10-29T18:21:36.950Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/parca-dev/parca-agent" rel="noopener noreferrer">parca-agent (⭐705)</a> - eBPF based always-on continuous profiler for analysis of CPU and memory usage, down to the line number and throughout time.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2022/43/"/>
    <summary>1 awesome projects updated on Oct 24 - Oct 30, 2022</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2022/27/</id>
    <title>Awesome Ebpf Updates on Jul 04 - Jul 10, 2022</title>
    <updated>2022-07-04T16:14:11.000Z</updated>
    <published>2022-07-04T16:14:11.000Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/h3xduck/TripleCross" rel="noopener noreferrer">TripleCross (⭐1.9k)</a> - A Linux eBPF rootkit with a backdoor, C2, library injection, execution hijacking, persistence and stealth capabilities.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2022/27/"/>
    <summary>1 awesome projects updated on Jul 04 - Jul 10, 2022</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2022/23/</id>
    <title>Awesome Ebpf Updates on Jun 06 - Jun 12, 2022</title>
    <updated>2022-06-10T09:21:40.000Z</updated>
    <published>2022-06-08T17:45:33.000Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Networking</p>
</h3>
<ul>
<li><a href="https://github.com/merbridge/merbridge/" rel="noopener noreferrer">merbridge (⭐802)</a> - Use eBPF to speed up your Service Mesh. Merbridge replaces iptables rules with eBPF to intercept traffic. It also combines msg_redirect to reduce latency with a shortened datapath between sidecars and services.</li>
</ul>
<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/apache/skywalking-rover" rel="noopener noreferrer">SkyWalking Rover (⭐232)</a> - <a href="https://skywalking.apache.org/" rel="noopener noreferrer">Apache SkyWalking</a> is an open-source Application Performance Monitoring (APM) platform specially designed for distributed systems with microservices, cloud-native and container-based (Kubernetes) architectures. SkyWalking Rover is an eBPF-based profiler and metrics collector for C, C++, Golang, and Rust applications.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2022/23/"/>
    <summary>2 awesome projects updated on Jun 06 - Jun 12, 2022</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2022/16/</id>
    <title>Awesome Ebpf Updates on Apr 18 - Apr 24, 2022</title>
    <updated>2022-04-22T16:29:36.000Z</updated>
    <published>2022-04-22T16:29:36.000Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / Generic eBPF Presentations and Articles</p>
</h3>
<ul>
<li><a href="https://github.com/lizrice/ebpf-beginners" rel="noopener noreferrer">Beginner's guide to eBPF (⭐1.7k)</a> - A set of live-coding talks and the accompanying code examples, introducing eBPF programming using a variety of libraries and program types.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2022/16/"/>
    <summary>1 awesome projects updated on Apr 18 - Apr 24, 2022</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2022/8/</id>
    <title>Awesome Ebpf Updates on Feb 21 - Feb 27, 2022</title>
    <updated>2022-02-22T09:31:24.000Z</updated>
    <published>2022-02-22T09:31:24.000Z</published>
    <content type="html"><![CDATA[<h3><p>eBPF Workflow: Tools and Utilities / User Space eBPF</p>
</h3>
<ul>
<li><a href="https://rubrikinc.github.io/wachy/" rel="noopener noreferrer">wachy</a> - A tracing profiler that aims to make eBPF uprobe-based debugging easier to use. This is done by displaying traces in a UI next to the source code and allowing interactive drilldown analysis.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2022/8/"/>
    <summary>1 awesome projects updated on Feb 21 - Feb 27, 2022</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2022/7/</id>
    <title>Awesome Ebpf Updates on Feb 14 - Feb 20, 2022</title>
    <updated>2022-02-15T16:28:13.000Z</updated>
    <published>2022-02-14T10:35:07.000Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / Generic eBPF Presentations and Articles</p>
</h3>
<ul>
<li><a href="https://blog.cloudflare.com/tag/ebpf/" rel="noopener noreferrer">Cloudflare's blog posts on eBPF</a> - Different blog posts about networking use cases and low-level aspects of eBPF.</li>
</ul>

<ul>
<li><a href="https://www.brendangregg.com/ebpf.html" rel="noopener noreferrer">Linux Extended BPF (eBPF) Tracing Tools</a> - An in-depth collection of information around examples of performance analysis tools using eBPF. Contains also a section at the end of the page about other resources.</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / eBPF on Other Platforms</p>
</h3>
<ul>
<li><a href="https://github.com/microsoft/ebpf-for-windows" rel="noopener noreferrer">eBPF for Windows (⭐3.4k)</a> - This project is a work-in-progress that allows using existing eBPF toolchains and APIs familiar in the Linux ecosystem to be used on top of Windows.</li>
</ul>
<h3><p>Projects Related to eBPF / Networking</p>
</h3>
<ul>
<li><a href="https://projectcalico.docs.tigera.io/about/about-calico" rel="noopener noreferrer">Project Calico</a> - Calico is an open source networking and network security solution for containers, virtual machines, and native host-based workloads. Calico's eBPF data plane delivers a low latency, high throughput data plane with a rich network security policy model.<ul>
<li><a href="https://projectcalico.docs.tigera.io/maintenance/ebpf/enabling-bpf" rel="noopener noreferrer">Enabling eBPF data plane with Calico</a></li>
</ul>
</li>
</ul>
<h3><p>Projects Related to eBPF / Security</p>
</h3>
<ul>
<li><a href="https://falco.org/" rel="noopener noreferrer">Falco</a> - A cloud-native runtime security project used as a Kubernetes threat detection engine.</li>
</ul>

<ul>
<li><a href="https://github.com/Sysinternals/SysmonForLinux" rel="noopener noreferrer">Sysmon for Linux (⭐2.1k)</a> - A security monitoring tool. It depends on <a href="https://github.com/Sysinternals/SysinternalsEBPF" rel="noopener noreferrer">SysinternalsEBPF (⭐281)</a>.</li>
</ul>

<ul>
<li><a href="https://redcanary.com/blog/ebpf-for-security" rel="noopener noreferrer">Red Canary Linux Agent</a> - Red Canary has started to incorporate eBPF to their Linux security sensor.</li>
</ul>

<ul>
<li><a href="https://github.com/aquasecurity/tracee" rel="noopener noreferrer">Tracee (⭐4.4k)</a> - A runtime security and forensics tool for Linux which uses eBPF technology to trace the system and applications at runtime, and analyze collected events to detect suspicious behavioral patterns.</li>
</ul>

<ul>
<li><a href="https://github.com/redcanaryco/redcanary-ebpf-sensor" rel="noopener noreferrer">redcanary-ebpf-sensor (⭐113)</a> - A set of BPF programs that gather security relevant event data from the Linux kernel. The BPF programs are combined into a single ELF file from which individual probes can be selectively loaded, depending on the running operating system and kernel version.</li>
</ul>

<ul>
<li><a href="https://github.com/linux-lock/bpflock" rel="noopener noreferrer">bpflock - Lock Linux machines (⭐151)</a> - An eBPF driven security tool for locking and auditing Linux machines.</li>
</ul>
<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://bpftrace.org/" rel="noopener noreferrer">bpftrace</a> - A tool for tracing with its own high-level tracing language. It is flexible enough to be envisioned as a Linux replacement for DTrace and SystemTap.<ul>
<li><a href="https://www.brendangregg.com/BPF/bpftrace-cheat-sheet.html" rel="noopener noreferrer">bpftrace Cheat Sheet</a> - Summary and cheat sheet for programming in bpftrace. Contains information about syntax, probe types, variables and functions.</li>
</ul>
</li>
</ul>

<ul>
<li><a href="https://embracethered.com/blog/tags/ebpf" rel="noopener noreferrer">Embrace The Red: Offensive BPF!</a> - A series of posts around the introduction into BPF with a focus to an offensive setting, and also how its misuse can be detected. Posts include discussions on the rootkit capabilities of eBPF, or on which tracing type is needed for different use cases.</li>
</ul>

<ul>
<li><a href="https://djalal.opendz.org/post/ebpf-block-linux-fileless-payload-execution-with-bpf-lsm/" rel="noopener noreferrer">eBPF: Block Linux Fileless Payload "Malware" Execution with BPF LSM</a> - Blog post about how BPF can help detection and blocking fileless malware.</li>
</ul>

<ul>
<li><a href="https://www.blackhat.com/us-21/briefings/schedule/#with-friends-like-ebpf-who-needs-enemies-23619" rel="noopener noreferrer">Blackhat 2021: With Friends Like eBPF, Who Needs Enemies?</a> - Talk about an eBPF rootkit and how the capabilities of eBPF could be abused. The rootkit was also the object of a talk at Defcon, <a href="https://defcon.org/html/defcon-29/dc-29-speakers.html#fournier" rel="noopener noreferrer">eBPF, I thought we were friends !</a>.</li>
</ul>

<ul>
<li><a href="https://github.com/Gui774ume/ebpfkit" rel="noopener noreferrer">ebpfkit (⭐831)</a> - A rootkit that leverages multiple eBPF features to implement offensive security techniques.</li>
</ul>

<ul>
<li><a href="https://github.com/Gui774ume/ebpfkit-monitor" rel="noopener noreferrer">ebpfkit-monitor (⭐139)</a> - An utility to statically analyze eBPF bytecode or monitor suspicious eBPF activity at runtime. It was specifically designed to detect ebpfkit.</li>
</ul>

<ul>
<li><a href="https://github.com/pathtofile/bad-bpf" rel="noopener noreferrer">Bad BPF (⭐679)</a> - A collection of malicious eBPF programs that make use of eBPF's ability to read and write user data in between the usermode program and the kernel.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2022/7/"/>
    <summary>17 awesome projects updated on Feb 14 - Feb 20, 2022</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2022/2/</id>
    <title>Awesome Ebpf Updates on Jan 10 - Jan 16, 2022</title>
    <updated>2022-01-16T01:57:20.000Z</updated>
    <published>2022-01-14T16:11:16.000Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://github.com/rprinz08/hBPF" rel="noopener noreferrer">hBPF - eBPF in hardware (⭐425)</a> - An eBPF CPU written for FPGAs.</li>
</ul>

<ul>
<li><a href="https://github.com/Dantali0n/qemu-csd" rel="noopener noreferrer">OpenCSD eBPF SSD offloading (⭐66)</a> - Computational Storage simulation (QEMU) platform with FUSE LFS filesystem for Zoned Namespaces NVMe SSDs using uBPF for compute kernel offloading, all in userspace.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2022/2/"/>
    <summary>2 awesome projects updated on Jan 10 - Jan 16, 2022</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/46/</id>
    <title>Awesome Ebpf Updates on Nov 15 - Nov 21, 2021</title>
    <updated>2021-11-18T15:28:45.000Z</updated>
    <published>2021-11-18T15:28:45.000Z</published>
    <content type="html"><![CDATA[<h3><p>eBPF Workflow: Tools and Utilities / oxidebpf</p>
</h3>
<ul>
<li><a href="https://github.com/redcanaryco/oxidebpf" rel="noopener noreferrer">oxidebpf (⭐123)</a> - A pure Rust library for managing eBPF programs, designed for security use cases. The featureset is more limited than other libraries but emphasizes stability across a wide range of kernels and backwards-compatible compile-once-run-most-places.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/46/"/>
    <summary>1 awesome projects updated on Nov 15 - Nov 21, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/43/</id>
    <title>Awesome Ebpf Updates on Oct 25 - Oct 31, 2021</title>
    <updated>2021-10-28T14:03:08.000Z</updated>
    <published>2021-10-28T14:03:08.000Z</published>
    <content type="html"><![CDATA[<h3><p>eBPF Workflow: Tools and Utilities / Aya</p>
</h3>
<ul>
<li><a href="https://github.com/aya-rs/aya" rel="noopener noreferrer">aya (⭐4.3k)</a> - A pure Rust library for writing, loading, and managing eBPF objects, with a focus on developer experience and operability. It supports writing eBPF programs in Rust and distributing library code over crates.io to share it between eBPF programs. Aya does not depend on libbpf.</li>
</ul>

<ul>
<li><a href="https://github.com/aya-rs/aya-template" rel="noopener noreferrer">aya-template (⭐132)</a> - Templates for writing BPF applications in Aya that can be used with <a href="https://github.com/cargo-generate/cargo-generate" rel="noopener noreferrer"><code>cargo generate</code></a>.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/43/"/>
    <summary>2 awesome projects updated on Oct 25 - Oct 31, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/42/</id>
    <title>Awesome Ebpf Updates on Oct 18 - Oct 24, 2021</title>
    <updated>2021-10-19T09:52:01.000Z</updated>
    <published>2021-10-19T09:52:01.000Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/pixie-io/pixie" rel="noopener noreferrer">pixie (⭐6.4k)</a> - Observability for Kubernetes using eBPF. Features include protocol tracing, application profiling, and support for distributed bpftrace deployments.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/42/"/>
    <summary>1 awesome projects updated on Oct 18 - Oct 24, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/41/</id>
    <title>Awesome Ebpf Updates on Oct 11 - Oct 17, 2021</title>
    <updated>2021-10-11T08:37:59.000Z</updated>
    <published>2021-10-11T08:37:59.000Z</published>
    <content type="html"><![CDATA[<h3><p>Examples / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://github.com/foniod/redbpf/tree/main/examples" rel="noopener noreferrer">redbpf examples (⭐1.7k)</a> - Example programs for using RedBPF to write eBPF programs in Rust.</li>
</ul>
<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/foniod/redbpf" rel="noopener noreferrer">redbpf (⭐1.7k)</a> - Tooling and framework to write eBPF code in Rust efficiently.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/41/"/>
    <summary>2 awesome projects updated on Oct 11 - Oct 17, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/37/</id>
    <title>Awesome Ebpf Updates on Sep 13 - Sep 19, 2021</title>
    <updated>2021-09-14T09:06:52.000Z</updated>
    <published>2021-09-14T09:06:52.000Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/olcf/greggd" rel="noopener noreferrer">greggd (⭐6)</a> - System daemon to compile and load eBPF programs into the kernel, and forward program output to socket for metric aggregation.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/37/"/>
    <summary>1 awesome projects updated on Sep 13 - Sep 19, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/31/</id>
    <title>Awesome Ebpf Updates on Aug 02 - Aug 08, 2021</title>
    <updated>2021-08-02T09:46:45.000Z</updated>
    <published>2021-08-02T09:46:45.000Z</published>
    <content type="html"><![CDATA[<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/navarrothiago/upf-bpf" rel="noopener noreferrer">upf-bpf (⭐212)</a> - An in-kernel solution based on XDP for 5G UPF.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/31/"/>
    <summary>1 awesome projects updated on Aug 02 - Aug 08, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/16/</id>
    <title>Awesome Ebpf Updates on Apr 19 - Apr 25, 2021</title>
    <updated>2021-04-22T09:44:30.000Z</updated>
    <published>2021-04-20T09:23:32.000Z</published>
    <content type="html"><![CDATA[<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://nakryiko.com/posts/libbpf-bootstrap/" rel="noopener noreferrer">Building BPF applications with libbpf-bootstrap</a> - Helps generate minimal or advanced templates to bootstrap your own applications (kernel side and user space management for maps and programs) with features like CO-RE, global variables, and ring buffer.</li>
</ul>

<ul>
<li><a href="https://bolinfest.github.io/opensnoop-native/" rel="noopener noreferrer">How I ended up writing opensnoop in pure C using eBPF</a> - A thorough walk-through of how to write eBPF programs, first using only bpf() syscall, and then libbpf library, with reproducible code examples.</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / libbpf</p>
</h3>
<ul>
<li><a href="https://github.com/libbpf/libbpf-bootstrap" rel="noopener noreferrer">libbpf-bootstrap (⭐1.4k)</a> - Scaffolding for BPF application development with libbpf and BPF CO-RE.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/16/"/>
    <summary>3 awesome projects updated on Apr 19 - Apr 25, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/9/</id>
    <title>Awesome Ebpf Updates on Mar 01 - Mar 07, 2021</title>
    <updated>2021-03-01T11:05:39.000Z</updated>
    <published>2021-03-01T11:05:39.000Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / Generic eBPF Presentations and Articles</p>
</h3>
<ul>
<li><a href="https://www.researchgate.net/publication/349173667_eBPF_-_From_a_Programmer's_Perspective" rel="noopener noreferrer">eBPF - From a Programmer's Perspective</a> - A short paper describing the fundamentals of eBPF and how to get started with writing eBPF programs.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/9/"/>
    <summary>1 awesome projects updated on Mar 01 - Mar 07, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2021/5/</id>
    <title>Awesome Ebpf Updates on Feb 01 - Feb 07, 2021</title>
    <updated>2021-02-01T13:53:43.000Z</updated>
    <published>2021-02-01T13:53:43.000Z</published>
    <content type="html"><![CDATA[<h3><p>Examples / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://github.com/niclashedam/ebpf-kill-example" rel="noopener noreferrer">ebpf-kill-example (⭐22)</a> - A fully documented and tested example of an eBPF probe that logs all force-kills and prints them out in user-space.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2021/5/"/>
    <summary>1 awesome projects updated on Feb 01 - Feb 07, 2021</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2020/42/</id>
    <title>Awesome Ebpf Updates on Oct 19 - Oct 25, 2020</title>
    <updated>2020-10-16T13:31:51.000Z</updated>
    <published>2020-10-16T13:31:51.000Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / cBPF</p>
</h3>
<ul>
<li><a href="https://www.freebsd.org/cgi/man.cgi?query=bpf&amp;sektion=4" rel="noopener noreferrer">The FreeBSD manual page about BPF</a></li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2020/42/"/>
    <summary>1 awesome projects updated on Oct 19 - Oct 25, 2020</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2020/38/</id>
    <title>Awesome Ebpf Updates on Sep 21 - Sep 27, 2020</title>
    <updated>2020-09-16T08:42:29.000Z</updated>
    <published>2020-09-16T08:42:29.000Z</published>
    <content type="html"><![CDATA[<h3><p>Reference Documentation / eBPF Essentials</p>
</h3>
<ul>
<li><a href="https://ebpf.io/" rel="noopener noreferrer">ebpf.io</a> - A gateway to discover all the basics of eBPF, including a listing of the main related projects and of community resources.</li>
</ul>

<ul>
<li><a href="http://docs.cilium.io/en/latest/bpf/" rel="noopener noreferrer">Cilium's BPF and XDP Reference Guide</a> - In-depth documentation about most features and aspects of eBPF.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2020/38/"/>
    <summary>2 awesome projects updated on Sep 21 - Sep 27, 2020</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2020/24/</id>
    <title>Awesome Ebpf Updates on Jun 15 - Jun 21, 2020</title>
    <updated>2020-06-10T15:15:38.000Z</updated>
    <published>2020-06-10T15:15:38.000Z</published>
    <content type="html"><![CDATA[<h3><p>Reference Documentation / Kernel Documentation</p>
</h3>
<ul>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/filter.rst" rel="noopener noreferrer">linux/Documentation/networking/filter.rst</a> - eBPF specification (somewhat outdated; information should still be valid, but not exhaustive).</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2020/24/"/>
    <summary>1 awesome projects updated on Jun 15 - Jun 21, 2020</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2020/7/</id>
    <title>Awesome Ebpf Updates on Feb 17 - Feb 23, 2020</title>
    <updated>2020-02-10T18:01:10.000Z</updated>
    <published>2020-02-10T18:01:10.000Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / Generic eBPF Presentations and Articles</p>
</h3>
<ul>
<li><a href="http://vger.kernel.org/netconf2015Starovoitov-bpf_collabsummit_2015feb20.pdf" rel="noopener noreferrer">BPF -- in-kernel virtual machine</a> - Presentation by the author of eBPF.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2020/7/"/>
    <summary>1 awesome projects updated on Feb 17 - Feb 23, 2020</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2020/4/</id>
    <title>Awesome Ebpf Updates on Jan 27 - Feb 02, 2020</title>
    <updated>2020-01-23T15:44:38.000Z</updated>
    <published>2020-01-23T15:44:38.000Z</published>
    <content type="html"><![CDATA[<h3><p>eBPF Workflow: Tools and Utilities / User Space eBPF</p>
</h3>
<ul>
<li><a href="https://github.com/grantseltzer/oster" rel="noopener noreferrer">oster (⭐306)</a> - Written in Go. A tool for tracing execution of Go programs by attaching eBPF to uprobes.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2020/4/"/>
    <summary>1 awesome projects updated on Jan 27 - Feb 02, 2020</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2020/2/</id>
    <title>Awesome Ebpf Updates on Jan 13 - Jan 19, 2020</title>
    <updated>2020-01-09T09:52:37.000Z</updated>
    <published>2020-01-09T09:52:37.000Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / XDP</p>
</h3>
<ul>
<li><a href="https://blog.cloudflare.com/how-to-drop-10-million-packets/" rel="noopener noreferrer">How to drop 10 million packets per second</a> - Cloudflare's blog post talking about their move to using XDP for packet filtering.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2020/2/"/>
    <summary>1 awesome projects updated on Jan 13 - Jan 19, 2020</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2019/27/</id>
    <title>Awesome Ebpf Updates on Jul 08 - Jul 14, 2019</title>
    <updated>2019-07-04T11:45:21.000Z</updated>
    <published>2019-07-04T11:45:21.000Z</published>
    <content type="html"><![CDATA[<h3><p>Articles and Presentations / Generic eBPF Presentations and Articles</p>
</h3>
<ul>
<li><a href="https://sematext.com/blog/linux-kernel-observability-ebpf/" rel="noopener noreferrer">Linux Kernel Observability through eBPF</a> - A blog post covering the basics of eBPF as well as code samples in Go on how to build and load a minimal eBPF program into the kernel.</li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2019/27/"/>
    <summary>1 awesome projects updated on Jul 08 - Jul 14, 2019</summary>
  </entry>
  <entry>
    <id>https://www.trackawesomelist.com/2019/23/</id>
    <title>Awesome Ebpf Updates on Jun 10 - Jun 16, 2019</title>
    <updated>2019-06-04T13:58:01.000Z</updated>
    <published>2019-06-04T13:58:01.000Z</published>
    <content type="html"><![CDATA[<h3><p>Reference Documentation / Kernel Documentation</p>
</h3>
<ul>
<li><a href="https://www.kernel.org/doc/html/latest/bpf/index.html" rel="noopener noreferrer">BPF Documentation</a> - Index for BPF-related documentation coming with the Linux kernel.</li>
</ul>

<ul>
<li><a href="https://www.kernel.org/doc/html/latest/bpf/bpf_design_QA.html" rel="noopener noreferrer">BPF Design Q&amp;A</a> - Frequently Asked Questions on the decisions behind the BPF infrastructure.</li>
</ul>

<ul>
<li><a href="https://www.kernel.org/doc/html/latest/bpf/bpf_devel_QA.html" rel="noopener noreferrer">HOWTO interact with BPF subsystem</a> - Frequently Asked Questions about contributing to eBPF development.</li>
</ul>
<h3><p>Reference Documentation / Manual Pages</p>
</h3>
<ul>
<li><a href="http://man7.org/linux/man-pages/man2/bpf.2.html" rel="noopener noreferrer"><code>bpf(2)</code></a> - Manual page about the <code>bpf()</code> system call, used to manage BPF programs and maps from userspace.</li>
</ul>

<ul>
<li><a href="http://man7.org/linux/man-pages/man8/tc-bpf.8.html" rel="noopener noreferrer"><code>tc-bpf(8)</code></a> - Manual page about using BPF with tc, including example commands and samples of code.</li>
</ul>

<ul>
<li><a href="http://man7.org/linux/man-pages/man7/bpf-helpers.7.html" rel="noopener noreferrer"><code>bpf-helpers(7)</code> man page</a> - Description of the in-kernel helper functions forming the BPF standard library.</li>
</ul>
<h3><p>Reference Documentation / Other</p>
</h3>
<ul>
<li><a href="https://github.com/iovisor/bpf-docs/blob/master/eBPF.md" rel="noopener noreferrer">IO Visor's Unofficial eBPF spec (⭐1k)</a> - Summary of eBPF syntax and operation codes.</li>
</ul>

<ul>
<li><a href="https://prototype-kernel.readthedocs.io/en/latest/bpf/index.html" rel="noopener noreferrer">Jesper Dangaard Brouer's documentation</a> - Work in progress, contributions welcome.</li>
</ul>

<ul>
<li><p>Emails from David Miller to the <a href="http://vger.kernel.org/vger-lists.html#xdp-newbies" rel="noopener noreferrer">xdp-newbies</a> mailing list:</p>
<ul>
<li><a href="https://www.spinics.net/lists/xdp-newbies/msg00179.html" rel="noopener noreferrer">bpf.h and you...</a></li>
<li><a href="https://www.spinics.net/lists/xdp-newbies/msg00181.html" rel="noopener noreferrer">Contextually speaking...</a></li>
<li><a href="https://www.spinics.net/lists/xdp-newbies/msg00185.html" rel="noopener noreferrer">BPF Verifier Overview</a></li>
</ul>
</li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/bcc/blob/master/docs/kernel-versions.md" rel="noopener noreferrer">List of BPF features per kernel version (⭐22k)</a></li>
</ul>
<h3><p>Articles and Presentations / Generic eBPF Presentations and Articles</p>
</h3>
<ul>
<li><a href="https://blogs.igalia.com/dpino/2019/01/07/introduction-to-xdp-and-ebpf/" rel="noopener noreferrer">A brief introduction to XDP and eBPF</a> - An accessible introduction providing context, history, and details about the functioning of eBPF.</li>
</ul>

<ul>
<li><p>An eBPF Overview - Blog series by Adrian Ratiu, covering many aspects of the eBPF infrastructure:</p>
<ul>
<li><a href="https://www.collabora.com/news-and-blog/blog/2019/04/05/an-ebpf-overview-part-1-introduction/" rel="noopener noreferrer">Part 1: Introduction</a></li>
<li><a href="https://www.collabora.com/news-and-blog/blog/2019/04/15/an-ebpf-overview-part-2-machine-and-bytecode/" rel="noopener noreferrer">Part 2: Machine &amp; Bytecode</a></li>
</ul>
</li>
</ul>

<ul>
<li><a href="https://ferrisellis.com/tags/ebpf/" rel="noopener noreferrer">Ferris Ellis's blog posts about eBPF</a> - They have a few posts about eBPF:<ul>
<li><a href="https://ferrisellis.com/content/ebpf_past_present_future/" rel="noopener noreferrer">Part 1: Past, Present, and Future</a></li>
<li><a href="https://ferrisellis.com/content/ebpf_syscall_and_maps/" rel="noopener noreferrer">Part 2: Syscall and Map Types</a></li>
</ul>
</li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md" rel="noopener noreferrer">A BPF reference guide (⭐22k)</a> - About BPF C and bcc Python helpers, from bcc repository.</li>
</ul>

<ul>
<li><a href="http://schd.ws/hosted_files/ossna2017/da/BPFandXDP.pdf" rel="noopener noreferrer">Making the Kernel's Networking Data Path Programmable with BPF and XDP</a> - A set of slides covering all the basics about eBPF and XDP (mostly for network processing).</li>
</ul>

<ul>
<li><a href="https://speakerdeck.com/tuxology/the-bsd-packet-filter" rel="noopener noreferrer">The BSD Packet Filter</a> - An introduction mostly covering the tracing aspects.</li>
</ul>

<ul>
<li><a href="http://www.slideshare.net/brendangregg/bpf-tracing-and-more" rel="noopener noreferrer">BPF: tracing and more</a> - An introduction mostly covering the tracing aspects.</li>
</ul>

<ul>
<li><a href="http://www.slideshare.net/brendangregg/linux-bpf-superpowers" rel="noopener noreferrer">Linux BPF Superpowers</a> - An introduction mostly covering the tracing aspects, first part with flame graphs.</li>
</ul>

<ul>
<li><a href="https://www.socallinuxexpo.org/sites/default/files/presentations/Room%20211%20-%20IOVisor%20-%20SCaLE%2014x.pdf" rel="noopener noreferrer">IO Visor</a> - Also introduces <a href="https://www.iovisor.org/" rel="noopener noreferrer">IO Visor project</a>.</li>
</ul>

<ul>
<li><a href="https://lwn.net/Articles/603983/" rel="noopener noreferrer">Extending extended BPF</a> - A blog post from 2014 on the development of BPF and demonstrating what can be done with it, using an example of stateful socket filtering by attaching an eBPF program to a socket.</li>
</ul>

<ul>
<li>Greg Marsden made some documentation about eBPF:<ul>
<li><a href="https://blogs.oracle.com/linux/notes-on-bpf-1" rel="noopener noreferrer">A Tour of Program Types</a> - A description of all existing hooks for BPF program types, and of their interest.</li>
<li><a href="https://blogs.oracle.com/linux/notes-on-bpf-2" rel="noopener noreferrer">BPF helper functions</a> - A review of the kernel functions that can be called from within eBPF programs.</li>
<li><a href="https://blogs.oracle.com/linux/notes-on-bpf-3" rel="noopener noreferrer">Communicating with Userspace</a> - How BPF communicates with userspace - BPF maps, perf events, bpf_trace_printk.</li>
<li><a href="https://blogs.oracle.com/linux/notes-on-bpf-4" rel="noopener noreferrer">Building BPF Programs</a> - Setting up your environment to build BPF programs.</li>
<li><a href="https://blogs.oracle.com/linux/notes-on-bpf-5" rel="noopener noreferrer">The BPF Bytecode and the BPF Verifier</a> - How does BPF ensure that programs are safe?</li>
<li><a href="https://blogs.oracle.com/linux/notes-on-bpf-6" rel="noopener noreferrer">Using BPF to do Packet Transformation</a> - One eBPF usage about packet transformation.</li>
</ul>
</li>
</ul>
<h3><p>Articles and Presentations / BPF Internals</p>
</h3>
<ul>
<li><p>Daniel Borkmann has made several presentations and papers covering the internals of eBPF, in particular about its use with tc.</p>
<ul>
<li><a href="https://fosdem.org/2017/schedule/event/ebpf_xdp/" rel="noopener noreferrer">eBPF and XDP walkthrough and recent (2017) updates</a></li>
<li><a href="http://netdevconf.org/1.2/session.html?daniel-borkmann" rel="noopener noreferrer">Advanced programmability and recent updates with tc's cls_bpf</a> - Details on eBPF, its use for tunneling and encapsulation, direct packet access, and more.</li>
<li><a href="http://netdevconf.org/1.2/slides/oct5/07_tcws_daniel_borkmann_2016_tcws.pdf" rel="noopener noreferrer">cls_bpf/eBPF updates since netdev 1.1</a> - Part of <a href="http://netdevconf.org/1.2/session.html?jamal-tc-workshop" rel="noopener noreferrer">this tc workshop</a>.</li>
<li><a href="http://www.netdevconf.org/1.1/proceedings/slides/borkmann-tc-classifier-cls-bpf.pdf" rel="noopener noreferrer">On getting tc classifier fully programmable with cls_bpf</a> - Introduction to eBPF, including several features (map management, tail calls, verifier). The full paper <a href="http://www.netdevconf.org/1.1/proceedings/papers/On-getting-tc-classifier-fully-programmable-with-cls-bpf.pdf" rel="noopener noreferrer">is also available here</a>.</li>
<li><a href="https://archive.fosdem.org/2016/schedule/event/ebpf/attachments/slides/1159/export/events/attachments/ebpf/slides/1159/ebpf.pdf" rel="noopener noreferrer">Linux tc and eBPF</a></li>
</ul>
</li>
</ul>

<ul>
<li><a href="https://www.iovisor.org/resources/blog" rel="noopener noreferrer">IO Visor blog</a></li>
</ul>

<ul>
<li><a href="http://www.slideshare.net/ThomasGraf5/linux-networking-explained" rel="noopener noreferrer">Linux Networking Explained</a> - Linux networking internals, with a part about eBPF.</li>
</ul>
<h3><p>Articles and Presentations / Kernel Tracing</p>
</h3>
<ul>
<li><a href="https://www.joyfulbikeshedding.com/blog/2019-01-31-full-system-dynamic-tracing-on-linux-using-ebpf-and-bpftrace.html" rel="noopener noreferrer">Full-system dynamic tracing on Linux using eBPF and bpftrace</a> - A detailed introduction to tracing with eBPF, from listing the available trace points to running bpftrace programs.</li>
</ul>

<ul>
<li><a href="http://www.slideshare.net/vh21/meet-cutebetweenebpfandtracing" rel="noopener noreferrer">Meet-cute between eBPF and Kernel Tracing</a> - Kprobes, uprobes, ftrace.</li>
</ul>

<ul>
<li><a href="http://www.slideshare.net/vh21/linux-kernel-tracing" rel="noopener noreferrer">Linux Kernel Tracing</a> - Systemtap, Kernelshark, trace-cmd, LTTng, perf-tool, ftrace, hist-trigger, perf, function tracer, tracepoint, kprobe/uprobe, and more.</li>
</ul>

<ul>
<li>Brendan Gregg's blog, and in particular <a href="http://www.brendangregg.com/blog/2016-03-05/linux-bpf-superpowers.html" rel="noopener noreferrer">Linux BPF Superpowers</a> article.</li>
</ul>
<h3><p>Articles and Presentations / XDP</p>
</h3>
<ul>
<li><a href="https://blogs.igalia.com/dpino/2019/01/10/the-express-data-path/" rel="noopener noreferrer">The eXpress Data Path</a> - A very accessible introduction to XDP, providing sample code to show how to process packets.</li>
</ul>

<ul>
<li>All XDP details in a technical paper: <a href="https://github.com/tohojo/xdp-paper" rel="noopener noreferrer">The eXpress Data Path: Fast Programmable Packet Processing in the Operating System Kernel (⭐148)</a>, by Toke Høiland-Jørgensen, Jesper Dangaard Brouer, Daniel Borkmann, John Fastabend, Tom Herbert, David Ahern and David Miller, all being essential eBPF and XDP contributors.</li>
</ul>

<ul>
<li><a href="https://prototype-kernel.readthedocs.io/en/latest/networking/XDP/index.html" rel="noopener noreferrer">Work-in-progress documentation for XDP</a></li>
</ul>

<ul>
<li><a href="http://docs.cilium.io/en/latest/bpf/" rel="noopener noreferrer">BPF and XDP Reference Guide</a> - Guide from the Cilium project.</li>
</ul>

<ul>
<li><a href="https://www.iovisor.org/technology/xdp" rel="noopener noreferrer">XDP Project overview</a></li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/bpf-docs/raw/master/Express_Data_Path.pdf" rel="noopener noreferrer">eXpress Data Path (XDP) (⭐1k)</a> - The first presentation about XDP.</li>
</ul>

<ul>
<li><a href="https://events.linuxfoundation.org/sites/events/files/slides/iovisor-lc-bof-2016.pdf" rel="noopener noreferrer">BoF - What Can BPF Do For You?</a></li>
</ul>

<ul>
<li><a href="http://www.slideshare.net/IOVisor/express-data-path-linux-meetup-santa-clara-july-2016" rel="noopener noreferrer">eXpress Data Path</a> - Contains some benchmark results obtained with the mlx4 driver.</li>
</ul>

<ul>
<li><p>Jesper Dangaard Brouer has several sets of slides describing the internals of XDP:</p>
<ul>
<li><a href="http://people.netfilter.org/hawk/presentations/xdp2016/xdp_intro_and_use_cases_sep2016.pdf" rel="noopener noreferrer">XDP − eXpress Data Path, Intro and future use-cases</a> - Linux Kernel's fight against DPDK. Future plans (as of this writing) for XDP and comparison with DPDK.</li>
<li><a href="http://netdevconf.org/1.2/session.html?jesper-performance-workshop" rel="noopener noreferrer">Network Performance Workshop</a> - Additional hints about XDP internals and expected evolution.</li>
<li><a href="http://people.netfilter.org/hawk/presentations/OpenSourceDays2017/XDP_DDoS_protecting_osd2017.pdf" rel="noopener noreferrer">XDP – eXpress Data Path, Used for DDoS protection</a> - Details and use cases about XDP, with benchmark results, and code snippets for benchmarking as well as for basic DDoS protection with eBPF/XDP (based on an IP blacklisting scheme).</li>
<li><a href="http://people.netfilter.org/hawk/presentations/MM-summit2017/MM-summit2017-JesperBrouer.pdf" rel="noopener noreferrer">Memory vs. Networking, Provoking and fixing memory bottlenecks</a> - Advanced details about current memory issues faced by XDP developers.</li>
<li><a href="http://netdevconf.org/2.1/session.html?gospodarek" rel="noopener noreferrer">XDP for the Rest of Us</a> - How to get started with eBPF and XDP for normal humans. Also summarized by Julia Evans on <a href="http://jvns.ca/blog/2017/04/07/xdp-bpf-tutorial/" rel="noopener noreferrer">her blog</a>.</li>
<li><a href="http://people.netfilter.org/hawk/presentations/LLC2018/XDP_LLC2018_redirect.pdf" rel="noopener noreferrer">XDP now with REDIRECT</a> - Update on XDP, and in particular on the redirect actions.</li>
</ul>
</li>
</ul>

<ul>
<li><a href="http://netdevconf.org/1.2/session.html?herbert-xdp-workshop" rel="noopener noreferrer">XDP workshop -- Introduction, experience, and future development (Video)</a></li>
</ul>

<ul>
<li><a href="https://cdn.shopify.com/s/files/1/0177/9886/files/phv2017-gbertin.pdf" rel="noopener noreferrer">High Speed Packet Filtering on Linux</a> - About packet filtering on Linux, DDoS protection, packet processing in the kernel, kernel bypass, XDP and eBPF.</li>
</ul>
<h3><p>Articles and Presentations / AF_XDP</p>
</h3>
<ul>
<li><a href="https://www.kernel.org/doc/html/latest/networking/af_xdp.html" rel="noopener noreferrer">AF_XDP</a> - Kernel documentation on the AF_XDP address family.</li>
</ul>

<ul>
<li><a href="https://archive.fosdem.org/2018/schedule/event/af_xdp/" rel="noopener noreferrer">Fast Packet Processing in Linux with AF_XDP</a></li>
</ul>
<h3><p>Articles and Presentations / bpfilter</p>
</h3>
<ul>
<li><a href="https://cilium.io/blog/2018/04/17/why-is-the-kernel-community-replacing-iptables/" rel="noopener noreferrer">Why is the kernel community replacing iptables with BPF?</a> - A blog post by Cilium on the motivations behind eBPF and bpfilter, with a couple examples and links to other projects using eBPF and bpfilter.</li>
</ul>

<ul>
<li><a href="https://qmo.fr/docs/talk_20180316_frnog_bpfilter.pdf" rel="noopener noreferrer">bpfilter: Linux firewall with eBPF sauce</a> - Slides from a talk by Quentin Monnet with a background on eBPF and comparing bpfilter to iptables.</li>
</ul>
<h3><p>Articles and Presentations / BTF</p>
</h3>
<ul>
<li><a href="https://www.kernel.org/doc/html/latest/bpf/btf.html" rel="noopener noreferrer">BPF Type Format (BTF)</a> - Kernel documentation about BTF, explaining how to use it.</li>
</ul>

<ul>
<li><a href="https://facebookmicrosites.github.io/bpf/blog/2018/11/14/btf-enhancement.html" rel="noopener noreferrer">Enhancing the Linux kernel with BTF type information</a> - A description of the work done with BTF to provide debugging information for BPF programs.</li>
</ul>
<h3><p>Articles and Presentations / cBPF</p>
</h3>
<ul>
<li><a href="http://www.tcpdump.org/papers/bpf-usenix93.pdf" rel="noopener noreferrer">The BSD Packet Filter: A New Architecture for User-level Packet Capture</a> - The original paper about (classic) BPF.</li>
</ul>

<ul>
<li><a href="http://borkmann.ch/talks/2013_devconf.pdf" rel="noopener noreferrer">Linux' packet mmap(2), BPF, and Netsniff-NG</a></li>
</ul>

<ul>
<li><a href="http://borkmann.ch/talks/2014_devconf.pdf" rel="noopener noreferrer">tc and cls bpf: lightweight packet classifying with BPF</a></li>
</ul>

<ul>
<li><a href="https://blog.cloudflare.com/introducing-the-bpf-tools/" rel="noopener noreferrer">Introducing Cloudflare's BPF Tools</a> - Usage of BPF bytecode with the <code>xt_bpf</code> module for iptables.</li>
</ul>

<ul>
<li><a href="http://biot.com/capstats/bpf.html" rel="noopener noreferrer">Libpcap filters syntax</a></li>
</ul>
<h3><p>Articles and Presentations / Hardware Offload</p>
</h3>
<ul>
<li><a href="http://netdevconf.org/1.2/session.html?jakub-kicinski" rel="noopener noreferrer">eBPF/XDP hardware offload to SmartNICs</a> - Hardware offload for eBPF with TC or XDP (Linux kernel 4.9+), introduced by Netronome.</li>
</ul>

<ul>
<li><a href="https://www.netdevconf.org/2.2/session.html?viljoen-xdpoffload-talk" rel="noopener noreferrer">Comprehensive XDP offload---Handling the edge cases</a> - An update on the topic above.</li>
</ul>
<h3><p>Tutorials / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md" rel="noopener noreferrer">bcc Reference Guide (⭐22k)</a> - Many incremental steps to start using bcc and eBPF, mostly centered on tracing and monitoring.</li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/bcc/blob/master/docs/tutorial_bcc_python_developer.md" rel="noopener noreferrer">bcc Python Developer Tutorial (⭐22k)</a> - Comes with bcc, but targets the Python bits across seventeen "lessons".</li>
</ul>

<ul>
<li><a href="https://github.com/goldshtn/linux-tracing-workshop" rel="noopener noreferrer">Linux Tracing Workshops Materials (⭐1.3k)</a> - Involves the use of several BPF tools for tracing.</li>
</ul>

<ul>
<li><a href="https://blog.yadutaf.fr/2017/07/28/tracing-a-packet-journey-using-linux-tracepoints-perf-ebpf/" rel="noopener noreferrer">Tracing a packet journey using Linux tracepoints, perf and eBPF</a> - Troubleshooting ping requests and replies with perf and bcc programs.</li>
</ul>

<ul>
<li><a href="https://open-nfp.org/dataplanes-ebpf/technical-papers/" rel="noopener noreferrer">Open NFP platform</a> - Operated by Netronome: some tutorials for network-related eBPF use cases, including an eBPF Offload Starting Guide.</li>
</ul>

<ul>
<li><a href="http://netdevconf.org/2.1/session.html?gospodarek" rel="noopener noreferrer">XDP for the Rest of Us</a> - First edition of a workshop to get started with XDP.</li>
</ul>

<ul>
<li><a href="https://www.netdevconf.org/2.2/session.html?gospodarek-xdp-workshop" rel="noopener noreferrer">XDP for the Rest of Us</a> - Second edition, with new contents.</li>
</ul>

<ul>
<li><a href="https://medium.com/@fntlnz/load-xdp-programs-using-the-ip-iproute2-command-502043898263" rel="noopener noreferrer">Load XDP programs using the ip (iproute2) command</a></li>
</ul>

<ul>
<li><a href="https://github.com/xdp-project/xdp-tutorial" rel="noopener noreferrer">XDP Hands-On Tutorial (⭐2.9k)</a> - A progressive (three levels of difficulty) tutorial to learn how to process packets with XDP.</li>
</ul>
<h3><p>Examples / Hardware Offload</p>
</h3>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/samples/bpf" rel="noopener noreferrer">linux/samples/bpf/</a> - In the kernel tree: some sample eBPF programs.</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/bpf" rel="noopener noreferrer">linux/tools/testing/selftests/bpf</a> - In the kernel tree: Linux BPF selftests, with many eBPF programs.</li>
</ul>

<ul>
<li><a href="https://github.com/netoptimizer/prototype-kernel/tree/master/kernel/samples/bpf" rel="noopener noreferrer">prototype-kernel/kernel/samples/bpf (⭐314)</a> - Jesper Dangaard Brouer's prototype-kernel repository contains some additional examples that can be compiled outside of kernel infrastructure.</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/tree/examples/bpf" rel="noopener noreferrer">iproute2/examples/bpf/</a> - Some networking programs to attach to the TC interface.</li>
</ul>

<ul>
<li><a href="https://github.com/Netronome/bpf-samples/" rel="noopener noreferrer">Netronome sample network applications (⭐108)</a> - Provides basic but complete examples of eBPF applications also compatible with hardware offload.</li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/bcc/tree/master/examples" rel="noopener noreferrer">bcc/examples (⭐22k)</a> - Examples coming along with the bcc tools, mostly about tracing.</li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/bcc/tree/master/tools" rel="noopener noreferrer">bcc/tools (⭐22k)</a> - These tools themselves can be seen as example use cases for BPF programs, mostly for tracing and monitoring. bcc tools have been packaged for some Linux distributions.</li>
</ul>

<ul>
<li><a href="https://github.com/fzakaria/eBPF-mpls-encap-decap" rel="noopener noreferrer">MPLSinIP sample (⭐56)</a> - A heavily commented sample demonstrating how to encapsulate &amp; decapsulate MPLS within IP. The code is commented for those new to BPF development.</li>
</ul>

<ul>
<li><a href="https://github.com/vbpf/ebpf-samples" rel="noopener noreferrer">ebpf-samples (⭐93)</a> - A collection of compiled (as ELF object files) samples gathered from several projects, primarily intended to serve as test cases for user space verifiers.</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / bcc</p>
</h3>
<ul>
<li><a href="https://github.com/iovisor/bcc/" rel="noopener noreferrer">bcc (⭐22k)</a> - Framework and set of tools - One way to handle BPF programs, in particular for tracing and monitoring. Also includes some utilities that may help inspect maps or programs on the system.</li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/bcc/tree/master/src/lua" rel="noopener noreferrer">Lua front-end for BCC (⭐22k)</a> - Another alternative to C, and even to most of the Python code used in bcc.</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / iproute2</p>
</h3>
<ul>
<li><a href="https://git.kernel.org/pub/scm/network/iproute2/iproute2.git" rel="noopener noreferrer">iproute2</a> - Package containing tools for network management on Linux. In particular, it contains <code>tc</code>, used to manage eBPF filters and actions, and <code>ip</code>, used to manage XDP programs. Most of the code related to BPF is in lib/bpf.c.</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git" rel="noopener noreferrer">iproute2-next</a> - The development tree, synchronised with net-next.</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / LLVM</p>
</h3>
<ul>
<li><p><a href="https://llvm.org/" rel="noopener noreferrer">LLVM</a> - Contains several tools used in eBPF workflows. Snapshots of the latest versions for Ubuntu/Debian can be retrieved from <a href="http://apt.llvm.org/" rel="noopener noreferrer">here</a>.</p>
<ul>
<li>clang is used to compile C to eBPF object file under the ELF format (clang v3.7.1+). The BPF backend was added with <a href="https://reviews.llvm.org/D6494" rel="noopener noreferrer">this commit</a>.</li>
<li>llvm-objdump is used to dump the content of an object file in human-readable format, possibly with the initial C source code (llvm-objdump v4.0+).</li>
<li>llvm-mc is used to compile from LLVM intermediate representation to eBPF object file, so that one can compile from C to eBPF assembly, tinker with assembly, then compile to ELF file.</li>
</ul>
</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / libbpf</p>
</h3>
<ul>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/tools/lib/bpf" rel="noopener noreferrer">libbpf</a> - A C library used for handling BPF objects (programs and maps), and manipulating ELF object files containing them. It is shipped with the kernel and <a href="https://github.com/libbpf/libbpf" rel="noopener noreferrer">mirrored on GitHub (⭐2.6k)</a>.</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / bpftool and Other Tools from the Kernel Tree</p>
</h3>
<ul>
<li><p><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpftool" rel="noopener noreferrer">bpftool</a> - Also some other tools in the kernel tree, under <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/net?h=v4.14" rel="noopener noreferrer">linux/tools/net/</a> for versions earlier than 4.15, or <a href="https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/tools/bpf" rel="noopener noreferrer">linux/tools/bpf/</a> after that:</p>
<ul>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpftool" rel="noopener noreferrer"><code>bpftool</code></a> - A generic utility that can be used to interact with eBPF programs and maps from userspace, for example to show, dump, load, disassemble, pin programs, or to show, create, pin, update, delete maps, or to attach and detach programs to cgroups.</li>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_asm.c" rel="noopener noreferrer"><code>bpf_asm</code></a> - A minimal cBPF assembler.</li>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_dbg.c" rel="noopener noreferrer"><code>bpf_dbg</code></a> - A small debugger for cBPF programs.</li>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_jit_disasm.c" rel="noopener noreferrer"><code>bpf_jit_disasm</code></a> - A disassembler for both BPF flavors and could be highly useful for JIT debugging.</li>
</ul>
</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / User Space eBPF</p>
</h3>
<ul>
<li><a href="https://github.com/iovisor/ubpf/" rel="noopener noreferrer">uBPF (⭐952)</a> - Written in C. Contains an interpreter, a JIT compiler for x86_64 architecture, an assembler and a disassembler.</li>
</ul>

<ul>
<li><a href="https://github.com/YutaroHayakawa/generic-ebpf" rel="noopener noreferrer">A generic implementation (⭐151)</a> - With support for FreeBSD kernel, FreeBSD user space, Linux kernel, Linux user space and macOS user space. Used for the <a href="https://www.unix.com/man-page/freebsd/4/vale/" rel="noopener noreferrer">VALE software switch</a>'s <a href="https://github.com/YutaroHayakawa/vale-bpf" rel="noopener noreferrer">BPF extension module (⭐33)</a>.</li>
</ul>

<ul>
<li><a href="https://github.com/qmonnet/rbpf" rel="noopener noreferrer">rbpf (⭐1.1k)</a> - Written in Rust. Interpreter for Linux, macOS and Windows, and JIT-compiler for x86_64 under Linux.</li>
</ul>

<ul>
<li><a href="https://github.com/vbpf/ebpf-verifier" rel="noopener noreferrer">PREVAIL (⭐448)</a> - A user space verifier for eBPF <a href="https://elazarg.github.io/pldi19main-final.pdf" rel="noopener noreferrer">using an abstract interpretation layer</a>, with support for loops.</li>
</ul>
<h3><p>eBPF Workflow: Tools and Utilities / Testing in Virtual Environments</p>
</h3>
<ul>
<li><a href="https://github.com/iovisor/xdp-vagrant" rel="noopener noreferrer">A Vagrant setup</a> - To easily test XDP. Less useful now that generic XDP (driver-independant, mostly for testing) exists.</li>
</ul>

<ul>
<li><a href="https://github.com/zlim/bcc-docker" rel="noopener noreferrer">bcc in a Docker container (⭐45)</a></li>
</ul>
<h3><p>Projects Related to eBPF / Networking</p>
</h3>
<ul>
<li><p>P4 has some interactions with eBPF:</p>
<ul>
<li><a href="https://schd.ws/hosted_files/2016p4workshop/1d/Intel%20Fastabend-P4%20on%20the%20Edge.pdf" rel="noopener noreferrer">P4 on the Edge</a> - P4 with eBPF to create high-performance programmable switches.</li>
<li><a href="https://ovsorbit.org/#e11" rel="noopener noreferrer">OvS Orbit episode (#11), called P4 on the Edge</a> - Related to the former item. Audio interview of John Fastabend by Ben Pfaff, one of the core maintainers of Open vSwitch.</li>
<li><a href="https://open-nfp.org/m/documents/Open_NFP_P4_EBPF_Linux_TC_Offload_FINAL_5JHLETS.pdf" rel="noopener noreferrer">P4, EBPF and Linux TC Offload</a> - P4 with some elements related to eBPF hardware offload on Netronome's NFP (Network Flow Processor) architecture.</li>
<li><a href="https://github.com/iovisor/bcc/tree/master/src/cc/frontends/p4" rel="noopener noreferrer">Old documentation for P4 usage with eBPF (⭐22k)</a> - From bcc repository; deprecated by the P4_16 backend linked below.</li>
<li><a href="https://github.com/p4lang/p4c/blob/master/backends/ebpf/README.md" rel="noopener noreferrer">P4_16 backend for eBPF (⭐807)</a></li>
</ul>
</li>
</ul>

<ul>
<li><p><a href="https://cilium.io/" rel="noopener noreferrer">Cilium</a> project (<a href="https://github.com/cilium/cilium" rel="noopener noreferrer">GitHub repository (⭐24k)</a>) is a technology relying on BPF and XDP to provide "fast in-kernel networking and security policy enforcement for containers based on eBPF programs generated on the fly". Many presentations available (with overlap):</p>
<ul>
<li><a href="http://www.slideshare.net/ThomasGraf5/clium-container-networking-with-bpf-xdp" rel="noopener noreferrer">Cilium: Networking &amp; Security for Containers with BPF &amp; XDP</a> - Also featuring a load balancer use case</li>
<li><a href="http://www.slideshare.net/Docker/cilium-bpf-xdp-for-containers-66969823" rel="noopener noreferrer">Cilium: Networking &amp; Security for Containers with BPF &amp; XDP</a> - <a href="https://www.youtube.com/watch?v=TnJF7ht3ZYc&amp;list=PLkA60AVN3hh8oPas3cq2VA9xB7WazcIgs" rel="noopener noreferrer">video</a></li>
<li><a href="http://www.slideshare.net/ThomasGraf5/cilium-fast-ipv6-container-networking-with-bpf-and-xdp" rel="noopener noreferrer">Cilium: Fast IPv6 container Networking with BPF and XDP</a></li>
<li><a href="https://fosdem.org/2017/schedule/event/cilium/" rel="noopener noreferrer">Cilium: BPF &amp; XDP for containers</a></li>
<li><a href="https://ovsorbit.benpfaff.org/" rel="noopener noreferrer">OvS Orbit episode (#4)</a> - Interview of Thomas Graf by Ben Pfaff.</li>
<li><a href="https://opensource.googleblog.com/2016/11/cilium-networking-and-security.html" rel="noopener noreferrer">A generic introduction to Cilium</a></li>
<li><a href="http://blog.ipspace.net/2016/10/fast-linux-packet-forwarding-with.html" rel="noopener noreferrer">A podcast interviewing Thomas Graf</a> - Ivan Pepelnjak interviewing Thomas, October 2016, on eBPF, P4, XDP and Cilium.</li>
</ul>
</li>
</ul>

<ul>
<li><p>Open vSwitch (OvS), and its related project Open Virtual Network (OVN, an open source network virtualization solution) are considering using eBPF at various level:</p>
<ul>
<li><a href="http://openvswitch.org/support/ovscon2016/7/1120-tu.pdf" rel="noopener noreferrer">Offloading OVS Flow Processing using eBPF</a></li>
<li><a href="http://openvswitch.org/support/ovscon2016/7/1245-bertrone.pdf" rel="noopener noreferrer">Coupling the Flexibility of OVN with the Efficiency of IOVisor</a></li>
</ul>
</li>
</ul>

<ul>
<li><a href="https://code.fb.com/open-source/open-sourcing-katran-a-scalable-network-load-balancer/" rel="noopener noreferrer">Katran</a> - A layer 4 load-balancer based on XDP, open-sourced by Facebook.</li>
</ul>

<ul>
<li><a href="http://netdevconf.org/2.1/session.html?bertin" rel="noopener noreferrer">XDP in practice: integrating XDP in our DDoS mitigation pipeline</a> - Protection against DDoS with XDP at Cloudflare.</li>
</ul>

<ul>
<li><a href="http://netdevconf.org/2.1/session.html?zhou" rel="noopener noreferrer">Droplet: DDoS countermeasures powered by BPF + XDP</a> - Protection against DDoS with XDP at Facebook.</li>
</ul>

<ul>
<li><a href="https://dpdkuserspace2018.sched.com/event/G45Z/dpdk-pmd-for-afxdp" rel="noopener noreferrer">DPDK has a poll-mode driver (PMD) based on AF_XDP</a></li>
</ul>

<ul>
<li><a href="http://www.slideshare.net/IOVisor/ceth-for-xdp-linux-meetup-santa-clara-july-2016" rel="noopener noreferrer">CETH for XDP</a> - Common Ethernet Driver Framework for faster network I/O, a technology initiated by Mellanox.</li>
</ul>

<ul>
<li><p>Suricata, an open source intrusion detection system, <a href="https://www.stamus-networks.com/2016/09/28/suricata-bypass-feature/" rel="noopener noreferrer">relies on eBPF components</a> for its "capture bypass" features:</p>
<ul>
<li><a href="http://suricata.readthedocs.io/en/latest/capture-hardware/ebpf-xdp.html?highlight=XDP#ebpf-and-xdp" rel="noopener noreferrer">"eBPF and XDP" section of Suricata documentation</a></li>
<li><a href="https://github.com/pevma/SEPTun-Mark-II" rel="noopener noreferrer">SEPTun-Mark-II (⭐121)</a> - Extreme Performance Tuning guide - Mark II.</li>
<li><a href="https://www.stamus-networks.com/2016/09/28/suricata-bypass-feature/" rel="noopener noreferrer">A blog post introducing the feature</a></li>
<li><a href="http://netdevconf.org/1.2/slides/oct6/10_suricata_ebpf.pdf" rel="noopener noreferrer">The adventures of a Suricate in eBPF land</a></li>
<li><a href="https://www.slideshare.net/ennael/kernel-recipes-2017-ebpf-and-xdp-eric-leblond" rel="noopener noreferrer">eBPF and XDP seen from the eyes of a meerkat</a></li>
</ul>
</li>
</ul>
<h3><p>Projects Related to eBPF / Observability</p>
</h3>
<ul>
<li><a href="https://github.com/iovisor/bpf-docs/blob/master/university/sigcomm-ccr-InKev-2016.pdf" rel="noopener noreferrer">InKeV: In-Kernel Distributed Network Virtualization for DCN (⭐1k)</a></li>
</ul>

<ul>
<li><a href="https://www.slideshare.net/necstlab/deepmon-dynamic-and-energy-efficient-power-monitoring-for-containerbased-infrastructures" rel="noopener noreferrer">DEEP-mon</a> - Helps with measuring power consumption for servers and uses eBPF programs for in-kernel aggregation of data.</li>
</ul>
<h3><p>Projects Related to eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://wkz.github.io/ply/" rel="noopener noreferrer">ply</a> - A small but flexible open source dynamic tracer for Linux, with features similar to the bcc tools, but with a simpler language inspired by awk and DTrace.</li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/kubectl-trace" rel="noopener noreferrer">kubectl trace (⭐2.2k)</a> - A kubectl plug-in for executing bpftrace programs in a Kubernetes cluster.</li>
</ul>

<ul>
<li><a href="https://github.com/genuinetools/bpfd" rel="noopener noreferrer">bpfd (⭐483)</a> - Framework for running BPF programs with rules on Linux as a daemon. Container aware.</li>
</ul>

<ul>
<li><a href="https://github.com/joelagnel/bpfd" rel="noopener noreferrer">BPFd (⭐97)</a> - A distinct BPF daemon, trying to leverage the flexibility of the bcc tools to trace and debug remote targets, and in particular devices running with Android.</li>
</ul>

<ul>
<li><a href="https://github.com/joelagnel/adeb" rel="noopener noreferrer">adeb (⭐336)</a> - A Linux shell environment for using tracing tools on Android with BPFd.</li>
</ul>

<ul>
<li><a href="https://events.linuxfoundation.org/wp-content/uploads/2017/11/When-eBPF-Meets-FUSE-Improving-Performance-of-User-File-Systems-Ashish-Bijlani-Georgia-Tech.pdf" rel="noopener noreferrer">FUSE</a> - Considers using eBPF.</li>
</ul>
<h3><p>The Code / Tools</p>
</h3>
<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/bpf.h" rel="noopener noreferrer">linux/include/linux/bpf.h</a> - with <a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/bpf.h" rel="noopener noreferrer">linux/include/uapi/bpf.h</a>: definitions related to eBPF, to be used respectively in the kernel and to interface with userspace programs.</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/filter.h" rel="noopener noreferrer">linux/include/linux/filter.h</a> - with <a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/filter.h" rel="noopener noreferrer">linux/include/uapi/filter.h</a>: information used to run the BPF programs themselves.</li>
</ul>

<ul>
<li><p><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf" rel="noopener noreferrer">linux/kernel/bpf/</a> - This directory contains most of BPF-related code. In particular, those files are worth of interest:</p>
<ul>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/syscall.c" rel="noopener noreferrer"><code>syscall.c</code></a> - Different operations permitted by the system call, such as program loading or map management.</li>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/core.c" rel="noopener noreferrer"><code>core.c</code></a> - BPF interpreter.</li>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/verifier.c" rel="noopener noreferrer"><code>verifier.c</code></a> - BPF verifier.</li>
</ul>
</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/core/filter.c" rel="noopener noreferrer">linux/net/core/filter.c</a> - Functions and eBPF helpers related to networking (TC, XDP etc.); also contains the code to migrate cBPF bytecode to eBPF (all cBPF programs are translated to eBPF in recent kernels).</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/kernel/trace/bpf_trace.c" rel="noopener noreferrer">linux/kernel/trace/bpf_trace.c</a> - Functions and eBPF helpers related to tracing and monitoring (kprobes, tracepoints, etc.).</li>
</ul>

<ul>
<li>The JIT compilers are under the directory of their respective architectures, such as file <a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/net/bpf_jit_comp.c" rel="noopener noreferrer">linux/arch/x86/net/bpf_jit_comp.c</a> for x86. Exception is made for JIT compilers used for hardware offload, sitting in their drivers, such as <a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/netronome/nfp/bpf/jit.c" rel="noopener noreferrer">linux/drivers/net/ethernet/netronome/nfp/bpf/jit.c</a> for Netronome NFP.</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/sched" rel="noopener noreferrer">linux/net/sched/</a> - and in particular in files <code>act_bpf.c</code> (action) and <code>cls_bpf.c</code> (filter): code related to BPF actions and filters with TC.</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/kernel/seccomp.c" rel="noopener noreferrer">linux/kernel/seccomp.c</a></li>
</ul>

<ul>
<li><a href="https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/core/dev.c" rel="noopener noreferrer">linux/net/core/dev.c</a> - contains the function <code>dev_change_xdp_fd()</code> that is called through a Netlink command to hook a XDP program to a device, after is has been loaded into the kernel from user space. This function in turns uses a callback from the relevant driver.</li>
</ul>
<h3><p>Development and Community / Tools</p>
</h3>
<ul>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/" rel="noopener noreferrer">The bpf-next tree</a> - BPF patches land in this tree. It is regularly merged into <a href="https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git" rel="noopener noreferrer">net-next</a>, which is itself merged for each release to Linus' tree.</li>
</ul>

<ul>
<li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/Documentation/bpf/bpf_devel_QA.rst" rel="noopener noreferrer">Kernel documentation</a> - About contributions to BPF.</li>
</ul>

<ul>
<li><a href="http://lists.openwall.net/netdev/" rel="noopener noreferrer">The netdev mailing list</a> - Mailing list for Linux kernel networking stack development. All patches are sent there for review and inclusion.</li>
</ul>

<ul>
<li><a href="http://vger.kernel.org/vger-lists.html#xdp-newbies" rel="noopener noreferrer">XDP-newbies</a> - A mailing list specially dedicated to XDP programming (both for architecture or for asking for help).</li>
</ul>

<ul>
<li><a href="http://lists.iovisor.org/pipermail/iovisor-dev/" rel="noopener noreferrer">IO Visor mailing list</a> - BPF is at the heart of the project, and is regularly discussed on the mailing list.</li>
</ul>

<ul>
<li><a href="https://twitter.com/IOVisor" rel="noopener noreferrer">@IOVisor Twitter account</a></li>
</ul>

<ul>
<li><a href="https://github.com/xdp-project/xdp-project" rel="noopener noreferrer">The XDP Collaboration Project (⭐304)</a> - A GitHub repository with notes and ideas regarding the future evolutions of XDP.</li>
</ul>
<h3><p>Other Lists of Resources on eBPF / Tools</p>
</h3>
<ul>
<li><a href="https://github.com/iovisor/bcc/tree/master/docs" rel="noopener noreferrer">IO Visor's bcc documentation (⭐22k)</a></li>
</ul>

<ul>
<li><a href="https://github.com/iovisor/bpf-docs/" rel="noopener noreferrer">IO Visor's bpf-docs repository (⭐1k)</a></li>
</ul>

<ul>
<li><a href="https://qmonnet.github.io/whirl-offload/2016/09/01/dive-into-bpf/" rel="noopener noreferrer">Dive into BPF: A List of Reading Material</a></li>
</ul>
]]></content>
    <link rel="alternate" href="https://www.trackawesomelist.com/2019/23/"/>
    <summary>119 awesome projects updated on Jun 10 - Jun 16, 2019</summary>
  </entry>
</feed>