10 comments

  • mjevans 7 hours ago ago
  • spaceywilly 6 hours ago ago

    That’s very interesting, thank you for sharing. Looks like it could be a very useful tool for testing high performance networking.

    I wonder if something similar could be done using TC BPF instead of AF_XDP? My only reservation about AF XDP is that it requires a special NIC to support it, so it may not be useful for a “regular Joe” user. I wonder if TC BPF would also work since it similarly bypasses the Kernel networking stack, I believe you can put packets directly into the NIC TX queue for transmission

    • tptacek 5 hours ago ago

      You can, but the interesting thing about AF_XDP is that you've got a userland path to writing directly to the card's DMA buffers; TC BPF still allocates an skbuff for every packet you send.

    • Palomides 5 hours ago ago

      it seems like every NIC on the market that can do 100Gb has support in its linux kernel driver, so probably not a big deal in practice

    • bgpdude 5 hours ago ago

      you can use generic af_xdp which sits at the TC layer. Just get a bit less performance.

      • bgpdude 5 hours ago ago

        That's what the veth examples are using

  • bgpdude 4 hours ago ago

    The video demo is pretty neat as well https://www.youtube.com/watch?v=8EmxvaOR5uA

  • barryvand 4 hours ago ago

    ooh no more DPDK, this will make it a lot easier. I just started working with trex but it's all really complicated. Going to give this a try

    • tptacek 2 hours ago ago

      I think, and I'm saying this in part to get someone to correct me, that post-XDP (so 5 years or so now) DPDK is basically obsolete. Is there a circumstance where it would make sense to start from DPDK rather than XDP?