summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_input.c
Commit message (Collapse)AuthorAgeFilesLines
...
* If the incomplete listen queue for a given socket is full,pst1996-09-201-5/+18
| | | | | | | | | | | | | | | | | drop the oldest entry in the queue. There was a fair bit of discussion as to whether or not the proper action is to drop a random entry in the queue. It's my conclusion that a random drop is better than a head drop, however profiling this section of code (done by John Capo) shows that a head-drop results in a significant performance increase. There are scenarios where a random drop is more appropriate. If I find one in reality, I'll add the random drop code under a conditional. Obtained from: discussions and code done by Vernon Schryver (vjs@sgi.com).
* Make the misnamed tcp initial keepalive timer value (which is really thepst1996-09-131-3/+3
| | | | | | | | time, in seconds, that state for non-established TCP sessions stays about) a sysctl modifyable variable. [part 1 of two commits, I just realized I can't play with the indices as I was typing this commit message.]
* Receipt of two SYN's are sufficient to set the t_timer[TCPT_KEEP]pst1996-09-131-6/+12
| | | | | | | | to "keepidle". this should not occur unless the connection has been established via the 3-way handshake which requires an ACK Submitted by: jmb Obtained from: problem discussed in Stevens vol. 3
* Back out my stupid braino; I was thinking strlen and not sizeof.fenner1996-05-021-2/+2
|
* Size temp var correctly; buf[4*sizeof "123"] is not long enoughfenner1996-05-021-2/+2
| | | | to store "192.252.119.189\0".
* inet_ntoa buffer was evaluated twice in log_in_vain, fix it.ache1996-04-271-3/+7
| | | | Thanx to: jdp
* Delete #ifdef notdef blocks containing old method of srtt calculation.wollman1996-04-261-48/+1
| | | | Requested by: davidg
* Logging UDP and TCP connection attempts should not be enabled by default.pst1996-04-091-2/+2
| | | | | | It's trivial to create a denial of service attack on a box so enabled. These messages, if enabled at all, must be rate-limited. (!)
* Log TCP syn packets for ports we don't listen on.phk1996-04-041-2/+13
| | | | | | | | | Controlled by: sysctl net.inet.tcp.log_in_vain: 1 Log UDP syn packets for ports we don't listen on. Controlled by: sysctl net.inet.udp.log_in_vain: 1 Suggested by: Warren Toomey <wkt@cs.adfa.oz.au>
* Slight modification of RTO floor calculation.wollman1996-03-251-2/+2
|
* A number of performance-reducing flaws fixed based on commentswollman1996-03-221-3/+54
| | | | | | | | | | | | | | | | from Larry Peterson &co. at Arizona: - Header prediction for ACKs did not exclude Fast Retransmit/Recovery. - srtt calculation tended to get ``stuck'' and could never decrease when below 8. It still can't, but the scaling factors are adjusted so that this artifact does not cause as bad an effect on the RTO value as it used to. The paper also points out the incr/8 error that has been long since fixed, and the problems with ACKing frequency resulting from the use of options which I suspect to be fixed already as well (as part of the T/TCP work). Obtained from: Brakmo & Peterson, ``Performance Problems in BSD4.4 TCP''
* Move or add #include <queue.h> in preparation for upcoming struct socketdg1996-03-111-2/+2
| | | | changes.
* Add a counter for the number of times the listen queue was overflowed toguido1996-02-261-2/+4
| | | | | | the tcpstat structure. (netstat -s) Reviewed by: wollman Obtained from: Steves, TCP/IP Ill. vol.3, page 189
* Fixed bug in Path MTU Discovery that caused the system to have to re-dg1996-02-221-24/+4
| | | | | | | discover the Path MTU for each connection if the connecting host didn't offer an initial MSS. Submitted by: davidg & olah
* Fix a bug related to the interworking of T/TCP and window scaling:olah1996-01-311-6/+19
| | | | | | | | | | | | | | | when a connection enters the ESTBLS state using T/TCP, then window scaling wasn't properly handled. The fix is twofold. 1) When the 3WHS completes, make sure that we update our window scaling state variables. 2) When setting the `virtual advertized window', then make sure that we do not try to offer a window that is larger than the maximum window without scaling (TCP_MAXWIN). Reviewed by: davidg Reported by: Jerry Chen <chen@Ipsilon.COM>
* Another mega commit to staticize things.phk1995-12-141-2/+2
|
* New style sysctl & staticize alot of stuff.phk1995-11-141-6/+15
|
* Start adding new style sysctl here too.phk1995-11-091-1/+5
|
* Cosmetic changes to processing of segments in the SYN_SENT state:olah1995-11-031-10/+10
| | | | | | | | - remove a redundant condition; - complete all validity checks on segment before calling soisconnected(so). Reviewed by: Richard Stevens, davidg, wollman
* Routes can be asymmetric. Always offer to /accept/ an MSS of up to thewollman1995-10-131-7/+1
| | | | | | capacity of the link, even if the route's MTU indicates that we cannot send that much in their direction. (This might actually make it possible to test Path MTU discovery in a useful variety of cases.)
* Finish 4.4-Lite-2 merge: randomize TCP initial sequence numberswollman1995-10-031-6/+8
| | | | to make ISS-guessing spoofing attacks harder.
* Remove a redundant `if' from tcp_reass().olah1995-07-311-4/+2
| | | | | | Correct a typo in a comment (SEND_SYN -> NEEDSYN). Reviewed by: David Greenman
* tcp_input.c - keep track of how many times a route contained a cached rttwollman1995-07-101-7/+7
| | | | | | | | | or ssthresh that we were able to use tcp_var.h - declare tcpstat entries for above; declare tcp_{send,recv}space in_rmx.c - fill in the MTU and pipe sizes with the defaults TCP would have used anyway in the absence of values here
* Keep track of the number of samples through the srtt filter so that wewollman1995-06-291-1/+2
| | | | | | know better when to cache values in the route, rather than relying on a heuristic involving sequence numbers that broke when tcp_sendspace was increased to 16k.
* Remove trailing whitespace.rgrimes1995-05-301-35/+35
|
* #ifdef'd my Nagel/ACK hack with "TCP_ACK_HACK", disabled by default. I'mdg1995-05-111-1/+24
| | | | | | | | currently considering reducing the TCP fasttimo to 100ms to help improve things, but this would be done as a seperate step at some point in the future. This was done because it was causing some sometimes serious performance problems with T/TCP.
* Fix a misspelled constant in tcp_input.c.olah1995-05-091-2/+2
| | | | | | | | | | | | | | | | | On Tue, 09 May 1995 04:35:27 PDT, Richard Stevens wrote: > In tcp_dooptions() under the case TCPOPT_CC there is an assignment > > to->to_flag |= TCPOPT_CC; > > that should be > > to->to_flag |= TOF_CC; > > I haven't thought through the ramifications of what's been happening ... > > Rich Stevens Submitted by: rstevens@noao.edu (Richard Stevens)
* Changed in_pcblookuphash() to not automatically call in_pcblookup() ifdg1995-05-031-3/+14
| | | | | | the lookup fails. Updated callers to deal with this. Call in_pcblookuphash instead of in_pcblookup() in in_pcbconnect; this improves performance of UDP output by about 17% in the standard case.
* Further satisfy my paranoia by making sure that the ACKNOW is onlydg1995-04-101-10/+5
| | | | set when ti_len is non-zero.
* Fixed bug I introduced with my Nagel hack which caused tcp_input anddg1995-04-101-3/+3
| | | | | tcp_output to loop endlessly. This was freefall's problem during the past day.
* Implemented PCB hashing. Includes new functions in_pcbinshash, in_pcbrehash,dg1995-04-091-14/+6
| | | | and in_pcblookuphash.
* Fix a bug in tcp_input reported by Rick Jones <raj@hpisrdq.cup.hp.com>.olah1995-04-051-11/+8
| | | | | | | If a goto findpcb occurred during the processing of a segment, the TCP and IP headers were dropped twice from the mbuf which resulted in data acked by TCP but not delivered to the user. Reviewed by: davidg
* Re-apply my "breakage" to the Nagel congestion avoidence. This versiondg1995-03-271-2/+20
| | | | | differs slightly in the logic from the previous version; packets are now acked immediately if the sender set PUSH.
* Add and move declarations to fix all of the warnings from `gcc -Wimplicit'bde1995-03-161-4/+1
| | | | | | (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones.
* Avoid deadlock situation described by Stevens using his suggested replacementwollman1995-02-161-30/+20
| | | | | | code. Obtained from: Stevens, vol. 2, pp. 959-960
* Transaction TCP support now standard. Hack away!wollman1995-02-161-189/+1
|
* YFfix.phk1995-02-141-2/+1
|
* Get rid of some unneeded #ifdef TTCP lines. Also, get rid of somewollman1995-02-141-1/+6
| | | | bogus commons declared in header files.
* Merge Transaction TCP, courtesy of Andras Olah <olah@cs.utwente.nl> andwollman1995-02-091-102/+680
| | | | | | | | | Bob Braden <braden@isi.edu>. NB: This has not had David's TCP ACK hack re-integrated. It is not clear what the correct solution to this problem is, if any. If a better solution doesn't pop up in response to this message, I'll put David's code back in (or he's welcome to do so himself).
* As suggested by Sally Floyd, don't add the ``small fraction of the windowwollman1994-10-131-5/+3
| | | | | | size'' when doing congestion avoidance. Submitted by: Mark Andrews
* GCC cleanup.phk1994-10-021-5/+6
| | | | | | Reviewed by: Submitted by: Obtained from:
* Made TCPDEBUG truely optional. Based on changes I made in FreeBSD 1.1.5.dg1994-09-151-3/+13
| | | | | Fixed somebody's idea of a joke - about the first half of the lines in in_proto.c were spaced over by one space.
* Obey RFC 793, section 3.4:wollman1994-08-261-2/+2
| | | | | | | | | Several examples of connection initiation follow. Although these examples do not show connection synchronization using data-carrying segments, this is perfectly legitimate, so long as the receiving TCP doesn't deliver the data to the user until it is clear the data is valid (i.e., the data must be buffered at the receiver until the connection reaches the ESTABLISHED state).
* Fix up some sloppy coding practices:wollman1994-08-181-3/+1
| | | | | | | | | | | | - Delete redundant declarations. - Add -Wredundant-declarations to Makefile.i386 so they don't come back. - Delete sloppy COMMON-style declarations of uninitialized data in header files. - Add a few prototypes. - Clean up warnings resulting from the above. NB: ioconf.c will still generate a redundant-declaration warning, which is unavoidable unless somebody volunteers to make `config' smarter.
* Added $Id$dg1994-08-021-0/+1
|
* Fixed bug with Nagel Congestion Avoidance where a tcp connection woulddg1994-08-011-1/+19
| | | | | stall unnecessarily - always send an ACK when a packet len of < mss is received.
* Added missing ntohl()'s that are needed before calling IN_MULTICAST indg1994-05-261-2/+2
| | | | | a couple of places. Submitted by: Johannes Helander
* The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.rgrimes1994-05-251-4/+4
| | | | | Reviewed by: Rodney W. Grimes Submitted by: John Dyson and David Greenman
* BSD 4.4 Lite Kernel Sourcesrgrimes1994-05-241-0/+1647
OpenPOWER on IntegriCloud