WSL2-Linux-Kernel/drivers/infiniband/hw/ehca
Matan Barak dd5f03beb4 IB/core: Ethernet L2 attributes in verbs/cm structures
This patch add the support for Ethernet L2 attributes in the
verbs/cm/cma structures.

When dealing with L2 Ethernet, we should use smac, dmac, vlan ID and priority
in a similar manner that the IB L2 (and the L4 PKEY) attributes are used.

Thus, those attributes were added to the following structures:

* ib_ah_attr - added dmac
* ib_qp_attr - added smac and vlan_id, (sl remains vlan priority)
* ib_wc - added smac, vlan_id
* ib_sa_path_rec - added smac, dmac, vlan_id
* cm_av - added smac and vlan_id

For the path record structure, extra care was taken to avoid the new
fields when packing it into wire format, so we don't break the IB CM
and SA wire protocol.

On the active side, the CM fills. its internal structures from the
path provided by the ULP.  We add there taking the ETH L2 attributes
and placing them into the CM Address Handle (struct cm_av).

On the passive side, the CM fills its internal structures from the WC
associated with the REQ message.  We add there taking the ETH L2
attributes from the WC.

When the HW driver provides the required ETH L2 attributes in the WC,
they set the IB_WC_WITH_SMAC and IB_WC_WITH_VLAN flags. The IB core
code checks for the presence of these flags, and in their absence does
address resolution from the ib_init_ah_from_wc() helper function.

ib_modify_qp_is_ok is also updated to consider the link layer. Some
parameters are mandatory for Ethernet link layer, while they are
irrelevant for IB.  Vendor drivers are modified to support the new
function signature.

Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2014-01-14 14:20:54 -08:00
..
Kconfig IB: Use menuconfig for InfiniBand menu 2007-07-09 20:12:26 -07:00
Makefile IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
ehca_av.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ehca_classes.h module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
ehca_classes_pSeries.h IB/ehca: Remove superfluous bitmasks from QP control block 2009-06-03 13:25:42 -07:00
ehca_cq.c IB/ehca: convert to idr_alloc() 2013-02-27 19:10:16 -08:00
ehca_eq.c IB/ehca: Remove uses of virt_to_abs() and abs_to_virt() 2012-09-05 15:18:45 +10:00
ehca_hca.c IB: Use central enum for speed instead of hard-coded values 2012-03-05 09:25:16 -08:00
ehca_irq.c infiniband: ehca: Fix compiler warnings 2012-08-20 08:11:04 -07:00
ehca_irq.h infiniband: Ehca: Use hotplug thread infrastructure 2012-08-13 17:01:08 +02:00
ehca_iverbs.h IB/core: Add "type 2" memory windows support 2013-02-21 11:51:45 -08:00
ehca_main.c Main batch of InfiniBand/RDMA changes for 3.11 merge window: 2013-07-13 12:57:21 -07:00
ehca_mcast.c IB/ehca: Fix printk format warnings from u64 type change 2009-01-16 14:55:28 -08:00
ehca_mrmw.c IB/core: Add "type 2" memory windows support 2013-02-21 11:51:45 -08:00
ehca_mrmw.h IB/ehca: Tolerate dynamic memory operations before driver load 2009-06-22 22:18:51 -07:00
ehca_pd.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ehca_qes.h tree-wide: Assorted spelling fixes 2010-02-09 11:13:56 +01:00
ehca_qp.c IB/core: Ethernet L2 attributes in verbs/cm structures 2014-01-14 14:20:54 -08:00
ehca_reqs.c IB/ehca: Remove uses of virt_to_abs() and abs_to_virt() 2012-09-05 15:18:45 +10:00
ehca_sqp.c IB/ehca: Require in_wc in process_mad() 2010-02-19 11:13:39 -08:00
ehca_tools.h IB/ehca: Remove uses of virt_to_abs() and abs_to_virt() 2012-09-05 15:18:45 +10:00
ehca_uverbs.c mm: kill vma flag VM_RESERVED and mm->reserved_vm counter 2012-10-09 16:22:19 +09:00
hcp_if.c powerpc: Move get_longbusy_msecs into hvcall.h and remove duplicate function 2012-11-15 15:08:07 +11:00
hcp_if.h fix typos concerning "initiali[zs]e" 2010-06-16 18:05:05 +02:00
hcp_phyp.c IB/ehca: Catch failing ioremap() 2010-07-21 12:46:29 -07:00
hcp_phyp.h IB/ehca: Catch failing ioremap() 2010-07-21 12:46:29 -07:00
hipz_fns.h IB/ehca: Add driver for IBM eHCA InfiniBand adapters 2006-09-22 15:22:22 -07:00
hipz_fns_core.h IB/ehca: Fix warnings issued by checkpatch.pl 2007-07-17 18:37:40 -07:00
hipz_hw.h IB/ehca: Serialize HCA-related hCalls if necessary 2007-12-12 14:09:43 -08:00
ipz_pt_fn.c treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks 2013-08-20 13:06:40 +02:00
ipz_pt_fn.h IB/ehca: Move extern declarations from .c files to .h files 2007-07-28 21:47:53 -07:00