[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 5/6] net: virtio-net and vmxnet3 use offloading A
From: |
Vincenzo Maffione |
Subject: |
[Qemu-devel] [PATCH v2 5/6] net: virtio-net and vmxnet3 use offloading API |
Date: |
Tue, 14 Jan 2014 11:59:49 +0100 |
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.
We also remove the existing checks which prevent those frontends
from using offloadings with backends different from TAP (e.g. netmap).
Signed-off-by: Vincenzo Maffione <address@hidden>
---
hw/net/virtio-net.c | 14 +++++---------
hw/net/vmxnet3.c | 10 ++++------
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index ac8322d..c850d5b 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -325,11 +325,7 @@ static void peer_test_vnet_hdr(VirtIONet *n)
return;
}
- if (nc->peer->info->type != NET_CLIENT_OPTIONS_KIND_TAP) {
- 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 +338,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 +357,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 +459,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)),
diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c
index 096b598..ded53a4 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,9 @@ 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 (qemu_peer_has_vnet_hdr(nc)) {
return true;
}
@@ -1935,7 +1933,7 @@ 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));
}
--
1.8.5.2
- [Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 2/6] net: removing tap_using_vnet_hdr() function, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 1/6] net: change vnet-hdr TAP prototypes, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 4/6] net: TAP uses NetClientInfo offloading callbacks, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 6/6] net: add offloadings support to netmap backend, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 3/6] net: extend NetClientInfo for offloading manipulations, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 5/6] net: virtio-net and vmxnet3 use offloading API,
Vincenzo Maffione <=
- Re: [Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support, Barak Wasserstrom, 2014/01/15
- Re: [Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support, Stefan Hajnoczi, 2014/01/16