net/mlx4_core: Translate guest B0 steering rules to DMFS
authorHadar Hen Zion <hadarh@mellanox.com>
Thu, 11 Apr 2013 01:56:41 +0000 (01:56 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Apr 2013 20:12:40 +0000 (16:12 -0400)
commitfab1e24ab84a0ca2f12599b5d4349576d9a3664f
tree60ba617a70e5cf23f15159125794f26b81d00b8d
parentfd91c49fb047a4a28c694982548aee7bea9c365b
net/mlx4_core: Translate guest B0 steering rules to DMFS

The different steering modes are global to the device, with DMFS
being introduced after SRIOV was merged. Hence, SRIOV guests running
legacy / older Linux kernels or non-Linux drivers may provide
B0 steering directives when the hypervisor is using DMFS and fail.

Under B0 only L2 steering rules are allowed, hence B0 is a subset of DMFS.
Use this fact to enable such legacy guests to run by modifying the SRIOV
B0 steering wrapper to translate guest B0 directives to DMFS ones when
the device uses DMFS. The translated B0 rule has to be kept in the
resource tracker as a B0 object to allow for lookup in case of detach.

Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/resource_tracker.c