From: Vincenzo Maffione <v.maffione@gmail.com>
To: qemu-devel@nongnu.org
Cc: aliguori@amazon.com, marcel.a@redhat.com, jasowang@redhat.com,
Vincenzo Maffione <v.maffione@gmail.com>,
lcapitulino@redhat.com, stefanha@redhat.com, dmitry@daynix.com,
pbonzini@redhat.com, g.lettieri@iet.unipi.it, rizzo@iet.unipi.it
Subject: [Qemu-devel] [PATCH 3/5] net: virtio-net and vmxnet3 use offloading API
Date: Fri, 13 Dec 2013 13:05:01 +0100 [thread overview]
Message-ID: <1386936303-7697-4-git-send-email-v.maffione@gmail.com> (raw)
In-Reply-To: <1386936303-7697-1-git-send-email-v.maffione@gmail.com>
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 <v.maffione@gmail.com>
---
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
next prev parent reply other threads:[~2013-12-13 12:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-13 12:04 [Qemu-devel] [PATCH 0/5] Add netmap backend offloadings support Vincenzo Maffione
2013-12-13 12:04 ` [Qemu-devel] [PATCH 1/5] net: extend NetClientInfo for offloading manipulations Vincenzo Maffione
2014-01-13 6:58 ` Stefan Hajnoczi
2014-01-13 14:07 ` Vincenzo Maffione
2013-12-13 12:05 ` [Qemu-devel] [PATCH 2/5] net: TAP uses NetClientInfo offloading callbacks Vincenzo Maffione
2013-12-13 12:05 ` Vincenzo Maffione [this message]
2013-12-13 12:05 ` [Qemu-devel] [PATCH 4/5] net: add offloadings support to netmap backend Vincenzo Maffione
2014-01-13 7:28 ` Stefan Hajnoczi
2014-01-13 15:11 ` Vincenzo Maffione
2014-01-14 3:46 ` Stefan Hajnoczi
2013-12-13 12:05 ` [Qemu-devel] [PATCH 5/5] net: virtio-net and vmxnet3 can use netmap offloadings Vincenzo Maffione
2014-01-13 7:33 ` [Qemu-devel] [PATCH 0/5] Add netmap backend offloadings support Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1386936303-7697-4-git-send-email-v.maffione@gmail.com \
--to=v.maffione@gmail.com \
--cc=aliguori@amazon.com \
--cc=dmitry@daynix.com \
--cc=g.lettieri@iet.unipi.it \
--cc=jasowang@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=marcel.a@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rizzo@iet.unipi.it \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).