summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_subr.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* avoid is_ipv6 construct. a step towards IPv4-less kernelitojun2002-06-071-37/+39
|
* bring in ECN support from KAME.kjc2002-05-161-1/+2
| | | | | | | | | | | | 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@
* First round of __P removal in sysmillert2002-03-141-4/+4
|
* use timeout(9) to schedule TCP timers. this avoid traversing allprovos2002-03-081-1/+2
| | | | tcp connections during tcp_slowtimo. apdapted from thorpej@netbsd.org
* disable immediate ack on TH_PUSH. make behaviour sysctl tuneable.provos2002-03-021-3/+4
| | | | | from netbsd; also fix a bug where setting TF_ACKNOW didn't actually result in an ack.
* remove tcp_fasttimo and convert delayed acks to the timeout(9) API instead.provos2002-03-011-1/+7
| | | | adapated from netbsd. okay angelos@
* allocate tcp reassembly queue via pool; based on netbsd; okay art@ angelos@provos2002-01-241-23/+21
|
* Pool deals fairly well with physical memory shortage, but it doesn't dealart2002-01-231-3/+3
| | | | | | | | | | | | | | | | | | 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.
* allocate sackholes with poolprovos2002-01-151-2/+9
|
* change tcpcb allocation to poolprovos2002-01-151-3/+7
|
* use macros to manage tcp timers; based on netbsdprovos2002-01-141-5/+8
|
* repair IPv6 TCP. th_sum has to be initialized to 0 on template.itojun2001-07-211-2/+2
| | | | | (older code had "th_sum = 0" at the bottom of the function, which was removed during TCP hardware checksumming change)
* zero tcp checksum field before calculating new value.marc2001-07-181-1/+2
| | | | | Fixes problem with bad checksums on keepalives OK provos@
* Pointer arithmetic fixes work better when you get the casting right.angelos2001-07-031-3/+3
|
* Appease gcc by not using void pointers in arithmetic operations.aaron2001-06-261-3/+3
|
* Always defer output TCP checksumming until ip_output() (or hardware,angelos2001-06-251-4/+5
| | | | | 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.
* Add comment on why checksum deferral is not useful in tcp_respond()angelos2001-06-231-1/+7
|
* Cut down on include files.angelos2001-06-081-8/+2
|
* repair copyright notices for NRL & cmetz; cmetzderaadt2001-06-051-14/+38
|
* use faster arc4random() in tcp_rndiss_next; niels okmickey2001-06-041-7/+3
|
* Match IPSEC output prototypes.angelos2001-05-311-3/+2
|
* Fix tcp_signature_tdb_input decl; kernel compiles again if TCP_SIGNATUREfgsch2001-05-011-2/+3
| | | | option is used. Note that this does not work.
* Move offsetof define into sys/param.hcsapuntz2001-04-061-5/+1
|
* provide a random start for tcp timestamps; niels@ okmickey2001-03-141-1/+2
|
* pull in new pcb notification code from kame. better handling of scope address.itojun2001-02-161-62/+52
|
* correct ipv6 path mtu discovery.itojun2000-12-211-2/+2
|
* more random tcp sequence numbers. okay deraadt@, angelos@provos2000-12-131-4/+55
|
* nuke #ifdef TCP6 (no longer supported).itojun2000-12-111-26/+81
| | | | | | | 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
* validate mbuf chain length on *_ctlinput. remote node may be able toitojun2000-10-131-1/+5
| | | | transmit a truncated icmp6 packet and panic the system. sync with kame.
* verify payload of the icmp need fragment message at the tcp layer. okay itojun@provos2000-10-101-3/+23
|
* on expiry of pmtu route, retry higher mtu. okay angelos@provos2000-09-251-2/+24
|
* correctly calculate mssprovos2000-09-201-12/+5
|
* Path MTU discovery based on NetBSD but with the decision to use the DFprovos2000-09-181-4/+51
| | | | | flag delayed to ip_output(). That halves the code and reduces most of the route lookups. okay deraadt@
* forgot to reset rscaleprovos2000-07-111-1/+2
|
* compute correct window scale when recvpipe option is set in route; basedprovos2000-07-111-1/+13
| | | | on diff from "Pete Kazmier" <pete@kazmier.com>
* more cleanup for IPv4 mapped address support. there seem to be someitojun2000-07-051-9/+5
| | | | | | | | | 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.
* Make the definition of tcpstat in tcp_var.h extern.art2000-06-261-1/+3
|
* correctly handle ctlinput messages for IPv6.itojun2000-06-031-27/+80
|
* Fix function to comply with prototype. Kind of moot, as tcp signaturesangelos2000-03-211-2/+2
| | | | don't work yet anyhow, so there's no point compiling them in.
* ensure tcp window size does not overflow (16bit unsigned after window scale).itojun2000-02-291-4/+5
| | | | FreeBSD PR: 16914
* fix _input/_output proto changes for tcp_signature; angelos@ okmickey1999-12-291-3/+5
|
* enable SACK againprovos1999-12-211-2/+2
|
* bring in KAME IPv6 code, dated 19991208.itojun1999-12-081-48/+61
| | | | | | | | | 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).
* Get rid of unnecessary third argument in *_output routines of IPsec.angelos1999-10-291-3/+2
|
* Disable SACK for now, it has problems, deraadt@millert1999-08-271-2/+2
|
* Added support for TCP MD5 option (RFC 2385).cmetz1999-07-061-1/+94
|
* Removed bogus ifdef/define lines that resulted from an over-aggressive M-x.cmetz1999-07-061-5/+1
|
* Fixed a #ifdef defined()... typo that turned into a compilation failure.cmetz1999-07-021-3/+3
|
* Significant cleanups in the way TCP is made to handle multiple networkcmetz1999-07-021-38/+87
| | | | | | | | | | | | | | | | | | 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).
* inet6 indentderaadt1999-02-171-5/+2
|