summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_subr.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* 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>
* merge tcp_set_iss() and tcp_set_tsm(); ok mcbride, djm (on earlier version)markus2007-06-251-46/+13
|
* Drop the current random timestamps and the current ISN generationmarkus2007-06-151-7/+71
| | | | | | | 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
* apply the "skip ipsec if there are no flows" speedup diff to IPv6 too.henning2007-06-011-2/+3
| | | | | | we need a pointer to the inpcb to decide, which was not previously passed to ip6_output, so this diff is a little bigger. from itojun, ok ryan
* tcp_iss usage is ifdef TCP_COMPAT_42, so the variable decl can be tooderaadt2007-05-091-1/+3
|
* variables used by #ifdef code should be inside #ifdef tooderaadt2007-05-081-1/+5
|
* With the exception of two other small uncommited diffs this movesbrad2006-03-041-2/+2
| | | | | | the remainder of the network stack from splimp to splnet. ok miod@
* Enable RFC3390 by default and remove a few compile time options whichbrad2005-09-281-24/+5
| | | | | | can be changed via sysctl's. ok markus@
* change the TCP reass queue from LIST to TAILQ;markus2005-08-021-7/+7
| | | | ok henning claudio fgsch krw
* implement PMTU checks frommarkus2005-06-301-3/+40
| | | | | | | 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.
* Ignore ICMP Source Quench messages meant for TCP connections. (Details infgont2005-05-241-17/+11
| | | | | http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html) ok markus frantzen
* - check th_ack against snd_una/max; from Raja Mukerji via hugh@markus2005-03-041-1/+5
| | | | | | | - limit pool to tcp_sackhole_limit entries (sysctl-able) - stop sack option processing on pool_get errors - use SEQ_MIN/SEQ_MAX ok henning, hshoexer, deraadt
* 1. tcp_xmit_timer(): remove extra rtt decrement (t_rtttime is 0-basedmarkus2005-02-271-2/+3
| | | | | | | | | | | while t_rtt was 1-based), update callers 2. define and use TCP_RTT_BASE_SHIFT instead of the hardcoded 2. 3. add missing shifts when t_srtt/t_rttvar are used. 4. update the comments: t_srtt uses 5 bits of fraction (not 3) and t_rttvar uses 4 bits 5. remove obsolete/unused macros TCP_RTT_SCALE and TCP_RTTVAR_SCALE 6. make sure rttmin is not > TCPTV_REXMTMAX parts from netbsd, ok mcbride, henning
* Make sure bogus values don't make their way into tcp_xmit_timer() calculations.mcbride2005-01-101-2/+2
| | | | | | | | | | - Ignore ts_ecr if it is 0, or the resulting rtt is out of range. (use tp->t_rtttime instead) - Initialise tcp_now to 1, to avoid the 500ms window where a valid ts_ecr of 0 could be ignored. - Convert out-of-range rtt values to valid ones in tcp_xmit_timer(). ok frantzen@ markus@
* fix for race between invocation for timer and network inputmarkus2004-11-251-3/+18
| | | | | | 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@
* Modulate tcp_now by a random amount on a per-connection basis.mcbride2004-10-281-2/+1
| | | | ok markus@ frantzen@
* verify th_seq in icmp errors; report Fernando Gont; ok mcbride@, dhartmei@markus2004-08-101-31/+53
|
* First step towards more sane time handling in the kernel -- this changestholo2004-06-211-3/+3
| | | | | | | | things such that code that only need a second-resolution uptime or wall time, and used to get that from time.tv_secs or mono_time.tv_secs now get this from separate time_t globals time_second and time_uptime. ok art@ niklas@ nordin@
* factor out md5 code; ok+tests henning@, djm@, hshoexer@markus2004-06-081-1/+76
|
* Replace RSA-derived md5 code with code derived from Colin Plumb's PD version.millert2004-05-071-2/+2
| | | | | | This moves md5.c out of libkern and into sys/crypto where it belongs (as requested by markus@). Note that md5.c is still mandatory (dev/rnd.c uses it). Verified with IPsec + hmac-md5 and tcp md5sig. OK henning@ and hshoexer@
* The tcp specific routing metrics are almost never used so reduce the routingclaudio2004-05-041-111/+1
| | | | | | | table from these metrics. struct rt_msghdr used by the routing socket is not affected and so most userland apps don't need to be changed. some man page polishing by jmc@ OK henning@ markus@ theo@
* - allow the user to force the TCP mss below the fail-safe 216 with a lowfrantzen2004-04-261-8/+10
| | | | | | | | interface MTU. - break a tcp_output() -> tcp_mtudisc() -> tcp_output() infinite recursion when the TCP mss ends up larger than the interface MTU (when the if_mtu is smaller than the tcp header). connections will still stall feedback from itojun@, claudio@ and provos and testing from beck@
* limit total number of queued out-of-order packets to NMBCLUSTERS/2; ok mcbridemarkus2004-03-021-4/+8
|
* implement tcp_drain() similar to ip_drain(); ok mcbride@markus2004-02-271-1/+16
|
* !sack_disable -> sack_enable; ok deraadt@markus2004-01-311-2/+2
|
* support for RFC3390 (Increasing TCP's Initial Window); ok deraadt, itojunmarkus2004-01-291-1/+2
|
* don't restrict tcp signature keys to ascii; ok mcbridemarkus2004-01-091-23/+1
|
* import netbsd's version of David Borman's syncache codemarkus2004-01-061-5/+37
| | | | http://www.kohala.com/start/borman.97jun06.txt; ok deraadt@, henning@
* de-register. deraadt okitojun2003-12-101-17/+17
|
* add in(6)_pcblookup_listen() and replace all calls to in_pcblookup()markus2003-11-041-9/+7
| | | | | | with either in(6)_pcbhashlookup() or in(6)_pcblookup_listen(); in_pcblookup is now only used by bind(2); speeds up pcb lookup for listening sockets; from Claudio Jeker
* use random number generator to generate IPv6 fragment ID/flowlabel.itojun2003-10-011-2/+2
| | | | cleanup IPv6 flowlabel handling. deraadt ok
* do not flip ip_len/ip_off in netinet stack. deraadt ok.itojun2003-07-091-2/+2
| | | | (please test, especially PF portion)
* Remove the advertising clause in the UCB license which Berkeleymillert2003-06-021-6/+2
| | | | rescinded 22 July 1999. Proofed by myself and Theo.
* Nuke a whole bunch of commons; ok tedu (still more to come *sigh*)jason2003-05-121-1/+4
|
* Fix a problem where passing NULL as a pointer with varargs does not promotepefo2002-08-281-4/+3
| | | | | | | | 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@
* whitespaceitojun2002-06-091-18/+18
|
* 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
|