[openib-general] new IB CM reject reason
Michael S. Tsirkin
mst at mellanox.co.il
Thu Feb 1 11:06:24 PST 2007
> >Are we talking about code 28? My spec lists it as "consumer reject".
> >The meaning of *private data* is consumer defined.
> >
> > The consumer decided to reject the communica-
> > tion or EE context setup establishment attempt for
> > reasons other than those listed in the other REJ
> > codes. Typically this happens based upon infor-
> > mation being conveyed in the PrivateData field of
> > a message. It can also happen because the Con-
> > sumer decided for reasons unrelated to any CM
> > message it received to terminate the communica-
> > tion or EE context setup establishment attempt.
> > This would therefore be the appropriate Reason
> > code to use if the Consumer decided to destroy
> > the QP or EEC in the midst of the communication
> > or EE context setup establishment attempt.
> >
> >So this really *does* seem to be what spec intended for exactly our case.
>
> I disagree. This is for the CM consumer, not the CM itself. In this case, the
> CM must issue a reject that will be delivered to the remote application. The CM
> has no idea what private data format the remote application expects.
Since we disagree about spec reading, would you raise this in the
relevant WG?
> >Now, I do not really object to inventing new rejection reasons: for example,
> >maybe we can invent one that lets us stick the errno value in private data
> >somehow - but it's not like there's no solution inside the spec,
> >and inventing a whole new reject reason just for userspace consumers
> >seems like a narrow approach to me.
>
> Unless we start enforcing a policy that kernel consumers must issue a reject
> before destroying a cm_id (while in the connecting phase), they have this
> problem.
>
> My claim is that the reject reasons are insufficient to cover all possible
> conditions, and adding a generic 'other' reject reason solves this. Using
> consumer defined, which is what is done today, is incorrect. As an alternate
> solution, we could also not send any reject and just let the connection time out
> on the remote side.
And my claim is that you should define private data format to go with this
other reason otherwise you are not really solving the problem.
--
MST
More information about the general
mailing list