diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2014-02-20 12:14:07 +0100 |
---|---|---|
committer | Stefan Hajnoczi <stefanha@redhat.com> | 2014-02-25 14:31:05 +0100 |
commit | d6085e3ace20bc9b0fa625d8d79b22668710e217 (patch) | |
tree | 96a930a0ad6f56f61725189fdfe9a3c6f4a901e9 /net/net.c | |
parent | 0a985b37272b563b1f8414431c6064eb1aa0c97b (diff) | |
download | qemu-d6085e3ace20bc9b0fa625d8d79b22668710e217.tar.gz qemu-d6085e3ace20bc9b0fa625d8d79b22668710e217.tar.bz2 qemu-d6085e3ace20bc9b0fa625d8d79b22668710e217.zip |
net: remove implicit peer from offload API
The virtio_net offload APIs are used on the NIC's peer (i.e. the tap
device). The API was defined to implicitly use nc->peer, saving the
caller the trouble.
This wasn't ideal because:
1. There are callers who have the peer but not the NIC. Currently they
are forced to bypass the API and access peer->info->... directly.
2. The rest of the net.h API uses nc, not nc->peer, so it is
inconsistent.
This patch pushes nc->peer back up to callers.
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'net/net.c')
-rw-r--r-- | net/net.c | 36 |
1 files changed, 18 insertions, 18 deletions
@@ -378,59 +378,59 @@ void qemu_foreach_nic(qemu_nic_foreach func, void *opaque) } } -bool qemu_peer_has_ufo(NetClientState *nc) +bool qemu_has_ufo(NetClientState *nc) { - if (!nc->peer || !nc->peer->info->has_ufo) { + if (!nc || !nc->info->has_ufo) { return false; } - return nc->peer->info->has_ufo(nc->peer); + return nc->info->has_ufo(nc); } -bool qemu_peer_has_vnet_hdr(NetClientState *nc) +bool qemu_has_vnet_hdr(NetClientState *nc) { - if (!nc->peer || !nc->peer->info->has_vnet_hdr) { + if (!nc || !nc->info->has_vnet_hdr) { return false; } - return nc->peer->info->has_vnet_hdr(nc->peer); + return nc->info->has_vnet_hdr(nc); } -bool qemu_peer_has_vnet_hdr_len(NetClientState *nc, int len) +bool qemu_has_vnet_hdr_len(NetClientState *nc, int len) { - if (!nc->peer || !nc->peer->info->has_vnet_hdr_len) { + if (!nc || !nc->info->has_vnet_hdr_len) { return false; } - return nc->peer->info->has_vnet_hdr_len(nc->peer, len); + return nc->info->has_vnet_hdr_len(nc, len); } -void qemu_peer_using_vnet_hdr(NetClientState *nc, bool enable) +void qemu_using_vnet_hdr(NetClientState *nc, bool enable) { - if (!nc->peer || !nc->peer->info->using_vnet_hdr) { + if (!nc || !nc->info->using_vnet_hdr) { return; } - nc->peer->info->using_vnet_hdr(nc->peer, enable); + nc->info->using_vnet_hdr(nc, enable); } -void qemu_peer_set_offload(NetClientState *nc, int csum, int tso4, int tso6, +void qemu_set_offload(NetClientState *nc, int csum, int tso4, int tso6, int ecn, int ufo) { - if (!nc->peer || !nc->peer->info->set_offload) { + if (!nc || !nc->info->set_offload) { return; } - nc->peer->info->set_offload(nc->peer, csum, tso4, tso6, ecn, ufo); + nc->info->set_offload(nc, csum, tso4, tso6, ecn, ufo); } -void qemu_peer_set_vnet_hdr_len(NetClientState *nc, int len) +void qemu_set_vnet_hdr_len(NetClientState *nc, int len) { - if (!nc->peer || !nc->peer->info->set_vnet_hdr_len) { + if (!nc || !nc->info->set_vnet_hdr_len) { return; } - nc->peer->info->set_vnet_hdr_len(nc->peer, len); + nc->info->set_vnet_hdr_len(nc, len); } int qemu_can_send_packet(NetClientState *sender) |