linux_dsm_epyc7002/drivers/infiniband/hw/mlx4
Jack Morgenstein 97982f5a91 IB/mlx4: Preparation for VFs to issue/receive SMI (QP0) requests/responses
Currently, VFs in SRIOV VFs are denied QP0 access.  The main reason
for this decision is security, since Subnet Management Datagrams
(SMPs) are not restricted by network partitioning and may affect the
physical network topology.  Moreover, even the SM may be denied access
from portions of the network by setting management keys unknown to the
SM.

However, it is desirable to grant SMI access to certain privileged
VFs, so that certain network management activities may be conducted
within virtual machines instead of the hypervisor.

This commit does the following:

1. Create QP0 tunnel QPs for all VFs.

2. Discard SMI mads sent-from/received-for non-privileged VFs in the
   hypervisor MAD multiplex/demultiplex logic.  SMI mads from/for
   privileged VFs are allowed to pass.

3. MAD_IFC wrapper changes/fixes.  For non-privileged VFs, only
   host-view MAD_IFC commands are allowed, and only for SMI LID-Routed
   GET mads.  For privileged VFs, there are no restrictions.

This commit does not allow privileged VFs as yet.  To determine if a VF
is privileged, it calls function mlx4_vf_smi_enabled().  This function
returns 0 unconditionally for now.

The next two commits allow defining and activating privileged VFs.

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>
2014-05-29 21:12:58 -07:00
..
ah.c IB/mlx4: fix unitialised variable is_mcast 2014-05-28 10:00:06 -07:00
alias_GUID.c mlx4: Use actual number of PCI functions (PF + VFs) for alias GUID logic 2014-03-25 20:48:05 -04:00
cm.c mlx4_ib: Fix SIDR support of for UD QPs under SRIOV/RoCE 2014-03-12 15:57:16 -04:00
cq.c mlx4: Implement IP based gids support for RoCE/SRIOV 2014-03-12 15:57:16 -04:00
doorbell.c IB: Refactor umem to use linear SG table 2014-03-04 10:34:28 -08:00
Kconfig IB/mlx4: Add dependency INET 2014-01-19 15:14:05 -08:00
mad.c IB/mlx4: Preparation for VFs to issue/receive SMI (QP0) requests/responses 2014-05-29 21:12:58 -07:00
main.c IB/mlx4: SET_PORT called by mlx4_ib_modify_port should be wrapped 2014-05-29 21:12:58 -07:00
Makefile IB/mlx4: Add iov directory in sysfs under the ib device 2012-09-30 20:33:39 -07:00
mcg.c mlx4: Implement IP based gids support for RoCE/SRIOV 2014-03-12 15:57:16 -04:00
mlx4_ib.h mlx4: Implement IP based gids support for RoCE/SRIOV 2014-03-12 15:57:16 -04:00
mr.c IB: Refactor umem to use linear SG table 2014-03-04 10:34:28 -08:00
qp.c IB/mlx4: Preparation for VFs to issue/receive SMI (QP0) requests/responses 2014-05-29 21:12:58 -07:00
srq.c IB/mlx4: Replace printk(KERN_yyy...) with pr_yyy(...) 2012-05-08 11:59:36 -07:00
sysfs.c net/mlx4: Adapt code for N-Port VF 2014-03-20 16:18:30 -04:00
user.h mlx4: 64-byte CQE/EQE support 2012-11-26 10:19:17 -08:00