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