linux/drivers/infiniband/hw/qib
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 Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
Makefile IB/qib: Convert opcode counters to per-context 2013-06-21 17:19:50 -07:00
qib_6120_regs.h
qib_7220_regs.h
qib_7220.h IB/qib: Eliminate 64-bit jiffies use 2012-01-03 20:52:12 -08:00
qib_7322_regs.h IB/qib: Mask hardware error during link reset 2010-07-06 14:13:20 -07:00
qib_common.h IB/qib: Improve SDMA performance 2013-08-13 11:14:34 -07:00
qib_cq.c IB/qib: Optimize CQ callbacks 2013-06-21 17:19:49 -07:00
qib_debugfs.c IB/qib: Add qp_stats debug file 2013-06-21 17:19:52 -07:00
qib_debugfs.h IB/qib: Convert opcode counters to per-context 2013-06-21 17:19:50 -07:00
qib_diag.c IB/qib: checkpatch fixes 2012-07-19 11:20:04 -07:00
qib_dma.c
qib_driver.c IB/qib: Convert opcode counters to per-context 2013-06-21 17:19:50 -07:00
qib_eeprom.c IB/qib: checkpatch fixes 2012-07-19 11:20:04 -07:00
qib_file_ops.c IB/qib: Improve SDMA performance 2013-08-13 11:14:34 -07:00
qib_fs.c qib_fs: fix (some) dcache abuses 2013-11-13 08:08:19 -05:00
qib_iba6120.c IB/qib: Add DCA support 2013-06-21 17:19:38 -07:00
qib_iba7220.c IB/qib: Add DCA support 2013-06-21 17:19:38 -07:00
qib_iba7322.c IB/qib: Fix txselect regression 2013-11-08 14:43:12 -08:00
qib_init.c IB/qib: Make qib_driver static 2013-08-13 11:14:51 -07:00
qib_intr.c IB/qib: checkpatch fixes 2012-07-19 11:20:04 -07:00
qib_keys.c IB/qib: Fix lockdep splat in qib_alloc_lkey() 2013-06-04 17:05:20 -07:00
qib_mad.c IB/qib: Fix failure of compliance test C14-024#06_LocalPortNum 2012-09-14 10:42:32 -07:00
qib_mad.h IB/qib: Fix checkpatch __packed warnings 2013-11-08 14:43:12 -08:00
qib_mmap.c
qib_mr.c IB/qib: RCU locking for MR validation 2012-07-08 18:05:19 -07:00
qib_pcie.c IB/qib: Drop qib_tune_pcie_caps() and qib_tune_pcie_coalesce() return values 2013-10-04 14:30:19 -06:00
qib_pio_copy.c
qib_qp.c IB/core: Ethernet L2 attributes in verbs/cm structures 2014-01-14 14:20:54 -08:00
qib_qsfp.c IB/qib: Fix over-scheduling of QSFP work 2011-11-28 12:17:33 -08:00
qib_qsfp.h IB/qib: Eliminate 64-bit jiffies use 2012-01-03 20:52:12 -08:00
qib_rc.c IB/qib: Avoid returning EBUSY from MR deregister 2012-07-08 18:05:19 -07:00
qib_ruc.c IB/qib: Avoid returning EBUSY from MR deregister 2012-07-08 18:05:19 -07:00
qib_sd7220.c firmware,IB/qib: revert firmware file move 2013-04-05 12:19:39 -07:00
qib_sdma.c IB/qib: Improve SDMA performance 2013-08-13 11:14:34 -07:00
qib_srq.c RDMA/core: Add SRQ type field 2011-10-13 09:13:26 -07:00
qib_sysfs.c IB/qib: Correct qib_verbs_register_sysfs() error handling 2013-04-16 23:04:36 -07:00
qib_twsi.c IB/qib: checkpatch fixes 2012-07-19 11:20:04 -07:00
qib_tx.c IB/qib: Optimize pio ack buffer allocation 2012-05-14 12:37:03 -07:00
qib_uc.c IB/qib: Avoid returning EBUSY from MR deregister 2012-07-08 18:05:19 -07:00
qib_ud.c IB/qib: Avoid returning EBUSY from MR deregister 2012-07-08 18:05:19 -07:00
qib_user_pages.c mm: distinguish between mlocked and pinned pages 2011-10-31 17:30:46 -07:00
qib_user_sdma.c IB/qib: Convert qib_user_sdma_pin_pages() to use get_user_pages_fast() 2013-11-08 14:43:11 -08:00
qib_user_sdma.h
qib_verbs_mcast.c
qib_verbs.c IB/qib: Convert opcode counters to per-context 2013-06-21 17:19:50 -07:00
qib_verbs.h IB/qib: Fix checkpatch __packed warnings 2013-11-08 14:43:12 -08:00
qib_wc_ppc64.c
qib_wc_x86_64.c IB/qib: checkpatch fixes 2012-07-19 11:20:04 -07:00
qib.h IB/qib: Make qib_driver static 2013-08-13 11:14:51 -07:00