Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | IP OVER INFINIBAND |
| 2 | |
| 3 | The ib_ipoib driver is an implementation of the IP over InfiniBand |
Roland Dreier | ac83cba | 2006-06-17 20:37:32 -0700 | [diff] [blame] | 4 | protocol as specified by RFC 4391 and 4392, issued by the IETF ipoib |
| 5 | working group. It is a "native" implementation in the sense of |
| 6 | setting the interface type to ARPHRD_INFINIBAND and the hardware |
| 7 | address length to 20 (earlier proprietary implementations |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 8 | masqueraded to the kernel as ethernet interfaces). |
| 9 | |
| 10 | Partitions and P_Keys |
| 11 | |
| 12 | When the IPoIB driver is loaded, it creates one interface for each |
| 13 | port using the P_Key at index 0. To create an interface with a |
| 14 | different P_Key, write the desired P_Key into the main interface's |
| 15 | /sys/class/net/<intf name>/create_child file. For example: |
| 16 | |
| 17 | echo 0x8001 > /sys/class/net/ib0/create_child |
| 18 | |
| 19 | This will create an interface named ib0.8001 with P_Key 0x8001. To |
| 20 | remove a subinterface, use the "delete_child" file: |
| 21 | |
| 22 | echo 0x8001 > /sys/class/net/ib0/delete_child |
| 23 | |
| 24 | The P_Key for any interface is given by the "pkey" file, and the |
| 25 | main interface for a subinterface is in "parent." |
| 26 | |
| 27 | Debugging Information |
| 28 | |
| 29 | By compiling the IPoIB driver with CONFIG_INFINIBAND_IPOIB_DEBUG set |
| 30 | to 'y', tracing messages are compiled into the driver. They are |
| 31 | turned on by setting the module parameters debug_level and |
| 32 | mcast_debug_level to 1. These parameters can be controlled at |
| 33 | runtime through files in /sys/module/ib_ipoib/. |
| 34 | |
Roland Dreier | b1ed8da | 2005-04-16 15:26:07 -0700 | [diff] [blame] | 35 | CONFIG_INFINIBAND_IPOIB_DEBUG also enables files in the debugfs |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 36 | virtual filesystem. By mounting this filesystem, for example with |
| 37 | |
Roland Dreier | b1ed8da | 2005-04-16 15:26:07 -0700 | [diff] [blame] | 38 | mount -t debugfs none /sys/kernel/debug |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 39 | |
| 40 | it is possible to get statistics about multicast groups from the |
Roland Dreier | b1ed8da | 2005-04-16 15:26:07 -0700 | [diff] [blame] | 41 | files /sys/kernel/debug/ipoib/ib0_mcg and so on. |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 42 | |
| 43 | The performance impact of this option is negligible, so it |
| 44 | is safe to enable this option with debug_level set to 0 for normal |
| 45 | operation. |
| 46 | |
| 47 | CONFIG_INFINIBAND_IPOIB_DEBUG_DATA enables even more debug output in |
| 48 | the data path when data_debug_level is set to 1. However, even with |
| 49 | the output disabled, enabling this configuration option will affect |
| 50 | performance, because it adds tests to the fast path. |
| 51 | |
| 52 | References |
| 53 | |
Roland Dreier | ac83cba | 2006-06-17 20:37:32 -0700 | [diff] [blame] | 54 | Transmission of IP over InfiniBand (IPoIB) (RFC 4391) |
| 55 | http://ietf.org/rfc/rfc4391.txt |
| 56 | IP over InfiniBand (IPoIB) Architecture (RFC 4392) |
| 57 | http://ietf.org/rfc/rfc4392.txt |