tap: add VNET_LE/VNET_BE operations

The linux tap and macvtap backends can be told to parse vnet headers
according to little or big endian. This is done through the TUNSETVNETLE
and TUNSETVNETBE ioctls.

This patch brings all the plumbing for QEMU to use these APIs.

Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Greg Kurz 2015-06-17 15:23:44 +02:00 committed by Michael S. Tsirkin
parent 04b7a1523d
commit c80cd6bb9c
6 changed files with 78 additions and 0 deletions

View file

@ -510,6 +510,24 @@ void qemu_set_vnet_hdr_len(NetClientState *nc, int len)
nc->info->set_vnet_hdr_len(nc, len);
}
int qemu_set_vnet_le(NetClientState *nc, bool is_le)
{
if (!nc || !nc->info->set_vnet_le) {
return -ENOSYS;
}
return nc->info->set_vnet_le(nc, is_le);
}
int qemu_set_vnet_be(NetClientState *nc, bool is_be)
{
if (!nc || !nc->info->set_vnet_be) {
return -ENOSYS;
}
return nc->info->set_vnet_be(nc, is_be);
}
int qemu_can_send_packet(NetClientState *sender)
{
int vm_running = runstate_is_running();