summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_output.c
AgeCommit message (Collapse)Author
2002-08-28Fix a problem where passing NULL as a pointer with varargs does not promotePer Fogelstrom
NULL to full 64 bits on a 64 bit address system. Soultion is to add a (void *) cast before NULL. This makes a 64 bit MIPS kernel work and will probably help future 64 bit ports as well. OK from art@
2002-06-09whitespaceJun-ichiro itojun Hagino
2002-06-07avoid is_ipv6 construct. a step towards IPv4-less kernelJun-ichiro itojun Hagino
2002-05-16bring in ECN support from KAME.Kenjiro Cho
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@
2002-03-08use timeout(9) to schedule TCP timers. this avoid traversing allNiels Provos
tcp connections during tcp_slowtimo. apdapted from thorpej@netbsd.org
2002-03-01remove tcp_fasttimo and convert delayed acks to the timeout(9) API instead.Niels Provos
adapated from netbsd. okay angelos@
2002-02-05when retransmitting a segment after FIN has been sent don't set FINNiels Provos
unless we are transmitting the last of our data. report from jishac@grc.nasa.gov; pr/2368
2002-01-14knfNiels Provos
2002-01-14use macros to manage tcp timers; based on netbsdNiels Provos
2001-11-24KNFTheo de Raadt
2001-06-25Always defer output TCP checksumming until ip_output() (or hardware,Angelos D. Keromytis
if it exists). Cuts down on code a bit, and we don't need to look at the routing entry at TCP. Based on NetBSD. UDP case to follow.
2001-06-25Use in_cksum_phdr() rather than in_cksum() -- from NetBSDAngelos D. Keromytis
2001-06-23Likewise, only use outgoing TCP/UDP hardware checksumming if theAngelos D. Keromytis
interface is not in bridge mode.
2001-06-23Keep stats on TCP/UDP hardware checksumming.Angelos D. Keromytis
2001-06-23TCP/UDP hardware checksumming. Untested, since txp dies when it triesAngelos D. Keromytis
to compute the checksums. Still, it shouldn't affect anything.
2001-06-23fix up mtu for routes and ongoing tcp connection when if mtu changesNiels Provos
from FreeBSD; fixes pr/1878
2001-06-08Cut down on include files.Angelos D. Keromytis
2001-06-05repair copyright notices for NRL & cmetz; cmetzTheo de Raadt
2001-05-31Two fixes from Stevens via davidg@freebsd, bug report byNiels Provos
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.
2000-09-25on expiry of pmtu route, retry higher mtu. okay angelos@Niels Provos
2000-09-20correctly calculate mssNiels Provos
2000-09-18Path MTU discovery based on NetBSD but with the decision to use the DFNiels Provos
flag delayed to ip_output(). That halves the code and reduces most of the route lookups. okay deraadt@
2000-09-05various fixes to SACK and FACK from adesai@cisco.com, tomh@tomh.org andNiels Provos
osuga@mml.yrp.nttdocomo.co.jp
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