Andre Guedes fc9df2a0b5 igc: Enable RX via AF_XDP zero-copy
Add support for receiving packets via AF_XDP zero-copy mechanism.

Add a new flag to 'enum igc_ring_flags_t' to indicate the ring has
AF_XDP zero-copy enabled so proper ring setup is carried out during ring
configuration in igc_configure_rx_ring().

RX buffers can now be allocated via the shared pages mechanism (default
behavior of the driver) or via xsk pool (when AF_XDP zero-copy is
enabled) so a union is added to the 'struct igc_rx_buffer' to cover both
cases.

When AF_XDP zero-copy is enabled, rx buffers are allocated from the xsk
pool using the new helper igc_alloc_rx_buffers_zc() which is the
counterpart of igc_alloc_rx_buffers().

Likewise other Intel drivers that support AF_XDP zero-copy, in igc we
have a dedicated path for cleaning up rx irqs when zero-copy is enabled.
This avoids adding too many checks within igc_clean_rx_irq(), resulting
in a more readable and efficient code since this function is called from
the hot-path of the driver.

Signed-off-by: Andre Guedes <andre.guedes@intel.com>
Signed-off-by: Vedang Patel <vedang.patel@intel.com>
Signed-off-by: Jithu Joseph <jithu.joseph@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Tested-by: Dvora Fuxbrumer <dvorax.fuxbrumer@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-05-20 10:21:42 -07:00
..
2021-04-27 13:42:11 -07:00
2021-05-05 13:24:11 -07:00
2021-04-18 09:36:56 +03:00
2021-05-07 11:35:12 -07:00
2021-04-29 11:57:23 -07:00
2021-04-26 12:11:52 -07:00
2021-05-05 13:24:11 -07:00
2021-05-01 10:14:08 -07:00
2021-05-01 10:14:08 -07:00
2021-05-04 11:24:46 -07:00
2021-04-28 15:59:13 -07:00
2021-04-26 12:11:52 -07:00
2021-05-05 12:39:29 -07:00
2021-04-27 18:09:44 -07:00
2021-04-26 15:03:23 -07:00
2021-05-01 10:14:08 -07:00
2021-04-26 16:32:11 -07:00
2021-05-07 11:35:12 -07:00
2021-05-05 13:24:11 -07:00
2021-05-01 10:14:08 -07:00
2021-04-28 15:59:13 -07:00
2021-05-01 09:33:00 -07:00
2021-04-28 15:56:51 -07:00
2021-05-20 10:21:42 -07:00
2021-05-01 10:14:08 -07:00
2021-04-29 11:57:23 -07:00
2021-05-07 14:49:18 -07:00
2021-05-05 12:53:16 -07:00
2021-04-28 15:59:13 -07:00
2021-05-04 11:13:33 -07:00
2021-05-05 13:24:11 -07:00
2021-05-03 12:15:21 -07:00
2021-05-07 11:35:12 -07:00
2021-05-08 10:44:36 -07:00
2021-05-01 09:33:00 -07:00
2021-04-30 12:48:14 -07:00
2021-05-08 10:44:36 -07:00
2021-04-26 12:11:52 -07:00
2021-05-01 09:33:00 -07:00
2021-05-14 15:20:10 -07:00
2021-04-28 15:59:13 -07:00
2021-05-05 13:31:39 -07:00