[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v10 05/18] tap: Call tap_receive_iov() from tap_receive()
|
From: |
Akihiko Odaki |
|
Subject: |
[PATCH v10 05/18] tap: Call tap_receive_iov() from tap_receive() |
|
Date: |
Sun, 28 Apr 2024 16:00:48 +0900 |
This will save duplicate logic found in both of tap_receive_iov() and
tap_receive().
Suggested-by: "Zhang, Chen" <chen.zhang@intel.com>
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
net/tap.c | 35 +++++------------------------------
1 file changed, 5 insertions(+), 30 deletions(-)
diff --git a/net/tap.c b/net/tap.c
index 99c59ee46881..9825518ff1f3 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -133,39 +133,14 @@ static ssize_t tap_receive_iov(NetClientState *nc, const
struct iovec *iov,
return tap_write_packet(s, iovp, iovcnt);
}
-static ssize_t tap_receive_raw(NetClientState *nc, const uint8_t *buf, size_t
size)
-{
- TAPState *s = DO_UPCAST(TAPState, nc, nc);
- struct iovec iov[2];
- int iovcnt = 0;
- struct virtio_net_hdr_mrg_rxbuf hdr = { };
-
- if (s->host_vnet_hdr_len) {
- iov[iovcnt].iov_base = &hdr;
- iov[iovcnt].iov_len = s->host_vnet_hdr_len;
- iovcnt++;
- }
-
- iov[iovcnt].iov_base = (char *)buf;
- iov[iovcnt].iov_len = size;
- iovcnt++;
-
- return tap_write_packet(s, iov, iovcnt);
-}
-
static ssize_t tap_receive(NetClientState *nc, const uint8_t *buf, size_t size)
{
- TAPState *s = DO_UPCAST(TAPState, nc, nc);
- struct iovec iov[1];
-
- if (s->host_vnet_hdr_len && !s->using_vnet_hdr) {
- return tap_receive_raw(nc, buf, size);
- }
-
- iov[0].iov_base = (char *)buf;
- iov[0].iov_len = size;
+ struct iovec iov = {
+ .iov_base = (void *)buf,
+ .iov_len = size
+ };
- return tap_write_packet(s, iov, 1);
+ return tap_receive_iov(nc, &iov, 1);
}
#ifndef __sun__
--
2.44.0
- [PATCH v10 00/18] virtio-net RSS/hash report fixes and improvements, Akihiko Odaki, 2024/04/28
- [PATCH v10 01/18] tap: Remove tap_probe_vnet_hdr_len(), Akihiko Odaki, 2024/04/28
- [PATCH v10 02/18] tap: Remove qemu_using_vnet_hdr(), Akihiko Odaki, 2024/04/28
- [PATCH v10 03/18] net: Move virtio-net header length assertion, Akihiko Odaki, 2024/04/28
- [PATCH v10 04/18] net: Remove receive_raw(), Akihiko Odaki, 2024/04/28
- [PATCH v10 05/18] tap: Call tap_receive_iov() from tap_receive(),
Akihiko Odaki <=
- [PATCH v10 06/18] tap: Shrink zeroed virtio-net header, Akihiko Odaki, 2024/04/28
- [PATCH v10 07/18] virtio-net: Do not propagate ebpf-rss-fds errors, Akihiko Odaki, 2024/04/28
- [PATCH v10 08/18] virtio-net: Add only one queue pair when realizing, Akihiko Odaki, 2024/04/28
- [PATCH v10 09/18] virtio-net: Copy header only when necessary, Akihiko Odaki, 2024/04/28
- [PATCH v10 10/18] virtio-net: Shrink header byte swapping buffer, Akihiko Odaki, 2024/04/28
- [PATCH v10 11/18] virtio-net: Disable RSS on reset, Akihiko Odaki, 2024/04/28
- [PATCH v10 13/18] virtio-net: Always set populate_hash, Akihiko Odaki, 2024/04/28
- [PATCH v10 14/18] virtio-net: Do not write hashes to peer buffer, Akihiko Odaki, 2024/04/28
- [PATCH v10 12/18] virtio-net: Unify the logic to update NIC state for RSS, Akihiko Odaki, 2024/04/28
- [PATCH v10 17/18] ebpf: Refactor tun_rss_steering_prog(), Akihiko Odaki, 2024/04/28