Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Nov 2009 21:16:30 +0000 (UTC)
From:      Pyun YongHyeon <yongari@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/bge if_bge.c if_bgereg.h
Message-ID:  <200911222116.nAMLGlcb063481@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
yongari     2009-11-22 21:16:30 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/bge          if_bge.c if_bgereg.h 
  Log:
  SVN rev 199671 on 2009-11-22 21:16:30Z by yongari
  
  Implement TSO for BCM5755 or newer controllers. Some controllers
  seem to require a special firmware to use TSO. But the firmware is
  not available to FreeBSD and Linux claims that the TSO performed by
  the firmware is slower than hardware based TSO. Moreover the
  firmware based TSO has one known bug which can't handle TSO if
  ethernet header + IP/TCP header is greater than 80 bytes. The
  workaround for the TSO bug exist but it seems it's too expensive
  than not using TSO at all. Some hardwares also have the TSO bug so
  limit the TSO to the controllers that are not affected TSO issues
  (e.g. 5755 or higher).
  While I'm here set VLAN tag bit to all descriptors that belengs to
  a frame instead of the first descriptor of a frame. The datasheet
  is not clear how to handle VLAN tag bit but it worked either way in
  my testing. This makes it simplify TSO configuration a little bit.
  
  Big thanks to davidch@ who sent me detailed TSO information.
  Without this I was not able to implement it.
  
  Tested by:      current
  
  Revision  Changes    Path
  1.256     +142 -29   src/sys/dev/bge/if_bge.c
  1.94      +7 -3      src/sys/dev/bge/if_bgereg.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911222116.nAMLGlcb063481>