1. 24 7月, 2020 1 次提交
    • J
      sfc: convert to new udp_tunnel infrastructure · 205a55f4
      Jakub Kicinski 提交于
      Check MC_CMD_DRV_ATTACH_EXT_OUT_FLAG_TRUSTED, before setting
      the info, which will hopefully protect us from -EPERM errors
      the previous code was gracefully ignoring. Ed reports this
      is not the 100% correct bit, but it's the best approximation
      we have. Shared code reports the port information back to user
      space, so we really want to know what was added and what failed.
      Ignoring -EPERM is not an option.
      
      The driver does not call udp_tunnel_get_rx_info(), so its own
      management of table state is not really all that problematic,
      we can leave it be. This allows the driver to continue with its
      copious table syncing, and matching the ports to TX frames,
      which it will reportedly do one day.
      
      Leave the feature checking in the callbacks, as the device may
      remove the capabilities on reset.
      
      Inline the loop from __efx_ef10_udp_tnl_lookup_port() into
      efx_ef10_udp_tnl_has_port(), since it's the only caller now.
      
      With new infra this driver gains port replace - when space frees
      up in a full table a new port will be selected for offload.
      Plus efx will no longer sleep in an atomic context.
      
      v2:
       - amend the commit message about TRUSTED not being 100%
       - add TUNNEL_ENCAP_UDP_PORT_ENTRY_INVALID to mark unsed
         entries
      Signed-off-by: NJakub Kicinski <kuba@kernel.org>
      Acked-By: NEdward Cree <ecree@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      205a55f4
  2. 23 7月, 2020 39 次提交