Extended Berkeley Packet Filter (eBPF) is an instruction set and an execution environment inside the Linux kernel. It enables modification, interaction, and kernel programmability at runtime. eBPF can be used to program the eXpress Data Path (XDP), a kernel network layer that processes packets closer to the NIC for fast packet processing. Developers can write programs in C or P4 languages and then compile to eBPF instructions, which can be processed by the kernel or by programmable devices (e.g., SmartNICs). Since its introduction in 2014, eBPF has been rapidly adopted by major companies such as Facebook, Cloudflare, and Netronome. Use cases include network monitoring, network traffic manipulation, load balancing, and system profiling. This work aims to present eBPF to an inexpert audience, covering the main theoretical and fundamental aspects of eBPF and XDP, as well as introducing the reader to simple examples to give insight into the general operation and use of both technologies.
Serverless é um novo paradigma para computação em nuvem. Neste paradigma usuários apenas implementam o núcleo da aplicação sem preocupar com a infraestrutura. Processamento de funções ocorre em servidores com CPUs x86_x64 utilizando virtualização. Essa abordagem não é eficiente, gera atrasos de processamento e sobrecarrega recursos, aumentando o custo operacional. Neste trabalho é proposto um sistema serverless com offloading em hardware que processa pacotes independente de protocolo via programas C eBPF. Nosso sistema foi implementado sobre NetFPGA SUME. Para melhorar o desempenho do sistema realizamos otimizações de hardware e integramos ao OpenFaaS. Os resultados mostram que o sistema opera em taxa de linha.
Extended Berkeley Packet Filter (eBPF) has been rapidly adopted across multiple systems since its introduction in the Linux kernel in 2014. eBPF is used for fast packet processing. The use cases of eBPF have grown rapidly to include network monitoring, network traffic manipulation, load balancing, system monitoring, and so on. Several companies already use eBPF on projects such as Facebook, Netronome, and Cilium. This short-course aims to present eBPF. eBPF allows programming network devices. The developer can write in P4 or C language and then compile for eBPF instructions. The eBPF code can be processed in the Linux kernel or by programmable devices such as NetFPGAs and smart-NICs. This short-course covers the main theoretical and fundamental aspects of eBPF, as well as introducing the reader to simple practical activities that can give insight into the general operation and use of eBPF.
ResumoO filtro de pacotes estendido (Extended Berkeley Packet Filter (eBPF)) foi rapidamente adotado em vários sistemas desde sua introdução no kernel do Linux em 2014. O eBPF é utilizado para processamento rápido de pacotes. Os usos do eBPF cresceram rapidamente para incluir monitoramento de rede, manipulação de tráfego de rede, balanceamento de carga, monitoramento do sistema, etc. Várias empresas já utilizam eBPF em projetos como o Facebook, Netronome, Cilium. Este minicurso tem como objetivo apresentar o eBPF. O eBPF permite a programação dos dispositivos de redes. O desenvolvedor pode escrever em linguagem P4 ou C e depois compilar para instruções eBPF.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.