<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/netinet/tcp_usrreq.c, branch release/3.0.0_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>This commit was manufactured by cvs2svn to create tag</title>
<updated>1999-01-21T00:55:32+00:00</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>1999-01-21T00:55:32+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2e61cbb7f50878e738849ea4384118c13733f09c'/>
<id>2e61cbb7f50878e738849ea4384118c13733f09c</id>
<content type='text'>
'RELENG_3_0_0_RELEASE'.

This commit was manufactured to restore the state of the 3.0-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'RELENG_3_0_0_RELEASE'.

This commit was manufactured to restore the state of the 3.0-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
</pre>
</div>
</content>
</entry>
<entry>
<title>This commit was manufactured by cvs2svn to create tag</title>
<updated>1999-01-21T00:55:32+00:00</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>1999-01-21T00:55:32+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=76b5366091f76c9bc73570149ef5055648fc2c39'/>
<id>76b5366091f76c9bc73570149ef5055648fc2c39</id>
<content type='text'>
'RELENG_3_0_0_RELEASE'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'RELENG_3_0_0_RELEASE'.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a flag, passed to pru_send routines, PRUS_MORETOCOME.  This</title>
<updated>1999-01-20T17:32:01+00:00</updated>
<author>
<name>Bill Fenner</name>
<email>fenner@FreeBSD.org</email>
</author>
<published>1999-01-20T17:32:01+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b0acefa8d40ad2c3ae548a35b6266c79d2ab0ef2'/>
<id>b0acefa8d40ad2c3ae548a35b6266c79d2ab0ef2</id>
<content type='text'>
flag means that there is more data to be put into the socket buffer.
Use it in TCP to reduce the interaction between mbuf sizes and the
Nagle algorithm.

Based on:	"Justin C. Walker" &lt;justin@apple.com&gt;'s description of Apple's
		fix for this problem.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
flag means that there is more data to be put into the socket buffer.
Use it in TCP to reduce the interaction between mbuf sizes and the
Nagle algorithm.

Based on:	"Justin C. Walker" &lt;justin@apple.com&gt;'s description of Apple's
		fix for this problem.
</pre>
</div>
</content>
</entry>
<entry>
<title>The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static</title>
<updated>1998-12-07T21:58:50+00:00</updated>
<author>
<name>Archie Cobbs</name>
<email>archie@FreeBSD.org</email>
</author>
<published>1998-12-07T21:58:50+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f1d19042b082d95f07a0027e596ba2405aa8a9a5'/>
<id>f1d19042b082d95f07a0027e596ba2405aa8a9a5</id>
<content type='text'>
and local variables, goto labels, and functions declared but not defined.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
and local variables, goto labels, and functions declared but not defined.
</pre>
</div>
</content>
</entry>
<entry>
<title>Yow!  Completely change the way socket options are handled, eliminating</title>
<updated>1998-08-23T03:07:17+00:00</updated>
<author>
<name>Garrett Wollman</name>
<email>wollman@FreeBSD.org</email>
</author>
<published>1998-08-23T03:07:17+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=cfe8b629f1f13b06fa1aec801248b7e431e48aba'/>
<id>cfe8b629f1f13b06fa1aec801248b7e431e48aba</id>
<content type='text'>
another specialized mbuf type in the process.  Also clean up some
of the cruft surrounding IPFW, multicast routing, RSVP, and other
ill-explored corners.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
another specialized mbuf type in the process.  Also clean up some
of the cruft surrounding IPFW, multicast routing, RSVP, and other
ill-explored corners.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improved connection establishment performance by doing local port lookups via</title>
<updated>1998-01-27T09:15:13+00:00</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1998-01-27T09:15:13+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=c3229e05a368643ab2e7e7c210b40586d041ba04'/>
<id>c3229e05a368643ab2e7e7c210b40586d041ba04</id>
<content type='text'>
a hashed port list. In the new scheme, in_pcblookup() goes away and is
replaced by a new routine, in_pcblookup_local() for doing the local port
check. Note that this implementation is space inefficient in that the PCB
struct is now too large to fit into 128 bytes. I might deal with this in the
future by using the new zone allocator, but I wanted these changes to be
extensively tested in their current form first.

Also:
1) Fixed off-by-one errors in the port lookup loops in in_pcbbind().
2) Got rid of some unneeded rehashing. Adding a new routine, in_pcbinshash()
   to do the initialial hash insertion.
3) Renamed in_pcblookuphash() to in_pcblookup_hash() for easier readability.
4) Added a new routine, in_pcbremlists() to remove the PCB from the various
   hash lists.
5) Added/deleted comments where appropriate.
6) Removed unnecessary splnet() locking. In general, the PCB functions should
   be called at splnet()...there are unfortunately a few exceptions, however.
7) Reorganized a few structs for better cache line behavior.
8) Killed my TCP_ACK_HACK kludge. It may come back in a different form in
   the future, however.

These changes have been tested on wcarchive for more than a month. In tests
done here, connection establishment overhead is reduced by more than 50
times, thus getting rid of one of the major networking scalability problems.

Still to do: make tcp_fastimo/tcp_slowtimo scale well for systems with a
large number of connections. tcp_fastimo is easy; tcp_slowtimo is difficult.

WARNING: Anything that knows about inpcb and tcpcb structs will have to be
         recompiled; at the very least, this includes netstat(1).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
a hashed port list. In the new scheme, in_pcblookup() goes away and is
replaced by a new routine, in_pcblookup_local() for doing the local port
check. Note that this implementation is space inefficient in that the PCB
struct is now too large to fit into 128 bytes. I might deal with this in the
future by using the new zone allocator, but I wanted these changes to be
extensively tested in their current form first.

Also:
1) Fixed off-by-one errors in the port lookup loops in in_pcbbind().
2) Got rid of some unneeded rehashing. Adding a new routine, in_pcbinshash()
   to do the initialial hash insertion.
3) Renamed in_pcblookuphash() to in_pcblookup_hash() for easier readability.
4) Added a new routine, in_pcbremlists() to remove the PCB from the various
   hash lists.
5) Added/deleted comments where appropriate.
6) Removed unnecessary splnet() locking. In general, the PCB functions should
   be called at splnet()...there are unfortunately a few exceptions, however.
7) Reorganized a few structs for better cache line behavior.
8) Killed my TCP_ACK_HACK kludge. It may come back in a different form in
   the future, however.

These changes have been tested on wcarchive for more than a month. In tests
done here, connection establishment overhead is reduced by more than 50
times, thus getting rid of one of the major networking scalability problems.

Still to do: make tcp_fastimo/tcp_slowtimo scale well for systems with a
large number of connections. tcp_fastimo is easy; tcp_slowtimo is difficult.

WARNING: Anything that knows about inpcb and tcpcb structs will have to be
         recompiled; at the very least, this includes netstat(1).
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed a missing splx(s) bug in tcp_usr_send().</title>
<updated>1997-12-18T09:50:38+00:00</updated>
<author>
<name>David Greenman</name>
<email>dg@FreeBSD.org</email>
</author>
<published>1997-12-18T09:50:38+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=744f87ea7387bcc7618ba42b8b20e6f31a9b0fa4'/>
<id>744f87ea7387bcc7618ba42b8b20e6f31a9b0fa4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Make TCPDEBUG a new-style option.</title>
<updated>1997-09-16T18:36:06+00:00</updated>
<author>
<name>Joerg Wunsch</name>
<email>joerg@FreeBSD.org</email>
</author>
<published>1997-09-16T18:36:06+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0cc12cc57ecd3cffd54efe8c2c5d779fe5e0d3a9'/>
<id>0cc12cc57ecd3cffd54efe8c2c5d779fe5e0d3a9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update network code to use poll support.</title>
<updated>1997-09-14T03:10:42+00:00</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>1997-09-14T03:10:42+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f8f6cbba927c69012c21cc4922b799a377f52f4f'/>
<id>f8f6cbba927c69012c21cc4922b799a377f52f4f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix all areas of the system (or at least all those in LINT) to avoid storing</title>
<updated>1997-08-16T19:16:27+00:00</updated>
<author>
<name>Garrett Wollman</name>
<email>wollman@FreeBSD.org</email>
</author>
<published>1997-08-16T19:16:27+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=57bf258e3dc9e77a996e738e6bf3e894943970e2'/>
<id>57bf258e3dc9e77a996e738e6bf3e894943970e2</id>
<content type='text'>
socket addresses in mbufs.  (Socket buffers are the one exception.)  A number
of kernel APIs needed to get fixed in order to make this happen.  Also,
fix three protocol families which kept PCBs in mbufs to not malloc them
instead.  Delete some old compatibility cruft while we're at it, and add
some new routines in the in_cksum family.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
socket addresses in mbufs.  (Socket buffers are the one exception.)  A number
of kernel APIs needed to get fixed in order to make this happen.  Also,
fix three protocol families which kept PCBs in mbufs to not malloc them
instead.  Delete some old compatibility cruft while we're at it, and add
some new routines in the in_cksum family.
</pre>
</div>
</content>
</entry>
</feed>
