From: Prashant Bhole <prashantbhole.linux@xxxxxxxxx> vhost_net needs to peek tun packet sizes to allocate virtio buffers. Currently it directly accesses tap ptr ring to do it. Jason Wang suggested to achieve this using msghdr->msg_control and modifying the behavior of tap recvmsg. This change will be useful in future in case of virtio-net XDP offload. Where packets will be XDP processed in tap recvmsg and vhost will see only non XDP_DROP'ed packets. Patch 1: reorganizes the tun_msg_ctl so that it can be extended by the means of different commands. tap sendmsg recvmsg will behave according to commands. Patch 2: modifies recvmsg implementation to produce packet pointers. vhost_net uses recvmsg API instead of ptr_ring_consume(). Patch 3: removes ptr ring usage in vhost and functions those export ptr ring from tun/tap. Prashant Bhole (3): tuntap: reorganize tun_msg_ctl usage vhost_net: user tap recvmsg api to access ptr ring tuntap: remove usage of ptr ring in vhost_net drivers/net/tap.c | 44 ++++++++++++++--------- drivers/net/tun.c | 45 +++++++++++++++--------- drivers/vhost/net.c | 79 ++++++++++++++++++++++-------------------- include/linux/if_tun.h | 9 +++-- 4 files changed, 103 insertions(+), 74 deletions(-) -- 2.21.0