#
49cd1957 |
| 15-Apr-2006 |
christos <christos@NetBSD.org> |
Coverity CID 1153: Add KASSERT before deref.
|
#
95e1ffb1 |
| 11-Dec-2005 |
christos <christos@NetBSD.org> |
merge ktrace-lwp.
|
#
89940190 |
| 19-Jul-2005 |
christos <christos@NetBSD.org> |
Implement PMTU checks from:
http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html
1. Don't act on ICMP-need-frag immediately if adhoc checks on the advertised MTU fail. The MTU update
Implement PMTU checks from:
http://www.gont.com.ar/drafts/icmp-attacks-against-tcp.html
1. 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. 2. Ignore ICMP Source Quench messages meant for TCP connections.
From OpenBSD.
show more ...
|
#
c9f058f6 |
| 02-Mar-2005 |
mycroft <mycroft@NetBSD.org> |
Copyright maintenance.
|
#
4ae1f36d |
| 28-Feb-2005 |
jonathan <jonathan@NetBSD.org> |
Commit TCP SACK patches from Kentaro A. Karahone's patch at: http://www.sigusr1.org/~kurahone/tcp-sack-netbsd-02152005.diff.gz
Fixes in that patch for pre-existing TCP pcb initializations were al
Commit TCP SACK patches from Kentaro A. Karahone's patch at: http://www.sigusr1.org/~kurahone/tcp-sack-netbsd-02152005.diff.gz
Fixes in that patch for pre-existing TCP pcb initializations were already committed to NetBSD-current, so are not included in this commit.
The SACK patch has been observed to correctly negotiate and respond, to SACKs in wide-area traffic.
There are two indepenently-observed, as-yet-unresolved anomalies: First, seeing unexplained delays between in fast retransmission (potentially explainable by an 0.2sec RTT between adjacent ethernet/wifi NICs); and second, peculiar and unepxlained TCP retransmits observed over an ath0 card.
After discussion with several interested developers, I'm committing this now, as-is, for more eyes to use and look over. Current hypothesis is that the anomalies above may in fact be due to link/level (hardware, driver, HAL, firmware) abberations in the test setup, affecting both Kentaro's wired-Ethernet NIC and in my two (different) WiFi NICs.
show more ...
|
#
b02c92c5 |
| 03-Feb-2005 |
perry <perry@NetBSD.org> |
ANSIfy function declarations
|
#
e236dc1c |
| 27-Jan-2005 |
mycroft <mycroft@NetBSD.org> |
Whoops. Exit fast recovery when handling a timeout.
|
#
5283ca74 |
| 26-Jan-2005 |
mycroft <mycroft@NetBSD.org> |
Fix two problems in our TCP stack:
1) If an echoed RFC 1323 time stamp appears to be later than the current time, ignore it and fall back to old-style RTT calculation. This prevents ending up
Fix two problems in our TCP stack:
1) If an echoed RFC 1323 time stamp appears to be later than the current time, ignore it and fall back to old-style RTT calculation. This prevents ending up with a negative RTT and panicking later.
2) Fix NewReno. This involves a few changes:
a) Implement the send_high variable in RFC 2582. Our implementation is subtly different; it is one *past* the last sequence number transmitted rather than being equal to it. This simplifies some logic and makes the code smaller. Additional logic was required to prevent sequence number wraparound problems; this is not mentioned in RFC 2582.
b) Make sure we reset t_dupacks on new acks, but *not* on a partial ack. All of the new ack code is pushed out into tcp_newreno(). (Later this will probably be a pluggable function.) Thus t_dupacks keeps track of whether we're in fast recovery all the time, with Reno or NewReno, which keeps some logic simpler.
c) We do not need to update snd_recover when we're not in fast recovery. See tech-net for an explanation of this.
d) In the gratuitous fast retransmit prevention case, do not send a packet. RFC 2582 specifically says that we should "do nothing".
e) Do not inflate the congestion window on a partial ack. (This is done by testing t_dupacks to see whether we're still in fast recovery.)
This brings the performance of NewReno back up to the same as Reno in a few random test cases (e.g. transferring peer-to-peer over my wireless network). I have not concocted a good test case for the behavior specific to NewReno.
show more ...
|
#
344b08b4 |
| 02-Jan-2004 |
itojun <itojun@NetBSD.org> |
some corrections from markus@openbsd; - callout_ack() was called with wrong argument
|
#
3fef2ba8 |
| 27-Oct-2003 |
itojun <itojun@NetBSD.org> |
make it compilable with TCP_DEBUG defined
|
#
aad01611 |
| 07-Aug-2003 |
agc <agc@NetBSD.org> |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
80ccb552 |
| 20-Jul-2003 |
he <he@NetBSD.org> |
As a temporary workaround, apply the fix from PR#20390, thereby cooperating with the callout code in working around the race condition caused by the TCP code's use of the callout facility.
Instead o
As a temporary workaround, apply the fix from PR#20390, thereby cooperating with the callout code in working around the race condition caused by the TCP code's use of the callout facility.
Instead of unconditionally releasing memory in tcp_close() and SYN_CACHE_PUT(), check whether any of the related callout handlers are about to be invoked (but have not yet done callout_ack()), and if so, just mark the associated data structure (tcpcb or syn cache entry) as "dead", and test for this (and release storage) in the callout handler functions.
show more ...
|
#
882dec6b |
| 03-Feb-2003 |
thorpej <thorpej@NetBSD.org> |
Test callout_pending(), not callout_active(), and eliminate now-unnecessary callout_deactivate() calls.
|
#
5521093d |
| 24-Nov-2002 |
scw <scw@NetBSD.org> |
Quell an uninitialised variable warning.
|
#
4dd4549b |
| 22-Oct-2002 |
simonb <simonb@NetBSD.org> |
Guard use of "so" in tcp_timer_persist() and tcp_timer_2msl() with #ifdef TCP_DEBUG.
|
#
f192b66b |
| 09-Jun-2002 |
itojun <itojun@NetBSD.org> |
whitespace
|
#
3e7ae517 |
| 26-May-2002 |
itojun <itojun@NetBSD.org> |
path MTU discovery blackhole detection. PR 12790 (sorry for not committing it for a long time)
|
#
ea1cd7eb |
| 13-Nov-2001 |
lukem <lukem@NetBSD.org> |
add RCSIDs
|
#
47577dca |
| 04-Nov-2001 |
matt <matt@NetBSD.org> |
Change a few variable/tables to const since they are read-only.
|
#
050e9de0 |
| 11-Sep-2001 |
thorpej <thorpej@NetBSD.org> |
Use callouts for SYN cache timers, rather than traversing time queues in tcp_slowtimo().
|
#
4745c7f2 |
| 10-Sep-2001 |
thorpej <thorpej@NetBSD.org> |
Update copyrights.
|
#
6d0e813f |
| 10-Sep-2001 |
thorpej <thorpej@NetBSD.org> |
Use callouts for TCP timers, rather than traversing the list of all open TCP connections in tcp_slowtimo() (which is called 2x per second). It's fairly rare for TCP timers to actually fire, so savin
Use callouts for TCP timers, rather than traversing the list of all open TCP connections in tcp_slowtimo() (which is called 2x per second). It's fairly rare for TCP timers to actually fire, so saving this list traversal is good, especially if you want to scale to thousands of open connections.
show more ...
|
#
413e5cb8 |
| 10-Sep-2001 |
thorpej <thorpej@NetBSD.org> |
Initialize TCP timer variables in a new function, tcp_timer_init().
|
#
45e02f5e |
| 10-Sep-2001 |
thorpej <thorpej@NetBSD.org> |
Split tcp_timers() into multiple functions, one for each timer, and call it directly from tcp_slowtimo() (via a table) rather than going through tcp_userreq().
This will allow us to call TCP timers
Split tcp_timers() into multiple functions, one for each timer, and call it directly from tcp_slowtimo() (via a table) rather than going through tcp_userreq().
This will allow us to call TCP timers directly from callouts, in a future revision.
show more ...
|
#
7446fd2b |
| 10-Sep-2001 |
thorpej <thorpej@NetBSD.org> |
Change the way receive idle time and round trip time are measured. Instead of incrementing t_idle and t_rtt in tcp_slowtimo(), we now take a timstamp (via tcp_now) and use subtraction to compute the
Change the way receive idle time and round trip time are measured. Instead of incrementing t_idle and t_rtt in tcp_slowtimo(), we now take a timstamp (via tcp_now) and use subtraction to compute the delta when we actually need it (using unsigned arithmetic so that tcp_now wrapping is handled correctly).
Based on similar changes in FreeBSD.
show more ...
|