>> +static int ucma_set_ib_path(struct ucma_context *ctx,
>> +                        struct ib_path_rec_data *path_data, size_t optlen)
>> +{
>> +    struct ib_sa_path_rec sa_path;
>> +    struct rdma_cm_event event;
>> +    int ret;
>> +
>> +    if (optlen != sizeof(*path_data))
>> +            return -EINVAL;
>> +
>> +    if (path_data->flags != IB_PATH_GMP | IB_PATH_PRIMARY |
>> +                            IB_PATH_OUTBOUND | IB_PATH_INBOUND)
>> +            return -EINVAL;
>
>This should accept an array here, to aid easing in APM support:

I agree - I thought about this after sending the patch.  This is more what I
think is needed at this point:

if ((optlen % sizeof(*path_data)) != 0) return -EINVAL;

if (number of paths > 1)
        return -ENOSYS;

if (path_data->flags != (IB_PATH_GMP | IB_PATH_PRIMARY |
                            IB_PATH_OUTBOUND | IB_PATH_INBOUND))

        return -EINVAL;

>Could you do basic APM support right now, exactly with the same
>capability as ucm has?

The rdma_cm is not coded to handle APM.  That should be a separate patch.

>
>> +enum {
>> +    IB_PATH_GMP       = 1,
>> +    IB_PATH_PRIMARY   = (1<<1),
>> +    IB_PATH_ALTERNATE = (1<<2),
>> +    IB_PATH_OUTBOUND  = (1<<3),
>> +    IB_PATH_INBOUND   = (1<<4)
>> +};
>
>I like the PATH_PRIMARY/PATH_ALTERNATE idea,
>
>But I think IB_PATH_OUTBOUND_REV is still required.

I'm not fond of the reverse idea.  Why do you think it's needed?

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to