Revision cf528b89 hw/net/virtio-net.c
b/hw/net/virtio-net.c | ||
---|---|---|
325 | 325 |
return; |
326 | 326 |
} |
327 | 327 |
|
328 |
if (nc->peer->info->type != NET_CLIENT_OPTIONS_KIND_TAP) { |
|
329 |
return; |
|
330 |
} |
|
331 |
|
|
332 |
n->has_vnet_hdr = tap_has_vnet_hdr(nc->peer); |
|
328 |
n->has_vnet_hdr = qemu_peer_has_vnet_hdr(nc); |
|
333 | 329 |
} |
334 | 330 |
|
335 | 331 |
static int peer_has_vnet_hdr(VirtIONet *n) |
... | ... | |
342 | 338 |
if (!peer_has_vnet_hdr(n)) |
343 | 339 |
return 0; |
344 | 340 |
|
345 |
n->has_ufo = tap_has_ufo(qemu_get_queue(n->nic)->peer);
|
|
341 |
n->has_ufo = qemu_peer_has_ufo(qemu_get_queue(n->nic));
|
|
346 | 342 |
|
347 | 343 |
return n->has_ufo; |
348 | 344 |
} |
... | ... | |
361 | 357 |
nc = qemu_get_subqueue(n->nic, i); |
362 | 358 |
|
363 | 359 |
if (peer_has_vnet_hdr(n) && |
364 |
tap_has_vnet_hdr_len(nc->peer, n->guest_hdr_len)) {
|
|
365 |
tap_set_vnet_hdr_len(nc->peer, n->guest_hdr_len);
|
|
360 |
qemu_peer_has_vnet_hdr_len(nc, n->guest_hdr_len)) {
|
|
361 |
qemu_peer_set_vnet_hdr_len(nc, n->guest_hdr_len);
|
|
366 | 362 |
n->host_hdr_len = n->guest_hdr_len; |
367 | 363 |
} |
368 | 364 |
} |
... | ... | |
463 | 459 |
|
464 | 460 |
static void virtio_net_apply_guest_offloads(VirtIONet *n) |
465 | 461 |
{ |
466 |
tap_set_offload(qemu_get_subqueue(n->nic, 0)->peer,
|
|
462 |
qemu_peer_set_offload(qemu_get_subqueue(n->nic, 0),
|
|
467 | 463 |
!!(n->curr_guest_offloads & (1ULL << VIRTIO_NET_F_GUEST_CSUM)), |
468 | 464 |
!!(n->curr_guest_offloads & (1ULL << VIRTIO_NET_F_GUEST_TSO4)), |
469 | 465 |
!!(n->curr_guest_offloads & (1ULL << VIRTIO_NET_F_GUEST_TSO6)), |
... | ... | |
1544 | 1540 |
peer_test_vnet_hdr(n); |
1545 | 1541 |
if (peer_has_vnet_hdr(n)) { |
1546 | 1542 |
for (i = 0; i < n->max_queues; i++) { |
1547 |
tap_using_vnet_hdr(qemu_get_subqueue(n->nic, i)->peer, true);
|
|
1543 |
qemu_peer_using_vnet_hdr(qemu_get_subqueue(n->nic, i), true);
|
|
1548 | 1544 |
} |
1549 | 1545 |
n->host_hdr_len = sizeof(struct virtio_net_hdr); |
1550 | 1546 |
} else { |
Also available in: Unified diff