[PATCH RFC v2 3/3] nvme-rdma: use rdma_reject_msg() to log connection rejects
Steve Wise
swise at opengridcomputing.com
Sat Oct 22 09:12:11 PDT 2016
>
> On Thu, Oct 20, 2016 at 03:40:29PM -0700, Steve Wise wrote:
> > @@ -1237,18 +1237,22 @@ out_destroy_queue_ib:
> > static int nvme_rdma_conn_rejected(struct nvme_rdma_queue *queue,
> > struct rdma_cm_event *ev)
> > {
> > + struct rdma_cm_id *cm_id = queue->cm_id;
> > + int rdma_status = ev->status;
> > + short nvme_status = -1;
> > +
> > + if (rdma_consumer_reject(cm_id, rdma_status) &&
> > + ev->param.conn.private_data_len) {
> > struct nvme_rdma_cm_rej *rej =
> > (struct nvme_rdma_cm_rej *)ev-
> >param.conn.private_data;
>
> Given the nasty casting issues in the current RDMA/CM API maybe we should
> actually expand the scope of the rdma_consumer_reject helper to include
> the above check, e.g. check that there is a private data len and then
> return a pointer to the private data?
An application could reject and not provide private data, so I think we need
3 helpers (so far):
rdma_reject_msg() - protocol reject reason string
rdma_is_consumer_reject() - true if the peer consumer/ulp rejected
rdma_consumer_reject_data() - ptr to any private data
Sound good?
More information about the Linux-nvme
mailing list