PageSourceSearch

https://cilium.io/component---src-templates-blog-post-jsx-content-…updates-13-index-md-1893e849e953e225ce93.js

js cilium.io collected 2026-10-01 08:35:20 UTC 65,608 bytes, 2 lines download raw bytes

1"use strict";(self.webpackChunkcilium_io=self.webpackChunkcilium_io||[]).push([[3569],{595:function(e,t,n){n.r(t),n.d(t,{Head:function(){return u},default:function(){return d}});var a=n(8453),l=n(6540),r=n(6452);function o(e){const t=Object.assign({p:"p",hr:"hr",a:"a",blockquote:"blockquote",ul:"ul",li:"li",span:"span",h2:"h2",h4:"h4"},(0,a.RP)(),e.components),{BlogAuthor:n}=t;return n||function(e,t){throw new Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("BlogAuthor",!0),l.createElement(l.Fragment,null,l.createElement(t.p,null,"This is issue 13 of the regular newsletter around BPF written by Alexander Alemayhu. It summarizes ongoing development, presentations, videos and other information related to BPF and XDP. It is released roughly once a week."),"\n",l.createElement(t.hr),"\n",l.createElement(t.p,null,"The v4.15 merge window is open and LWN.net already has a summary on ",l.createElement(t.a,{href:"https://lwn.net/SubscriberLink/739341/f18f047b49653547/"},"part 1")," out. Which contains a BPF section listing some of the new things:"),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.p,null,"BPF"),"\n",l.createElement(t.p,null,"The user-space bpftool utility can be used to examine and manipulate BPF programs and maps; see this man page for more information."),"\n",l.createElement(t.p,null,"Hooks have been added to allow security modules to control access to BPF objects; see this changelog for more information."),"\n",l.createElement(t.p,null,"A new BPF-based device controller has been added; it uses the version-2 control-group interface. Documentation for this feature is entirely absent, but one can look at the sample program added in this commit that uses it."),"\n"),"\n",l.createElement(t.p,null,"The highlights since last time"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,"New helper function ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_getsockops</code>'}})," to retrieve socket options. supports ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">TCP_CONGESTION</code>'}})," for now. The new ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BPF_SOCK_OPS_BASE_RTT</code>'}})," feature significantly improves TCP-NV."),"\n",l.createElement(t.li,null,"It is now possible to attach multiple programs to tracepoint / kprobes / uprobes. The programs will run in sequence. With the change for trace points one application does not exclude others from attaching to the same call."),"\n"),"\n",l.createElement(t.p,null,"More interesting topics"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,"New helper function ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_override_function</code>'}})," under discussion to allow for error injection via kprobes."),"\n",l.createElement(t.li,null,"BPF runtime finally gets a ",l.createElement(t.a,{href:"https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/Documentation/bpf/bpf_design_QA.txt"},"FAQ section")," in the kernel's documentation directory."),"\n",l.createElement(t.li,null,"bpftool gets support for dumping JSON."),"\n"),"\n",l.createElement(t.h2,null,"Presentations"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://dockercon.docker.com/watch/8RL2xBhXdhwz2NFCbVZzdF"},"Cilium - Kernel Native Security & DDOS Mitigation for Microservices with BPF")),"\n",l.createElement(t.p,null,"The slides of Cynthia's talk were already in the ",l.createElement(t.a,{href:"https://www.cilium.io/blog/2017/10/24/bpf-updates-12"},"last issue"),". Docker has since published the recording as well, definitely worth watching the recording. Fun talk on Cilium, BPF, and Kafka."),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"http://vger.kernel.org/~davem/Seoul_NIPA_2017/Seoul_NIPA_2017_part1.pdf"},"Linux Networking Development")),"\n",l.createElement(t.p,null,"Focusing on development areas in the kernel. Also some advice in there for aspiring kernel developers. ;-)"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"http://vger.kernel.org/~davem/Seoul_NIPA_2017/Seoul_NIPA_2017_part2.pdf"},"XDP: The Future of Networks")),"\n",l.createElement(t.p,null,"Great introduction to BPF and XDP. With some myth busting and potential improvements."),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://schd.ws/hosted_files/osseu17/7e/a-gentle-introduction-to-ebpf.pdf"},"A Gentle Introduction to [e]BPF - Michael Schubert, Kinvolk GmbH")),"\n",l.createElement(t.p,null,"Good introduction to BPF. Also nice that it shows the structures, links to some tools and verifier."),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://www.dropbox.com/s/99594woy145d34n/JVM-BPF.pptx?dl=0"},"LISA 17 - Fast and Safe Production Monitoring of JVM Applications with BPF Magic")),"\n",l.createElement(t.p,null,"Focusing on the tracing case with Java but the approaches could still be applied to other environments."),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://www.slideshare.net/brendangregg/lisa17-container-performance-analysis"},"LISA17 Container Performance Analysis")),"\n",l.createElement(t.p,null,"Goes through some of the tools used at Netflix and a lot of other smaller tools for tracing. The emphasis on identifying the bottlenecks sounds good."),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://www.dropbox.com/s/9
1syrh64qaxzz4pz/BPF-workshop.pptx?dl=0"},"LISA17 Linux Performance Monitoring With BPF")),"\n",l.createElement(t.p,null,"Lab session for tracing tools with BCC. This is useful for learning about tracing on Linux. It also answers basic question what is tracepoints, kprobes, uprobes, etc. and what are some of the limitations to dynamic tracing. Looks like a lot of fun."),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"http://people.netfilter.org/hawk/presentations/driving-IT2017/driving-IT-2017_XDP_eBPF_technology_Jesper_Brouer.pdf"},"XDP – eXpress Data Path An in-kernel network fast-path A technology overview")),"\n",l.createElement(t.p,null,"Great introduction to BPF and XDP. Also explains the problems and why it is needed."),"\n",l.createElement(t.h2,null,"In case you missed it"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://lwn.net/Articles/738912/"},"Reports from Netconf and Netdev")),"\n",l.createElement(t.p,null,"LWN.net coverage of the discussions from netconf and all the talks from netdev. All lot of interesting BPF topics in there. Check it out!"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://outflux.net/blog/archives/2017/11/14/security-things-in-linux-v4-14/"},"security things in Linux v4.14")),"\n",l.createElement(t.p,null,"The security summary contains a section eBPF JIT 32-bit ARM support and seccomp improvements."),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg1516567.html"},"SystemTap 3.2 release")),"\n",l.createElement(t.p,null,"SystemTap now has an experimental eBPF backend."),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://lwn.net/SubscriberLink/737530/6321597a8a64352e/"},"Another attempt to address the tracepoint ABI problem")),"\n",l.createElement(t.p,null,"Steven Rostedt proposes different scheme where tracepoints are placed but no trace event. Then on userspace a kernel module have to be loaded and there would be no need to add this to the kernel ABI. Will moving the ABI to a module really solve this problem?"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://lwn.net/SubscriberLink/737771/4862652df9170712/"},"Using eBPF and XDP in Suricata")),"\n",l.createElement(t.p,null,"LWN.net coverage of Eric Leblond's talk from Kernel Recipes. The recording was already in the ",l.createElement(t.a,{href:"https://www.cilium.io/blog/2017/10/24/bpf-updates-12"},"last issue"),"."),"\n",l.createElement(t.h2,null,"Projects"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://github.com/zoidbergwill/awesome-ebpf"},"awesome-ebpf")),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.p,null,"A curated list of awesome projects related to eBPF"),"\n"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://github.com/jessfraz/k8s-snowflake"},"k8s-snowflake")),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.p,null,"Configs and scripts for bootstrapping an opinionated Kubernetes cluster anywhere."),"\n"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://github.com/seccomp/libseccomp"},"libseccomp")),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.p,null,"The libseccomp library provides an easy to use, platform independent, interface to the Linux Kernel's syscall filtering mechanism. The libseccomp API is designed to abstract away the underlying BPF based syscall filter language and present a more conventional function-call based filtering interface that should be familiar to, and easily adopted by, application developers."),"\n"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://github.com/mmisono/rust-cbpf"},"cbpf-rust")),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.p,null,"Userspace cBPF interpreter and cBPF to eBPF converter"),"\n"),"\n",l.createElement(t.h4,null,l.createElement(t.a,{href:"https://github.com/pmem/vltrace"},"vltrace")),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.p,null,"vltrace is a syscall tracing tool which utilizes eBPF - an efficie
1nt tracing feature of the Linux kernel."),"\n"),"\n",l.createElement(t.h2,null,l.createElement(t.a,{href:"https://twitter.com/bmatheny/status/924022314177409025"},"Random cool note")),"\n",l.createElement(t.blockquote,null,"\n",l.createElement(t.p,null,"We blew way past 7Mpps with UDP+XDP. I’m sure you know that already though :)"),"\n"),"\n",l.createElement(t.h2,null,"Patches"),"\n",l.createElement(t.p,null,"Please note that netdev and llvm-commits receive a lot of patches and the list below is not meant to be comprehensive."),"\n",l.createElement(t.h4,null,"LLVM"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,"Alexei Starovoitov, ",l.createElement(t.a,{href:"http://llvm.org/viewvc/llvm-project?rev=318615&view=rev"},"[llvm] r318615 - [bpf] remove unused variable")),"\n",l.createElement(t.li,null,"Alexei Starovoitov, ",l.createElement(t.a,{href:"http://llvm.org/viewvc/llvm-project?rev=318614&view=rev"},"[llvm] r318614 - [bpf] allow direct and indirect calls")),"\n",l.createElement(t.li,null,"Yonghong Song, ",l.createElement(t.a,{href:"http://llvm.org/viewvc/llvm-project?rev=318358&view=rev"},"[llvm] r318358 - bpf: enable llvm-objdump to print out symbolized jmp target")),"\n",l.createElement(t.li,null,"Yonghong Song, ",l.createElement(t.a,{href:"http://llvm.org/viewvc/llvm-project?rev=318442&view=rev"},"[llvm] r318442 - bpf: print backward branch target properly")),"\n",l.createElement(t.li,null,"Yonghong Song, ",l.createElement(t.a,{href:"http://llvm.org/viewvc/llvm-project?rev=316469&view=rev"},"[llvm] r316469 - bpf: fix a bug in bpf-isel trunc-op optimization")),"\n",l.createElement(t.li,null,"Yonghong Song, ",l.createElement(t.a,{href:"http://llvm.org/viewvc/llvm-project?rev=316519&view=rev"},"[llvm] r316519 - bpf: fix an uninitialized variable issue")),"\n",l.createElement(t.li,null,"Yonghong Song, ",l.createElement(t.a,{href:"http://llvm.org/viewvc/llvm-project?rev=316481&view=rev"},"[llvm] r316481 - bpf: fix a bug in trunc-op optimization")),"\n"),"\n",l.createElement(t.h4,null,"netdev"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/839433/"},"[PATCH net 00/10] bpf: offload: check netdev pointer in the drivers and namespace trouble"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839423/"},"[PATCH net 01/10] bpf: offload: add comment warning developers about double destroy")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839424/"},"[PATCH net 02/10] bpf: offload: limit offload to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">cls_bpf</code>'}})," and xdp programs only")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839432/"},"[PATCH net 03/10] bpf: offload: rename the ifindex field")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839431/"},"[PATCH net 04/10] bpf: offload: move offload device validation out to the drivers")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839425/"},"[PATCH net 05/10] net: xdp: don't allow device-bound programs in driver mode")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839430/"},"[PATCH net 06/10] bpf: turn ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_prog_get_type()</code>'}})," into a wrapper")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839429/"},"[PATCH net 07/10] bpf: offload: ignore namespace moves")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839428/"},"[PATCH net 08/10] bpftool: revert printing program device bound info")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/839427/"},"[PATCH net 09/10] bpf: revert report offload info to user space")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/pat
1ch/839426/"},"[PATCH net 10/10] bpf: make ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_prog_offload_verifier_prep()</code>'}})," static inline")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Song Liu, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/837299/"},"[RFC v2 0/6] enable creating [k,u]probe with ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">perf_event_open</code>'}})),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837302/"},"[RFC v2 1/6] perf: Add new type ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">PERF_TYPE_PROBE</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837306/"},"[RFC v2 2/6] perf: copy new perf_event.h to tools/include/uapi")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837301/"},"[RFC v2 3/6] perf: implement kprobe support to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">PERF_TYPE_PROBE</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837307/"},"[RFC v2 4/6] perf: implement uprobe support to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">PERF_TYPE_PROBE</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837303/"},"[RFC v2 5/6] bpf: add option for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_load.c</code>'}})," to use ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">PERF_TYPE_PROBE</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837304/"},"[RFC v2 6/6] bpf: add new test ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">test_many_kprobe</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837305/"},"[RFC] bcc: Try use new API to create [k,u]probe with ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">perf_event_open</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837300/"},"[RFC] ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">perf_event_open.2</code>'}}),": add new type ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">PERF_TYPE_PROBE</code>'}}))),"\n"),"\n"),"\n",l.createElement(t.li,null,"Yonghong Song, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/837288/"},"[PATCH net-next 0/3 v3] bpf: improve verifier ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ARG_CONST_SIZE_OR_ZERO</code>'}})," semantics"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837287/"},"[PATCH net-next 1/3 v3] bpf: improve verifier ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ARG_CONST_SIZE_OR_ZERO</code>'}})," semantics")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837290/"},"[PATCH net-next 2/3 v3] bpf: change helper ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_probe_read</code>'}})," arg2 type to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ARG_CONST_SIZE_OR_ZERO</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837289/"},"[PATCH net-next 3/3 v3] bpf: fix and add test cases for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ARG_CONST_SIZE_OR_ZERO</code>'}})," semantics change")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Lawrence Brakmo, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/836997/"},"[PATCH net-next v2 0/6] bpf: Fix bugs in sock_ops samples"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/pat
1ch/836992/"},"[PATCH net-next v2 1/6] bpf: Fix ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_synrto_kern.c</code>'}})," sample program")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/836993/"},"[PATCH net-next v2 2/6] bpf: Fix ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_rwnd_kern.c</code>'}})," sample program")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/836996/"},"[PATCH net-next v2 3/6] bpf: Fix ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_bufs_kern.c</code>'}})," sample program")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/836991/"},"[PATCH net-next v2 4/6] bpf: Fix ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_cong_kern.c</code>'}})," sample program")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/836995/"},"[PATCH net-next v2 5/6] bpf: Fix ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_iw_kern.c</code>'}})," sample program")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/836994/"},"[PATCH net-next v2 6/6] bpf: Fix ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_clamp_kern.c</code>'}})," sample program")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Prashant Bhole, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/835588/"},"[PATCH net-next V4 0/3] tools: bpftool: show filenames of pinned objects"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/835589/"},"[PATCH net-next V4 1/3] tools: bpftool: open pinned object without type check")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/835590/"},"[PATCH net-next V4 2/3] tools: bpftool: show filenames of pinned objects")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/835591/"},"[PATCH net-next V4 3/3] tools: bpftool: optionally show filenames of pinned objects")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/834089/"},"[PATCH net-next v2 00/15] bpf: add offload as a first class citizen"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834103/"},"[PATCH net-next v2 01/15] net: bpf: rename ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ndo_xdp</code>'}})," to ndo_bpf")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834100/"},"[PATCH net-next v2 02/15] bpf: offload: add infrastructure for loading programs for a specific netdev")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834104/"},"[PATCH net-next v2 03/15] bpf: report offload info to user space")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834090/"},"[PATCH net-next v2 04/15] bpftool: print program device bound info")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834101/"},"[PATCH net-next v2 05/15] xdp: allow attaching programs loaded for specific device")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834102/"},"[PATCH net-next v2 06/15] ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">cls_bpf</code>'}}),": allow attaching programs loaded for specific device")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834095/"},"[PATCH net-next v2 07/15] nfp: bpf: drop support for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">cls_bpf</code>'}})," with legacy actions")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/pat
1ch/834096/"},"[PATCH net-next v2 08/15] nfp: bpf: remove the register renumbering leftovers")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834098/"},"[PATCH net-next v2 09/15] nfp: bpf: remove unnecessary include of nfp_net.h")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834099/"},"[PATCH net-next v2 10/15] nfp: bpf: refactor offload logic")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834093/"},"[PATCH net-next v2 11/15] nfp: bpf: require seamless reload for program replace")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834097/"},"[PATCH net-next v2 12/15] nfp: bpf: move program prepare and free into offload.c")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834091/"},"[PATCH net-next v2 13/15] nfp: bpf: move translation prepare to offload.c")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834094/"},"[PATCH net-next v2 14/15] nfp: bpf: move to new BPF program offload infrastructure")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834092/"},"[PATCH net-next v2 15/15] bpf: remove old offload/analyzer")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Christina Jacob, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/834242/"},"[PATCH v4 0/1] XDP program for ip forward"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834241/"},"[PATCH v4 1/1] xdp: Sample xdp program implementing ip forward")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Dan Carpenter, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/837684/"},"[PATCH net-next] xdp: sample: Missing curly braces in read_route()")),"\n",l.createElement(t.li,null,"Josef Bacik, ",l.createElement(t.a,{href:"https://lkml.org/lkml/2017/11/17/446"},"[PATCH 0/4] [v6] Add the ability to do BPF directed error injection"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://lkml.org/lkml/2017/11/17/448"},"[PATCH 1/4] add infrastructure for tagging functions as error injectable")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://lkml.org/lkml/2017/11/17/449"},"[PATCH 2/4] btrfs: make open_ctree error injectable")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://lkml.org/lkml/2017/11/17/447"},"[PATCH 3/4] bpf: add a ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_override_function</code>'}})," helper")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://lkml.org/lkml/2017/11/17/450"},"[PATCH 4/4] samples/bpf: add a test for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_override_return</code>'}}))),"\n"),"\n"),"\n",l.createElement(t.li,null,"Lawrence Brakmo, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/834432/"},"[PATCH net-next] bpf: Rename ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_bbf.readme</code>'}})," to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_bpf.readme</code>'}}))),"\n",l.createElement(t.li,null,"Sandipan Das, ",l.createElement(t.a,{href:"https://patchwork.kernel.org/patch/10039583/"},"[RFC PATCH] bpf: Add helpers to read useful ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">task_struct</code>'}})," members")),"\n",l.createElement(t.li,null,"Roman Gushchin, ",l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg465071.html"},"[PATCH v3 net-next 0/5] eBPF-based device cgroup controller"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg465066.html"},"[PATCH v3 net-next 1/5] ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">device_cgroup</code>'}}),": add ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">DEVCG_</code>'}})," prefix to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ACC_*</code>'}})," and ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">DEV_*</code>'}})," constants")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg465070.html"},"[PATCH v3 net-next 2/5] ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">device_cgroup</code>'}}),": prepare code for bpf-based device controller")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg465072.html"},"[PATCH v3 net-next 3/5] bpf, cgroup: implement eBPF-based device controller for cgroup v2")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg465067.html"},"[PATCH v3 net-next 4/5] bpf: move ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">cgroup_helpers</code>'}})," from samples/bpf/ to tools/testing/selftesting/bpf/")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg465069.html"},"[PATCH v3 net-next 5/5] selftests/bpf: add a test for device cgroup controller")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg198226.html"},"[PATCH net-next] tools: bpftool: move ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">p_err()</code>'}})," and ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">p_info()</code>'}})," from main.h to common.c")),"\n",l.createElement(t.li,null,"Colin King, ",l.createElement(t.a,{href:"https://patchwork.kernel.org/patch/10039257/"},"[PATCH net-next] net: sched: ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">cls_bpf</code>'}}),": use bitwise & rather than logical && on ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">gen_flags</code>'}}))),"\n",l.createElement(t.li,null,"Craig Gallek, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/pat
1ch/833404/"},"[PATCH] [net-next v2] bpf: fix verifier NULL pointer dereference")),"\n",l.createElement(t.li,null,"Arnd Bergmann, ",l.createElement(t.a,{href:"https://patchwork.kernel.org/patch/10038423/"},"[PATCH 1/2] [net-next] bpf: fix link error without CONFIG_NET"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.kernel.org/patch/10038425/"},"[PATCH 2/2] [net-next] bpf: fix out-of-bounds access warning in bpf_check")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Eric Dumazet, ",l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg467241.html"},"[PATCH net] bpf: fix lockdep splat")),"\n",l.createElement(t.li,null,"Prashant Bhole, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833248/"},"tools: bpf: handle long path in jit disasm")),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/833250/"},"[PATCH net-next 0/8] nfp: TC block fixes, app fallback and dev_alloc()"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833257/"},"[PATCH net-next 1/8] nfp: flower: app should use struct nfp_repr")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833258/"},"[PATCH net-next 2/8] nfp: flower: vxlan - ensure no sleep in atomic context")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833255/"},"[PATCH net-next 3/8] nfp: bpf: reject TC offload if XDP loaded")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833256/"},"[PATCH net-next 4/8] nfp: reorganize the app table")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833251/"},"[PATCH net-next 5/8] nfp: bpf: fall back to core NIC app if BPF not selected")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833252/"},"[PATCH net-next 6/8] nfp: switch to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">dev_alloc_page()</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833253/"},"[PATCH net-next 7/8] nfp: use a counter instead of log message for allocation failures")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833254/"},"[PATCH net-next 8/8] nfp: improve defines for constants in ethtool")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Daniel Borkmann, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/833134/"},"[PATCH net-next 0/3] BPF range marking improvements for meta data"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833132/"},"[PATCH net-next 1/3] bpf: minor cleanups after merge")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833135/"},"[PATCH net-next 2/3] bpf: also improve pattern matches for meta access")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833133/"},"[PATCH net-next 3/3] bpf: add test cases to bpf selftests to cover all meta tests")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833083/"},"[PATCH net-next] security: bpf: replace include of linux/bpf.h with forward declarations")),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/833059/"},"[PATCH net-next 0/2] nfp: bpf: rename ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ALU_OP_NEG</code>'}})," and support ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BPF_NEG</code>'}})),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/833058/"},"[PATCH net-next 1/2] nfp: bpf: rename ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ALU_OP_NEG</code>'}})," to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ALU_OP_NOT</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/pat
1ch/833060/"},"[PATCH net-next 2/2] nfp: bpf: support [",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BPF_ALU</code>'}})," | ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BPF_ALU64</code>'}}),"] | ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BPF_NEG</code>'}}))),"\n"),"\n"),"\n",l.createElement(t.li,null,"Jesper Dangaard Brouer, ",l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg464218.html"},"[net-next PATCH] bpf: cpumap micro-optimization in ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">cpu_map_enqueue</code>'}}))),"\n",l.createElement(t.li,null,"Alexei Starovoitov, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/832855/"},"[PATCH net-next] bpf: fix verifier memory leaks")),"\n",l.createElement(t.li,null,"John Fastabend, ",l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg464135.html"},"[net PATCH] bpf: remove SK_REDIRECT from UAPI")),"\n",l.createElement(t.li,null,"Alexei Starovoitov, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/832800/"},"[PATCH v2 net-next] bpf: reduce verifier memory consumption")),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/832821/"},"[RFC] net: dummy: add BPF offload callbacks for test purposes")),"\n",l.createElement(t.li,null,"Björn Töpel, ",l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197187.html"},"[RFC PATCH 00/14] Introducing AF_PACKET V4 support"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197191.html"},"[RFC PATCH 01/14] packet: introduce AF_PACKET V4 userspace API")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197188.html"},"[RFC PATCH 02/14] packet: implement PACKET_MEMREG setsockopt")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197201.html"},"[RFC PATCH 03/14] packet: enable AF_PACKET V4 rings")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197190.html"},"[RFC PATCH 04/14] packet: enable Rx for AF_PACKET V4")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197189.html"},"[RFC PATCH 05/14] packet: enable Tx support for AF_PACKET V4")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197192.html"},"[RFC PATCH 06/14] netdevice: add AF_PACKET V4 zerocopy ops")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197197.html"},"[RFC PATCH 07/14] packet: wire up zerocopy for AF_PACKET V4")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197196.html"},"[RFC PATCH 08/14] i40e: ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">AF_PACKET</code>'}})," V4 ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ndo_tp4_zerocopy</code>'}})," Rx support")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197194.html"},"[RFC PATCH 09/14] i40e: ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">AF_PACKET</code>'}})," V4 ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">ndo_tp4_zerocopy</code>'}})," Tx support")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197195.html"},"[RFC PATCH 10/14] samples/tpacket4: added tpbench")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197193.html"}
1,"[RFC PATCH 11/14] veth: added support for PACKET_ZEROCOPY")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197199.html"},"[RFC PATCH 12/14] samples/tpacket4: added veth support")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197198.html"},"[RFC PATCH 13/14] i40e: added XDP support for TP4 enabled queue pairs")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg197200.html"},"[RFC PATCH 14/14] xdp: introducing ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">XDP_PASS_TO_KERNEL</code>'}})," for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">PACKET_ZEROCOPY</code>'}})," use")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Jason Wang, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/832326/"},"[PATCH net-next V2 0/3] support changing steering policies in tuntap"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/832325/"},"[PATCH net-next V2 1/3] tun: abstract flow steering logic")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/832324/"},"[PATCH net-next V2 2/3] tun: introduce ioctls to set and get steering policies")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/832323/"},"[PATCH net-next V2 3/3] tun: add eBPF based queue selection method")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Alexei Starovoitov, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/832218/"},"[PATCH net-next] bpf: document answers to common questions about BPF")),"\n",l.createElement(t.li,null,"Alexei Starovoitov, ",l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg463754.html"},"[PATCH net-next] bpf: reduce verifier memory consumption")),"\n",l.createElement(t.li,null,"Yonghong Song, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/832161/"},"[PATCH net-next] bpf: avoid ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">rcu_dereference</code>'}})," inside ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_event_mutex</code>'}})," lock region")),"\n",l.createElement(t.li,null,"Alexei Starovoitov, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/831658/"},"[PATCH net-next] selftests/bpf: remove useless ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_trace_printk</code>'}}))),"\n",l.createElement(t.li,null,"Tushar Dave, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/831562/"},"[PATCH net-next] samples/bpf: adjust rlimit ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">RLIMIT_MEMLOCK</code>'}})," for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">xdp_redirect_map</code>'}}))),"\n",l.createElement(t.li,null,"Tushar Dave, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/831544/"},"[PATCH net-next] samples/bpf: adjust rlimit ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">RLIMIT_MEMLOCK</code>'}})," for xdp1")),"\n",l.createElement(t.li,null,"John Fastabend, ",l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg196615.html"},"[net PATCH 0/2] sockmap fixes"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg196614.html"},"[net PATCH 1/2] bpf: ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_compute_data</code>'}})," uses incorrect cb structure")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg196616.html"},"[net PATCH 2/2] bpf: rename sk_actions to align with bpf infrastru
1cture")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Quentin Monnet, ",l.createElement(t.a,{href:"https://www.mail-archive.com/[email protected]/msg1522706.html"},"[PATCH net-next] tools: bpftool: add bash completion for bpftool")),"\n",l.createElement(t.li,null,"Gianluca Borello, ",l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg462765.html"},"[PATCH net-next] bpf: remove ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tail_call</code>'}})," and ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">get_stackid</code>'}})," helper declarations from bpf.h")),"\n",l.createElement(t.li,null,"Chenbo Feng, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/827794/"},"[PATCH net-next v7 0/5] bpf: security: New file mode and LSM hooks for eBPF object permission control"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/827795/"},"[PATCH net-next v7 1/5] bpf: Add file mode configuration into bpf maps")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/827799/"},"[PATCH net-next v7 2/5] bpf: Add tests for eBPF file mode")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/827796/"},"[PATCH net-next v7 3/5] security: bpf: Add LSM hooks for bpf object related syscall")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/827797/"},"[PATCH net-next v7 4/5] selinux: bpf: Add selinux check for eBPF syscall operations")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/827798/"},"[PATCH net-next v7 5/5] selinux: bpf: Add addtional check for bpf object file receive")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/829394/"},"[PATCH net-next 00/12] tools: bpftool: Add JSON output to bpftool"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829395/"},"[PATCH net-next 01/12] tools: bpftool: copy JSON writer from iproute2 repository")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829396/"},"[PATCH net-next 02/12] tools: bpftool: add option parsing to bpftool, --help and --version")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829407/"},"[PATCH net-next 03/12] tools: bpftool: introduce --json and --pretty options")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829406/"},"[PATCH net-next 04/12] tools: bpftool: add JSON output for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpftool prog show *</code>'}})," command")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829397/"},"[PATCH net-next 05/12] tools: bpftool: add JSON output for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpftool prog dump jited *</code>'}})," command")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829401/"},"[PATCH net-next 06/12] tools: bpftool: add JSON output for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpftool prog dump xlated *</code>'}})," command")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829402/"},"[PATCH net-next 07/12] tools: bpftool: add JSON output for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpftool map *</code>'}})," commands")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829403/"},"[PATCH net-next 08/12] tools: bpftool: add JSON output for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpftool batch file FILE</code>'}})," command")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/pat
1ch/829404/"},"[PATCH net-next 09/12] tools: bpftool: turn err() and info() macros into functions")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829399/"},"[PATCH net-next 10/12] tools: bpftool: provide JSON output for all possible commands")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829398/"},"[PATCH net-next 11/12] tools: bpftool: add cosmetic changes for the manual pages")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829400/"},"[PATCH net-next 12/12] tools: bpftool: update documentation for --json and --pretty usage")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/828402/"},'[PATCH net-next 0/8] tools: bpftool: add a "version" command, and fix several items'),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828394/"},"[PATCH net-next 1/8] tools: bpftool: add pointer to file argument to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">print_hex()</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828395/"},"[PATCH net-next 2/8] tools: bpftool: fix return value when all eBPF programs have been shown")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828400/"},"[PATCH net-next 3/8] tools: bpftool: use err() instead of info() if there are too many insns")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828401/"},"[PATCH net-next 4/8] tools: bpftool: add ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpftool prog help</code>'}})," as real command i.r.t exit code")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828396/"},"[PATCH net-next 5/8] tools: bpftool: print only one error message on byte parsing failure")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828397/"},'[PATCH net-next 6/8] tools: bpftool: print all relevant byte opcodes for "load double word"')),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828398/"},"[PATCH net-next 7/8] tools: bpftool: show that ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">opcodes</code>'}})," or ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">file FILE</code>'}})," should be exclusive")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828399/"},"[PATCH net-next 8/8] tools: bpftool: add a command to display bpftool version")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Lawrence Brakmo, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/828757/"},"[PATCH net-next 0/5] bpf: add support for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BASE_RTT</code>'}})),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828760/"},"[PATCH net-next 1/5] bpf: add support for ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BPF_SOCK_OPS_BASE_RTT</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828759/"},"[PATCH net-next 2/5] bpf: Adding helper function ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">bpf_getsockops</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828758/"},"[PATCH net-next 3/5] bpf: Add ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BPF_SOCKET_OPS_BASE_RTT</code>'}})," support to ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_nv</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/pat
1ch/828761/"},"[PATCH net-next 4/5] bpf: sample ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">BPF_SOCKET_OPS_BASE_RTT</code>'}})," program")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828756/"},"[PATCH net-next 5/5] bpf: create samples/bpf/tcp_bpf.readme")),"\n"),"\n"),"\n",l.createElement(t.li,null,"John Fastabend, ",l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg461277.html"},"[net PATCH 0/5] sockmap fixes for net"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg461278.html"},"[net PATCH 1/5] bpf: enforce TCP only support for sockmap")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg461279.html"},"[net PATCH 2/5] bpf: avoid preempt enable/disable in sockmap using ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">tcp_skb_cb</code>'}})," region")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg461280.html"},"[net PATCH 3/5] bpf: remove mark access for SK_SKB program types")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg461281.html"},"[net PATCH 4/5] bpf: require ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">CAP_NET_ADMIN</code>'}})," when using sockmap maps")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://www.spinics.net/lists/netdev/msg461282.html"},"[net PATCH 5/5] bpf: require ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">CAP_NET_ADMIN</code>'}})," when using devmap")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Daniel Borkmann, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/828901/"},"[PATCH net 0/3] Two BPF fixes for range marking"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828899/"},"[PATCH net 1/3] bpf: fix off by one for range markings with L","{","T,E} patterns")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828902/"},"[PATCH net 2/3] bpf: fix pattern matches for direct packet access")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828900/"},"[PATCH net 3/3] bpf: add test cases to bpf selftests to cover all access tests")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Jesper Dangaard Brouer, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829524/"},"[net-next PATCH] bpf: cpumap fix potential lost wake-up problem")),"\n",l.createElement(t.li,null,"Jakub Kicinski, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/829570/"},"[PATCH net-next 0/9] nfp: bpf: stack support in offload"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829571/"},"[PATCH net-next 1/9] nfp: bpf: add helper for emitting nops")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829594/"},"[PATCH net-next 2/9] nfp: bpf: refactor ",l.createElement(t.span,{dangerouslySetInnerHTML:{__html:'<code class="language-text">nfp_bpf_check_ptr()</code>'}}))),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829573/"},"[PATCH net-next 3/9] nfp: bpf: add stack write support")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829590/"},"[PATCH net-next 4/9] nfp: bpf: add stack read support")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829574/"},"[PATCH net-next 5/9] nfp: bpf: optimize the RMW for stack accesses")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829593/"},"[PATCH net-next 6/9] nfp: bpf: allow stack accesses via modified stack registers")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/pat
1ch/829592/"},"[PATCH net-next 7/9] nfp: bpf: support accessing the stack beyond 64 bytes")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829591/"},"[PATCH net-next 8/9] nfp: bpf: support stack accesses via non-constant pointers")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829572/"},"[PATCH net-next 9/9] nfp: bpf: optimize mov64 a little")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Yonghong Song, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/cover/829786/"},"[PATCH net-next v3 0/3] bpf: permit multiple bpf attachments for a single perf tracepoint event"),"\n",l.createElement(t.ul,null,"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829788/"},"[PATCH net-next v3 1/3] bpf: use the same condition in perf event set/free bpf handler")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829785/"},"[PATCH net-next v3 2/3] bpf: permit multiple bpf attachments for a single perf event")),"\n",l.createElement(t.li,null,l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829787/"},"[PATCH net-next v3 3/3] bpf: add a test case to test single tp multiple bpf attachment")),"\n"),"\n"),"\n",l.createElement(t.li,null,"Quentin Monnet, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/830083/"},"[PATCH net-next] tools: bpftool: try to mount bpffs if required for pinning objects")),"\n",l.createElement(t.li,null,"John Fastabend, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/828187/"},"[net PATCH] bpf: devmap fix arithmetic overflow in bitmap_size calculation")),"\n",l.createElement(t.li,null,"Alexei Starovoitov, ",l.createElement(t.a,{href:"https://patchwork.ozlabs.org/patch/829064/"},"[PATCH v2 net-next] selftests/bpf: fix broken build of test_maps")),"\n"),"\n",l.createElement(n,r.A.alexanderAlemayhu))}var c=function(e){void 0===e&&(e={});const{wrapper:t}=Object.assign({},(0,a.RP)(),e.components);return t?l.createElement(t,e,l.createElement(o,e)):o(e)};var s=n(8125),i=n(5805),p=n(8838),m=n(2744);const h=e=>{const{data:{mdx:t},children:n}=e,{frontmatter:{path:a,title:r,date:o,tags:c,ogSummary:p}}=t;return l.createElement(m.A,{headerWithSearch:!0},l.createElement(s.A,{path:a,content:n,date:o,title:r,tags:c,summary:p}),l.createElement(i.A,{className:"my-10 md:my-20 lg:my-28"}))},u=e=>{var t,n;let{data:{mdx:a,site:r},location:{pathname:o}}=e;const{frontmatter:{title:c,ogImage:s,ogSummary:i,dateIso:m,tags:h,author:u}}=a,{siteUrl:d}=r.siteMetadata,g=`${i.slice(0,133)}...`,f=`${d}${o}`,E=null!=s&&null!==(t=s.childImageSharp)&&void 0!==t&&null!==(n=t.resize)&&void 0!==n&&n.src?`${d}${s.childImageSharp.resize.src}`:null,b={title:c,description:g,image:s||null,slug:o},w={"@context":"https://schema.org","@type":"BlogPosting",headline:c,description:g,url:f,datePublished:m,dateModified:m,author:u?{"@type":"Person",name:u}:{"@type":"Organization",name:"Cilium",url:d},publisher:{"@type":"Organization",name:"Cilium",url:d,logo:{"@type":"ImageObject",url:`${d}/images/social-preview.jpg`}},...E&&{image:{"@type":"ImageObject",url:E,width:1200,height:630}},...(null==h?void 0:h.length)>0&&{keywords:h.join(", ")}};return l.createElement(p.A,{data:b,type:"article",datePublished:m,jsonLd:w})};function d(e){return l.createElement(h,e,l.createElement(c,e))}},6452:function(e,t){t.A={thomasGraf:{header:"Thomas Graf",bio:'Thomas Graf is a Co-Founder of Cilium and the CTO & Co-Founder of <a href="https://isovalent.com/?utm_source=website-cilium&utm_medium=referral&utm_campaign=cilium-enterprise">Isovalent</a>, the company behind Cilium. Before that, Thomas spent 15 years as\n    a kernel developer working on the <a href="https://kernel.org">Linux kernel</a> in networking, security and eventually eBPF.'},lizRice:{header:'<a href="https://twitter.com/lizrice">Liz Rice</a>',bio:'Liz is Chief Open Source Officer at <a href="https://isovalent.com/?utm_source=website-cilium&utm_medium=referral&utm_campaign=cilium-enterprise" target="_blank" rel="noopener noreferrer">Isovalent</a>, the company behind Cilium. She is also chair of the CNCF\'s Technical Oversight Committee, and the author of Container Security published by O\'Reilly.'},luanGuimaraes:{header:"Luan Guimarães",bio:"Luan is a Brazilian rock climber, amateur musician, and\n   programmer and am enthusiastic about free software communities and other\n   open knowledge initiatives. He has been working as a Site Reliability\n   Engineer at Wildlife Studios, using and building infrastru
1cture tools on\n   top of Kubernetes in order to support millions of users around the world."},joshVanLeeuwen:{header:"Josh Van Leeuwen",bio:"Josh interned at Jetstack during the summer of 2017 before continuing to\n    work part time during his final year of study at the University of Bristol.\n    During this year, Josh developed a Kubernetes custom controller that\n    automates the delegation of RBAC permissions based on time and event\n    triggers. This work was later awarded the best Software Development Tool\n    Final Year Project. Josh now works full time at Jetstack where if he’s not\n    writing more Go, he’s making good food."},howardHao:{header:"Howard Hao",bio:" Howard Hao has been working as a Site Reliability Engineer for five years at\n    Ect888.com since graduating from Shanghai Jiao Tong University. His team\n    consists of 7 members and has been focusing on the construction of\n    container orchestration platform like Kubernetes for one and a half years."},sergeyGeneralov:{header:"Sergey Generalov",bio:"Sergey is a member of the technical staff at Isovalent\n    and focuses on helping Cilium users solve challenges related\n    to network policies, monitoring, and connectivity troubleshooting\n    by building tools like Network Policy Editor, Hubble UI and more."},liWenquan:{header:"Li Wenquan",bio:"Hello everyone, I am Li Wenquan from China. You can call me David. I\n    started my Docker journey from 2014 and now work as a project manager of\n    enterprise container platform, which is built on Kubernetes and Mesos. I\n    got to know Cilium project from Kubecon, it is so interesting and\n    promising. I've learned a lot from it, such as BPF, XDP and how to replace\n    kube-proxy in a elegant way and I'd love to contribute to it."},alexanderAlemayhu:{header:"Alexander Alemayhu",bio:"Alexander Alemayhu is a software engineer at Isovalent,\n    the company behind Cilium. He has been working on eBPF and Linux\n     kernel technologies for several years, focusing on networking and observability solutions."},DanielBorkmann:{header:"Daniel Borkmann",bio:"Daniel Borkmann is a Distinguished Software Engineer, Isovalent at Cisco"},ThomasGraf:{header:"Thomas Graf",bio:"Thomas Graf is the CTO & Co-Founder Isovalent and also the Vice President Security Cisco"},JedSalazar:{header:"Jed Salazar",bio:"Jed Salazar is a Senior Solutions Architect, Isovalent"},JedSalazarandJoeStringer:{header:"Jed Salazar and Joe Stringer",bio:"Jed Salazar is a Senior Solutions Architect at Isovalent\n    and Joe Stringer is a Principal Engineer, Isovalent at Cisco"},JosephIrving:{header:"Joseph Irving",bio:"Joseph Irving is a Platform Engineer Lead at RVU (Uswitch)"},BillMulligan:{header:"Bill Mulligan",bio:"Bill Mulligan is a Cilium and eBPF Community Pollinator,\n    Isovalent at Cisco and a Governing Board Member of the eBPF Foundation."},OndrejBlazek:{header:"Ondrej Blazek",bio:"Ondrej Blazek is an Infrastructure Engineer at Seznam.cz"},LeonardCohnenandMoritzEckert:{header:"Leonard Cohnen and Moritz Eckert",bio:"Leonard Cohnen and Moritz Eckert are team members at Edgeless Systems"},PolArroyo:{header:"Pol Arroyo",bio:"Pol Arroyo is a DevOps Engineer at Hetzner Cloud."},JedSalazarandMartynasPumputis:{header:"Jed Salazar and Martynas Pumputis",bio:"Jed Salazar is a Senior Solutions Architect, Isovalent and Martynas Pumputis is a Principal Software Engineer, Isovalent at Cisco"},ShedrackAkintayo:{header:"Shedrack Akintayo",bio:"Shedrack Akintayo is a Community Manager at\n    Isovalent helping build the eBPF and Cilium open source communities"},AmirKheirkhahan:{header:"Amir Kheirkhahan",bio:"Amir Kheirkhahan is a DevOps Specialist at DB Schenker handling design, development,\n     deployment and maintenance of wide range of devops toolchain on top of Kubernetes clusters"},PaulArah:{header:"Paul Arah",bio:"Paul Arah is a Community Builder focused on Security at Isovalent (Cisco)"},HimalKumar:{header:"Himal Kumar, Bhaskar Dutta, Arman Pashamokhtari",bio:"Himal Kumar, Bhaskar Dutta, Arman Pashamokhtari are all part of the\n     CanopusAI team Real Time Network Observability, powered by eBPF and Agentic AI"},DoniaChaiehloudj:{header:"Donia Chaiehloudj",bio:"Donia Chaiehloudj is a Senior Softw
1are Engineer and Community Oriented at Isovalent.\n    She has been working on Cilium and eBPF technologies, focusing on networking and security solutions."},KatieMeinders:{header:"Katie Meinders",bio:"Katie Meinders is a Community Builder at Isovalent where\n    she helps grow the Cilium and eBPF communities through storytelling,\n    social media, showcasing user success, and building connections across the open source ecosystem."},PeaceSandy:{header:"Peace Sandy",bio:"Peace Sandy is an LFX mentee who contributed to improving Cilium SEO, AEO, and\n    AIO during her mentorship period."},NehaAggarwal:{header:"Neha Aggarwal",bio:"Neha Aggarwal is a Principal Engineer at Microsoft."},CharityMbisi:{header:"Charity Mbisi",bio:"Charity Mbisi is an LFX mentee who contributed to improving Cilium's SEO, AEO, and AIO during his mentorship period.\n    Professionally, Charity Mbisi is a Software Engineer consulting in the Fin-tech and banking industry, specializing in building cloud native computing solutions and optimized service delivery."},andreMartinsAndFerozSalam:{header:"André Martins and Feroz Salam",bio:"André Martins is a Cilium maintainer and Software Engineer, Isovalent at Cisco.\n    Feroz Salam is a member of the Cilium Security Team and a Security Engineer, Isovalent at Cisco."},ChristianHernandez:{header:"Christian Hernandez",bio:"Christian is a well rounded technologist with experience in infrastructure engineering, systems administration, enterprise architecture, tech support, advocacy, and product management. Passionate about OpenSource and containerizing the world one application at a time. He is currently a maintainer of the Argo Project and OpenGitops. Currently, he works as a Technical Marketing Engineer and Tech Lead at Cisco. He focuses on GitOps practices, DevOps, Kubernetes, Network Security, and Containers."},AkilaInduranga:{header:"Akila Induranga",bio:'Akila is a Senior Software Engineer at WSO2, and a maintainer of <a href="https://openchoreo.dev/" target="_blank" rel="noopener noreferrer">OpenChoreo</a>, an open-source internal developer platform for Kubernetes and a CNCF sandbox project.\n    He works on the platform\'s observability and networking layers, including the Cilium-based networking module that brings identity-based policy and Hubble observability to OpenChoreo cells.'}}}}]);
2//# sourceMappingURL=component---src-templates-blog-post-jsx-content-file-path-src-posts-20-11-2017-bpf-updates-13-index-md-1893e849e953e225ce93.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.