DragonFly BSD

CVS log for src/sys/netinet/tcp_output.c

[BACK] Up to [DragonFly] / src / sys / netinet

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.34: download - view: text, markup, annotated - select for diffs
Sun Apr 22 01:13:14 2007 UTC (7 years, 4 months ago) by dillon
Branches: MAIN
CVS tags: HEAD, DragonFly_RELEASE_2_0_Slip, DragonFly_RELEASE_2_0, DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12, DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10, DragonFly_Preview
Diff to: previous 1.33: preferred, unified
Changes since revision 1.33: +13 -13 lines
Give the sockbuf structure its own header file and supporting source file.
Move all sockbuf-specific functions from kern/uipc_socket2.c into the new
kern/uipc_sockbuf.c and move all the sockbuf-specific structures from
sys/socketvar.h to sys/sockbuf.h.

Change the sockbuf structure to only contain those fields required to
properly management a chain of mbufs.  Create a signalsockbuf structure
to hold the remaining fields (e.g. selinfo, mbmax, etc).

Change the so_rcv and so_snd structures in the struct socket from
a sockbuf to a signalsockbuf.

Remove the recently added sorecv_direct structure which was being used
to provide a direct mbuf path to consumers for socket I/O.  Use the newly
revamped sockbuf base structure instead.  This gives mbuf consumers
direct access to the sockbuf API functions for use outside of a struct
socket.  This will also allow new API functions to be added to the sockbuf
interface to ease the job of parsing data out of chained mbufs.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Sun Mar 4 18:51:59 2007 UTC (7 years, 5 months ago) by swildner
Branches: MAIN
Diff to: previous 1.32: preferred, unified
Changes since revision 1.32: +0 -17 lines
Remove weird license clause which has expired.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Fri Dec 22 23:57:52 2006 UTC (7 years, 8 months ago) by swildner
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8
Diff to: previous 1.31: preferred, unified
Changes since revision 1.31: +1 -1 lines
Rename printf -> kprintf in sys/ and add some defines where necessary
(files which are used in userland, too).

Revision 1.29.2.1: download - view: text, markup, annotated - select for diffs
Tue Apr 18 18:25:48 2006 UTC (8 years, 4 months ago) by dillon
Branches: DragonFly_RELEASE_1_4
CVS tags: DragonFly_RELEASE_1_4_Slip
Diff to: previous 1.29: preferred, unified; next MAIN 1.30: preferred, unified
Changes since revision 1.29: +21 -10 lines
MFC 1.31 - Generate a host-unreachable failure rather then a crash if the
	   MTU is too small to support the required TCP/IP/IPSEC options.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Fri Apr 14 21:18:24 2006 UTC (8 years, 4 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6
Diff to: previous 1.30: preferred, unified
Changes since revision 1.30: +21 -10 lines
Generate a host-unreachable failure rather then a crash if the MTU is too
small to support the required TCP/IP/IPSEC options.

Reported-by: Johannes Hofmann <Johannes.Hofmann@gmx.de>

Revision 1.30: download - view: text, markup, annotated - select for diffs
Sat Jan 14 11:33:50 2006 UTC (8 years, 7 months ago) by swildner
Branches: MAIN
Diff to: previous 1.29: preferred, unified
Changes since revision 1.29: +2 -4 lines
* Remove (void) casts for discarded return values.

* Put function types on separate lines.

* Ansify function definitions.

* Remove __P.

In-collaboration-with: Alexey Slynko <slynko@tronet.ru>

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sun May 29 10:08:36 2005 UTC (9 years, 3 months ago) by hsu
Branches: MAIN
Branch point for: DragonFly_RELEASE_1_4
Diff to: previous 1.28: preferred, unified
Changes since revision 1.28: +6 -11 lines
Deprecate MCLGET() in favor of m_getcl() or m_getl() in order to
take advantage of cluster caching.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Tue May 10 15:48:10 2005 UTC (9 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.27: preferred, unified
Changes since revision 1.27: +1 -0 lines
Implement TCP Appropriate Byte Counting.

Reviewed by Noritoshi Demizu, demizu@dd.iij4u.or.jp.
Misunderstanding of spec clarified by Mark Allman.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Mon Apr 18 22:41:23 2005 UTC (9 years, 4 months ago) by hsu
Branches: MAIN
CVS tags: DragonFly_Stable
Diff to: previous 1.26: preferred, unified
Changes since revision 1.26: +16 -7 lines
Use a larger initial window size when restarting after a long idle period.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Tue Apr 5 22:37:37 2005 UTC (9 years, 4 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2
Diff to: previous 1.25: preferred, unified
Changes since revision 1.25: +6 -1 lines
Add some minor in-code documentation.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Wed Mar 9 06:54:34 2005 UTC (9 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.24: preferred, unified
Changes since revision 1.24: +11 -2 lines
Take into account the number of SACKed bytes skipped when slow-starting
in order to send out a full congestion window's worth of packets.

Reported by and tested by:	Noritoshi Demizu <demizu@dd.iij4u.or.jp>

Revision 1.24: download - view: text, markup, annotated - select for diffs
Fri Feb 4 01:49:30 2005 UTC (9 years, 6 months ago) by hsu
Branches: MAIN
Diff to: previous 1.23: preferred, unified
Changes since revision 1.23: +1 -1 lines
Temporarily disable non-working Path MTU discovery pending real fix.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sat Jan 8 09:26:32 2005 UTC (9 years, 7 months ago) by hsu
Branches: MAIN
Diff to: previous 1.22: preferred, unified
Changes since revision 1.22: +1 -16 lines
Remove the sysctl options for altering the initial TCP congestion window size.
They violate the TCP spec and don't really buy the user anything, especially
now that we have RFC3390 support for larger initial window sizes on by default.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Tue Dec 28 08:09:59 2004 UTC (9 years, 8 months ago) by hsu
Branches: MAIN
Diff to: previous 1.21: preferred, unified
Changes since revision 1.21: +6 -5 lines
Clean up the networking code before I parallelize the routing code.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Tue Dec 21 02:54:15 2004 UTC (9 years, 8 months ago) by hsu
Branches: MAIN
Diff to: previous 1.20: preferred, unified
Changes since revision 1.20: +6 -6 lines
Clean up the routing and networking code before I parallelize routing.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Sun Nov 14 00:49:08 2004 UTC (9 years, 9 months ago) by hsu
Branches: MAIN
Diff to: previous 1.19: preferred, unified
Changes since revision 1.19: +29 -3 lines
Implement SACK.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Fri Oct 15 22:59:10 2004 UTC (9 years, 10 months ago) by hsu
Branches: MAIN
Diff to: previous 1.18: preferred, unified
Changes since revision 1.18: +1 -1 lines
Update includes now that the Fast IPSec code has moved to netproto/ipsec.

Submitted by:  Pawel Biernacki <kaktus@dragonflybsd.pl>

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Aug 8 06:33:24 2004 UTC (10 years ago) by hsu
Branches: MAIN
CVS tags: DragonFly_Snap29Sep2004, DragonFly_Snap13Sep2004
Diff to: previous 1.17: preferred, unified
Changes since revision 1.17: +18 -20 lines
Get cosmetic changes out of the way before committing SACK.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Tue Aug 3 00:25:54 2004 UTC (10 years ago) by dillon
Branches: MAIN
Diff to: previous 1.16: preferred, unified
Changes since revision 1.16: +23 -2 lines
The TCP stack is notified every time userland reads from the TCP socket
buffer, because a pure-window-update ACK might be required.  The previous
code would send a pure window update once the difference between the last
advertised window and the current window exceeded 2 segments and also when it
exceeded 1/2 the high water mark.

On GigE networks this can cause a pure window update to occur once every
8 packets (resulting in 5 acks instead of 4) prior to the TCP t_outputq
commit and once every 8 packets (resulting in 2 acks instead of 1) after
the TCP t_outputq commit.  So on a GigE network servicing a high performance
TCP stream, the result is double the number of acks that are actually
necessary.

Conditionalize the 2 segment test with a sysctl.  The sysctl is
net.inet.tcp.avoid_pure_win_update and is set to 1 by default, meaning
that the 2 segment ack does NOT occur (i.e. we should get higher
performance).  It may be turned off to revert to the prior two-ack
algorithm.

This code is considered experimental but since it involves only a pure
window update and we still have the catch-all case this commit is enabling
the new algorithm.  Further tuning might be required, possibly reducing the
1/2 hiwat test to 1/3 or 1/4 hiwat.

Ideally we want to avoid pure window update acks entirely in the normal
streaming case, which means we want to have a TCP buffer that is large
enough to pipeline the networked stream AND the process consuming the data.
On a GigE network this typically equates to the packet batching that occurs
per interrupt.  This batching is typically 8 1448 byte segments == ~11K,
plus turn around overhead and the 1/2 hiwat test so we want an incoming
socket buffer of at least ~11K * 2 + slop which should come to around ~32K
in order to avoid sending (unnecessary) pure window updates on a high
performance TCP stream.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Sat Jul 17 20:31:31 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.15: preferred, unified
Changes since revision 1.15: +0 -4 lines
Readability changes, mostly removing the option to not do NewReno,
re-indenting some code, and ansifying some function definitions.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Thu Jul 8 22:07:35 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
CVS tags: DragonFly_1_0_REL, DragonFly_1_0A_REL
Diff to: previous 1.14: preferred, unified
Changes since revision 1.14: +49 -0 lines
Add the standard DragonFly copyright notice to go along with mine.

Approved by:	Matt

Revision 1.14: download - view: text, markup, annotated - select for diffs
Fri Jul 2 04:41:01 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.13: preferred, unified
Changes since revision 1.13: +1 -0 lines
Update some of my copyright notices before we officially publish
DragonFlyBSD in Release 1.0.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Wed Jun 2 14:43:01 2004 UTC (10 years, 2 months ago) by eirikn
Branches: MAIN
CVS tags: DragonFly_1_0_RC1
Diff to: previous 1.12: preferred, unified
Changes since revision 1.12: +3 -3 lines
Change mbug allocation flags from M_ to MB_ to avoid confusion with malloc
flags.

Requested by: Jeffrey Hsu

Revision 1.12: download - view: text, markup, annotated - select for diffs
Thu May 20 04:32:59 2004 UTC (10 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.11: preferred, unified
Changes since revision 1.11: +7 -6 lines
Put snd_recover in the same cache line as snd_una.  Make room in the
snd_una cache line by coalescing the t_force field into t_flags and moving
snd_up into the old t_force slot.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Wed Apr 7 17:01:25 2004 UTC (10 years, 4 months ago) by dillon
Branches: MAIN
Diff to: previous 1.10: preferred, unified
Changes since revision 1.10: +2 -0 lines
Make TCP stats per-cpu.

Submitted-by: Hiten Pandya <hmp@crater.dragonflybsd.org>

Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Mar 8 00:36:30 2004 UTC (10 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.9: preferred, unified
Changes since revision 1.9: +7 -5 lines
Cosmetic changes.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Feb 14 21:12:39 2004 UTC (10 years, 6 months ago) by dillon
Branches: MAIN
Diff to: previous 1.8: preferred, unified
Changes since revision 1.8: +1 -2 lines
Move <machine/in_cksum.h> to <sys/in_cksum.h>.  This file is now platform
independant.  If we want to add extreme machine specialization later on
then sys/in_cksum.h will #include machine/in_cksum.h.

Move i386/i386/in_cksum.c to netinet/in_cksum.c.  Note that netinet/in_cksum.c
already existed but was not used by the build system at all.  The move
overwrites it.  The new in_cksum.c is a portable, complete rewrite which
references core assembly (procedure call) to do 32-bit-aligned work.  See
also i386/i386/in_cksum2.s.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sun Feb 8 00:11:02 2004 UTC (10 years, 6 months ago) by hsu
Branches: MAIN
Diff to: previous 1.7: preferred, unified
Changes since revision 1.7: +116 -166 lines
Cosmetic code cleanup.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Thu Sep 18 18:32:55 2003 UTC (10 years, 11 months ago) by hsu
Branches: MAIN
Diff to: previous 1.6: preferred, unified
Changes since revision 1.6: +9 -3 lines
Reset the retransmit counter when setting the timer on a failed
ip_output().  This prevents ENOBUFS errors from later inadvertently
timing out a connection prematurely.

Switch over to the persist timer while we're at it.

Problem reported by:	Jayanth Vijayaraghavan <jayanth@yahoo-inc.com>
Obtained from:		BSD/OS

Revision 1.6: download - view: text, markup, annotated - select for diffs
Tue Sep 2 10:05:52 2003 UTC (10 years, 11 months ago) by hsu
Branches: MAIN
Diff to: previous 1.5: preferred, unified
Changes since revision 1.5: +25 -28 lines
Differentiate between send and receive window variables.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Fri Aug 15 20:45:33 2003 UTC (11 years ago) by hsu
Branches: MAIN
Diff to: previous 1.4: preferred, unified
Changes since revision 1.4: +5 -8 lines
Non-semantic-changing cosmetic transformation.  Gets rid of unnecessary
assignments.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Fri Aug 15 14:55:04 2003 UTC (11 years ago) by hsu
Branches: MAIN
Diff to: previous 1.3: preferred, unified
Changes since revision 1.3: +2 -1 lines
Decouple slow-starting an idle connection from Nagle's algorithm.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sat Jul 26 21:00:04 2003 UTC (11 years, 1 month ago) by rob
Branches: MAIN
Diff to: previous 1.2: preferred, unified
Changes since revision 1.2: +8 -8 lines
Register keyword removal

Approved by: Matt Dillon

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Jun 17 04:28:51 2003 UTC (11 years, 2 months ago) by dillon
Branches: MAIN
CVS tags: PRE_MP
Diff to: previous 1.1: preferred, unified
Changes since revision 1.1: +1 -0 lines
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids.  Most
ids have been removed from !lint sections and moved into comment sections.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue Jun 17 02:55:34 2003 UTC (11 years, 2 months ago) by dillon
Branches: MAIN
CVS tags: FREEBSD_4_FORK
import from FreeBSD RELENG_4 1.39.2.20

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options