> > > > + if (ib_is_opa_gid(&req_msg->primary_local_gid) > && > > > > + rdma_cap_opa_ah(work->port->cm_dev- > >ib_device, > > > > + work->port->port_num)) > > > > > > Why isn't ib_is_opa_gid enough? > > > > It may be in reality, but that implies that IB and OPA are sharing > GID space definitions. > > I understood from Ira's presentation [1] that it is the case. These are distinct addressing spaces. OPA may be copying the IB spec GID definitions (similar to GIDs looking like IPv6 addresses), but there technically doesn't have to be any agreement between the IB spec and OPA. I believe OPA has taken care not to use values that will or are likely to conflict with IB spec, so I think it comes down to what level of assumptions are we willing to accept in the code. I'd like to see explicit checks, like what was done in the MAD area. > And doesn't it need to be "||" and not "&&"? && should be correct. > > It looks like rdma_cap_opa_ah() is basically being used as a check > to see if the code is handling the OPA CM protocol or IB CM protocol. > (Even though the two protocols are nearly identical). > > Where can I read the difference between these protocols? I don't know if the OPA CM (or MAD) protocol is published anywhere. I haven't read the details myself. - Sean -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html