Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5042a73d authored by Steve Wise's avatar Steve Wise Committed by Doug Ledford
Browse files

rdma_cm: add rdma_is_consumer_reject() helper function



Return true if the peer consumer application rejected the
connection attempt.

Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarSteve Wise <swise@opengridcomputing.com>
Reviewed-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent 77a5db13
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
@@ -115,6 +115,19 @@ const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
}
}
EXPORT_SYMBOL(rdma_reject_msg);
EXPORT_SYMBOL(rdma_reject_msg);


bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason)
{
	if (rdma_ib_or_roce(id->device, id->port_num))
		return reason == IB_CM_REJ_CONSUMER_DEFINED;

	if (rdma_protocol_iwarp(id->device, id->port_num))
		return reason == -ECONNREFUSED;

	WARN_ON_ONCE(1);
	return false;
}
EXPORT_SYMBOL(rdma_is_consumer_reject);

static void cma_add_one(struct ib_device *device);
static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device, void *client_data);
static void cma_remove_one(struct ib_device *device, void *client_data);


+7 −0
Original line number Original line Diff line number Diff line
@@ -395,5 +395,12 @@ __be64 rdma_get_service_id(struct rdma_cm_id *id, struct sockaddr *addr);
 */
 */
const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
						int reason);
						int reason);
/**
 * rdma_is_consumer_reject - return true if the consumer rejected the connect
 *                           request.
 * @id: Communication identifier that received the REJECT event.
 * @reason: Value returned in the REJECT event status field.
 */
bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason);


#endif /* RDMA_CM_H */
#endif /* RDMA_CM_H */