aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/libeth/priv.h
diff options
context:
space:
mode:
authorAlexander Lobakin <[email protected]>2025-06-12 16:02:32 +0000
committerTony Nguyen <[email protected]>2025-06-16 18:40:15 +0000
commit5495c58c65aa3d650cccaa19dc59115b9a0069a5 (patch)
tree3daff5094f628a535455e7e3884141cf937b2e58 /drivers/net/ethernet/intel/libeth/priv.h
parentlibeth: xsk: add XSk xmit functions (diff)
downloadkernel-5495c58c65aa3d650cccaa19dc59115b9a0069a5.tar.gz
kernel-5495c58c65aa3d650cccaa19dc59115b9a0069a5.zip
libeth: xsk: add XSk Rx processing support
Add XSk counterparts for preparing XSk &libeth_xdp_buff (adding head and frags), running the program, and handling the verdict, inc. XDP_PASS. Shortcuts in comparison with regular Rx: frags and all verdicts except XDP_REDIRECT are under unlikely() and out of line; no checks for XDP program presence as it's always true for XSk. Suggested-by: Maciej Fijalkowski <[email protected]> # optimizations Signed-off-by: Alexander Lobakin <[email protected]> Signed-off-by: Tony Nguyen <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/libeth/priv.h')
-rw-r--r--drivers/net/ethernet/intel/libeth/priv.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/libeth/priv.h b/drivers/net/ethernet/intel/libeth/priv.h
index 03e74382b2cb..9b811d31015c 100644
--- a/drivers/net/ethernet/intel/libeth/priv.h
+++ b/drivers/net/ethernet/intel/libeth/priv.h
@@ -8,6 +8,7 @@
/* XDP */
+enum xdp_action;
struct libeth_xdp_buff;
struct libeth_xdp_tx_frame;
struct skb_shared_info;
@@ -17,6 +18,8 @@ extern const struct xsk_tx_metadata_ops libeth_xsktmo_slow;
void libeth_xsk_tx_return_bulk(const struct libeth_xdp_tx_frame *bq,
u32 count);
+u32 libeth_xsk_prog_exception(struct libeth_xdp_buff *xdp, enum xdp_action act,
+ int ret);
struct libeth_xdp_ops {
void (*bulk)(const struct skb_shared_info *sinfo,