더 읽을거리

더 읽을거리 (Further Reading)

이 문서는 BPF/XDP 관련 문서, 프로젝트, 강연, 논문, 추가 읽을거리 자료 목록을 제공해요. 목록이 완전하지 않을 가능성이 높으므로, 목록을 보완하는 풀 리퀘스트를 자유롭게 열어주세요.

출처: Further Reading

본문

커널 개발자 FAQ (Kernel Developer FAQ)

리눅스 커널은 Documentation/bpf/ 아래에 BPF 서브시스템에 관여하는 커널 개발자를 주로 대상으로 하는 두 개의 FAQ 파일을 제공해요.

BPF를 사용하는 프로젝트 (Projects using BPF)

다음 목록은 BPF를 사용하거나 BPF용 도구를 제공하는 오픈소스 프로젝트의 선택을 포함해요. 이 맥락에서는 레거시 cBPF를 활용하는 프로젝트가 아닌 eBPF 명령어 집합을 구체적으로 의미해요:

Tracing

  • BCC BCC는 BPF Compiler Collection을 뜻하며, 그 핵심 기능은 kprobes, kretprobes, tracepoints, uprobes, uretprobes 및 USDT 프로브를 기반으로 커널 인프라에 연결되는 BPF 프로그램에 모두 기반한 사용하기 쉬운 효율적인 커널 트레이싱 유틸리티 세트를 제공하는 것이에요. 이 컬렉션은 시스템의 성능 특성이나 문제를 분석하기 위해 애플리케이션, 시스템 라이브러리부터 다양한 커널 서브시스템까지 스택 전반의 다른 계층을 대상으로 하는 약 100개의 도구를 제공해요. 또한 BCC는 다른 프로젝트의 라이브러리로 사용할 수 있는 API를 제공해요. https://github.com/iovisor/bcc
  • bpftrace bpftrace는 리눅스용 DTrace 스타일 동적 트레이싱 도구이며, LLVM을 백엔드로 사용해 스크립트를 BPF-bytecode로 컴파일하고 커널의 BPF 트레이싱 인프라와 상호작용하기 위해 BCC를 사용해요. 네이티브 BCC에 비해 트레이싱 스크립트 구현을 위한 더 높은 수준의 언어를 제공해요. https://github.com/ajor/bpftrace
  • perf 리눅스 커널 커뮤니티가 커널 소스 트리의 일부로 개발하는 perf 도구는 기존 perf record 하위 명령을 통해 트레이싱 BPF 프로그램을 로드하는 방법을 제공하며, BPF의 집계 데이터를 검색하고 예를 들어 perf script 등으로 perf.data에서 후처리할 수 있어요. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf
  • ply ply는 옛날 'Little Language' 접근을 따르는 트레이싱 도구이며, ply 스크립트를 커널의 kprobes와 tracepoints에 부착되는 리눅스 BPF 프로그램으로 컴파일해요. 스크립트는 DTrace와 그 확장으로 awk에서 크게 영감을 받은 C 유사 구문을 가져요. ply는 의존성을 최소로 유지하며 빌드 시 flex와 bison만, 런타임 시 libc만 필요로 해요. https://github.com/wkz/ply
  • systemtap systemtap은 성능이나 기능 문제를 진단·분석하기 위해 데이터를 추출, 필터링, 요약하는 스크립팅 언어이자 도구예요. 추가 컴파일러 없이 스크립트를 직접 BPF로 변환하고 프로브를 커널에 주입하는 stapbpf라는 BPF 백엔드가 함께 제공돼요. 따라서 stap의 커널 모듈과 달리 외부 의존성이 없고 커널 모듈 로드가 필요 없어요. https://sourceware.org/git/gitweb.cgi?p=systemtap.git;a=summary
  • PCP Performance Co-Pilot(PCP)은 다양한 에이전트를 통해 메트릭을 수집하고 수집된 시스템 성능 메트릭을 실시간 또는 과거 데이터로 분석할 수 있는 시스템 성능·분석 프레임워크예요. pmdabcc로 PCP는 BPF와 BCC를 통해 커널에서 데이터를 추출하는 BCC 기반 성능 메트릭 도메인 에이전트를 가져요. https://github.com/performancecopilot/pcp
  • Weave Scope Weave Scope는 kprobes와 결합해 BPF를 사용해 프로세스, 네트워킹 연결 또는 기타 시스템 데이터에 대한 데이터를 수집하는 클라우드 모니터링 도구예요. Weave Scope는 BPF ELF 파일을 커널에 로드하기 위해 gobpf 라이브러리 위에서 작동하며, TCP 이벤트를 추적하기 위해 connect, accept, close 호출을 모니터링하는 tcptracer-bpf 도구가 함께 제공돼요. https://github.com/weaveworks/scope

Networking

  • Cilium Cilium은 애플리케이션 컨테이너나 프로세스 같은 애플리케이션 워크로드 사이의 네트워크 연결성과 로드밸런싱을 제공하고 투명하게 보호해요. Cilium은 전통적인 네트워킹·보안 서비스를 제공하기 위해 Layer 3/4에서 작동하며, HTTP와 gRPC 같은 현대 애플리케이션 프로토콜 사용을 보호·안전하게 하기 위해 Layer 7에서도 작동해요. Kubernetes 같은 오케스트레이션 프레임워크에 통합돼 있어요. BPF는 커널의 네트워킹 데이터패스에서 작동하는 Cilium의 기반 부분이에요. https://github.com/cilium/cilium
  • Suricata Suricata는 네트워크 IDS, IPS, NSM 엔진이며, BPF와 XDP를 세 가지 다른 영역에서 활용해요. 즉 특정 패킷을 처리하거나 우회하는 BPF 필터로, 프로그래머블 로드밸런싱을 허용하는 BPF 기반 로드밸런서로, 그리고 높은 패킷 속도에서 우회·드롭 메커니즘을 구현하는 XDP로요. https://suricata.readthedocs.io/en/suricata-5.0.2/capture-hardware/ebpf-xdp.html https://github.com/OISF/suricata
  • systemd systemd는 BPF의 cgroup ingress·egress 훅을 기반으로 systemd 유닛에 대한 IPv4/v6 계정 및 네트워크 접근 제어 구현을 허용해요. 계정은 패킷/바이트 기반이고, ACL은 allow/deny 규칙의 주소 프리픽스로 지정할 수 있어요. 더 자세한 내용은 다음에서 찾을 수 있어요: http://0pointer.net/blog/ip-accounting-and-access-lists-with-systemd.html https://github.com/systemd/systemd
  • iproute2 iproute2는 LLVM이 생성한 ELF 파일로 BPF 프로그램을 커널에 로드하는 능력을 제공해요. iproute2는 공통 BPF 로더 백엔드를 통해 XDP BPF 프로그램과 tc BPF 프로그램 둘 다 지원해요. tc와 ip 명령줄 유틸리티가 사용자에게 로더·인트로스펙션 기능을 가능하게 해요. https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/
  • p4c-xdp p4c-xdp는 BPF와 XDP를 대상으로 하는 P4 컴파일러 백엔드를 제시해요. P4는 NIC, 어플라이언스 또는 스위치 같은 프로그래머블 네트워크 요소의 데이터 플레인이 패킷을 어떻게 처리하는지 설명하는 도메인 특정 언어이며, p4c-xdp의 도움으로 P4 프로그램을 clang/LLVM이 컴파일할 수 있고 고성능 패킷 처리를 위해 XDP 계층에서 BPF 프로그램으로 커널에 로드할 수 있는 BPF C 프로그램으로 변환할 수 있어요. https://github.com/vmware/p4c-xdp

Others

  • LLVM clang/LLVM은 C BPF 프로그램을 ELF 파일에 포함된 BPF 명령어로 컴파일하는 BPF 백엔드를 제공해요. LLVM BPF 백엔드는 리눅스 커널의 BPF 핵심 인프라와 함께 개발되며 같은 커뮤니티가 유지해요. clang/LLVM은 BPF 프로그램 개발 툴체인의 핵심 부분이에요. https://llvm.org/
  • libbpf libbpf는 리눅스 커널 커뮤니티가 커널 소스 트리의 일부로 개발하는 범용 BPF 라이브러리이며, LLVM이 생성한 ELF 파일에서 BPF 프로그램을 커널로 로드·부착할 수 있게 해줘요. 이 라이브러리는 perf와 bpftool 같은 다른 커널 프로젝트가 사용해요. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/lib/bpf
  • bpftool bpftool은 BPF 프로그램과 BPF 맵을 인트로스펙션·디버깅하는 주요 도구이며, libbpf처럼 리눅스 커널 커뮤니티가 개발해요. 시스템의 모든 활성 BPF 프로그램·맵 덤프, 프로그램의 BPF 또는 JIT된 BPF 명령어 덤프·역어셈블리, 시스템의 BPF 맵 덤프·조작을 허용해요. bpftool은 BPF 파일 시스템과의 상호작용, 오브젝트 파일에서 다양한 프로그램 유형을 커널로 로드하는 것 등을 지원해요. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/bpf/bpftool
  • cilium/ebpf cilium/ebpf(ebpf-go)는 eBPF 프로그램을 로드, 컴파일, 디버깅하는 유틸리티를 제공하는 순수 Go 라이브러리예요. 외부 의존성이 최소이며 장기 실행 프로세스에 사용하도록 의도됐어요. 그것의 bpf2go 유틸리티는 eBPF C 프로그램 컴파일과 Go 바이너리 내장을 자동화해요. 다양한 커널 훅에 프로그램 부착과, 임의의 커널·사용자 공간 함수를 추적하기 위한 kprobes·uprobes를 구현해요. 또한 Go로 런타임에 eBPF 프로그램을 구성하거나 ELF 오브젝트에서 로드된 후 수정할 수 있게 하는 완전한 어셈블러도 특징으로 해요. https://github.com/cilium/ebpf
  • ebpf_asm ebpf_asm은 인텔 유사 어셈블리 구문으로 작성된 BPF 프로그램용 어셈블러를 제공하며, 따라서 clang/LLVM 툴체인이 필요 없이 프로그램이 상당히 작고 단순한 경우 BPF 프로그램을 직접 어셈블리로 작성하는 대안을 제공해요. https://github.com/Xilinx-CNS/ebpf_asm

XDP Newbies

David S. Miller가 xdp-newbies 메일링 리스트(http://vger.kernel.org/vger-lists.html#xdp-newbies)에 쓴 XDP와 BPF의 다양한 부분을 설명하는 몇 개의 워크스루 게시글이 있어요:

  1. May 2017, BPF Verifier Overview, David S. Miller, https://www.spinics.net/lists/xdp-newbies/msg00185.html
  2. May 2017, Contextually speaking…, David S. Miller, https://www.spinics.net/lists/xdp-newbies/msg00181.html
  3. May 2017, bpf.h and you…, David S. Miller, https://www.spinics.net/lists/xdp-newbies/msg00179.html
  4. Apr 2017, XDP example of the day, David S. Miller, https://www.spinics.net/lists/xdp-newbies/msg00009.html

BPF 뉴스레터 (BPF Newsletter)

Alexander Alemayhu가 리눅스 커널 랜드와 주변 사용자 공간 생태계에서의 BPF 최신 개발을 다루는 뉴스레터를 약 주 1회 시작했어요.

모든 BPF 업데이트 뉴스레터(01 - 12)는 여기에서 찾을 수 있어요:

https://cilium.io/blog/categories/technology/5/

그리고 eBPF 세계의 최신 리소스·개발 소식은 다음 링크를 참고하세요:

https://ebpf.io/blog

팟캐스트 (Podcasts)

BPF를 일부 다루는 여러 기술 팟캐스트가 있었어요. 불완전한 목록:

  1. Feb 2017, Linux Networking Update from Netdev Conference, Thomas Graf, Software Gone Wild, Show 71, https://blog.ipspace.net/2017/02/linux-networking-update-from-netdev.html, https://www.ipspace.net/nuggets/podcast/Show_71-NetDev_Update.mp3
  2. Jan 2017, The IO Visor Project, Brenden Blanco, OVS Orbit, Episode 23, https://ovsorbit.org/#e23, https://ovsorbit.org/episode-23.mp3
  3. Oct 2016, Fast Linux Packet Forwarding, Thomas Graf, Software Gone Wild, Show 64, https://blog.ipspace.net/2016/10/fast-linux-packet-forwarding-with.html, https://www.ipspace.net/nuggets/podcast/Show_64-Cilium_with_Thomas_Graf.mp3
  4. Aug 2016, P4 on the Edge, John Fastabend, OVS Orbit, Episode 11, https://ovsorbit.org/#e11, https://ovsorbit.org/episode-11.mp3
  5. May 2016, Cilium, Thomas Graf, OVS Orbit, Episode 4, https://ovsorbit.org/#e4, https://ovsorbit.org/episode-4.mp3

블로그 게시글 (Blog posts)

다음(불완전한) 목록은 BPF, XDP 및 관련 프로젝트에 관한 블로그 게시글을 포함해요:

  1. May 2017, An entertaining eBPF XDP adventure, Suchakra Sharma, https://suchakra.wordpress.com/2017/05/23/an-entertaining-ebpf-xdp-adventure/
  2. May 2017, eBPF, part 2: Syscall and Map Types, Ferris Ellis, https://ferrisellis.com/posts/ebpf_syscall_and_maps/
  3. May 2017, Monitoring the Control Plane, Gary Berger, https://www.firstclassfunc.com/2018/07/monitoring-the-control-plane/
  4. Apr 2017, USENIX/LISA 2016 Linux bcc/BPF Tools, Brendan Gregg, http://www.brendangregg.com/blog/2017-04-29/usenix-lisa-2016-bcc-bpf-tools.html
  5. Apr 2017, Liveblog: Cilium for Network and Application Security with BPF and XDP, Scott Lowe, https://blog.scottlowe.org/2017/04/18/black-belt-cilium/
  6. Apr 2017, eBPF, part 1: Past, Present, and Future, Ferris Ellis, https://ferrisellis.com/posts/ebpf_past_present_future/
  7. Mar 2017, Analyzing KVM Hypercalls with eBPF Tracing, Suchakra Sharma, https://suchakra.wordpress.com/2017/03/31/analyzing-kvm-hypercalls-with-ebpf-tracing/
  8. Jan 2017, Golang bcc/BPF Function Tracing, Brendan Gregg, http://www.brendangregg.com/blog/2017-01-31/golang-bcc-bpf-function-tracing.html
  9. Dec 2016, Give me 15 minutes and I'll change your view of Linux tracing, Brendan Gregg, http://www.brendangregg.com/blog/2016-12-27/linux-tracing-in-15-minutes.html
  10. Nov 2016, Cilium: Networking and security for containers with BPF and XDP, Daniel Borkmann, https://opensource.googleblog.com/2016/11/cilium-networking-and-security.html
  11. Nov 2016, Linux bcc/BPF tcplife: TCP Lifespans, Brendan Gregg, http://www.brendangregg.com/blog/2016-11-30/linux-bcc-tcplife.html
  12. Oct 2016, DTrace for Linux 2016, Brendan Gregg, http://www.brendangregg.com/blog/2016-10-27/dtrace-for-linux-2016.html
  13. Oct 2016, Linux 4.9's Efficient BPF-based Profiler, Brendan Gregg, http://www.brendangregg.com/blog/2016-10-21/linux-efficient-profiler.html
  14. Oct 2016, Linux bcc tcptop, Brendan Gregg, http://www.brendangregg.com/blog/2016-10-15/linux-bcc-tcptop.html
  15. Oct 2016, Linux bcc/BPF Node.js USDT Tracing, Brendan Gregg, http://www.brendangregg.com/blog/2016-10-12/linux-bcc-nodejs-usdt.html
  16. Oct 2016, Linux bcc/BPF Run Queue (Scheduler) Latency, Brendan Gregg, http://www.brendangregg.com/blog/2016-10-08/linux-bcc-runqlat.html
  17. Oct 2016, Linux bcc ext4 Latency Tracing, Brendan Gregg, http://www.brendangregg.com/blog/2016-10-06/linux-bcc-ext4dist-ext4slower.html
  18. Oct 2016, Linux MySQL Slow Query Tracing with bcc/BPF, Brendan Gregg, http://www.brendangregg.com/blog/2016-10-04/linux-bcc-mysqld-qslower.html
  19. Oct 2016, Linux bcc Tracing Security Capabilities, Brendan Gregg, http://www.brendangregg.com/blog/2016-10-01/linux-bcc-security-capabilities.html
  20. Sep 2016, Suricata bypass feature, Eric Leblond, https://www.stamus-networks.com/blog/2016/09/28/suricata-bypass-feature
  21. Aug 2016, Introducing the p0f BPF compiler, Gilberto Bertin, https://blog.cloudflare.com/introducing-the-p0f-bpf-compiler/
  22. Jun 2016, Ubuntu Xenial bcc/BPF, Brendan Gregg, http://www.brendangregg.com/blog/2016-06-14/ubuntu-xenial-bcc-bpf.html
  23. Mar 2016, Linux BPF/bcc Road Ahead, March 2016, Brendan Gregg, http://www.brendangregg.com/blog/2016-03-28/linux-bpf-bcc-road-ahead-2016.html
  24. Mar 2016, Linux BPF Superpowers, Brendan Gregg, http://www.brendangregg.com/blog/2016-03-05/linux-bpf-superpowers.html
  25. Feb 2016, Linux eBPF/bcc uprobes, Brendan Gregg, http://www.brendangregg.com/blog/2016-02-08/linux-ebpf-bcc-uprobes.html
  26. Feb 2016, Who is waking the waker? (Linux chain graph prototype), Brendan Gregg, http://www.brendangregg.com/blog/2016-02-05/ebpf-chaingraph-prototype.html
  27. Feb 2016, Linux Wakeup and Off-Wake Profiling, Brendan Gregg, http://www.brendangregg.com/blog/2016-02-01/linux-wakeup-offwake-profiling.html
  28. Jan 2016, Linux eBPF Off-CPU Flame Graph, Brendan Gregg, http://www.brendangregg.com/blog/2016-01-20/ebpf-offcpu-flame-graph.html
  29. Jan 2016, Linux eBPF Stack Trace Hack, Brendan Gregg, http://www.brendangregg.com/blog/2016-01-18/ebpf-stack-trace-hack.html
  30. Sep 2015, Linux Networking, Tracing and IO Visor, a New Systems Performance Tool for a Distributed World, Suchakra Sharma, https://thenewstack.io/comparing-dtrace-iovisor-new-systems-performance-platform-advance-linux-networking-virtualization/
  31. Aug 2015, BPF Internals - II, Suchakra Sharma, https://suchakra.wordpress.com/2015/08/12/bpf-internals-ii/
  32. May 2015, eBPF: One Small Step, Brendan Gregg, http://www.brendangregg.com/blog/2015-05-15/ebpf-one-small-step.html
  33. May 2015, BPF Internals - I, Suchakra Sharma, https://suchakra.wordpress.com/2015/05/18/bpf-internals-i/
  34. Jul 2014, Introducing the BPF Tools, Marek Majkowski, https://blog.cloudflare.com/introducing-the-bpf-tools/
  35. May 2014, BPF - the forgotten bytecode, Marek Majkowski, https://blog.cloudflare.com/bpf-the-forgotten-bytecode/

책 (Books)

BPF Performance Tools (Gregg, Addison Wesley, 2019)

강연 (Talks)

다음(불완전한) 목록은 BPF와 XDP 관련 강연과 컨퍼런스 논문을 포함해요:

  1. July 2021, eBPF & Cilium Office Hours episode 13: XDP Hands-on Tutorial, with Liz Rice, https://www.youtube.com/watch?v=YUI78vC4qSQ&t=300s
  2. June 2021, eBPF & Cilium Office Hours episode 9: XDP and Load Balancing, with Daniel Borkmann, https://www.youtube.com/watch?v=OIyPm6K4ooY&t=308s
  3. May 2017, PyCon 2017, Portland, Executing python functions in the linux kernel by transpiling to bpf, Alex Gartrell, https://www.youtube.com/watch?v=CpqMroMBGP4
  4. May 2017, gluecon 2017, Denver, Cilium + BPF: Least Privilege Security on API Call Level for Microservices, Dan Wendlandt, http://gluecon.com/#agenda
  5. May 2017, Lund Linux Con, Lund, XDP - eXpress Data Path, Jesper Dangaard Brouer, http://people.netfilter.org/hawk/presentations/LLC2017/XDP_DDoS_protecting_LLC2017.pdf
  6. May 2017, Polytechnique Montreal, Trace Aggregation and Collection with eBPF, Suchakra Sharma, https://hsdm.dorsal.polymtl.ca/system/files/eBPF-5May2017%20(1).pdf
  7. Apr 2017, DockerCon, Austin, Cilium - Network and Application Security with BPF and XDP, Thomas Graf, https://www.slideshare.net/ThomasGraf5/dockercon-2017-cilium-network-and-application-security-with-bpf-and-xdp
  8. Apr 2017, NetDev 2.1, Montreal, XDP Mythbusters, David S. Miller, https://netdevconf.info/2.1/slides/apr7/miller-XDP-MythBusters.pdf
  9. Apr 2017, NetDev 2.1, Montreal, Droplet: DDoS countermeasures powered by BPF + XDP, Huapeng Zhou, Doug Porter, Ryan Tierney, Nikita Shirokov, https://netdevconf.info/2.1/slides/apr6/zhou-netdev-xdp-2017.pdf
  10. Apr 2017, NetDev 2.1, Montreal, XDP in practice: integrating XDP in our DDoS mitigation pipeline, Gilberto Bertin, https://netdevconf.info/2.1/slides/apr6/bertin_Netdev-XDP.pdf
  11. Apr 2017, NetDev 2.1, Montreal, XDP for the Rest of Us, Andy Gospodarek, Jesper Dangaard Brouer, https://netdevconf.info/2.1/slides/apr7/gospodarek-Netdev2.1-XDP-for-the-Rest-of-Us_Final.pdf
  12. Mar 2017, SCALE15x, Pasadena, Linux 4.x Tracing: Performance Analysis with bcc/BPF, Brendan Gregg, https://www.slideshare.net/brendangregg/linux-4x-tracing-performance-analysis-with-bccbpf
  13. Mar 2017, XDP Inside and Out, David S. Miller, https://raw.githubusercontent.com/iovisor/bpf-docs/master/XDP_Inside_and_Out.pdf
  14. Mar 2017, OpenSourceDays, Copenhagen, XDP - eXpress Data Path, Used for DDoS protection, Jesper Dangaard Brouer, http://people.netfilter.org/hawk/presentations/OpenSourceDays2017/XDP_DDoS_protecting_osd2017.pdf
  15. Mar 2017, source{d}, Infrastructure 2017, Madrid, High-performance Linux monitoring with eBPF, Alfonso Acosta, https://www.youtube.com/watch?v=k4jqTLtdrxQ
  16. Feb 2017, FOSDEM 2017, Brussels, Stateful packet processing with eBPF, an implementation of OpenState interface, Quentin Monnet, https://archive.fosdem.org/2017/schedule/event/stateful_ebpf/
  17. Feb 2017, FOSDEM 2017, Brussels, eBPF and XDP walkthrough and recent updates, Daniel Borkmann, http://borkmann.ch/talks/2017_fosdem.pdf
  18. Feb 2017, FOSDEM 2017, Brussels, Cilium - BPF & XDP for containers, Thomas Graf, https://archive.fosdem.org/2017/schedule/event/cilium/
  19. Jan 2017, linuxconf.au, Hobart, BPF: Tracing and more, Brendan Gregg, https://www.slideshare.net/brendangregg/bpf-tracing-and-more
  20. Dec 2016, USENIX LISA 2016, Boston, Linux 4.x Tracing Tools: Using BPF Superpowers, Brendan Gregg, https://www.slideshare.net/brendangregg/linux-4x-tracing-tools-using-bpf-superpowers
  21. Nov 2016, Linux Plumbers, Santa Fe, Cilium: Networking & Security for Containers with BPF & XDP, Thomas Graf, https://www.slideshare.net/ThomasGraf5/clium-container-networking-with-bpf-xdp
  22. Nov 2016, OVS Conference, Santa Clara, Offloading OVS Flow Processing using eBPF, William (Cheng-Chun) Tu, http://www.openvswitch.org/support/ovscon2016/7/1120-tu.pdf
  23. Oct 2016, One.com, Copenhagen, XDP - eXpress Data Path, Intro and future use-cases, Jesper Dangaard Brouer, http://people.netfilter.org/hawk/presentations/xdp2016/xdp_intro_and_use_cases_sep2016.pdf
  24. Oct 2016, Docker Distributed Systems Summit, Berlin, Cilium: Networking & Security for Containers with BPF & XDP, Thomas Graf, https://www.slideshare.net/Docker/cilium-bpf-xdp-for-containers-66969823
  25. Oct 2016, NetDev 1.2, Tokyo, Data center networking stack, Tom Herbert, https://netdevconf.info/1.2/session.html?tom-herbert
  26. Oct 2016, NetDev 1.2, Tokyo, Fast Programmable Networks & Encapsulated Protocols, David S. Miller, https://netdevconf.info/1.2/session.html?david-miller-keynote
  27. Oct 2016, NetDev 1.2, Tokyo, XDP workshop - Introduction, experience, and future development, Tom Herbert, https://netdevconf.info/1.2/session.html?herbert-xdp-workshop
  28. Oct 2016, NetDev1.2, Tokyo, The adventures of a Suricate in eBPF land, Eric Leblond, https://netdevconf.info/1.2/slides/oct6/10_suricata_ebpf.pdf
  29. Oct 2016, NetDev1.2, Tokyo, cls_bpf/eBPF updates since netdev 1.1, Daniel Borkmann, http://borkmann.ch/talks/2016_tcws.pdf
  30. Oct 2016, NetDev1.2, Tokyo, Advanced programmability and recent updates with tc's cls_bpf, Daniel Borkmann, http://borkmann.ch/talks/2016_netdev2.pdf, https://netdevconf.info/1.2/papers/borkmann.pdf
  31. Oct 2016, NetDev 1.2, Tokyo, eBPF/XDP hardware offload to SmartNICs, Jakub Kicinski, Nic Viljoen, https://netdevconf.info/1.2/papers/eBPF_HW_OFFLOAD.pdf
  32. Aug 2016, LinuxCon, Toronto, What Can BPF Do For You?, Brenden Blanco, https://events.static.linuxfound.org/sites/events/files/slides/iovisor-lc-bof-2016.pdf
  33. Aug 2016, LinuxCon, Toronto, Cilium - Fast IPv6 Container Networking with BPF and XDP, Thomas Graf, https://www.slideshare.net/ThomasGraf5/cilium-fast-ipv6-container-networking-with-bpf-and-xdp
  34. Aug 2016, P4, EBPF and Linux TC Offload, Dinan Gunawardena, Jakub Kicinski, https://de.slideshare.net/Open-NFP/p4-epbf-and-linux-tc-offload
  35. Jul 2016, Linux Meetup, Santa Clara, eXpress Data Path, Brenden Blanco, https://www.slideshare.net/IOVisor/express-data-path-linux-meetup-santa-clara-july-2016
  36. Jul 2016, Linux Meetup, Santa Clara, CETH for XDP, Yan Chan, Yunsong Lu, https://www.slideshare.net/IOVisor/ceth-for-xdp-linux-meetup-santa-clara-july-2016
  37. May 2016, P4 workshop, Stanford, P4 on the Edge, John Fastabend, https://schd.ws/hosted_files/2016p4workshop/1d/Intel%20Fastabend-P4%20on%20the%20Edge.pdf
  38. Mar 2016, Performance @Scale 2016, Menlo Park, Linux BPF Superpowers, Brendan Gregg, https://www.slideshare.net/brendangregg/linux-bpf-superpowers
  39. Mar 2016, eXpress Data Path, Tom Herbert, Alexei Starovoitov, https://raw.githubusercontent.com/iovisor/bpf-docs/master/Express_Data_Path.pdf
  40. Feb 2016, NetDev1.1, Seville, On getting tc classifier fully programmable with cls_bpf, Daniel Borkmann, http://borkmann.ch/talks/2016_netdev.pdf, https://netdevconf.info/1.1/proceedings/papers/On-getting-tc-classifier-fully-programmable-with-cls-bpf.pdf
  41. Jan 2016, FOSDEM 2016, Brussels, Linux tc and eBPF, Daniel Borkmann, http://borkmann.ch/talks/2016_fosdem.pdf
  42. Oct 2015, LinuxCon Europe, Dublin, eBPF on the Mainframe, Michael Holzheu, https://events.static.linuxfound.org/sites/events/files/slides/ebpf_on_the_mainframe_lcon_2015.pdf
  43. Aug 2015, Tracing Summit, Seattle, LLTng's Trace Filtering and beyond (with some eBPF goodness, of course!), Suchakra Sharma, https://raw.githubusercontent.com/iovisor/bpf-docs/master/ebpf_excerpt_20Aug2015.pdf
  44. Jun 2015, LinuxCon Japan, Tokyo, Exciting Developments in Linux Tracing, Elena Zannoni, https://events.static.linuxfound.org/sites/events/files/slides/tracing-linux-ezannoni-linuxcon-ja-2015_0.pdf
  45. Feb 2015, Collaboration Summit, Santa Rosa, BPF: In-kernel Virtual Machine, Alexei Starovoitov, https://events.static.linuxfound.org/sites/events/files/slides/bpf_collabsummit_2015feb20.pdf
  46. Feb 2015, NetDev 0.1, Ottawa, BPF: In-kernel Virtual Machine, Alexei Starovoitov, https://netdevconf.info/0.1/sessions/15.html
  47. Feb 2014, DevConf.cz, Brno, tc and cls_bpf: lightweight packet classifying with BPF, Daniel Borkmann, http://borkmann.ch/talks/2014_devconf.pdf

추가 문서 (Further Documents)

더 알아보기 (Learn more)