summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_output.c
AgeCommit message (Collapse)Author
2000-02-21TCP SACK fixes via Tom Henderson (tomh@cs.berkeley.edu):Niels Provos
- tcp_sack_adjust() was completely rewritten, since it was erroneously referencing receiver side sequence numbers and comparing with sender side sequence numbers (thanks to Arun Desai (adesai@cisco.com) who discovered the problem) - in tcp_output(), moved assignment of sendalot=0 to the piece of code immediately following the search for sack-eligible retransmissions (bug identified by Arun Desai). - tcp_input() was not clearing t_dupacks if fewer than three dupacks arrived between acks of new data. (bug identified by Gaurav Banga (gaurav@netapp.com))
2000-01-07s/memset/bzero/Jun-ichiro itojun Hagino
From: Michael Shalayeff <mickey@lucifier.dial-up.user.akula.net>
1999-12-21option TCP_NEWRENO goes away, its the default case for TCP_SACK ifNiels Provos
SACK is disabled for the connection or via sysctl
1999-12-15never go into persist mode if there are still segments to be retransmitted.Niels Provos
set retransmit timer again if it was cleared, that can happen in SACK when there are no elligble SACK holes to be retransmitted and the receiver window is full.
1999-12-10sync DIAGNOSTIC code with reality. we always get cluster mbuf soJun-ichiro itojun Hagino
max_linkhdr + hdrlen <= MCLBYTES is safe.
1999-12-08bring in KAME IPv6 code, dated 19991208.Jun-ichiro itojun Hagino
replaces NRL IPv6 layer. reuses NRL pcb layer. no IPsec-on-v6 support. see sys/netinet6/{TODO,IMPLEMENTATION} for more details. GENERIC configuration should work fine as before. GENERIC.v6 works fine as well, but you'll need KAME userland tools to play with IPv6 (will be bringed into soon).
1999-12-02typo; gbayley@ausmac.netTheo de Raadt
1999-11-15Fix tcp retransmit/persist timers, provos@ OK.Hugh Graham
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.
1999-11-04Add comment about gettdb() and spl level.Hakan Olsson
1999-07-06Added support for TCP MD5 option (RFC 2385).cmetz
1999-07-06Fixed compilation problems when INET6 is enabled.cmetz
1999-07-03indentTheo de Raadt
1999-07-02Fixed a #ifdef defined()... typo that turned into a compilation failure.cmetz
1999-07-02Significant cleanups in the way TCP is made to handle multiple networkcmetz
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).
1999-01-11netinet merge of NRL stuff. some indent and shrinkage needed; NRL/cmetzTheo de Raadt
1998-11-25more min vs. ulmin/lmin fixesTodd C. Miller
1998-11-25Must use lmin() not min() when comparing longs. Fixes alphaTodd C. Miller
1998-11-1864-bit clean upNiels Provos
1998-11-17NewReno, SACK and FACK support for TCP, adapted from code for BSDINiels Provos
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)]
1998-10-28- fix three bugs pointed out in Stevens, i.a. updating timestamps correctlyNiels Provos
- fix a 4.4bsd-lite2 bug, when tcp options are present the maximum segment size is not updated correctly, so that fast recovery forces out a segment which is split in two segments by tcp_output(), the fix is adpated from FreeBSD, the effective mss is recorded after option negotiation in 3way handshake. [I was able to fix this on time spent at Center for Information Technology Integration (citi.umich.edu)]
1998-05-18first step to the setsockopt/getsockopt interface as described inNiels Provos
draft-mcdonald-simple-ipsec-api, kernel notifies (EMT_REQUESTSA) signal userland key management applications when security services are requested. this is only for outgoing connections at the moment, incoming packets are not yet checked against the selected socket policy.
1998-02-03bad types; wileyc@sekiya.twics.co.jpTheo de Raadt
1997-11-24Add missing (implied) int to a variable declaration; thorpejTheo de Raadt
1997-08-26indentTheo de Raadt
1997-06-19ensure urgent is within window; TCP/IP Illustrated Vol 2, checked by ↵Theo de Raadt
Andreas.Gunnarsson@emw.ericsson.se
1996-09-12Close TCP receive window when we cannot receive data; suggested by DarrenThorsten Lockert
Reed. Also make a conditional easier to read.
1996-09-12TCP Persist handling; from 4.4BSD Lite2 (via NetBSD PR 2335)Thorsten Lockert
1996-03-14Fix from Lite2Thorsten Lockert
1996-03-03From NetBSD: 960217 mergeNiklas Hallqvist
1995-10-18initial import of NetBSD treeTheo de Raadt