Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors, University of Colorado Boulder, Guitart Fernández, Jordi, Keller, Eric, Silbergleit Lehman, Tamara
El tràfic en la xarxa ha augmentat considerablement durant els darrers anys. Processar grans quantitats de dades sense comprometre el rendiment del sistema és tot un repte. Una tecnologia molt poderosa per administrar el tràfic de xarxa és XDP que, combinada amb programes eBPF, ofereix la possibilitat de gestionar els paquets de xarxa abans que aquests siguin processats per la pila de xarxa de Linux. Tractar dades a baix nivell fa que aquests tipus de programes siguin ideals per a ser descarregats a una placa FPGA. No obstant això, el comportament seqüencial dels programes eBPF fa que el procés de síntesi sigui delicat. Aquest projecte presenta una solució per descarregar programes eBPF a una placa FPGA, obtenint així beneficis com escalabilitat i seguretat. El disseny resultant és carregat a la NetFPGA-SUME. A més a més, s'ha desenvolupat una llibreria de codi obert que conté funcions eBPF comunes optimitzades, per facilitar el procés de síntesi dels programes per a qui vulgui implementar aquest disseny. Aquest disseny s'ha comparat amb hXDP, la principal solució que existeix per a descarregar programes eBPF, i que consisteix en un processador d'instruccions eBPF en la NetFPGA-SUME. El resultat de treure el màxim profit de l'acceleració hardware és un guany d'entre el 3.72x i el 26.04x. Network traffic has greatly increased in the last few years. Processing large amounts of data without compromising the system's performance is a challenge. A powerful technology to manage network traffic is XDP which, combined with eBPF programs, offers the possibility to handle network packets before they are processed by the Linux network stack. Controlling data at a low level makes these types of programs ideal to be offloaded to an FPGA board. However, the sequential behavior of eBPF programs makes the synthesis process tricky. This project presents a solution to offload eBPF programs to FPGA boards, getting benefits like scalability and security. The resulting design is loaded in the NetFPGA-SUME. Furthermore, an open-source library that contains optimized common eBPF functions has been developed in order to make the process of synthesizing eBPF programs easier for anyone interested in implementing this design. The design has been compared to hXDP, the main existing solution to offload eBPF programs that consists of an eBPF soft-processor developed in the NetFPGA-SUME. The result of taking full advantage of hardware acceleration is a speedup between 3.72x and 26.04x.