Errata for cxgb3toe-1.0.106 driver package.

 * In applications that use TCP URG pointers, the TOE driver with DDP
   enabled does not handle the out of band data properly. In practice, few
   applications use the URG pointer, other than interactive telnet type
   applications for the CTRL-C, etc., functionality. Data corruption can occur
   occur and in these applications it is usually obvious to the user and not
   significant. Avoid using applications which make use of TCP URG pointers.
   Workaround: Disable DDP using "sysctl -w toe.toeX_tom.ddp=0", where X is the
               TOE device number. See "sysctl -a | grep ddp".

 * When two network adapters are connected together without a switch and
   running wire-rate traffic, with pause frames being exchanged in both
   directions, packets may be dropped. Normally, server system CPUs are
   powerful enough to handle the traffic and virtually no packet loss will be
   observed.
 
   When running in benchmark environments where there is packet loss, the
   following symptoms may be observed:

    - Low performance numbers when running a small number of TCP connections
      due to TCP retransmit delays.
    - Overflow of IP reassembly buffers when fragment IP packets are in use.
    - UDP checksum errors when reassembling fragmented UDP segments.
    - Mismatch between test counters of number of packets received versus
      number of packets sent.

 * Some older hardware may experience XGMAC transmit hangs in environments in
   which pause frames are exchanged in both directions, with bi-directional
   wire-rate traffic.
   Workaround: Disable RX pause frames using "ethtool -A <iface> rx off" or
               run all traffic through a switch which does not forward pause
               frames.

 * Spurious error messages when running kernels older than 2.6.18. Messages
   similar to "badness in local_bh_enable" may be displayed on the console
   and in syslog when bringing the interface up or down. This appears to be a
   Linux bug associated with installing our drivers as modules. This appears
   to be fixed in the 2.6.18 or later kernels.

 * On CX4 cards, the link LED remains illuminated when the link is down with a
   cable connected. The LED turns off when the cabled is disconnected.
   Workaround: Verify link using "ethtool <iface>", look for "Link detected".

 * Netdump is only supported when using a single receive queue. The netpoll in
   the Linux kernel does not currently provide support for multiple receive
   queues.
   Workaround: Only use a single queue-set. Load the cxgb3 module using the
               "singleq=1" parameter, or use cxgbtool and set the number of qsets
	       using "cxgbtool <iface> qsets 1" prior to enabling the interface.

 * No more than 2047 entries are allowed in the L2 table.

 * When using bonding in offload mode, only bond modes 1 (active-backup) and
   4 (802.3ad) are supported. If an attempt is made to enslave using other
   modes, an error may or may not occur. Afterwards, when attempting to use
   a supported mode, the system may become unresponsive.
   Workaround: Do not attempt to using unsupported bonding modes.

 * In bonding mode 1 (active-backup), offloaded connections may not fail-over,
   or take an extremely long time to failover, if the active port is removed by
   using 'ifenslave -d'.
   Workaround: Do not delete the active enslaved port.

* Offloaded bonding currently does not work on SLES10 kernels.

* Itanium (IA64) systems currently only supports 16K page size. When using
  64K page size, system reboots may occur when trying to use the Chelsio
  interface.

* Kernel exception when loading t3_tom module on 2.6.20 kernels.
  Workaround: Do not load t3_tom when running 2.6.20 kernels. The TOE support
              for 2.6.20 kernels is being addressed and will be fixed in a
              subsequent release.

* In some rare cases, 2-port cards may encounter a port not responding when
  running a mixture of TCP and UDP traffic on both ports simultaneously.
  Workaround: If the port no longer responds when running the particular
              test or TCP/UDP traffic on both ports, avoid running test or
              TCP/UDP traffic on both ports.

* Driver does not compile with 2.6.20.7 kernels or later. The kernel has changed
  as of 2.6.20.7 and eliminated a pointer which is used by the driver. If
  evaluating 2.6.20 kernel support, please use kernel 2.6.20.6 or earlier.

* Makefile gives warning about differing source and kernel versions in RHEL3
  update kernels.


The following features have not been implemented in software or hardware as
of this release.

  * ICMP redirect on offloaded connections is not implemented.
  * PATH MTU on offloaded connections is not implemented.
  * Indefinite shutdown(SHUT_WR) when no data is being received from the peer
    on offloaded connections is not implemented. A time-out occurs after a
    FIN_WAIT_2 timeout period if no data is being received.
  * Several standard TCP/IP administrative controls don't work on offloaded
    connections (i.e, TCP timestamp enabling and disabling). The Linux kernel
    does not currently support TOE and does provide for TOE capable devices.
    Most administrative control features would require modification of the
    Linux kernel. Some sysctls have been added to provide administrative
    control to offload TCP/IP connections, as well as the cxgbtool utility.
  * Bonding between multiple cards in offload mode is unsupported at this time.
