]> git.ipfire.org Git - thirdparty/linux.git/commit
ice: do switchdev slow-path Rx using PF VSI
authorMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
Fri, 1 Mar 2024 11:54:13 +0000 (12:54 +0100)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Mon, 25 Mar 2024 20:08:47 +0000 (13:08 -0700)
commit44ba608db50970dbb7eae1dca13ebcbf9485b4e7
tree8d1e57fcd08618e9bc6327a3427efb41c77c5deb
parent6235cb6e5b0de0717a1055740f6fd83a28531193
ice: do switchdev slow-path Rx using PF VSI

Add an ICE_RX_FLAG_MULTIDEV flag to Rx ring.

If it is set try to find correct port representor. Do it based on
src_vsi value stored in flex descriptor. Ids of representor pointers
stored in xarray are equal to corresponding src_vsi value. Thanks to
that we can directly get correct representor if we have src_vsi value.

Set multidev flag during ring configuration.

If the mode is switchdev, change the ring descriptor to the one that
contains src_vsi value.

PF netdev should be reconfigured, do it by calling ice_down() and
ice_up() if the netdev was up before configuring switchdev.

Reviewed-by: Marcin Szycik <marcin.szycik@linux.intel.com>
Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_base.c
drivers/net/ethernet/intel/ice/ice_eswitch.c
drivers/net/ethernet/intel/ice/ice_eswitch.h
drivers/net/ethernet/intel/ice/ice_txrx.h
drivers/net/ethernet/intel/ice/ice_txrx_lib.c