1219820SjeffThis README is for userspace RDMA cm library. 2219820Sjeff 3219820Sjeff 4219820SjeffBuilding 5219820Sjeff======== 6219820SjeffTo make this directory, run: 7219820Sjeff./autogen.sh && ./configure && make && make install 8219820Sjeff 9219820SjeffTypically the autogen and configure steps only need be done the first 10219820Sjefftime unless configure.in or Makefile.am changes. 11219820Sjeff 12219820SjeffLibraries are installed by default at /usr/local/lib. 13219820Sjeff 14219820Sjeff 15219820SjeffDevice files 16219820Sjeff============ 17219820SjeffThe userspace CMA uses a single device file regardless of the number 18219820Sjeffof adapters or ports present. 19219820Sjeff 20219820SjeffTo create the appropriate character device file automatically with 21219820Sjeffudev, a rule like 22219820Sjeff 23219820Sjeff KERNEL="rdma_cm", NAME="infiniband/%k", MODE="0666" 24219820Sjeff 25219820Sjeffcan be used. This will create the device node named 26219820Sjeff 27219820Sjeff /dev/infiniband/rdma_cm 28219820Sjeff 29219820Sjeffor you can create it manually 30219820Sjeff 31219820Sjeff mknod /dev/infiniband/rdma_cm c 231 255 32219820Sjeff 33219820Sjeff 34219820SjeffCommon issues 35219820Sjeff============= 36219820Sjeff 37219820SjeffUsing multiple interfaces 38219820Sjeff The librdmacm does support multiple interfaces. To make use 39219820Sjeff of multiple interfaces, however, you need to instruct linux 40219820Sjeff to only send ARP reples on the interface targetted in the ARP 41219820Sjeff request. This can be done using a command similar to the 42219820Sjeff following: 43219820Sjeff 44219820Sjeff sysctl -w net.ipv4.conf.all.arp_ignore=2 45219820Sjeff 46219820Sjeff Without this change, it's possible for linux to resopnd to ARP 47219820Sjeff requests on a different interface (IP address) than the IP 48219820Sjeff address carried in the ARP request. This causes the RDMA stack 49219820Sjeff to incorrectly map the remote IP address to the wrong RDMA 50219820Sjeff device. 51