summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_subr.c
AgeCommit message (Collapse)Author
2005-09-28Enable RFC3390 by default and remove a few compile time options whichBrad Smith
can be changed via sysctl's. ok markus@
2005-08-02change the TCP reass queue from LIST to TAILQ;Markus Friedl
ok henning claudio fgsch krw
2005-06-30implement PMTU checks fromMarkus Friedl
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.
2005-05-24Ignore ICMP Source Quench messages meant for TCP connections. (Details inFernando Gont
http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html) ok markus frantzen
2005-03-04- check th_ack against snd_una/max; from Raja Mukerji via hugh@Markus Friedl
- 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
2005-02-271. tcp_xmit_timer(): remove extra rtt decrement (t_rtttime is 0-basedMarkus Friedl
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
2005-01-10Make sure bogus values don't make their way into tcp_xmit_timer() calculations.Ryan Thomas McBride
- 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@
2004-11-25fix for race between invocation for timer and network inputMarkus Friedl
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@
2004-10-28Modulate tcp_now by a random amount on a per-connection basis.Ryan Thomas McBride
ok markus@ frantzen@
2004-08-10verify th_seq in icmp errors; report Fernando Gont; ok mcbride@, dhartmei@Markus Friedl
2004-06-21First step towards more sane time handling in the kernel -- this changesThorsten Lockert
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@
2004-06-08factor out md5 code; ok+tests henning@, djm@, hshoexer@Markus Friedl
2004-05-07Replace RSA-derived md5 code with code derived from Colin Plumb's PD version.Todd C. Miller
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@
2004-05-04The tcp specific routing metrics are almost never used so reduce the routingClaudio Jeker
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@
2004-04-26- allow the user to force the TCP mss below the fail-safe 216 with a lowMike Frantzen
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@
2004-03-02limit total number of queued out-of-order packets to NMBCLUSTERS/2; ok mcbrideMarkus Friedl
2004-02-27implement tcp_drain() similar to ip_drain(); ok mcbride@Markus Friedl
2004-01-31!sack_disable -> sack_enable; ok deraadt@Markus Friedl
2004-01-29support for RFC3390 (Increasing TCP's Initial Window); ok deraadt, itojunMarkus Friedl
2004-01-09don't restrict tcp signature keys to ascii; ok mcbrideMarkus Friedl
2004-01-06import netbsd's version of David Borman's syncache codeMarkus Friedl
http://www.kohala.com/start/borman.97jun06.txt; ok deraadt@, henning@
2003-12-10de-register. deraadt okJun-ichiro itojun Hagino
2003-11-04add in(6)_pcblookup_listen() and replace all calls to in_pcblookup()Markus Friedl
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
2003-10-01use random number generator to generate IPv6 fragment ID/flowlabel.Jun-ichiro itojun Hagino
cleanup IPv6 flowlabel handling. deraadt ok
2003-07-09do not flip ip_len/ip_off in netinet stack. deraadt ok.Jun-ichiro itojun Hagino
(please test, especially PF portion)
2003-06-02Remove the advertising clause in the UCB license which BerkeleyTodd C. Miller
rescinded 22 July 1999. Proofed by myself and Theo.
2003-05-12Nuke a whole bunch of commons; ok tedu (still more to come *sigh*)Jason Wright
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-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