Hi Leon Romanovksy, Could I think it like below? I'm wondering how to use RDMA_CM API to make IB/RoCEv1 device work. 1) VPI provides lower layer control API for the devices which implement IB/RoCEv1/RoCEv2/iWARP 2) RDMA_CM use parts of VPI and other library API to make it convenient to use the devices which implement RoCEv2/iWARP For exmaple, rdma_get_devices do some extra things e.g. ucma_set_af_ib_support, besides calling ibv_open_device. B.R. Changcheng On 10:48 Mon 03 Jun, Leon Romanovsky wrote: > On Sun, Jun 02, 2019 at 08:03:04PM +0800, Liu, Changcheng wrote: > > Hi All, > > Does anyone know the difference between “VPI verbs API” & “RDMA_CM verbs API”? > > Is there limitation for these two kinds of API to be used for IB/RoCEv1/RoCEv2/iWARP? > > RDMA_CM verbs provide subset of VPI verbs, because they are implemented > on top of those VPI verbs. > > Thanks > > > > > B.R. > > Changcheng