1. 24 Sep, 2016 7 commits
    • David S. Miller's avatar
      Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue · 834d9649
      David S. Miller authored
      Jeff Kirsher says:
      
      ====================
      40GbE Intel Wired LAN Driver Updates 2016-09-22
      
      This series contains updates to i40e and i40evf only.
      
      Sridhar fixes link state event handling by updating the carrier and
      starts/stops the Tx queues based on the link state notification from PF.
      
      Brady fixes an issue where a user defined RSS hash key was not being
      set because a user defined indirection table is not supplied when changing
      the hash key, so if an indirection table is not supplied now, then a
      default one is created and the hash key is correctly set.  Also fixed
      an issue where when NPAR was enabled, we were still using pf->mac_seid
      to perform the dump port query. Instead, go through the VSI to determine
      the correct ID to use in either case.
      
      Mitch provides one fix where a conditional return code was reversed, so
      he does a "switheroo" to fix the issue.
      
      Carolyn has two fixes, first fixes an issue in the virt channel code,
      where a return code was not checked for NULL when applicable.  Second,
      fixes an issue where we were byte swapping the port parameter, then
      byte swapping it again in function execution.
      
      Colin Ian King fixes a potential NULL pointer dereference.
      
      Bimmy changes up i40evf_up_complete() to be void since it always returns
      success anyways, which allows cleaning up of code which checked the
      return code from this function.
      
      Alex fixed an issue where the driver was incorrectly assuming that we
      would always be pulling no more than 1 descriptor from each fragment.
      So to correct this, we just need to make certain to test all the way to
      the end of the fragments as it is possible for us to span 2 descriptors
      in the block before us so we need to guarantee that even the last 6
      descriptors have enough data to fill a full frame.
      
      v2: dropped patches 1-3, 10 and 12 from the original series since Or
          Gerlitz pointed out several areas of improvement in the implementation
          of the VF Port representor netdev.  Sridhar is re-working the series
          for later submission.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      834d9649
    • David S. Miller's avatar
      Merge branch 'mlx4-vf-vlan-802.1ad' · 1ad0751d
      David S. Miller authored
      Tariq Toukan says:
      
      ====================
      mlx4 VF vlan protocol 802.1ad support
      
      This patchset adds VF VLAN protocol 802.1ad support to the
      mlx4 driver.
      We extended the VF VLAN API with an additional parameter
      for VLAN protocol, and kept 802.1Q as drivers' default.
      
      We prepared a userspace support (ip link tool).
      The patch will be submitted to the iproute2 mailing list.
      
      The ip link tool VF VLAN protocol parameter is optional (default: 802.1Q).
      A configuration command of VF VLAN that is used prior to this patchset
      will result in same functionality as today's (VST with VLAN protocol 802.1Q).
      
      The series generated against net-next commit:
      688dc536 "Merge branch 'mlx4-next'"
      
      All maintainers of the modified modules are in cc.
      
      v3:
        Expand the UAPI to a nested list to support future use-cases.
        Use a more formal feature name.
      
      v2:
        Drop patch 4 ("net/mlx4_core: Add an option to configure SVLAN TPID").
        Patch 1/5: Update commit log.
        2-3/5: Split patch 2 into two patches, to separate between changes
               done in mlx4_core and the ones done in mlx4_en.
        4-5/5: Split patch 3 into two patches, to separate between the
               addition of a protocol parameter and the actual implementation
      	 in mlx4_en.
      	 In addition, we implement a handshake mechanism so PF and VF
      	 exchange their VST QinQ support capability.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1ad0751d
    • Moshe Shemesh's avatar
      net/mlx4: Add VF vlan protocol 802.1ad support · b42959dc
      Moshe Shemesh authored
      Move the vf to VST 802.1ad mode (mlx4 VST QinQ mode) by setting vf vlan
      protocol to 802.1ad.
      VST 802.1ad mode in mlx4, is used for STAG strip/insertion by PF, while
      the CTAG is set by the VF.
      Read current vlan protocol as part of the vf configuration state.
      
      Upon setting vf vlan protocol to 802.1ad, we use a mechanism of handshake
      to verify that both the vf and the pf driver version support it.
      The handshake uses the command QUERY_FUNC_CAP:
      - The vf sets a pre-defined support bit in input modifier.
      - A pf that supports the feature sends the request to the vf through a
        pre-defined field in the output mailbox.
      - In case vf does not support the feature, the pf will fail the control
        command (in this case, IP link tool command to set the vf vlan
        protocol to 802.1ad).
      
      No change in VST 802.1Q mode.
      Signed-off-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b42959dc
    • Moshe Shemesh's avatar
      net: Update API for VF vlan protocol 802.1ad support · 79aab093
      Moshe Shemesh authored
      Introduce new rtnl UAPI that exposes a list of vlans per VF, giving
      the ability for user-space application to specify it for the VF, as an
      option to support 802.1ad.
      We adjusted IP Link tool to support this option.
      
      For future use cases, the new UAPI supports multiple vlans. For now we
      limit the list size to a single vlan in kernel.
      Add IFLA_VF_VLAN_LIST in addition to IFLA_VF_VLAN to keep backward
      compatibility with older versions of IP Link tool.
      
      Add a vlan protocol parameter to the ndo_set_vf_vlan callback.
      We kept 802.1Q as the drivers' default vlan protocol.
      Suitable ip link tool command examples:
        Set vf vlan protocol 802.1ad:
          ip link set eth0 vf 1 vlan 100 proto 802.1ad
        Set vf to VST (802.1Q) mode:
          ip link set eth0 vf 1 vlan 100 proto 802.1Q
        Or by omitting the new parameter
          ip link set eth0 vf 1 vlan 100
      Signed-off-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79aab093
    • Moshe Shemesh's avatar
      net/mlx4_en: Disable vlan HW acceleration when in VF vlan protocol 802.1ad mode · 0815fe3a
      Moshe Shemesh authored
      In Ethernet VF, disable vlan HW acceleration on VF
      while it is set to VF vlan protocol 802.1ad mode.
      Signed-off-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0815fe3a
    • Moshe Shemesh's avatar
      net/mlx4_core: Preparation for VF vlan protocol 802.1ad · 7c3d21c8
      Moshe Shemesh authored
      Check device capability to support VF vlan protocol 802.1ad mode.
      Add vport attribute vlan protocol.
      Init vport vlan protocol by default to 802.1Q.
      Add update QP support for VF vlan protocol 802.1ad.
      Add func capability vlan_offload_disable to disable all
      vlan HW acceleration on VF while the VF is set to VF vlan protocol
      802.1ad mode.
      No change in VF vlan protocol 802.1Q (VST) mode.
      Signed-off-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7c3d21c8
    • Moshe Shemesh's avatar
      net/mlx4_core: Fix QUERY FUNC CAP flags · c9cc599a
      Moshe Shemesh authored
      Separate QUERY_FUNC_CAP flags0 from QUERY_FUNC_CAP flags, as 'flags' is
      already used for another set of flags in FUNC CAP, while phv bit should be
      part of a different set of flags.
      Remove QUERY_FUNC_CAP port_flags field, as it is not in use.
      
      Fixes: 77fc29c4 ('net/mlx4_core: Preparations for 802.1ad VLAN support')
      Fixes: 5cc914f1 ('mlx4_core: Added FW commands and their wrappers for supporting SRIOV')
      Signed-off-by: default avatarMoshe Shemesh <moshe@mellanox.com>
      Signed-off-by: default avatarTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c9cc599a
  2. 23 Sep, 2016 33 commits