Topic: eBPF inside-out
Debojeet Das debojeetdas@cse.iitb.ac.in
Sameer Ahmad sameerahmad@cse.iitb.ac.in
Purushottam Kulkarni puru@cse.iitb.ac.in
https://github.com/cloudarxiv/ebpf-inside-out
List of topics:
- Principles of eBPF
- What is eBPF? Why is eBPF needed? Can't we use kernel modules?
- Description of the eBPF framework — What functions does it have? What are the types of eBPF programs, helpers, and hookpoints (not all need to be known, but we need to know where to find them)?
- Use cases of eBPF – Networking, Security, and Observability.
- Short brief on eBPF implementation details in the Linux Kernel.
- Hands-on eBPF Programming
- eBPF Development Frameworks and Basic Development Process
- Introduction to hook points, usage and bpf helper functions
- Introduction and usage of bpf maps
- Use cases of the XDP hook point
- Short-circuiting network sockets with the socket operation hook points
- Miscellaneous
- Recent eBPF Progress in Linux Kernel
- Active research directions featuring eBPF
Pre-requisites:
- Familiarity with operating system concepts.
- Exposure to Linux and programming in C is recommended
- Basic knowledge of the Unix shell.
Content: (slides, reading material, etc.) [To be added]
Setup Requirements:
- Participants are expected to have VMware Workstation (Windows/Linux) or VMware Fusion (macOS):
- You can use the following scripts/links to download VMware Workstation (17.6.3+) or Fusion (13.6.3+) for personal use without logging in:
- (optional) You may use local Linux machines only if you have a relatively new version of the Linux kernel (minimum version 4.8 and above, suggested version is 5.15+ or 6.2+) to support eBPF functionality
Expected Outcomes:
Participants will get a brief introduction to eBPF design principles and implementation details. They will get familiar with important eBPF terminologies. They will be able to understand and write eBPF programs. They will be able to browse eBPF resources to learn more on eBPF. They will get familiar with active research fields featuring eBPF.
References