1. 12 Dec, 2015 3 commits
  2. 03 Dec, 2015 2 commits
    • Saeed Mahameed's avatar
      net/mlx5: Introducing E-Switch and l2 table · 073bb189
      Saeed Mahameed authored
      
      
      E-Switch is the software entity that represents and manages ConnectX4
      inter-HCA ethernet l2 switching.
      
      E-Switch has its own Virtual Ports, each Vport/vNIC/VF can be
      connected to the device through a vport of an e-switch.
      
      Each e-switch is managed by one vNIC identified by
      HCA_CAP.vport_group_manager (usually it is the PF/vport[0]),
      and its main responsibility is to forward each packet to the
      right vport.
      
      e-Switch needs to manage its own l2-table and FDB tables.
      
      L2 table is a flow table that is managed by FW, it is needed for
      Multi-host (Multi PF) configuration for inter HCA switching between
      PFs.
      
      FDB table is a flow table that is totally managed by e-Switch driver,
      its main responsibility is to switch packets between e-Swtich internal
      vports and uplink vport that belong to the same.
      
      This patch introduces only e-Swtich l2 table management, FDB managemnt
      will come later when ethernet SRIOV/VFs will be enabled.
      
      preperation for ethernet sriov and l2 table management.
      
      Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      073bb189
    • Eli Cohen's avatar
      net/mlx5_core: Add base sriov support · fc50db98
      Eli Cohen authored
      
      
      This patch adds SRIOV base support for mlx5 supported devices. The same
      driver is used for both PFs and VFs; VFs are identified by the driver
      through the flag MLX5_PCI_DEV_IS_VF added to the pci table entries.
      Virtual functions are created as usual through writing a value to the
      sriov_numvs sysfs file of the PF device. Upon instantiating VFs, they will
      all be probed by the driver on the hypervisor. One can gracefully unbind
      them through /sys/bus/pci/drivers/mlx5_core/unbind.
      
      mlx5_wait_for_vf_pages() was added to ensure that when a VF dies without
      executing proper teardown, the hypervisor driver waits till all of the
      pages that were allocated at the hypervisor to maintain its operation
      are returned.
      
      In order for the VF to be operational, the PF needs to call enable_hca
      for it. This can be done before the VFs are created through a call to
      pci_enable_sriov.
      
      If the there are VFs assigned to a VMs when the driver of the PF is
      unloaded, all the VF will experience system error and PF driver unloads
      cleanly; in this case pci_disable_sriov is not called and the devices
      will show when running lspci. Once the PF driver is reloaded, it will
      sync its data structures which maintain state on its VFs.
      
      Signed-off-by: default avatarEli Cohen <eli@mellanox.com>
      Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fc50db98
  3. 04 Jun, 2015 2 commits
  4. 31 May, 2015 1 commit
    • Amir Vadai's avatar
      net/mlx5: Extend mlx5_core to support ConnectX-4 Ethernet functionality · f62b8bb8
      Amir Vadai authored
      
      
      This is the Ethernet part of the driver for the Mellanox ConnectX(R)-4
      Single/Dual-Port Adapter supporting 100Gb/s with VPI.  The driver
      extends the existing mlx5 driver with Ethernet functionality.
      
      This patch contains the driver entry points but does not include
      transmit and receive (see the previous patch in the series) routines.
      
      It also adds the option MLX5_CORE_EN to Kconfig to enable/disable the
      Ethernet functionality. Currently, Kconfig is programmed to make
      Ethernet and Infiniband functionality mutally exclusive.
      Also changed MLX5_INFINIBAND to be depandant on MLX5_CORE instead of
      selecting it, since MLX5_CORE could be selected without MLX5_INFINIBAND
      being selected.
      
      Signed-off-by: default avatarAmir Vadai <amirv@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f62b8bb8
  5. 08 Jul, 2013 1 commit