]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC 199549, 199997, 204158, 207673, and 208901.
authorken <ken@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 11 Jun 2010 19:17:36 +0000 (19:17 +0000)
committerken <ken@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 11 Jun 2010 19:17:36 +0000 (19:17 +0000)
commit764d557c315867c158ded12133f192d19541bb8a
treec58c21acda8497df3cc0cb595ec5e7a199c995f7
parent5056f731addc438d3ff048d1a9a493dd15158e1a
MFC 199549, 199997, 204158, 207673, and 208901.

Bring in a number of netfront changes:

r199549 | jhb

  Remove commented out reference to if_watchdog and an assignment of zero to
  if_timer.

  Reviewed by: scottl

r199997 | gibbs

  Add media ioctl support and link notifications so that devd will attempt
  to run dhclient on a netfront (xn) device that is setup for DHCP in
  /etc/rc.conf.

  PR: kern/136251 (fixed differently than the submitted patch)

r204158 | kmacy

  - make printf conditional
  - fix witness warnings by making configuration lock a mutex

r207673 | joel

  Switch to our preferred 2-clause BSD license.

  Approved by: kmacy

r208901 | ken

  A number of netfront fixes and stability improvements:

   - Re-enable TSO.  This was broken previously due to CSUM_TSO clearing the
     CSUM_TCP flag, so our checksum flags were incorrectly set going to the
     netback driver.  That was fixed in r206844 in tcp_output.c, so we can
     turn TSO back on here.

   - Fix the way transmit slots are calculated, so that we can't overfill
     the ring.

   - Avoid sending packets with more fragments/segments than netback can
     handle.  The Linux netback code can only handle packets of
     MAX_SKB_FRAGS, which turns out to be 18 on machines with 4K pages.  We
     can easily generate packets with 32 or so fragments with TSO turned on.
     Right now the solution is just to drop the packets (since netback
     doesn't seem to handle it gracefully), but we should come up with a way
     to allow a driver to tell the TCP stack the maximum number of fragments
     it can handle in a single packet.

   - Fix the way the consumer is tracked in the receive path.  It could get
     out of sync fairly easily.

   - Use standard Xen ring macros to make it clearer how netfront is using
     the rings.

   - Get rid of Linux-ish negative errno return values.

   - Added more documentation to the driver.

   - Refactored code to make it easier to read.

   - Some other minor fixes.

  Reviewed by: gibbs
  Sponsored by: Spectra Logic

Approved by: re (bz)

git-svn-id: svn://svn.freebsd.org/base/stable/8@209061 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/amd64/include/xen/xenfunc.h
sys/amd64/include/xen/xenvar.h
sys/dev/cxgb/sys/mvec.h
sys/dev/cxgb/sys/uipc_mvec.c
sys/dev/xen/netfront/netfront.c
sys/i386/include/xen/xenfunc.h
sys/i386/include/xen/xenvar.h
sys/kern/subr_bufring.c
sys/sys/buf_ring.h