Azienda Cloudflare
L'utilità xdpcap è compatibile con le espressioni di filtro tcpdump/libpcap e consente di elaborare volumi di traffico significativamente più grandi sullo stesso hardware. Xdpcap può essere utilizzato anche per il debug in ambienti in cui il normale tcpdump non è applicabile, come filtraggio, protezione DoS e sistemi di bilanciamento del carico che utilizzano il sottosistema XDP del kernel Linux, che elabora i pacchetti prima che vengano elaborati dallo stack di rete del kernel Linux (tcpdump non vede i pacchetti scartati dal gestore XDP).
Le prestazioni elevate si ottengono attraverso l'uso dei sottosistemi eBPF e XDP. eBPF è un interprete di bytecode integrato nel kernel Linux che consente di creare gestori ad alte prestazioni di pacchetti in entrata/uscita con decisioni sull'inoltro o sull'eliminazione degli stessi. Utilizzando un compilatore JIT, il bytecode eBPF viene tradotto al volo in istruzioni macchina ed eseguito con l'esecuzione del codice nativo. Il sottosistema XDP (eXpress Data Path) integra eBPF con la capacità di eseguire programmi BPF a livello di driver di rete, con supporto per l'accesso diretto al buffer dei pacchetti DMA e funziona nella fase precedente all'allocazione del buffer skbuff dallo stack di rete.
Come tcpdump, l'utilità xdpcap traduce prima le regole di filtraggio del traffico di alto livello nella classica rappresentazione BPF (cBPF) utilizzando la libreria libpcap standard, quindi le converte sotto forma di routine eBPF utilizzando un compilatore
Fonte: opennet.ru