[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 15/15] net: move UFO support detection to tap-linux.
From: |
Mark McLoughlin |
Subject: |
[Qemu-devel] [PATCH 15/15] net: move UFO support detection to tap-linux.c |
Date: |
Thu, 22 Oct 2009 17:49:16 +0100 |
Only supported on Linux
Signed-off-by: Mark McLoughlin <address@hidden>
---
net/tap-aix.c | 5 +++++
net/tap-bsd.c | 5 +++++
net/tap-linux.c | 12 ++++++++++++
net/tap-solaris.c | 5 +++++
net/tap.c | 7 +------
net/tap.h | 1 +
6 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/net/tap-aix.c b/net/tap-aix.c
index 0de3dd9..4bc9f2f 100644
--- a/net/tap-aix.c
+++ b/net/tap-aix.c
@@ -41,6 +41,11 @@ int tap_probe_vnet_hdr(int fd)
return 0;
}
+int tap_probe_has_ufo(int fd)
+{
+ return 0;
+}
+
void tap_fd_set_offload(int fd, int csum, int tso4,
int tso6, int ecn, int ufo)
{
diff --git a/net/tap-bsd.c b/net/tap-bsd.c
index 1e85a3c..3ad14bb 100644
--- a/net/tap-bsd.c
+++ b/net/tap-bsd.c
@@ -71,6 +71,11 @@ int tap_probe_vnet_hdr(int fd)
return 0;
}
+int tap_probe_has_ufo(int fd)
+{
+ return 0;
+}
+
void tap_fd_set_offload(int fd, int csum, int tso4,
int tso6, int ecn, int ufo)
{
diff --git a/net/tap-linux.c b/net/tap-linux.c
index b6f1fad..0f621a2 100644
--- a/net/tap-linux.c
+++ b/net/tap-linux.c
@@ -112,6 +112,18 @@ int tap_probe_vnet_hdr(int fd)
return ifr.ifr_flags & IFF_VNET_HDR;
}
+int tap_probe_has_ufo(int fd)
+{
+ unsigned offload;
+
+ offload = TUN_F_CSUM | TUN_F_UFO;
+
+ if (ioctl(fd, TUNSETOFFLOAD, offload) < 0)
+ return 0;
+
+ return 1;
+}
+
void tap_fd_set_offload(int fd, int csum, int tso4,
int tso6, int ecn, int ufo)
{
diff --git a/net/tap-solaris.c b/net/tap-solaris.c
index 614df01..ef4e60c 100644
--- a/net/tap-solaris.c
+++ b/net/tap-solaris.c
@@ -194,6 +194,11 @@ int tap_probe_vnet_hdr(int fd)
return 0;
}
+int tap_probe_has_ufo(int fd)
+{
+ return 0;
+}
+
void tap_fd_set_offload(int fd, int csum, int tso4,
int tso6, int ecn, int ufo)
{
diff --git a/net/tap.c b/net/tap.c
index 9b11071..60354e4 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -271,7 +271,6 @@ static TAPState *net_tap_fd_init(VLANState *vlan,
int vnet_hdr)
{
TAPState *s;
- unsigned int offload;
s = qemu_mallocz(sizeof(TAPState));
s->fd = fd;
@@ -281,11 +280,7 @@ static TAPState *net_tap_fd_init(VLANState *vlan,
vlan, NULL, model, name, NULL,
tap_receive, tap_receive_raw,
tap_receive_iov, tap_cleanup, s);
- s->has_ufo = 0;
- /* Check if tap supports UFO */
- offload = TUN_F_CSUM | TUN_F_UFO;
- if (ioctl(s->fd, TUNSETOFFLOAD, offload) == 0)
- s->has_ufo = 1;
+ s->has_ufo = tap_probe_has_ufo(s->fd);
tap_set_offload(s->vc, 0, 0, 0, 0, 0);
tap_read_poll(s, 1);
return s;
diff --git a/net/tap.h b/net/tap.h
index 16398b5..538a562 100644
--- a/net/tap.h
+++ b/net/tap.h
@@ -45,6 +45,7 @@ void tap_set_offload(VLANClientState *vc, int csum, int tso4,
int tso6, int ecn,
int tap_set_sndbuf(int fd, QemuOpts *opts);
int tap_probe_vnet_hdr(int fd);
+int tap_probe_has_ufo(int fd);
void tap_fd_set_offload(int fd, int csum, int tso4, int tso6, int ecn, int
ufo);
#endif /* QEMU_NET_TAP_H */
--
1.6.2.5
- [Qemu-devel] [PATCH 02/15] net: move net-checksum.c under net/, (continued)
- [Qemu-devel] [PATCH 02/15] net: move net-checksum.c under net/, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 07/15] net: split BSD tap_open() out into net/tap-bsd.c, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 04/15] net: move more stuff into net/tap-win32.c, add net/tap.h, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 14/15] net: move tap_set_offload() code into tap-linux.c, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 05/15] net: move tap-linux.h under net/, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 08/15] net: move solaris code to net/tap-solaris.c, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 12/15] net: move tap_set_sndbuf() to tap-linux.c, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 10/15] build: add CONFIG_LINUX, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 09/15] net: move AIX code into net/tap-aix.c, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 11/15] net: move linux code into net/tap-linux.c, Mark McLoughlin, 2009/10/22
- [Qemu-devel] [PATCH 15/15] net: move UFO support detection to tap-linux.c,
Mark McLoughlin <=
- Re: [Qemu-devel] [PATCH 00/15] Some networking code re-organization, Anthony Liguori, 2009/10/22
- Message not available