[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200904135332.60259-4-bjorn.topel@gmail.com>
Date: Fri, 4 Sep 2020 15:53:28 +0200
From: Björn Töpel <bjorn.topel@...il.com>
To: ast@...nel.org, daniel@...earbox.net, netdev@...r.kernel.org,
bpf@...r.kernel.org
Cc: Björn Töpel <bjorn.topel@...el.com>,
magnus.karlsson@...el.com, davem@...emloft.net, kuba@...nel.org,
hawk@...nel.org, john.fastabend@...il.com,
intel-wired-lan@...ts.osuosl.org
Subject: [PATCH bpf-next 3/6] xsk: introduce xsk_do_redirect_rx_full() helper
From: Björn Töpel <bjorn.topel@...el.com>
The xsk_do_redirect_rx_full() helper can be used to check if a failure
of xdp_do_redirect() was due to the AF_XDP socket had a full Rx ring.
Signed-off-by: Björn Töpel <bjorn.topel@...el.com>
---
include/net/xdp_sock_drv.h | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/include/net/xdp_sock_drv.h b/include/net/xdp_sock_drv.h
index 5b1ee8a9976d..34c58b5fbc28 100644
--- a/include/net/xdp_sock_drv.h
+++ b/include/net/xdp_sock_drv.h
@@ -116,6 +116,11 @@ static inline void xsk_buff_raw_dma_sync_for_device(struct xsk_buff_pool *pool,
xp_dma_sync_for_device(pool, dma, size);
}
+static inline bool xsk_do_redirect_rx_full(int err, enum bpf_map_type map_type)
+{
+ return err == -ENOBUFS && map_type == BPF_MAP_TYPE_XSKMAP;
+}
+
#else
static inline void xsk_tx_completed(struct xsk_buff_pool *pool, u32 nb_entries)
@@ -235,6 +240,10 @@ static inline void xsk_buff_raw_dma_sync_for_device(struct xsk_buff_pool *pool,
{
}
+static inline bool xsk_do_redirect_rx_full(int err, enum bpf_map_type map_type)
+{
+ return false;
+}
#endif /* CONFIG_XDP_SOCKETS */
#endif /* _LINUX_XDP_SOCK_DRV_H */
--
2.25.1
Powered by blists - more mailing lists