On 2019/4/16 上午12:32, Jesper Dangaard Brouer wrote:
XDP is something that we can attach to a netdevice. Again, very natural from a user perspective. As for XDP sockets, the current mechanism is that we attach to an existing netdevice queue. Ideally what we'd like is to*remove* the queue concept. A better approach would be creating the socket and set it up -- but not binding it to a queue. Instead just binding it to a netdevice (or crazier just creating a socket without a netdevice).
Isn't XDP support for TUN/TAP just a good example of this. It hides the all details and depends on XDP_REDIRECT to work. This allows the eBPF program or other steering tool to do anything it want on host. You can implement AF_XDP ring layout mmap for TUN/TAP or just use vhost_net(virtio ring layout) instead.
Thanks