[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC net-next 11/18] tun: run xdp prog when tun is read from file interf
From: |
Prashant Bhole |
Subject: |
[RFC net-next 11/18] tun: run xdp prog when tun is read from file interface |
Date: |
Tue, 26 Nov 2019 19:07:37 +0900 |
It handles the case when qemu performs read on tun using file
operations.
Signed-off-by: Prashant Bhole <address@hidden>
---
drivers/net/tun.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 084ca95358fe..639921c10e32 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -2318,8 +2318,10 @@ static ssize_t tun_do_read(struct tun_struct *tun,
struct tun_file *tfile,
struct iov_iter *to,
int noblock, void *ptr)
{
+ struct xdp_frame *frame;
ssize_t ret;
int err;
+ u32 act;
tun_debug(KERN_INFO, tun, "tun_do_read\n");
@@ -2333,6 +2335,15 @@ static ssize_t tun_do_read(struct tun_struct *tun,
struct tun_file *tfile,
ptr = tun_ring_recv(tfile, noblock, &err);
if (!ptr)
return err;
+
+ if (tun_is_xdp_frame(ptr)) {
+ frame = tun_ptr_to_xdp(ptr);
+ act = tun_do_xdp_offload(tun, tfile, frame);
+ } else {
+ act = tun_do_xdp_offload_generic(tun, ptr);
+ }
+ if (act != XDP_PASS)
+ return err;
}
if (tun_is_xdp_frame(ptr)) {
--
2.20.1
- [RFC net-next 17/18] virtio_net: implment XDP map offload functionality, (continued)
- [RFC net-next 17/18] virtio_net: implment XDP map offload functionality, Prashant Bhole, 2019/11/26
- [RFC net-next 15/18] virtio_net: implement XDP prog offload functionality, Prashant Bhole, 2019/11/26
- [RFC net-next 10/18] tun: handle XDP_TX action of offloaded program, Prashant Bhole, 2019/11/26
- [RFC net-next 09/18] tun: add a way to inject Tx path packet into Rx path, Prashant Bhole, 2019/11/26
- [RFC net-next 07/18] tun: set offloaded xdp program, Prashant Bhole, 2019/11/26
- [RFC net-next 02/18] net: core: rename netif_receive_generic_xdp() to do_generic_xdp_core(), Prashant Bhole, 2019/11/26
- [RFC net-next 01/18] bpf: introduce bpf_prog_offload_verifier_setup(), Prashant Bhole, 2019/11/26
- [RFC net-next 13/18] virtio_net: use XDP attachment helpers, Prashant Bhole, 2019/11/26
- [RFC net-next 11/18] tun: run xdp prog when tun is read from file interface,
Prashant Bhole <=
- [RFC net-next 08/18] tun: run offloaded XDP program in Tx path, Prashant Bhole, 2019/11/26
- [RFC net-next 06/18] tuntap: remove usage of ptr ring in vhost_net, Prashant Bhole, 2019/11/26
- [RFC net-next 03/18] net: core: export do_xdp_generic_core(), Prashant Bhole, 2019/11/26
- [RFC net-next 05/18] vhost_net: user tap recvmsg api to access ptr ring, Prashant Bhole, 2019/11/26
- Re: [RFC net-next 00/18] virtio_net XDP offload, Jakub Kicinski, 2019/11/26
- Re: [RFC net-next 00/18] virtio_net XDP offload, Michael S. Tsirkin, 2019/11/27