Alexander Lobakin
4c805f7ae1
libeth: xdp: add XDP prog run and verdict result handling
...
Running a prog and handling the verdicts, up to napi_gro_receive()
is also pretty generic code not really differing between vendors
(except for Tx descriptor filling and Rx descriptor parsing).
Define a couple inlines to do that. The inline callbacks a driver
needs to pass is mentioned above: Tx descriptor filling for XDP_TX,
populating skb with the descriptor data for XDP_PASS, finalizing
XDPSQs after the polling loop for XDP_TX (kicking the HW to start
sending).
The populate callback passes only &libeth_xdp_buff assuming buff::desc
pointer is enough, plus you can always get the corresponding Rx queue
structure via container_of(buff::rxq). If not, a driver can extend
the buff with more fields directly on the stack without touching
libeth_xdp definitions.
Signed-off-by: Alexander Lobakin <aleksander.lobakin@intel.com >
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com >
2025-06-16 11:40:14 -07:00
..
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-06 11:50:47 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-12 09:50:36 -07:00
2025-06-08 09:07:37 +02:00
2025-05-15 16:25:20 -06:00
2025-06-08 09:07:37 +02:00
2025-05-30 09:15:40 -07:00
2025-06-03 11:53:55 -07:00
2025-06-08 09:07:37 +02:00
2025-05-24 08:29:32 +02:00
2025-06-08 09:07:37 +02:00
2025-05-30 20:21:36 +02:00
2025-06-08 09:07:37 +02:00
2025-05-23 13:26:24 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-13 18:21:57 -07:00
2025-06-03 13:24:14 -07:00
2025-06-08 09:07:37 +02:00
2025-06-07 10:05:35 -07:00
2025-05-21 14:08:44 +02:00
2025-05-27 15:22:01 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-03 08:39:20 -07:00
2025-06-08 09:07:37 +02:00
2025-05-22 18:04:43 +02:00
2025-06-08 09:07:37 +02:00
2025-05-24 22:49:07 +02:00
2025-05-27 16:48:47 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-05-19 17:09:50 +03:00
2025-06-08 09:07:37 +02:00
2025-06-05 08:49:30 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-03 11:53:55 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-16 11:40:14 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-06 11:50:47 -07:00
2025-05-31 15:44:16 -07:00
2025-05-19 15:37:53 +05:30
2025-06-08 09:07:37 +02:00
2025-06-08 11:33:00 -07:00
2025-06-08 09:07:37 +02:00
2025-05-28 14:55:35 -07:00
2025-06-05 08:20:21 -07:00
2025-06-10 14:35:40 +02:00
2025-06-08 09:07:37 +02:00
2025-05-19 16:11:05 +02:00
2025-05-31 19:12:53 -07:00
2025-06-08 09:07:37 +02:00
2025-06-12 09:50:36 -07:00
2025-06-06 13:16:50 -07:00
2025-06-06 13:20:26 -07:00
2025-06-02 11:04:29 -07:00
2025-05-20 21:46:10 -05:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-05-16 21:06:11 +02:00
2025-05-31 07:53:30 -07:00
2025-06-05 08:07:24 -07:00
2025-06-06 13:22:31 -07:00
2025-05-21 14:53:17 +02:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-05-27 16:28:02 -07:00
2025-05-21 12:26:51 +02:00
2025-06-08 09:07:37 +02:00
2025-06-06 20:02:51 -07:00
2025-06-06 11:50:47 -07:00
2025-06-08 09:07:37 +02:00
2025-05-27 10:27:53 -04:00
2025-06-04 11:26:17 -07:00
2025-05-29 08:15:35 -07:00
2025-06-08 09:07:37 +02:00
2025-06-08 09:07:37 +02:00
2025-05-27 10:27:54 -04:00
2025-06-06 11:50:47 -07:00
2025-06-08 09:07:37 +02:00
2025-05-23 07:09:00 +02:00