1. 08 Jul, 2019 1 commit
    • Max Gurtovoy's avatar
      IB/mlx5: Implement VHCA tunnel mechanism in DEVX · b6142608
      Max Gurtovoy authored
      This mechanism will allow function-A to perform operations "on behalf" of
      function-B via tunnel object. Function-A will have privileges for creating
      and using this tunnel object.
      
      For example, in the device emulation feature presented in Bluefield-1 SoC,
      using device emulation capability, one can present NVMe function to the
      host OS.
      
      Since the NVMe function doesn't have a normal command interface to the HCA
      HW, here is a need to create a channel that will be able to issue commands
      "on behalf" of this function.
      
      This channel is the VHCA_TUNNEL general object. The emulation software
      will create this tunnel for every managed function and issue commands via
      devx general cmd interface using the appropriate tunnel ID. When devX
      context will receive a command with non-zero vhca_tunnel_id, it will pass
      the command as-is down to the HCA.
      
      All the validation, security and resource tracking of the commands and the
      created tunneled objects is in the responsibility of the HCA FW. When a
      VHCA_TUNNEL object destroyed, the device will issue an internal
      FLR (function level reset) to the emulated function associated with this
      tunnel. This will destroy all the created resources using the tunnel
      mechanism.
      Signed-off-by: default avatarMax Gurtovoy <maxg@mellanox.com>
      Reviewed-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
      b6142608
  2. 07 Jul, 2019 1 commit
    • Max Gurtovoy's avatar
      net/mlx5: Introduce VHCA tunnel device capability · 1dd7382b
      Max Gurtovoy authored
      When using the device emulation feature (introduced in Bluefield-1 SOC),
      a privileged function (the device emulation manager) will be able to
      create a channel to execute commands on behalf of the emulated function.
      
      This channel will be a general object of type VHCA_TUNNEL that will have
      a unique ID for each emulated function. This ID will be passed in each
      cmd that will be issued by the emulation SW in a well known offset in
      the command header.
      
      This channel is needed since the emulated function doesn't have a normal
      command interface to the HCA HW, but some basic configuration for that
      function is needed (e.g. initialize and enable the HCA). For that matter,
      a specific command-set was defined and only those commands will be issued
      by the HCA.
      Signed-off-by: default avatarMax Gurtovoy <maxg@mellanox.com>
      Reviewed-by: default avatarYishai Hadas <yishaih@mellanox.com>
      Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
      1dd7382b
  3. 04 Jul, 2019 1 commit
  4. 03 Jul, 2019 12 commits
  5. 01 Jul, 2019 18 commits
  6. 26 Jun, 2019 7 commits