summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_subr.c
AgeCommit message (Collapse)Author
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-14First round of __P removal in sysTodd C. Miller
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-02disable immediate ack on TH_PUSH. make behaviour sysctl tuneable.Niels Provos
from netbsd; also fix a bug where setting TF_ACKNOW didn't actually result in an ack.
2002-03-01remove tcp_fasttimo and convert delayed acks to the timeout(9) API instead.Niels Provos
adapated from netbsd. okay angelos@
2002-01-24allocate tcp reassembly queue via pool; based on netbsd; okay art@ angelos@Niels Provos
2002-01-23Pool deals fairly well with physical memory shortage, but it doesn't dealArtur Grabowski
well (not at all) with shortages of the vm_map where the pages are mapped (usually kmem_map). Try to deal with it: - group all information the backend allocator for a pool in a separate struct. The pool will only have a pointer to that struct. - change the pool_init API to reflect that. - link all pools allocating from the same allocator on a linked list. - Since an allocator is responsible to wait for physical memory it will only fail (waitok) when it runs out of its backing vm_map, carefully drain pools using the same allocator so that va space is freed. (see comments in code for caveats and details). - change pool_reclaim to return if it actually succeeded to free some memory, use that information to make draining easier and more efficient. - get rid of PR_URGENT, noone uses it.
2002-01-15allocate sackholes with poolNiels Provos
2002-01-15change tcpcb allocation to poolNiels Provos
2002-01-14use macros to manage tcp timers; based on netbsdNiels Provos
2001-07-21repair IPv6 TCP. th_sum has to be initialized to 0 on template.Jun-ichiro itojun Hagino
(older code had "th_sum = 0" at the bottom of the function, which was removed during TCP hardware checksumming change)
2001-07-18zero tcp checksum field before calculating new value.Marco S Hyman
Fixes problem with bad checksums on keepalives OK provos@
2001-07-03Pointer arithmetic fixes work better when you get the casting right.Angelos D. Keromytis
2001-06-26Appease gcc by not using void pointers in arithmetic operations.Aaron Campbell
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-23Add comment on why checksum deferral is not useful in tcp_respond()Angelos D. Keromytis
2001-06-08Cut down on include files.Angelos D. Keromytis
2001-06-05repair copyright notices for NRL & cmetz; cmetzTheo de Raadt
2001-06-04use faster arc4random() in tcp_rndiss_next; niels okMichael Shalayeff
2001-05-31Match IPSEC output prototypes.Angelos D. Keromytis
2001-05-01Fix tcp_signature_tdb_input decl; kernel compiles again if TCP_SIGNATUREFederico G. Schwindt
option is used. Note that this does not work.
2001-04-06Move offsetof define into sys/param.hConstantine Sapuntzakis
2001-03-14provide a random start for tcp timestamps; niels@ okMichael Shalayeff
2001-02-16pull in new pcb notification code from kame. better handling of scope address.Jun-ichiro itojun Hagino
2000-12-21correct ipv6 path mtu discovery.Jun-ichiro itojun Hagino
2000-12-13more random tcp sequence numbers. okay deraadt@, angelos@Niels Provos
2000-12-11nuke #ifdef TCP6 (no longer supported).Jun-ichiro itojun Hagino
validate ICMPv6 too big messages (pmtud) based on pcb. we accept certain amount of non-validated ones, as IPv6 mandates ICMPv6 (so even for traffic from unconnected pcb, we need pmtud). sync with kame
2000-10-13validate mbuf chain length on *_ctlinput. remote node may be able toJun-ichiro itojun Hagino
transmit a truncated icmp6 packet and panic the system. sync with kame.
2000-10-10verify payload of the icmp need fragment message at the tcp layer. okay itojun@Niels Provos
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-07-11forgot to reset rscaleNiels Provos
2000-07-11compute correct window scale when recvpipe option is set in route; basedNiels Provos
on diff from "Pete Kazmier" <pete@kazmier.com>
2000-07-05more cleanup for IPv4 mapped address support. there seem to be someJun-ichiro itojun Hagino
inconsistency in corner cases (from NRL I believe). todd (fries) and I have seen panic, with the following call chain: ip6_input -> tcp_input -> tcp_respond -> ip_input -> bang! more cleanups should be done, to decrease complexity. for example, INP_IPV6_MAPPED should be nuked.
2000-06-26Make the definition of tcpstat in tcp_var.h extern.Artur Grabowski
2000-06-03correctly handle ctlinput messages for IPv6.Jun-ichiro itojun Hagino
2000-03-21Fix function to comply with prototype. Kind of moot, as tcp signaturesAngelos D. Keromytis
don't work yet anyhow, so there's no point compiling them in.
2000-02-29ensure tcp window size does not overflow (16bit unsigned after window scale).Jun-ichiro itojun Hagino
FreeBSD PR: 16914
1999-12-29fix _input/_output proto changes for tcp_signature; angelos@ okMichael Shalayeff
1999-12-21enable SACK againNiels Provos
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-10-29Get rid of unnecessary third argument in *_output routines of IPsec.Angelos D. Keromytis
1999-08-27Disable SACK for now, it has problems, deraadt@Todd C. Miller
1999-07-06Added support for TCP MD5 option (RFC 2385).cmetz
1999-07-06Removed bogus ifdef/define lines that resulted from an over-aggressive M-x.cmetz
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).