linux/Documentation/infiniband/ipoib.txt
<<
>>
Prefs
   1IP OVER INFINIBAND
   2
   3  The ib_ipoib driver is an implementation of the IP over InfiniBand
   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
   8  masqueraded to the kernel as ethernet interfaces).
   9
  10Partitions 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  Child interface create/delete can also be done using IPoIB's
  28  rtnl_link_ops, where childs created using either way behave the same.
  29
  30Datagram vs Connected modes
  31
  32  The IPoIB driver supports two modes of operation: datagram and
  33  connected.  The mode is set and read through an interface's
  34  /sys/class/net/<intf name>/mode file.
  35
  36  In datagram mode, the IB UD (Unreliable Datagram) transport is used
  37  and so the interface MTU has is equal to the IB L2 MTU minus the
  38  IPoIB encapsulation header (4 bytes).  For example, in a typical IB
  39  fabric with a 2K MTU, the IPoIB MTU will be 2048 - 4 = 2044 bytes.
  40
  41  In connected mode, the IB RC (Reliable Connected) transport is used.
  42  Connected mode takes advantage of the connected nature of the IB
  43  transport and allows an MTU up to the maximal IP packet size of 64K,
  44  which reduces the number of IP packets needed for handling large UDP
  45  datagrams, TCP segments, etc and increases the performance for large
  46  messages.
  47
  48  In connected mode, the interface's UD QP is still used for multicast
  49  and communication with peers that don't support connected mode. In
  50  this case, RX emulation of ICMP PMTU packets is used to cause the
  51  networking stack to use the smaller UD MTU for these neighbours.
  52
  53Stateless offloads
  54
  55  If the IB HW supports IPoIB stateless offloads, IPoIB advertises
  56  TCP/IP checksum and/or Large Send (LSO) offloading capability to the
  57  network stack.
  58
  59  Large Receive (LRO) offloading is also implemented and may be turned
  60  on/off using ethtool calls.  Currently LRO is supported only for
  61  checksum offload capable devices.
  62
  63  Stateless offloads are supported only in datagram mode.  
  64
  65Interrupt moderation
  66
  67  If the underlying IB device supports CQ event moderation, one can
  68  use ethtool to set interrupt mitigation parameters and thus reduce
  69  the overhead incurred by handling interrupts.  The main code path of
  70  IPoIB doesn't use events for TX completion signaling so only RX
  71  moderation is supported.
  72
  73Debugging Information
  74
  75  By compiling the IPoIB driver with CONFIG_INFINIBAND_IPOIB_DEBUG set
  76  to 'y', tracing messages are compiled into the driver.  They are
  77  turned on by setting the module parameters debug_level and
  78  mcast_debug_level to 1.  These parameters can be controlled at
  79  runtime through files in /sys/module/ib_ipoib/.
  80
  81  CONFIG_INFINIBAND_IPOIB_DEBUG also enables files in the debugfs
  82  virtual filesystem.  By mounting this filesystem, for example with
  83
  84    mount -t debugfs none /sys/kernel/debug
  85
  86  it is possible to get statistics about multicast groups from the
  87  files /sys/kernel/debug/ipoib/ib0_mcg and so on.
  88
  89  The performance impact of this option is negligible, so it
  90  is safe to enable this option with debug_level set to 0 for normal
  91  operation.
  92
  93  CONFIG_INFINIBAND_IPOIB_DEBUG_DATA enables even more debug output in
  94  the data path when data_debug_level is set to 1.  However, even with
  95  the output disabled, enabling this configuration option will affect
  96  performance, because it adds tests to the fast path.
  97
  98References
  99
 100  Transmission of IP over InfiniBand (IPoIB) (RFC 4391)
 101    http://ietf.org/rfc/rfc4391.txt 
 102  IP over InfiniBand (IPoIB) Architecture (RFC 4392)
 103    http://ietf.org/rfc/rfc4392.txt 
 104  IP over InfiniBand: Connected Mode (RFC 4755)
 105    http://ietf.org/rfc/rfc4755.txt
 106
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.