summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_timer.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fewer <netinet/in_systm.h> !mpi2014-07-221-2/+1
|
* Change MTU discovery functions to not abuse the global icmpsrc variablempi2013-08-081-10/+9
| | | | | | to pass the destination address of the route to clone. ok markus@, mikeb@
* Add sysctl net.inet.tcp.always_keepalive, when this is set the systemsthen2011-07-061-2/+4
| | | | | | | | | | | behaves as if SO_KEEPALIVE was set on all TCP sockets, forcing keepalives to be sent every net.inet.tcp.keepidle half-seconds. In conjunction with a keepidle value greatly reduced from the default, this can be useful for keeping sessions open if you are stuck on a network with short NAT or firewall timeouts. Feedback from various people, ok henning@ claudio@
* Fix the naming of interfaces and variables for rdomains and rtablesguenther2010-07-031-4/+4
| | | | | | | | | | | | and make it possible to bind sockets (including listening sockets!) to rtables and not just rdomains. This changes the name of the system calls, socket option, and ioctl. After building with this you should remove the files /usr/share/man/cat2/[gs]etrdomain.0. Since this removes the existing [gs]etrdomain() system calls, the libc major is bumped. Written by claudio@, criticized^Wcritiqued by me
* Extend the protosw pr_ctlinput function to include the rdomain. This isclaudio2009-11-131-4/+4
| | | | | | | | needed so that the route and inp lookups done in TCP and UDP know where to look. Additionally in_pcbnotifyall() and tcp_respond() got a rdomain argument as well for similar reasons. With this tcp seems to be now fully rdomain save and no longer leaks single packets into the main domain. Looks good markus@, henning@
* Initial support for routing domains. This allows to bind interfaces toclaudio2009-06-051-3/+4
| | | | | | | | | alternate routing table and separate them from other interfaces in distinct routing tables. The same network can now be used in any doamin at the same time without causing conflicts. This diff is mostly mechanical and adds the necessary rdomain checks accross net and netinet. L2 and IPv4 are mostly covered still missing pf and IPv6. input and tested by jsg@, phessler@ and reyk@. "put it in" deraadt@
* when creating a response, use the correct TCP header instead ofmarkus2008-02-201-2/+2
| | | | relying on the mbuf chain layout; with claudio@ and krw@; ok henning@
* TCP_COMPAT_42 was last used in 1997. Kill it.deraadt2007-11-271-16/+1
| | | | ok millert
* since thehenning2007-09-011-1/+2
| | | | | | MGET* macros were changed to function calls, there wasn't any need for the pool declarations and the inclusion of pool.h From: tbert <bret.lambert@gmail.com>
* Drop the current random timestamps and the current ISN generationmarkus2007-06-151-1/+3
| | | | | | | code and replace both with a RFC1948 based method, so TCP clients now have monotonic ISN/timestamps. The server side uses completely random ISN/timestamps and does time-wait recycling (on port reuse). ok djm@, mcbride@; thanks to lots of testers
* Only two `h' in threshold.miod2005-11-151-4/+4
|
* implement PMTU checks frommarkus2005-06-301-1/+27
| | | | | | | http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html i.e. don't act on ICMP-need-frag immediately if adhoc checks on the advertised mtu fail. the mtu update is delayed until a tcp retransmit happens. initial patch by Fernando Gont, tested by many.
* zap lvalue assignment, okay markus@. approved miod@espie2004-12-131-2/+2
|
* fix for race between invocation for timer and network inputmarkus2004-11-251-1/+22
| | | | | | 1) add a reaper for TCP and SYN cache states (cf. netbsd pr 20390) 2) additional check for TCP_TIMER_ISARMED(TCPT_REXMT) in tcp_timer_persist() with mickey@; ok deraadt@
* de-register. deraadt okitojun2003-12-101-2/+2
|
* Remove the advertising clause in the UCB license which Berkeleymillert2003-06-021-6/+2
| | | | rescinded 22 July 1999. Proofed by myself and Theo.
* remove useless assignmenttedu2003-02-211-2/+2
| | | | ok jason@
* fix ecn breakage.kjc2002-11-061-1/+10
| | | | | | | | this part of falling back to non-ecn on timeout slipped during merge from KAME. ok @art report to bugs@ by Han Boetes and Otto Moerbeek
* whitespaceitojun2002-06-091-3/+3
|
* bring in ECN support from KAME.kjc2002-05-161-1/+8
| | | | | | | | | | | | it consists of - ECN support in TCP - tunnel-egress and fragment reassembly rules in layer-3 not to lose congestion info at tunnel-egress and fragment reassembly to enable ECN in TCP, build a kernel with TCP_ECN, and then, turn it on by "sysctl -w net.inet.tcp.ecn=1". ok deraadt@
* use timeout(9) to schedule TCP timers. this avoid traversing allprovos2002-03-081-266/+262
| | | | tcp connections during tcp_slowtimo. apdapted from thorpej@netbsd.org
* remove tcp_fasttimo and convert delayed acks to the timeout(9) API instead.provos2002-03-011-22/+43
| | | | adapated from netbsd. okay angelos@
* allocate sackholes with poolprovos2002-01-151-2/+2
|
* knfprovos2002-01-141-6/+6
|
* use macros to manage tcp timers; based on netbsdprovos2002-01-141-6/+6
|
* at least ; required after label or case; openbsd@davidkrause.comderaadt2002-01-021-1/+2
|
* Cut down on include files.angelos2001-06-081-7/+1
|
* Two fixes from Stevens via davidg@freebsd, bug report byprovos2001-05-311-2/+2
| | | | | | | | | | armin@wolfermann.org - set the persist timer so that connections in CLOSING state timeout - honor keep-alive timer in CLOSING state. Fixes the problem in simulaneous close situation where connections would never leave the CLOSING state and stay arround indefinitly.
* more random tcp sequence numbers. okay deraadt@, angelos@provos2000-12-131-4/+2
|
* only disable path mtu for established connections that have data to send.provos2000-12-121-1/+5
|
* turn off path mtu when icmp needfrag messages get blocked, okay itojun@provos2000-12-111-7/+43
|
* Path MTU discovery based on NetBSD but with the decision to use the DFprovos2000-09-181-1/+19
| | | | | flag delayed to ip_output(). That halves the code and reduces most of the route lookups. okay deraadt@
* option TCP_NEWRENO goes away, its the default case for TCP_SACK ifprovos1999-12-211-3/+3
| | | | SACK is disabled for the connection or via sysctl
* Fix tcp retransmit/persist timers, provos@ OK.hugh1999-11-151-5/+11
| | | | | | | | | | Adapted from NetBSD: Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.
* increase tcp_iss incrementprovos1999-09-011-2/+2
|
* Significant cleanups in the way TCP is made to handle multiple networkcmetz1999-07-021-5/+9
| | | | | | | | | | | | | | | | | | protocols. "struct tcpiphdr" is now gone from much of the code, as are separate pointers for ti and ti6. The result is fewer variables, which is generally a good thing. Simple if(is_ipv6) ... else ... tests are gone in favor of a switch(protocol family), which allows future new protocols to be added easily. This also makes it possible for someone so inclined to re-implement TUBA (TCP over CLNP?) and do it right instead of the kluged way it was done in 4.4. The TCP header template is now referenced through a mbuf rather than done through a data pointer and dtom()ed as needed. This is partly because dtom() is evil and partly because max_linkhdr + IPv6 + TCP + MSS/TS/SACK opts won't fit inside a packet header mbuf, so we need to grab a cluster for that (which the code now does, if needed).
* From Tom Henderson <tomh@cs.berkeley.edu>:provos1999-04-211-1/+8
| | | | | | | | | | Fixed a sequence wraparound bug in the snd_recover variable discovered in very large (multiple GByte) transfers (in loss free conditions, snd_recover was not sufficiently tracking snd_una). Thanks to Mark Smith for finding this. Fixed a bug in tcp_newreno that was preventing retransmission of data due to partial acks. (Discovered by Jayanth Vijayaraghavan)
* fix NEWRENO behaviour, the newreo code assumed that the send socket buffer hasprovos1999-01-271-4/+1
| | | | | | | already been cleared of the acked data, though it was called before any sbdrop() call and always called tcp_output() with 0 index in the send socket buffer and thus causing data corruption. so do not set snd_una to th_ack.
* more min vs. ulmin/lmin fixesmillert1998-11-251-2/+2
|
* NewReno, SACK and FACK support for TCP, adapted from code for BSDIprovos1998-11-171-1/+24
| | | | | | | | by Hari Balakrishnan (hari@lcs.mit.edu), Tom Henderson (tomh@cs.berkeley.edu) and Venkat Padmanabhan (padmanab@cs.berkeley.edu) as part of the Daedalus research group at the University of California, (http://daedalus.cs.berkeley.edu). [I was able to do this on time spent at the Center for Information Technology Integration (citi.umich.edu)]
* indentderaadt1997-08-261-2/+2
|
* use arc4random()deraadt1997-02-051-2/+3
|
* TCP Persist handling; from 4.4BSD Lite2 (via NetBSD PR 2335)tholo1996-09-121-1/+18
|
* Remove random() prototype, as it's not needed. Besides it was wrong for the alpha :-)niklas1996-07-291-4/+1
|
* Make TCP ISS increment by random amountstholo1996-07-291-3/+8
|
* From Lite2; skip slow start calculation if socket state is listentholo1996-03-141-2/+2
|
* From NetBSD: 960217 mergeniklas1996-03-031-2/+3
|
* initial import of NetBSD treederaadt1995-10-181-0/+321