[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/9] virtio-net: add filter support
From: |
Yang Hongyang |
Subject: |
[Qemu-devel] [PATCH 2/9] virtio-net: add filter support |
Date: |
Fri, 24 Jul 2015 18:55:52 +0800 |
virtio-net explicity check for tap device, aupport for tap
with filter attached.
Signed-off-by: Yang Hongyang <address@hidden>
---
hw/net/virtio-net.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 304d3dd..59e9707 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -16,6 +16,7 @@
#include "net/net.h"
#include "net/checksum.h"
#include "net/tap.h"
+#include "net/filter.h"
#include "qemu/error-report.h"
#include "qemu/timer.h"
#include "hw/virtio/virtio-net.h"
@@ -406,11 +407,15 @@ static int peer_attach(VirtIONet *n, int index)
return 0;
}
- if (nc->peer->info->type != NET_CLIENT_OPTIONS_KIND_TAP) {
+ if (nc->peer->info->type == NET_CLIENT_OPTIONS_KIND_FILTER) {
+ nc = filter_backend(nc->peer);
+ }
+
+ if (nc->info->type != NET_CLIENT_OPTIONS_KIND_TAP) {
return 0;
}
- return tap_enable(nc->peer);
+ return tap_enable(nc);
}
static int peer_detach(VirtIONet *n, int index)
@@ -421,11 +426,15 @@ static int peer_detach(VirtIONet *n, int index)
return 0;
}
- if (nc->peer->info->type != NET_CLIENT_OPTIONS_KIND_TAP) {
+ if (nc->peer->info->type == NET_CLIENT_OPTIONS_KIND_FILTER) {
+ nc = filter_backend(nc->peer);
+ }
+
+ if (nc->info->type != NET_CLIENT_OPTIONS_KIND_TAP) {
return 0;
}
- return tap_disable(nc->peer);
+ return tap_disable(nc);
}
static void virtio_net_set_queues(VirtIONet *n)
--
1.9.1
- [Qemu-devel] [PATCH 0/9] For QEMU 2.5: Add a net filter and a netbuffer plugin based on the filter, Yang Hongyang, 2015/07/24
- [Qemu-devel] [PATCH 2/9] virtio-net: add filter support,
Yang Hongyang <=
- [Qemu-devel] [PATCH 3/9] filter: remove plugins when remove filter, Yang Hongyang, 2015/07/24
- [Qemu-devel] [PATCH 4/9] filter: remove filter before remove network backend, Yang Hongyang, 2015/07/24
- [Qemu-devel] [PATCH 6/9] introduce qemu_find_net_clients_by_model, Yang Hongyang, 2015/07/24
- [Qemu-devel] [PATCH 1/9] netdev: Add a net filter, Yang Hongyang, 2015/07/24
- [Qemu-devel] [PATCH 8/9] move out net queue structs define, Yang Hongyang, 2015/07/24
- [Qemu-devel] [PATCH 5/9] filter: add netbuffer plugin, Yang Hongyang, 2015/07/24
- [Qemu-devel] [PATCH 9/9] add a public api to release buffer, Yang Hongyang, 2015/07/24
- [Qemu-devel] [PATCH 7/9] net/queue: export qemu_net_queue_append, Yang Hongyang, 2015/07/24