IB/core: Support for CMA multicast join flags
authorAlex Vesker <valex@mellanox.com>
Wed, 6 Jul 2016 13:36:35 +0000 (16:36 +0300)
committerDoug Ledford <dledford@redhat.com>
Thu, 4 Aug 2016 01:06:46 +0000 (21:06 -0400)
commitab15c95a17b3fe8c0e01bb7ce1dd0b657598eb61
tree980ba25528b581526fe924f80516038d7697bd2b
parent3d3fd74239db7a6f7e07a762f5ee7140215aafc5
IB/core: Support for CMA multicast join flags

Added UCMA and CMA support for multicast join flags. Flags are
passed using UCMA CM join command previously reserved fields.
Currently supporting two join flags indicating two different
multicast JoinStates:

1. Full Member:
   The initiator creates the Multicast group(MCG) if it wasn't
   previously created, can send Multicast messages to the group
   and receive messages from the MCG.

2. Send Only Full Member:
   The initiator creates the Multicast group(MCG) if it wasn't
   previously created, can send Multicast messages to the group
   but doesn't receive any messages from the MCG.

   IB: Send Only Full Member requires a query of ClassPortInfo
       to determine if SM/SA supports this option. If SM/SA
       doesn't support Send-Only there will be no join request
       sent and an error will be returned.

   ETH: When Send Only Full Member is requested no IGMP join
will be sent.

Signed-off-by: Alex Vesker <valex@mellanox.com>
Reviewed by: Hal Rosenstock <hal@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/core/cma.c
drivers/infiniband/core/multicast.c
drivers/infiniband/core/ucma.c
include/rdma/ib_sa.h
include/rdma/rdma_cm.h
include/uapi/rdma/rdma_user_cm.h