Package github /asavie/xdp allows one to use XDP sockets from the Go programming language. With the default UDP payload size of 1400 bytes, running on Linux kernel 5.1.20, on a tg3 (so no native XDP support) gigabit NIC, sendudp does around 980 Mb/s, so practically line rate. TL;DR: in the same environment, sending a pre-generated DNS query using an ordinary UDP socket yield around 30 MiB/s whereas sending it using the senddnsqueries example program yields around 77 MiB/s. Connecting a PC with Intel Core i7-7700 CPU running Linux kernel 5.0.17 and igb driver to a laptop with Intel Core i7-5600U CPU running Linux kernel 5.0.9 with e1000e with a cat 5E gigabit ethernet cable.

Features

  • Allows one to use XDP sockets from the Go programming language
  • For usage examples, see the documentation or the examples/ directory
  • With the default UDP payload size of 1400 bytes, running on Linux kernel 5.1.20, on a tg3
  • About 77 MiB/s at laptop side.
  • Package xdp allows one to use XDP sockets from the Go programming language

Project Samples

Project Activity

See All Activity >

Categories

Packet Sniffers

License

BSD License

Follow xdp

xdp Web Site

Other Useful Business Software
Try Google Cloud Risk-Free With $300 in Credit Icon
Try Google Cloud Risk-Free With $300 in Credit

No hidden charges. No surprise bills. Cancel anytime.

Use your credit across every product. Compute, storage, AI, analytics. When it runs out, 20+ products stay free. You only pay when you choose to.
Start Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of xdp!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

Go

Related Categories

Go Packet Sniffers

Registered

2023-08-22