From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrRYq-0004c7-2X for qemu-devel@nongnu.org; Fri, 13 Dec 2013 07:09:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VrRYf-0004Hi-Vb for qemu-devel@nongnu.org; Fri, 13 Dec 2013 07:09:39 -0500 Received: from mail-ee0-f47.google.com ([74.125.83.47]:57510) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VrRYf-0004Ha-My for qemu-devel@nongnu.org; Fri, 13 Dec 2013 07:09:29 -0500 Received: by mail-ee0-f47.google.com with SMTP id e51so698770eek.20 for ; Fri, 13 Dec 2013 04:08:54 -0800 (PST) From: Vincenzo Maffione Date: Fri, 13 Dec 2013 13:05:01 +0100 Message-Id: <1386936303-7697-4-git-send-email-v.maffione@gmail.com> In-Reply-To: <1386936303-7697-1-git-send-email-v.maffione@gmail.com> References: <1386936303-7697-1-git-send-email-v.maffione@gmail.com> Subject: [Qemu-devel] [PATCH 3/5] net: virtio-net and vmxnet3 use offloading API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@amazon.com, marcel.a@redhat.com, jasowang@redhat.com, Vincenzo Maffione , lcapitulino@redhat.com, stefanha@redhat.com, dmitry@daynix.com, pbonzini@redhat.com, g.lettieri@iet.unipi.it, rizzo@iet.unipi.it With this patch, virtio-net and vmxnet3 frontends make use of the qemu_peer_* API for backend offloadings manipulations, instead of calling TAP-specific functions directly. Signed-off-by: Vincenzo Maffione --- hw/net/virtio-net.c | 12 ++++++------ hw/net/vmxnet3.c | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index d312b9c..c8ee2fa 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -329,7 +329,7 @@ static void peer_test_vnet_hdr(VirtIONet *n) return; } - n->has_vnet_hdr = tap_has_vnet_hdr(nc->peer); + n->has_vnet_hdr = qemu_peer_has_vnet_hdr(nc); } static int peer_has_vnet_hdr(VirtIONet *n) @@ -342,7 +342,7 @@ static int peer_has_ufo(VirtIONet *n) if (!peer_has_vnet_hdr(n)) return 0; - n->has_ufo = tap_has_ufo(qemu_get_queue(n->nic)->peer); + n->has_ufo = qemu_peer_has_ufo(qemu_get_queue(n->nic)); return n->has_ufo; } @@ -361,8 +361,8 @@ static void virtio_net_set_mrg_rx_bufs(VirtIONet *n, int mergeable_rx_bufs) nc = qemu_get_subqueue(n->nic, i); if (peer_has_vnet_hdr(n) && - tap_has_vnet_hdr_len(nc->peer, n->guest_hdr_len)) { - tap_set_vnet_hdr_len(nc->peer, n->guest_hdr_len); + qemu_peer_has_vnet_hdr_len(nc, n->guest_hdr_len)) { + qemu_peer_set_vnet_hdr_len(nc, n->guest_hdr_len); n->host_hdr_len = n->guest_hdr_len; } } @@ -463,7 +463,7 @@ static uint32_t virtio_net_bad_features(VirtIODevice *vdev) static void virtio_net_apply_guest_offloads(VirtIONet *n) { - tap_set_offload(qemu_get_subqueue(n->nic, 0)->peer, + qemu_peer_set_offload(qemu_get_subqueue(n->nic, 0), !!(n->curr_guest_offloads & (1ULL << VIRTIO_NET_F_GUEST_CSUM)), !!(n->curr_guest_offloads & (1ULL << VIRTIO_NET_F_GUEST_TSO4)), !!(n->curr_guest_offloads & (1ULL << VIRTIO_NET_F_GUEST_TSO6)), @@ -1546,7 +1546,7 @@ static int virtio_net_device_init(VirtIODevice *vdev) peer_test_vnet_hdr(n); if (peer_has_vnet_hdr(n)) { for (i = 0; i < n->max_queues; i++) { - tap_using_vnet_hdr(qemu_get_subqueue(n->nic, i)->peer, true); + qemu_peer_using_vnet_hdr(qemu_get_subqueue(n->nic, i), true); } n->host_hdr_len = sizeof(struct virtio_net_hdr); } else { diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c index 19687aa..f00c649 100644 --- a/hw/net/vmxnet3.c +++ b/hw/net/vmxnet3.c @@ -1290,7 +1290,7 @@ static void vmxnet3_update_features(VMXNET3State *s) s->lro_supported, rxcso_supported, s->rx_vlan_stripping); if (s->peer_has_vhdr) { - tap_set_offload(qemu_get_queue(s->nic)->peer, + qemu_peer_set_offload(qemu_get_queue(s->nic), rxcso_supported, s->lro_supported, s->lro_supported, @@ -1883,11 +1883,11 @@ static NetClientInfo net_vmxnet3_info = { static bool vmxnet3_peer_has_vnet_hdr(VMXNET3State *s) { - NetClientState *peer = qemu_get_queue(s->nic)->peer; + NetClientState *nc = qemu_get_queue(s->nic); - if ((NULL != peer) && - (peer->info->type == NET_CLIENT_OPTIONS_KIND_TAP) && - tap_has_vnet_hdr(peer)) { + if ((NULL != nc->peer) && + (nc->peer->info->type == NET_CLIENT_OPTIONS_KIND_TAP) && + qemu_peer_has_vnet_hdr(nc)) { return true; } @@ -1935,10 +1935,10 @@ static void vmxnet3_net_init(VMXNET3State *s) s->lro_supported = false; if (s->peer_has_vhdr) { - tap_set_vnet_hdr_len(qemu_get_queue(s->nic)->peer, + qemu_peer_set_vnet_hdr_len(qemu_get_queue(s->nic), sizeof(struct virtio_net_hdr)); - tap_using_vnet_hdr(qemu_get_queue(s->nic)->peer, 1); + qemu_peer_using_vnet_hdr(qemu_get_queue(s->nic), 1); } qemu_format_nic_info_str(qemu_get_queue(s->nic), s->conf.macaddr.a); -- 1.8.5.1