aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRon Livne <ronli@voltaire.com>2008-07-15 02:48:48 -0400
committerRoland Dreier <rolandd@cisco.com>2008-07-15 02:48:48 -0400
commit47ee1b9f2e7bf73950602efe0b74fa1a8481f222 (patch)
tree9ae4012272ccb5524a2826a1593db12dd525bae3
parent14cc180f7b032f8484c1a3d0533b1129ffe307fd (diff)
IB/core: Add support for multicast loopback blocking
This patch also adds a creation flag for QPs, IB_QP_CREATE_MULTICAST_BLOCK_LOOPBACK, which when set means that multicast sends from the QP to a group that the QP is attached to will not be looped back to the QP's receive queue. This can be used to save receive resources when a consumer does not want a local copy of multicast traffic; for example IPoIB must waste CPU time throwing away such local copies of multicast traffic. This patch also adds a device capability flag that shows whether a device supports this feature or not. Signed-off-by: Ron Livne <ronli@voltaire.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--include/rdma/ib_verbs.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 10ebaaae0161..07b41e05565a 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -104,6 +104,7 @@ enum ib_device_cap_flags {
104 IB_DEVICE_UD_IP_CSUM = (1<<18), 104 IB_DEVICE_UD_IP_CSUM = (1<<18),
105 IB_DEVICE_UD_TSO = (1<<19), 105 IB_DEVICE_UD_TSO = (1<<19),
106 IB_DEVICE_MEM_MGT_EXTENSIONS = (1<<21), 106 IB_DEVICE_MEM_MGT_EXTENSIONS = (1<<21),
107 IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1<<22),
107}; 108};
108 109
109enum ib_atomic_cap { 110enum ib_atomic_cap {
@@ -555,7 +556,8 @@ enum ib_qp_type {
555}; 556};
556 557
557enum ib_qp_create_flags { 558enum ib_qp_create_flags {
558 IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0, 559 IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0,
560 IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK = 1 << 1,
559}; 561};
560 562
561struct ib_qp_init_attr { 563struct ib_qp_init_attr {