linux/drivers/net/ethernet/mellanox/mlx4
Jack Morgenstein 7b8157bedc mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV
Separate flow steering capability detection from the decision to activate.

For the master (and for native), detect the flow steering capability
in mlx4_dev_cap, but activate the appropriate steering type in a new
function choose_flow_steering() based on detected data.

For VFs, activate flow steering based on what was actually activated
by the master, where that info is obtained via QUERY_HCA. This fixes
the current VF detection which is wrongly based on QUERY_DEV_CAP.

Also, for SR-IOV mode, if flow steering may be activated, do so only
if the max number of QPs per rule is sufficient to satisfy one
subscription per VF.  If not, fall back to B0 mode. This is needed to
serve registrations done by L2 network drivers such as mlx4_en and
IPoIB when the network stack attempts to join to multicast groups such
as all-hosts or the IPoIB broadcast group.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2012-12-19 11:47:14 -08:00
..
Kconfig mlx4_en: Remove remnants of LRO support 2012-11-19 19:13:59 -05:00
Makefile net/mlx4_en: DCB QoS support 2012-04-05 05:08:04 -04:00
alloc.c mlx4_core: Change bitmap allocator to work in round-robin fashion 2012-05-14 13:44:38 -07:00
catas.c mlx4: Add support for EEH error recovery 2012-07-25 15:24:13 -07:00
cmd.c mlx4_core: Fix potential deadlock in mlx4_eq_int() 2012-11-29 12:14:54 -08:00
cq.c mlx4_core: removed function index from vf. 2012-01-22 15:08:43 -05:00
en_cq.c mlx4: 64-byte CQE/EQE support 2012-11-26 10:19:17 -08:00
en_dcb_nl.c net/mlx4_en: Can set maxrate only for TC0 2012-11-28 11:15:32 -05:00
en_ethtool.c net/mlx4_en: Add support for destination MAC in steering rules 2012-12-12 13:02:30 -05:00
en_main.c net/mlx4_en: Set number of rx/tx channels using ethtool 2012-12-02 20:22:59 -05:00
en_netdev.c First batch of InfiniBand/RDMA changes for the 3.8 merge window: 2012-12-13 19:19:09 -08:00
en_port.c mlx4: Ethernet port management modifications 2011-12-13 13:56:07 -05:00
en_port.h net/mlx4_core: set port QoS attributes 2012-04-05 05:08:03 -04:00
en_resources.c net/mlx4_en: Force user priority by QP attribute 2012-04-05 05:08:03 -04:00
en_rx.c First batch of InfiniBand/RDMA changes for the 3.8 merge window: 2012-12-13 19:19:09 -08:00
en_selftest.c mlx4_core: Add "native" argument to mlx4_cmd and its callers (where needed) 2011-12-13 13:56:05 -05:00
en_tx.c First batch of InfiniBand/RDMA changes for the 3.8 merge window: 2012-12-13 19:19:09 -08:00
eq.c First batch of InfiniBand/RDMA changes for the 3.8 merge window: 2012-12-13 19:19:09 -08:00
fw.c mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV 2012-12-19 11:47:14 -08:00
fw.h mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV 2012-12-19 11:47:14 -08:00
icm.c mlx4_core: Fix integer overflows so 8TBs of memory registration works 2012-09-13 17:52:02 -07:00
icm.h mlx4_core: Fix integer overflows so 8TBs of memory registration works 2012-09-13 17:52:02 -07:00
intf.c mlx4: Use port management change event instead of smp_snoop 2012-07-10 09:47:10 -07:00
main.c mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV 2012-12-19 11:47:14 -08:00
mcg.c net/mlx4_core: Looking for promiscuous entries on the correct port 2012-09-07 12:55:59 -04:00
mlx4.h mlx4_core: Clean up enabling of SENSE_PORT for older (ConnectX-1/-2) HCAs 2012-10-01 02:10:44 -07:00
mlx4_en.h First batch of InfiniBand/RDMA changes for the 3.8 merge window: 2012-12-13 19:19:09 -08:00
mr.c mlx4_core: Clean up buddy bitmap allocation 2012-08-15 21:05:27 -07:00
pd.c net/mlx4_core: Add XRC domains and counters to resource tracker 2012-05-16 00:56:59 -04:00
port.c net/mlx4_core: Adjustments to SET_PORT for IB SR-IOV 2012-09-30 20:33:40 -07:00
profile.c mlx4_core: Fix integer overflow issues around MTT table 2012-08-15 21:05:26 -07:00
qp.c mlx4: Modify proxy/tunnel QP mechanism so that guests do no calculations 2012-09-30 20:33:43 -07:00
reset.c mlx4: Use PCI Express Capability accessors 2012-08-23 10:11:13 -06:00
resource_tracker.c mlx4_core: Fix error flow in the flow steering wrapper 2012-12-19 09:44:00 -08:00
sense.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
srq.c mlx4_core: removed function index from vf. 2012-01-22 15:08:43 -05:00