ULP how to distinguish ConnectX-5 is IB or ROCE?

Each ULP module registers an ib_client,When the CX5-ROCE card is loaded, you do not want the add () function to be called, or do nothing in the add () function, and when you load a CX5-IB card, you want to load it as expected。

Originally hoped that VERBS rdma_port_get_link_layer can identify the link layer for IB or ETH,however, the implementation of this interface to determine the type of link layer based on the type of transport layer,both RoCE(v1 and v2) and Infiniband use IBTA transport, anything was wrong about the VERBS?