Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Mar 2009 20:17:44 +0000 (UTC)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/share/man/man4 lo.4 src/sys/net if_loop.c
Message-ID:  <200903152023.n2FKNPbD065450@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
rwatson     2009-03-15 20:17:44 UTC

  FreeBSD src repository

  Modified files:
    share/man/man4       lo.4 
    sys/net              if_loop.c 
  Log:
  SVN rev 189863 on 2009-03-15 20:17:44Z by rwatson
  
  Teach the loopback interface about checksum generation and validation
  avoidance:
  
  - Enable setting the RXCSUM and TXCSUM flags for loopback interfaces;
    set both by default.
  - When RXCSUM is set, flag packets sent over the loopback interface as
    having checked and valid IP, UDP, TCP checksums so that higher
    protocol layers won't check them.
  - Always clear CSUM_{IP,UDP_TCP} checksum required flags on transmit,
    as they will have gotten there as a result of TXCSUM being set.
  
  This is done only for packets explicitly sent over the loopback, not
  simulated loopback via if_simloop() due to !SIMPLEX interfaces, etc.
  
  Note that enabling TXCSUM but not RXCSUM will lead to unhappiness, as
  checksums won't be generated but will be validated.
  
  Kris reports that this leads to significant performance improvements
  in loopback benchmarking with TCP and UDP for throughput:
  
          RXCSUM  RXCSUM+TXCSUM
  TCP     15%     37%
  UDP     10%     74%
  
  Update man page.
  
  Reviewed by:    sam
  Tested by:      kris
  MFC after:      1 week
  
  Revision  Changes    Path
  1.10      +21 -12    src/share/man/man4/lo.4
  1.126     +22 -1     src/sys/net/if_loop.c



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