Re: [PATCH] IB/mad: In validate_mad, validate CM method and attribute

Hal Rosenstock
2015-11-13T19:12:24Z

IOn 11/12/2015 5:13 PM, Jason Gunthorpe wrote:
> On Thu, Nov 12, 2015 at 08:30:55PM +0000, Hefty, Sean wrote:
>>>> + /* CM attributes other than ClassPortInfo only use Send method
>>> */
>>>> + if (mad_hdr->mgmt_class == IB_MGMT_CLASS_CM) {
>>>> + if (mad_hdr->attr_id != IB_MGMT_CLASSPORTINFO_ATTR_ID) {
>>>> + if (mad_hdr->method != IB_MGMT_METHOD_SEND)
>>>> + goto out;
>>>> + } else if (mad_hdr->method != IB_MGMT_METHOD_GET_RESP)
>>>> + goto out;
>>>> + }
>>>
>>> Doesn't this invalidate a CM Get(ClassPortInfo) mad?
>>
>> I believe this does.

My bad. That wasn't my intention.

>> I think you could remove the else if clause
>> and let the received MAD get passed to the CM. It would be dropped
>> there as unsupported. The net result is likely the same.

I'm dropping else clause for CM CPI validation in next version of this
patch.

> IIRC responding to Get(CPI) is mandatory?

Yes it's mandatory to support CPI (and get method of CPI) on a class.
However, it's not currently done in CM.

-- Hal

> Jason