#
1.99 |
|
04-Nov-2022 |
ozaki-r |
inpcb: rename functions to inpcb_*
Inspired by rmind-smpnet patches.
|
#
1.98 |
|
28-Oct-2022 |
ozaki-r |
inpcb: separate inpcb again to reduce the size of PCB for IPv4
The data size of PCB for IPv4 increased because of the merge of struct in6pcb. The change decreases the size to the original size by separating struct inpcb (again). struct in4pcb and in6pcb that embed struct inpcb are introduced.
Even after the separation, users don't need to realize the separation and only have to use some macros to access dedicated data. For example, inp->inp_laddr is now accessed through in4p_laddr(inp).
|
#
1.97 |
|
28-Oct-2022 |
ozaki-r |
inpcb: integrate data structures of PCB into one
Data structures of network protocol control blocks (PCBs), i.e., struct inpcb, in6pcb and inpcb_hdr, are not organized well. Users of the data structures have to handle them separately and thus the code is cluttered and duplicated.
The commit integrates the data structures into one, struct inpcb. As a result, users of PCBs only have to handle just one data structure, so the code becomes simple.
One drawback is that the data size of PCB for IPv4 increases by 40 bytes (from 248 bytes to 288 bytes).
|
Revision tags: bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.96 |
|
08-Mar-2021 |
christos |
Add some randomness to the iss offset
|
Revision tags: netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
|
#
1.95 |
|
03-May-2018 |
maxv |
branches: 1.95.6; 1.95.14; Remove now unused tcpip.h includes. Some were already unused before.
|
Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
#
1.94 |
|
29-Mar-2018 |
maxv |
Remove #ifdef INET. Same as tcp_input.c. Makes the code easier to understand.
Also make tcp6_mtudisc() static in tcp_subr.c.
|
Revision tags: pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.93 |
|
19-Jan-2018 |
ozaki-r |
branches: 1.93.2; Run tcp_slowtimo in workqueue if NET_MPSAFE
If NET_MPSAFE is enabled, we have to avoid taking softnet_lock in softint as much as possible to prevent any softint handlers including callout handlers such as tcp_slowtimo from sticking on softnet_lock because it results in undesired delays of executing subsequent softint handlers.
NFCI for !NET_MPSAFE
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
|
#
1.92 |
|
28-Jul-2017 |
maxv |
Remove TCP_COMPAT_42. This feature is a workaround for a bug in the TCP stack of BSD4.2. Having such features just does not make any sense, and looking at the code, I'm not sure it actually works.
|
Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726
|
#
1.91 |
|
25-Jul-2016 |
knakahara |
branches: 1.91.8; fix: unlock in reverse order
|
Revision tags: pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.90 |
|
26-Apr-2016 |
ozaki-r |
branches: 1.90.2; Sweep unnecessary route.h inclusions
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.89 |
|
24-Aug-2015 |
pooka |
sprinkle _KERNEL_OPT
|
Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
|
#
1.88 |
|
10-Nov-2014 |
maxv |
branches: 1.88.2; Do not uselessly include <sys/malloc.h>.
|
Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.87 |
|
02-Jan-2014 |
pooka |
branches: 1.87.4; Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.86 |
|
31-Aug-2011 |
plunky |
branches: 1.86.2; 1.86.12; 1.86.16; NULL does not need a cast
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.85 |
|
20-Apr-2011 |
gdt |
Rewrite comments about TCP RTO calculations.
Long ago, the storage representations of srtt and rttvar were changed from the 4.4BSD scheme, and the comments are out of sync with the code. This commit rewrites most of the comments that explain the RTO calculations, and points out some issues in the code.
Joint work with Bev Schwartz of BBN (original analysis and comments), but I have rewritten and extended them, so errors are mine.
This material is based upon work supported by the Defense Advanced Research Projects Agency and Space and Naval Warfare Systems Center, Pacific, under Contract No. N66001-09-C-2073. Approved for Public Release, Distribution Unlimited
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.84 |
|
10-Nov-2008 |
uebayasi |
branches: 1.84.8; 1.84.10; Whitespace.
|
#
1.83 |
|
09-Nov-2008 |
bouyer |
Fix kern/39769: race condition in TCP timers When a TCP timer is disarmed (with callout_stop()) in the general case callout_invoking() isn't checked, so the timer handler could be called run when the current interrupt handler exits, athough the timer is disarmed. This case cause bad things like TCPT_REXMT and TCPT_PERSIST being both pending, causing a panic (see the PR for details). Close the issue by aborting the handler if the timer is not callout_expired(). (the EXPIRED flag being cleared by callout_stop()).
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.82 |
|
10-Oct-2008 |
ad |
branches: 1.82.2; 1.82.4; tcp_delack: test for TF_DELACK.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.81 |
|
28-Apr-2008 |
martin |
branches: 1.81.2; 1.81.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-nfs-mp-base
|
#
1.80 |
|
24-Apr-2008 |
ad |
branches: 1.80.2; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base
|
#
1.79 |
|
12-Apr-2008 |
thorpej |
branches: 1.79.2; Make IP, TCP, UDP, and ICMP statistics per-CPU. The stats are collated when the user requests them via sysctl.
|
#
1.78 |
|
08-Apr-2008 |
thorpej |
Change TCP stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old tcpstat structure; old netstat binaries will continue to work properly.
|
Revision tags: nick-csl-alignment-base5 ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base matt-mips64-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.77 |
|
20-Jun-2007 |
christos |
branches: 1.77.28; - per socket keepalive settings - settable connection establishment timeout
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 yamt-idlelwp-base8 wrstuden-fixsa-base thorpej-atomic-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 newlock2-base netbsd-4-base
|
#
1.76 |
|
09-Oct-2006 |
rpaulo |
branches: 1.76.2; 1.76.8; 1.76.10; Modular (I tried ;-) TCP congestion control API. Whenever certain conditions happen in the TCP stack, this interface calls the specified callback to handle the situation according to the currently selected congestion control algorithm. A new sysctl node was created: net.inet.tcp.congctl.{available,selected} with obvious meanings. The old net.inet.tcp.newreno MIB was removed. The API is discussed in tcp_congctl(9).
In the near future, it will be possible to selected a congestion control algorithm on a per-socket basis.
Discussed on tech-net and reviewed by <yamt>.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.75 |
|
14-May-2006 |
elad |
branches: 1.75.8; 1.75.10; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.74 |
|
15-Apr-2006 |
christos |
Coverity CID 1153: Add KASSERT before deref.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.73 |
|
11-Dec-2005 |
christos |
branches: 1.73.4; 1.73.6; 1.73.8; 1.73.10; 1.73.12; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.72 |
|
19-Jul-2005 |
christos |
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.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.71 |
|
02-Mar-2005 |
mycroft |
branches: 1.71.2; 1.71.4; Copyright maintenance.
|
#
1.70 |
|
28-Feb-2005 |
jonathan |
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.
|
Revision tags: yamt-km-base2
|
#
1.69 |
|
03-Feb-2005 |
perry |
ANSIfy function declarations
|
#
1.68 |
|
27-Jan-2005 |
mycroft |
Whoops. Exit fast recovery when handling a timeout.
|
#
1.67 |
|
26-Jan-2005 |
mycroft |
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.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE yamt-km-base netbsd-2-0-1-RELEASE kent-audio1-beforemerge netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 BEFORE-IPF413 netbsd-2-0-base BEFORE-IPF411
|
#
1.66 |
|
02-Jan-2004 |
itojun |
branches: 1.66.8; 1.66.10; some corrections from markus@openbsd; - callout_ack() was called with wrong argument
|
#
1.65 |
|
27-Oct-2003 |
itojun |
make it compilable with TCP_DEBUG defined
|
#
1.64 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.63 |
|
20-Jul-2003 |
he |
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.
|
#
1.62 |
|
03-Feb-2003 |
thorpej |
branches: 1.62.2; Test callout_pending(), not callout_active(), and eliminate now-unnecessary callout_deactivate() calls.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.61 |
|
24-Nov-2002 |
scw |
Quell an uninitialised variable warning.
|
Revision tags: kqueue-aftermerge kqueue-beforemerge
|
#
1.60 |
|
22-Oct-2002 |
simonb |
Guard use of "so" in tcp_timer_persist() and tcp_timer_2msl() with #ifdef TCP_DEBUG.
|
Revision tags: gehenna-devsw-base kqueue-base
|
#
1.59 |
|
09-Jun-2002 |
itojun |
whitespace
|
#
1.58 |
|
26-May-2002 |
itojun |
path MTU discovery blackhole detection. PR 12790 (sorry for not committing it for a long time)
|
Revision tags: netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.57 |
|
13-Nov-2001 |
lukem |
branches: 1.57.8; 1.57.10; add RCSIDs
|
Revision tags: thorpej-mips-cache-base
|
#
1.56 |
|
04-Nov-2001 |
matt |
Change a few variable/tables to const since they are read-only.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf
|
#
1.55 |
|
11-Sep-2001 |
thorpej |
branches: 1.55.2; Use callouts for SYN cache timers, rather than traversing time queues in tcp_slowtimo().
|
#
1.54 |
|
10-Sep-2001 |
thorpej |
Update copyrights.
|
#
1.53 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.52 |
|
10-Sep-2001 |
thorpej |
Initialize TCP timer variables in a new function, tcp_timer_init().
|
#
1.51 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.50 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.49 |
|
10-Sep-2001 |
thorpej |
Use a callout for the delayed ACK timer, and delete tcp_fasttimo(). Expose the delayed ACK timer as net.inet.tcp.delack_ticks.
|
Revision tags: thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.48 |
|
19-Oct-2000 |
itojun |
branches: 1.48.2; 1.48.4; 1.48.6; remove #ifdef TCP6. it is not likely for us to bring in sys/netinet6/tcp6*.c (separate TCP/IPv6 stack) into netbsd-current.
|
#
1.47 |
|
17-Oct-2000 |
itojun |
be more friendly with INET-less build. XXX we need to do more to do a working INET-less build
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.46 |
|
30-Mar-2000 |
augustss |
Remove register declarations.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.45 |
|
14-Jul-1999 |
itojun |
branches: 1.45.2; Use proper ip protocol # field and tcp hdr on sending RST against SYN, when ip header and tcp header are not adjacent to each other (i.e. when ip6 options are attached).
To test this, try telnet @::1@::1 port toward a port without responding server. Prior to the fix, the kernel will generate broken RST packet.
|
#
1.44 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base kenh-if-detach-base chs-ubc-base
|
#
1.43 |
|
10-Sep-1998 |
mouse |
branches: 1.43.8; 1.43.10; Create tcp.keepidle, tcp.keepintvl, tcp.keepcnt, tcp.slowhz sysctls.
|
#
1.42 |
|
04-Sep-1998 |
mycroft |
Fix a couple of bogons related to tcp_new_iss(): * Don't add tcp_iss_seq when creating a new ISS from TIME-WAIT state. * Do the clock increment even when using the rnd device.
|
Revision tags: eeh-paddr_t-base
|
#
1.41 |
|
17-Jul-1998 |
thorpej |
Comment where we use the Loss Window.
|
#
1.40 |
|
02-Jun-1998 |
thorpej |
Loss window MUST be one segment, per draft-floyd-incr-init-win-03.
|
#
1.39 |
|
11-May-1998 |
thorpej |
Make sure a timer is marked "disarmed" once it has expired.
|
#
1.38 |
|
11-May-1998 |
thorpej |
Nuke TUBA per my note to tech-net; there's no reason to keep it around.
|
#
1.37 |
|
07-May-1998 |
thorpej |
Define all TCP timers in terms of PRT timers.
|
#
1.36 |
|
06-May-1998 |
thorpej |
Use macros from tcp_timer.h to manipulate TCP timers, so that their implementation can be changed easily.
|
#
1.35 |
|
01-May-1998 |
kml |
Remove bogus black hole discovery code
|
#
1.34 |
|
29-Apr-1998 |
thorpej |
Make use of the work-arounds for ancient broken TCP peers run-time conditional (tcp_compat_42). The kernel config option TCP_COMPAT_42 will still enable this by default, or disable this by default if the option is not included (i.e. current behavior). This will be made a sysctl soon.
|
#
1.33 |
|
29-Apr-1998 |
kml |
Add support for deletion of routes added by path MTU discovery; uses new generic route timeout code. Add sysctl for timeout period.
|
#
1.32 |
|
31-Mar-1998 |
thorpej |
Fix a potential-congestion case in the larger initial congestion window code, as clarified in the TCPIMPL WG meeting at IETF #41: If the SYN (active open) or SYN,ACK (passive open) was retransmitted, the initial congestion window for the first slow start of that connection must be one segment.
|
#
1.31 |
|
19-Mar-1998 |
kml |
Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.
|
#
1.30 |
|
19-Feb-1998 |
thorpej |
Update copyright (sigh, should have done this long ago).
|
#
1.29 |
|
12-Jan-1998 |
scottr |
Use option header file for TCP_COMPAT_42
|
#
1.28 |
|
05-Jan-1998 |
thorpej |
Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates.
|
#
1.27 |
|
31-Dec-1997 |
thorpej |
Implement a queue for delayed ACK processing. This queue is used in tcp_fasttimo() in lieu of scanning all open TCP connections.
|
#
1.26 |
|
17-Dec-1997 |
thorpej |
From 4.4BSD-Lite2: - When running the slow timers, skip PCBs in LISTEN state. - When processing the persist timer, drop the connection if the connection idle time exceeds the maximum backoff for retransmit. Part of kern/2335 (pete@daemon.net).
|
#
1.25 |
|
11-Dec-1997 |
thorpej |
Implement an infrastructure to allow larger initial congestion windows. The sysctl'able variable "tcp_init_win", when set to 0, selects an auto-tuning algorithm for selecting the initial window, based on transmit segment size, per discussion in the IETF tcpimpl working group.
Default initial window is still 1 segment, but will soon become 2 segments, per discussion in tcpimpl.
|
#
1.24 |
|
11-Dec-1997 |
thorpej |
In tcp_fasttimo(), don't clear TF_DELACK; we need it to count delayed ACKs in tcp_output(), and it will only be cleared in tcp_output() if the ACK was transmitted sucessfully. Also, don't count delayed ACKs here, let tcp_output() count them.
|
#
1.23 |
|
09-Dec-1997 |
thorpej |
Costmetic change: use intotcpcb() in tcp_fasttimo().
|
#
1.22 |
|
08-Nov-1997 |
kml |
TCP MSS fixes to provide cleaner slow-start and recovery.
|
Revision tags: netbsd-1-3-base marc-pcmcia-base
|
#
1.21 |
|
13-Oct-1997 |
explorer |
branches: 1.21.2; o Make usage of /dev/random dependant on pseudo-device rnd # /dev/random and in-kernel generator in config files.
o Add declaration to all architectures.
o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include that this code is derived in part from Ted Tyso's linux code.
|
#
1.20 |
|
10-Oct-1997 |
explorer |
Add hooks to use the kernel random system to generate TCP sequence numbers.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp
|
#
1.19 |
|
28-Jul-1997 |
thorpej |
branches: 1.19.2; Garbage-collect some "extern"s.
|
#
1.18 |
|
23-Jul-1997 |
thorpej |
Pull SYN_cache_branch down into the main line.
|
Revision tags: SYN_cache_cur_base is-newarp-before-merge is-newarp-base
|
#
1.17 |
|
10-Dec-1996 |
mycroft |
branches: 1.17.8; Fix RTT scaling problems introduced with Brakmo and Peterson changes.
|
#
1.16 |
|
09-Sep-1996 |
mycroft |
Add in_nullhost() and in_hosteq() macros, to hide some protocol details. Also, fix a bug in TCP wrt SYN+URG packets.
|
#
1.15 |
|
22-May-1996 |
mycroft |
Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
13-Feb-1996 |
christos |
branches: 1.14.4; netinet prototypes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.13 |
|
12-Aug-1995 |
mycroft |
splnet --> splsoftnet
|
#
1.12 |
|
18-Jun-1995 |
cgd |
convert pcb lists to CIRCLEQs, so that the end can be looked at more easily, and so that the original (insque/remque) logic can be effectively mimiced. (This fixes a bug in the previous set of list changes.) also (since terminator is no longer null) reinstate uninitted list checks, but mark them XXX.
|
#
1.11 |
|
12-Jun-1995 |
mycroft |
Various cleanup, including: * Convert several data structures to use queue.h. * Split in_pcbnotify() into two parts; one for notifying a specific PCB, and one for notifying all PCBs for a particular foreign address.
|
#
1.10 |
|
13-Apr-1995 |
cgd |
be a bit more careful and explicit with types. (basically a large no-op.)
|
#
1.9 |
|
14-Oct-1994 |
mycroft |
Don't return received data to the user until the initial handshake is complete. Also use TCPS_HAVEESTABLISHED() in a few other places.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.8 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.7 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.6 |
|
08-Jan-1994 |
mycroft |
Prototypes.
|
#
1.5 |
|
08-Jan-1994 |
mycroft |
Fix some inconsistent spacing; spaces at the end of lines, etc.
|
#
1.4 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.3 |
|
22-May-1993 |
cgd |
branches: 1.3.4; add include of select.h if necessary for protos, or delete if extraneous
|
#
1.2 |
|
18-May-1993 |
cgd |
make kernel select interface be one-stop shopping & clean it all up.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.98 |
|
28-Oct-2022 |
ozaki-r |
inpcb: separate inpcb again to reduce the size of PCB for IPv4
The data size of PCB for IPv4 increased because of the merge of struct in6pcb. The change decreases the size to the original size by separating struct inpcb (again). struct in4pcb and in6pcb that embed struct inpcb are introduced.
Even after the separation, users don't need to realize the separation and only have to use some macros to access dedicated data. For example, inp->inp_laddr is now accessed through in4p_laddr(inp).
|
#
1.97 |
|
28-Oct-2022 |
ozaki-r |
inpcb: integrate data structures of PCB into one
Data structures of network protocol control blocks (PCBs), i.e., struct inpcb, in6pcb and inpcb_hdr, are not organized well. Users of the data structures have to handle them separately and thus the code is cluttered and duplicated.
The commit integrates the data structures into one, struct inpcb. As a result, users of PCBs only have to handle just one data structure, so the code becomes simple.
One drawback is that the data size of PCB for IPv4 increases by 40 bytes (from 248 bytes to 288 bytes).
|
Revision tags: bouyer-sunxi-drm-base thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-i2c-spi-conf-base thorpej-cfargs-base thorpej-futex-base
|
#
1.96 |
|
08-Mar-2021 |
christos |
Add some randomness to the iss offset
|
Revision tags: netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
|
#
1.95 |
|
03-May-2018 |
maxv |
branches: 1.95.6; 1.95.14; Remove now unused tcpip.h includes. Some were already unused before.
|
Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
#
1.94 |
|
29-Mar-2018 |
maxv |
Remove #ifdef INET. Same as tcp_input.c. Makes the code easier to understand.
Also make tcp6_mtudisc() static in tcp_subr.c.
|
Revision tags: pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.93 |
|
19-Jan-2018 |
ozaki-r |
branches: 1.93.2; Run tcp_slowtimo in workqueue if NET_MPSAFE
If NET_MPSAFE is enabled, we have to avoid taking softnet_lock in softint as much as possible to prevent any softint handlers including callout handlers such as tcp_slowtimo from sticking on softnet_lock because it results in undesired delays of executing subsequent softint handlers.
NFCI for !NET_MPSAFE
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
|
#
1.92 |
|
28-Jul-2017 |
maxv |
Remove TCP_COMPAT_42. This feature is a workaround for a bug in the TCP stack of BSD4.2. Having such features just does not make any sense, and looking at the code, I'm not sure it actually works.
|
Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726
|
#
1.91 |
|
25-Jul-2016 |
knakahara |
branches: 1.91.8; fix: unlock in reverse order
|
Revision tags: pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.90 |
|
26-Apr-2016 |
ozaki-r |
branches: 1.90.2; Sweep unnecessary route.h inclusions
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.89 |
|
24-Aug-2015 |
pooka |
sprinkle _KERNEL_OPT
|
Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
|
#
1.88 |
|
10-Nov-2014 |
maxv |
branches: 1.88.2; Do not uselessly include <sys/malloc.h>.
|
Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.87 |
|
02-Jan-2014 |
pooka |
branches: 1.87.4; Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.86 |
|
31-Aug-2011 |
plunky |
branches: 1.86.2; 1.86.12; 1.86.16; NULL does not need a cast
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.85 |
|
20-Apr-2011 |
gdt |
Rewrite comments about TCP RTO calculations.
Long ago, the storage representations of srtt and rttvar were changed from the 4.4BSD scheme, and the comments are out of sync with the code. This commit rewrites most of the comments that explain the RTO calculations, and points out some issues in the code.
Joint work with Bev Schwartz of BBN (original analysis and comments), but I have rewritten and extended them, so errors are mine.
This material is based upon work supported by the Defense Advanced Research Projects Agency and Space and Naval Warfare Systems Center, Pacific, under Contract No. N66001-09-C-2073. Approved for Public Release, Distribution Unlimited
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.84 |
|
10-Nov-2008 |
uebayasi |
branches: 1.84.8; 1.84.10; Whitespace.
|
#
1.83 |
|
09-Nov-2008 |
bouyer |
Fix kern/39769: race condition in TCP timers When a TCP timer is disarmed (with callout_stop()) in the general case callout_invoking() isn't checked, so the timer handler could be called run when the current interrupt handler exits, athough the timer is disarmed. This case cause bad things like TCPT_REXMT and TCPT_PERSIST being both pending, causing a panic (see the PR for details). Close the issue by aborting the handler if the timer is not callout_expired(). (the EXPIRED flag being cleared by callout_stop()).
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.82 |
|
10-Oct-2008 |
ad |
branches: 1.82.2; 1.82.4; tcp_delack: test for TF_DELACK.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.81 |
|
28-Apr-2008 |
martin |
branches: 1.81.2; 1.81.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-nfs-mp-base
|
#
1.80 |
|
24-Apr-2008 |
ad |
branches: 1.80.2; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base
|
#
1.79 |
|
12-Apr-2008 |
thorpej |
branches: 1.79.2; Make IP, TCP, UDP, and ICMP statistics per-CPU. The stats are collated when the user requests them via sysctl.
|
#
1.78 |
|
08-Apr-2008 |
thorpej |
Change TCP stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old tcpstat structure; old netstat binaries will continue to work properly.
|
Revision tags: nick-csl-alignment-base5 ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base matt-mips64-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.77 |
|
20-Jun-2007 |
christos |
branches: 1.77.28; - per socket keepalive settings - settable connection establishment timeout
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 yamt-idlelwp-base8 wrstuden-fixsa-base thorpej-atomic-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 newlock2-base netbsd-4-base
|
#
1.76 |
|
09-Oct-2006 |
rpaulo |
branches: 1.76.2; 1.76.8; 1.76.10; Modular (I tried ;-) TCP congestion control API. Whenever certain conditions happen in the TCP stack, this interface calls the specified callback to handle the situation according to the currently selected congestion control algorithm. A new sysctl node was created: net.inet.tcp.congctl.{available,selected} with obvious meanings. The old net.inet.tcp.newreno MIB was removed. The API is discussed in tcp_congctl(9).
In the near future, it will be possible to selected a congestion control algorithm on a per-socket basis.
Discussed on tech-net and reviewed by <yamt>.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.75 |
|
14-May-2006 |
elad |
branches: 1.75.8; 1.75.10; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.74 |
|
15-Apr-2006 |
christos |
Coverity CID 1153: Add KASSERT before deref.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.73 |
|
11-Dec-2005 |
christos |
branches: 1.73.4; 1.73.6; 1.73.8; 1.73.10; 1.73.12; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.72 |
|
19-Jul-2005 |
christos |
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.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.71 |
|
02-Mar-2005 |
mycroft |
branches: 1.71.2; 1.71.4; Copyright maintenance.
|
#
1.70 |
|
28-Feb-2005 |
jonathan |
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.
|
Revision tags: yamt-km-base2
|
#
1.69 |
|
03-Feb-2005 |
perry |
ANSIfy function declarations
|
#
1.68 |
|
27-Jan-2005 |
mycroft |
Whoops. Exit fast recovery when handling a timeout.
|
#
1.67 |
|
26-Jan-2005 |
mycroft |
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.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE yamt-km-base netbsd-2-0-1-RELEASE kent-audio1-beforemerge netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 BEFORE-IPF413 netbsd-2-0-base BEFORE-IPF411
|
#
1.66 |
|
02-Jan-2004 |
itojun |
branches: 1.66.8; 1.66.10; some corrections from markus@openbsd; - callout_ack() was called with wrong argument
|
#
1.65 |
|
27-Oct-2003 |
itojun |
make it compilable with TCP_DEBUG defined
|
#
1.64 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.63 |
|
20-Jul-2003 |
he |
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.
|
#
1.62 |
|
03-Feb-2003 |
thorpej |
branches: 1.62.2; Test callout_pending(), not callout_active(), and eliminate now-unnecessary callout_deactivate() calls.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.61 |
|
24-Nov-2002 |
scw |
Quell an uninitialised variable warning.
|
Revision tags: kqueue-aftermerge kqueue-beforemerge
|
#
1.60 |
|
22-Oct-2002 |
simonb |
Guard use of "so" in tcp_timer_persist() and tcp_timer_2msl() with #ifdef TCP_DEBUG.
|
Revision tags: gehenna-devsw-base kqueue-base
|
#
1.59 |
|
09-Jun-2002 |
itojun |
whitespace
|
#
1.58 |
|
26-May-2002 |
itojun |
path MTU discovery blackhole detection. PR 12790 (sorry for not committing it for a long time)
|
Revision tags: netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.57 |
|
13-Nov-2001 |
lukem |
branches: 1.57.8; 1.57.10; add RCSIDs
|
Revision tags: thorpej-mips-cache-base
|
#
1.56 |
|
04-Nov-2001 |
matt |
Change a few variable/tables to const since they are read-only.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf
|
#
1.55 |
|
11-Sep-2001 |
thorpej |
branches: 1.55.2; Use callouts for SYN cache timers, rather than traversing time queues in tcp_slowtimo().
|
#
1.54 |
|
10-Sep-2001 |
thorpej |
Update copyrights.
|
#
1.53 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.52 |
|
10-Sep-2001 |
thorpej |
Initialize TCP timer variables in a new function, tcp_timer_init().
|
#
1.51 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.50 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.49 |
|
10-Sep-2001 |
thorpej |
Use a callout for the delayed ACK timer, and delete tcp_fasttimo(). Expose the delayed ACK timer as net.inet.tcp.delack_ticks.
|
Revision tags: thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.48 |
|
19-Oct-2000 |
itojun |
branches: 1.48.2; 1.48.4; 1.48.6; remove #ifdef TCP6. it is not likely for us to bring in sys/netinet6/tcp6*.c (separate TCP/IPv6 stack) into netbsd-current.
|
#
1.47 |
|
17-Oct-2000 |
itojun |
be more friendly with INET-less build. XXX we need to do more to do a working INET-less build
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.46 |
|
30-Mar-2000 |
augustss |
Remove register declarations.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.45 |
|
14-Jul-1999 |
itojun |
branches: 1.45.2; Use proper ip protocol # field and tcp hdr on sending RST against SYN, when ip header and tcp header are not adjacent to each other (i.e. when ip6 options are attached).
To test this, try telnet @::1@::1 port toward a port without responding server. Prior to the fix, the kernel will generate broken RST packet.
|
#
1.44 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base kenh-if-detach-base chs-ubc-base
|
#
1.43 |
|
10-Sep-1998 |
mouse |
branches: 1.43.8; 1.43.10; Create tcp.keepidle, tcp.keepintvl, tcp.keepcnt, tcp.slowhz sysctls.
|
#
1.42 |
|
04-Sep-1998 |
mycroft |
Fix a couple of bogons related to tcp_new_iss(): * Don't add tcp_iss_seq when creating a new ISS from TIME-WAIT state. * Do the clock increment even when using the rnd device.
|
Revision tags: eeh-paddr_t-base
|
#
1.41 |
|
17-Jul-1998 |
thorpej |
Comment where we use the Loss Window.
|
#
1.40 |
|
02-Jun-1998 |
thorpej |
Loss window MUST be one segment, per draft-floyd-incr-init-win-03.
|
#
1.39 |
|
11-May-1998 |
thorpej |
Make sure a timer is marked "disarmed" once it has expired.
|
#
1.38 |
|
11-May-1998 |
thorpej |
Nuke TUBA per my note to tech-net; there's no reason to keep it around.
|
#
1.37 |
|
07-May-1998 |
thorpej |
Define all TCP timers in terms of PRT timers.
|
#
1.36 |
|
06-May-1998 |
thorpej |
Use macros from tcp_timer.h to manipulate TCP timers, so that their implementation can be changed easily.
|
#
1.35 |
|
01-May-1998 |
kml |
Remove bogus black hole discovery code
|
#
1.34 |
|
29-Apr-1998 |
thorpej |
Make use of the work-arounds for ancient broken TCP peers run-time conditional (tcp_compat_42). The kernel config option TCP_COMPAT_42 will still enable this by default, or disable this by default if the option is not included (i.e. current behavior). This will be made a sysctl soon.
|
#
1.33 |
|
29-Apr-1998 |
kml |
Add support for deletion of routes added by path MTU discovery; uses new generic route timeout code. Add sysctl for timeout period.
|
#
1.32 |
|
31-Mar-1998 |
thorpej |
Fix a potential-congestion case in the larger initial congestion window code, as clarified in the TCPIMPL WG meeting at IETF #41: If the SYN (active open) or SYN,ACK (passive open) was retransmitted, the initial congestion window for the first slow start of that connection must be one segment.
|
#
1.31 |
|
19-Mar-1998 |
kml |
Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.
|
#
1.30 |
|
19-Feb-1998 |
thorpej |
Update copyright (sigh, should have done this long ago).
|
#
1.29 |
|
12-Jan-1998 |
scottr |
Use option header file for TCP_COMPAT_42
|
#
1.28 |
|
05-Jan-1998 |
thorpej |
Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates.
|
#
1.27 |
|
31-Dec-1997 |
thorpej |
Implement a queue for delayed ACK processing. This queue is used in tcp_fasttimo() in lieu of scanning all open TCP connections.
|
#
1.26 |
|
17-Dec-1997 |
thorpej |
From 4.4BSD-Lite2: - When running the slow timers, skip PCBs in LISTEN state. - When processing the persist timer, drop the connection if the connection idle time exceeds the maximum backoff for retransmit. Part of kern/2335 (pete@daemon.net).
|
#
1.25 |
|
11-Dec-1997 |
thorpej |
Implement an infrastructure to allow larger initial congestion windows. The sysctl'able variable "tcp_init_win", when set to 0, selects an auto-tuning algorithm for selecting the initial window, based on transmit segment size, per discussion in the IETF tcpimpl working group.
Default initial window is still 1 segment, but will soon become 2 segments, per discussion in tcpimpl.
|
#
1.24 |
|
11-Dec-1997 |
thorpej |
In tcp_fasttimo(), don't clear TF_DELACK; we need it to count delayed ACKs in tcp_output(), and it will only be cleared in tcp_output() if the ACK was transmitted sucessfully. Also, don't count delayed ACKs here, let tcp_output() count them.
|
#
1.23 |
|
09-Dec-1997 |
thorpej |
Costmetic change: use intotcpcb() in tcp_fasttimo().
|
#
1.22 |
|
08-Nov-1997 |
kml |
TCP MSS fixes to provide cleaner slow-start and recovery.
|
Revision tags: netbsd-1-3-base marc-pcmcia-base
|
#
1.21 |
|
13-Oct-1997 |
explorer |
branches: 1.21.2; o Make usage of /dev/random dependant on pseudo-device rnd # /dev/random and in-kernel generator in config files.
o Add declaration to all architectures.
o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include that this code is derived in part from Ted Tyso's linux code.
|
#
1.20 |
|
10-Oct-1997 |
explorer |
Add hooks to use the kernel random system to generate TCP sequence numbers.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp
|
#
1.19 |
|
28-Jul-1997 |
thorpej |
branches: 1.19.2; Garbage-collect some "extern"s.
|
#
1.18 |
|
23-Jul-1997 |
thorpej |
Pull SYN_cache_branch down into the main line.
|
Revision tags: SYN_cache_cur_base is-newarp-before-merge is-newarp-base
|
#
1.17 |
|
10-Dec-1996 |
mycroft |
branches: 1.17.8; Fix RTT scaling problems introduced with Brakmo and Peterson changes.
|
#
1.16 |
|
09-Sep-1996 |
mycroft |
Add in_nullhost() and in_hosteq() macros, to hide some protocol details. Also, fix a bug in TCP wrt SYN+URG packets.
|
#
1.15 |
|
22-May-1996 |
mycroft |
Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
13-Feb-1996 |
christos |
branches: 1.14.4; netinet prototypes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.13 |
|
12-Aug-1995 |
mycroft |
splnet --> splsoftnet
|
#
1.12 |
|
18-Jun-1995 |
cgd |
convert pcb lists to CIRCLEQs, so that the end can be looked at more easily, and so that the original (insque/remque) logic can be effectively mimiced. (This fixes a bug in the previous set of list changes.) also (since terminator is no longer null) reinstate uninitted list checks, but mark them XXX.
|
#
1.11 |
|
12-Jun-1995 |
mycroft |
Various cleanup, including: * Convert several data structures to use queue.h. * Split in_pcbnotify() into two parts; one for notifying a specific PCB, and one for notifying all PCBs for a particular foreign address.
|
#
1.10 |
|
13-Apr-1995 |
cgd |
be a bit more careful and explicit with types. (basically a large no-op.)
|
#
1.9 |
|
14-Oct-1994 |
mycroft |
Don't return received data to the user until the initial handshake is complete. Also use TCPS_HAVEESTABLISHED() in a few other places.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.8 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.7 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.6 |
|
08-Jan-1994 |
mycroft |
Prototypes.
|
#
1.5 |
|
08-Jan-1994 |
mycroft |
Fix some inconsistent spacing; spaces at the end of lines, etc.
|
#
1.4 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.3 |
|
22-May-1993 |
cgd |
branches: 1.3.4; add include of select.h if necessary for protos, or delete if extraneous
|
#
1.2 |
|
18-May-1993 |
cgd |
make kernel select interface be one-stop shopping & clean it all up.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.96 |
|
08-Mar-2021 |
christos |
Add some randomness to the iss offset
|
Revision tags: thorpej-futex-base netbsd-9-1-RELEASE bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
|
#
1.95 |
|
03-May-2018 |
maxv |
Remove now unused tcpip.h includes. Some were already unused before.
|
Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
#
1.94 |
|
29-Mar-2018 |
maxv |
Remove #ifdef INET. Same as tcp_input.c. Makes the code easier to understand.
Also make tcp6_mtudisc() static in tcp_subr.c.
|
Revision tags: pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.93 |
|
19-Jan-2018 |
ozaki-r |
branches: 1.93.2; Run tcp_slowtimo in workqueue if NET_MPSAFE
If NET_MPSAFE is enabled, we have to avoid taking softnet_lock in softint as much as possible to prevent any softint handlers including callout handlers such as tcp_slowtimo from sticking on softnet_lock because it results in undesired delays of executing subsequent softint handlers.
NFCI for !NET_MPSAFE
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
|
#
1.92 |
|
28-Jul-2017 |
maxv |
Remove TCP_COMPAT_42. This feature is a workaround for a bug in the TCP stack of BSD4.2. Having such features just does not make any sense, and looking at the code, I'm not sure it actually works.
|
Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726
|
#
1.91 |
|
25-Jul-2016 |
knakahara |
branches: 1.91.8; fix: unlock in reverse order
|
Revision tags: pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.90 |
|
26-Apr-2016 |
ozaki-r |
branches: 1.90.2; Sweep unnecessary route.h inclusions
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.89 |
|
24-Aug-2015 |
pooka |
sprinkle _KERNEL_OPT
|
Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
|
#
1.88 |
|
10-Nov-2014 |
maxv |
branches: 1.88.2; Do not uselessly include <sys/malloc.h>.
|
Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.87 |
|
02-Jan-2014 |
pooka |
branches: 1.87.4; Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.86 |
|
31-Aug-2011 |
plunky |
branches: 1.86.2; 1.86.12; 1.86.16; NULL does not need a cast
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.85 |
|
20-Apr-2011 |
gdt |
Rewrite comments about TCP RTO calculations.
Long ago, the storage representations of srtt and rttvar were changed from the 4.4BSD scheme, and the comments are out of sync with the code. This commit rewrites most of the comments that explain the RTO calculations, and points out some issues in the code.
Joint work with Bev Schwartz of BBN (original analysis and comments), but I have rewritten and extended them, so errors are mine.
This material is based upon work supported by the Defense Advanced Research Projects Agency and Space and Naval Warfare Systems Center, Pacific, under Contract No. N66001-09-C-2073. Approved for Public Release, Distribution Unlimited
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.84 |
|
10-Nov-2008 |
uebayasi |
branches: 1.84.8; 1.84.10; Whitespace.
|
#
1.83 |
|
09-Nov-2008 |
bouyer |
Fix kern/39769: race condition in TCP timers When a TCP timer is disarmed (with callout_stop()) in the general case callout_invoking() isn't checked, so the timer handler could be called run when the current interrupt handler exits, athough the timer is disarmed. This case cause bad things like TCPT_REXMT and TCPT_PERSIST being both pending, causing a panic (see the PR for details). Close the issue by aborting the handler if the timer is not callout_expired(). (the EXPIRED flag being cleared by callout_stop()).
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.82 |
|
10-Oct-2008 |
ad |
branches: 1.82.2; 1.82.4; tcp_delack: test for TF_DELACK.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.81 |
|
28-Apr-2008 |
martin |
branches: 1.81.2; 1.81.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-nfs-mp-base
|
#
1.80 |
|
24-Apr-2008 |
ad |
branches: 1.80.2; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base
|
#
1.79 |
|
12-Apr-2008 |
thorpej |
branches: 1.79.2; Make IP, TCP, UDP, and ICMP statistics per-CPU. The stats are collated when the user requests them via sysctl.
|
#
1.78 |
|
08-Apr-2008 |
thorpej |
Change TCP stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old tcpstat structure; old netstat binaries will continue to work properly.
|
Revision tags: nick-csl-alignment-base5 ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base matt-mips64-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.77 |
|
20-Jun-2007 |
christos |
branches: 1.77.28; - per socket keepalive settings - settable connection establishment timeout
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 yamt-idlelwp-base8 wrstuden-fixsa-base thorpej-atomic-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 newlock2-base netbsd-4-base
|
#
1.76 |
|
09-Oct-2006 |
rpaulo |
branches: 1.76.2; 1.76.8; 1.76.10; Modular (I tried ;-) TCP congestion control API. Whenever certain conditions happen in the TCP stack, this interface calls the specified callback to handle the situation according to the currently selected congestion control algorithm. A new sysctl node was created: net.inet.tcp.congctl.{available,selected} with obvious meanings. The old net.inet.tcp.newreno MIB was removed. The API is discussed in tcp_congctl(9).
In the near future, it will be possible to selected a congestion control algorithm on a per-socket basis.
Discussed on tech-net and reviewed by <yamt>.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.75 |
|
14-May-2006 |
elad |
branches: 1.75.8; 1.75.10; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.74 |
|
15-Apr-2006 |
christos |
Coverity CID 1153: Add KASSERT before deref.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.73 |
|
11-Dec-2005 |
christos |
branches: 1.73.4; 1.73.6; 1.73.8; 1.73.10; 1.73.12; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.72 |
|
19-Jul-2005 |
christos |
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.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.71 |
|
02-Mar-2005 |
mycroft |
branches: 1.71.2; 1.71.4; Copyright maintenance.
|
#
1.70 |
|
28-Feb-2005 |
jonathan |
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.
|
Revision tags: yamt-km-base2
|
#
1.69 |
|
03-Feb-2005 |
perry |
ANSIfy function declarations
|
#
1.68 |
|
27-Jan-2005 |
mycroft |
Whoops. Exit fast recovery when handling a timeout.
|
#
1.67 |
|
26-Jan-2005 |
mycroft |
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.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE yamt-km-base netbsd-2-0-1-RELEASE kent-audio1-beforemerge netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 BEFORE-IPF413 netbsd-2-0-base BEFORE-IPF411
|
#
1.66 |
|
02-Jan-2004 |
itojun |
branches: 1.66.8; 1.66.10; some corrections from markus@openbsd; - callout_ack() was called with wrong argument
|
#
1.65 |
|
27-Oct-2003 |
itojun |
make it compilable with TCP_DEBUG defined
|
#
1.64 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.63 |
|
20-Jul-2003 |
he |
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.
|
#
1.62 |
|
03-Feb-2003 |
thorpej |
branches: 1.62.2; Test callout_pending(), not callout_active(), and eliminate now-unnecessary callout_deactivate() calls.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.61 |
|
24-Nov-2002 |
scw |
Quell an uninitialised variable warning.
|
Revision tags: kqueue-aftermerge kqueue-beforemerge
|
#
1.60 |
|
22-Oct-2002 |
simonb |
Guard use of "so" in tcp_timer_persist() and tcp_timer_2msl() with #ifdef TCP_DEBUG.
|
Revision tags: gehenna-devsw-base kqueue-base
|
#
1.59 |
|
09-Jun-2002 |
itojun |
whitespace
|
#
1.58 |
|
26-May-2002 |
itojun |
path MTU discovery blackhole detection. PR 12790 (sorry for not committing it for a long time)
|
Revision tags: netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.57 |
|
13-Nov-2001 |
lukem |
branches: 1.57.8; 1.57.10; add RCSIDs
|
Revision tags: thorpej-mips-cache-base
|
#
1.56 |
|
04-Nov-2001 |
matt |
Change a few variable/tables to const since they are read-only.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf
|
#
1.55 |
|
11-Sep-2001 |
thorpej |
branches: 1.55.2; Use callouts for SYN cache timers, rather than traversing time queues in tcp_slowtimo().
|
#
1.54 |
|
10-Sep-2001 |
thorpej |
Update copyrights.
|
#
1.53 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.52 |
|
10-Sep-2001 |
thorpej |
Initialize TCP timer variables in a new function, tcp_timer_init().
|
#
1.51 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.50 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.49 |
|
10-Sep-2001 |
thorpej |
Use a callout for the delayed ACK timer, and delete tcp_fasttimo(). Expose the delayed ACK timer as net.inet.tcp.delack_ticks.
|
Revision tags: thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.48 |
|
19-Oct-2000 |
itojun |
branches: 1.48.2; 1.48.4; 1.48.6; remove #ifdef TCP6. it is not likely for us to bring in sys/netinet6/tcp6*.c (separate TCP/IPv6 stack) into netbsd-current.
|
#
1.47 |
|
17-Oct-2000 |
itojun |
be more friendly with INET-less build. XXX we need to do more to do a working INET-less build
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.46 |
|
30-Mar-2000 |
augustss |
Remove register declarations.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.45 |
|
14-Jul-1999 |
itojun |
branches: 1.45.2; Use proper ip protocol # field and tcp hdr on sending RST against SYN, when ip header and tcp header are not adjacent to each other (i.e. when ip6 options are attached).
To test this, try telnet @::1@::1 port toward a port without responding server. Prior to the fix, the kernel will generate broken RST packet.
|
#
1.44 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base kenh-if-detach-base chs-ubc-base
|
#
1.43 |
|
10-Sep-1998 |
mouse |
branches: 1.43.8; 1.43.10; Create tcp.keepidle, tcp.keepintvl, tcp.keepcnt, tcp.slowhz sysctls.
|
#
1.42 |
|
04-Sep-1998 |
mycroft |
Fix a couple of bogons related to tcp_new_iss(): * Don't add tcp_iss_seq when creating a new ISS from TIME-WAIT state. * Do the clock increment even when using the rnd device.
|
Revision tags: eeh-paddr_t-base
|
#
1.41 |
|
17-Jul-1998 |
thorpej |
Comment where we use the Loss Window.
|
#
1.40 |
|
02-Jun-1998 |
thorpej |
Loss window MUST be one segment, per draft-floyd-incr-init-win-03.
|
#
1.39 |
|
11-May-1998 |
thorpej |
Make sure a timer is marked "disarmed" once it has expired.
|
#
1.38 |
|
11-May-1998 |
thorpej |
Nuke TUBA per my note to tech-net; there's no reason to keep it around.
|
#
1.37 |
|
07-May-1998 |
thorpej |
Define all TCP timers in terms of PRT timers.
|
#
1.36 |
|
06-May-1998 |
thorpej |
Use macros from tcp_timer.h to manipulate TCP timers, so that their implementation can be changed easily.
|
#
1.35 |
|
01-May-1998 |
kml |
Remove bogus black hole discovery code
|
#
1.34 |
|
29-Apr-1998 |
thorpej |
Make use of the work-arounds for ancient broken TCP peers run-time conditional (tcp_compat_42). The kernel config option TCP_COMPAT_42 will still enable this by default, or disable this by default if the option is not included (i.e. current behavior). This will be made a sysctl soon.
|
#
1.33 |
|
29-Apr-1998 |
kml |
Add support for deletion of routes added by path MTU discovery; uses new generic route timeout code. Add sysctl for timeout period.
|
#
1.32 |
|
31-Mar-1998 |
thorpej |
Fix a potential-congestion case in the larger initial congestion window code, as clarified in the TCPIMPL WG meeting at IETF #41: If the SYN (active open) or SYN,ACK (passive open) was retransmitted, the initial congestion window for the first slow start of that connection must be one segment.
|
#
1.31 |
|
19-Mar-1998 |
kml |
Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.
|
#
1.30 |
|
19-Feb-1998 |
thorpej |
Update copyright (sigh, should have done this long ago).
|
#
1.29 |
|
12-Jan-1998 |
scottr |
Use option header file for TCP_COMPAT_42
|
#
1.28 |
|
05-Jan-1998 |
thorpej |
Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates.
|
#
1.27 |
|
31-Dec-1997 |
thorpej |
Implement a queue for delayed ACK processing. This queue is used in tcp_fasttimo() in lieu of scanning all open TCP connections.
|
#
1.26 |
|
17-Dec-1997 |
thorpej |
From 4.4BSD-Lite2: - When running the slow timers, skip PCBs in LISTEN state. - When processing the persist timer, drop the connection if the connection idle time exceeds the maximum backoff for retransmit. Part of kern/2335 (pete@daemon.net).
|
#
1.25 |
|
11-Dec-1997 |
thorpej |
Implement an infrastructure to allow larger initial congestion windows. The sysctl'able variable "tcp_init_win", when set to 0, selects an auto-tuning algorithm for selecting the initial window, based on transmit segment size, per discussion in the IETF tcpimpl working group.
Default initial window is still 1 segment, but will soon become 2 segments, per discussion in tcpimpl.
|
#
1.24 |
|
11-Dec-1997 |
thorpej |
In tcp_fasttimo(), don't clear TF_DELACK; we need it to count delayed ACKs in tcp_output(), and it will only be cleared in tcp_output() if the ACK was transmitted sucessfully. Also, don't count delayed ACKs here, let tcp_output() count them.
|
#
1.23 |
|
09-Dec-1997 |
thorpej |
Costmetic change: use intotcpcb() in tcp_fasttimo().
|
#
1.22 |
|
08-Nov-1997 |
kml |
TCP MSS fixes to provide cleaner slow-start and recovery.
|
Revision tags: netbsd-1-3-base marc-pcmcia-base
|
#
1.21 |
|
13-Oct-1997 |
explorer |
branches: 1.21.2; o Make usage of /dev/random dependant on pseudo-device rnd # /dev/random and in-kernel generator in config files.
o Add declaration to all architectures.
o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include that this code is derived in part from Ted Tyso's linux code.
|
#
1.20 |
|
10-Oct-1997 |
explorer |
Add hooks to use the kernel random system to generate TCP sequence numbers.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp
|
#
1.19 |
|
28-Jul-1997 |
thorpej |
branches: 1.19.2; Garbage-collect some "extern"s.
|
#
1.18 |
|
23-Jul-1997 |
thorpej |
Pull SYN_cache_branch down into the main line.
|
Revision tags: SYN_cache_cur_base is-newarp-before-merge is-newarp-base
|
#
1.17 |
|
10-Dec-1996 |
mycroft |
branches: 1.17.8; Fix RTT scaling problems introduced with Brakmo and Peterson changes.
|
#
1.16 |
|
09-Sep-1996 |
mycroft |
Add in_nullhost() and in_hosteq() macros, to hide some protocol details. Also, fix a bug in TCP wrt SYN+URG packets.
|
#
1.15 |
|
22-May-1996 |
mycroft |
Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
13-Feb-1996 |
christos |
branches: 1.14.4; netinet prototypes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.13 |
|
12-Aug-1995 |
mycroft |
splnet --> splsoftnet
|
#
1.12 |
|
18-Jun-1995 |
cgd |
convert pcb lists to CIRCLEQs, so that the end can be looked at more easily, and so that the original (insque/remque) logic can be effectively mimiced. (This fixes a bug in the previous set of list changes.) also (since terminator is no longer null) reinstate uninitted list checks, but mark them XXX.
|
#
1.11 |
|
12-Jun-1995 |
mycroft |
Various cleanup, including: * Convert several data structures to use queue.h. * Split in_pcbnotify() into two parts; one for notifying a specific PCB, and one for notifying all PCBs for a particular foreign address.
|
#
1.10 |
|
13-Apr-1995 |
cgd |
be a bit more careful and explicit with types. (basically a large no-op.)
|
#
1.9 |
|
14-Oct-1994 |
mycroft |
Don't return received data to the user until the initial handshake is complete. Also use TCPS_HAVEESTABLISHED() in a few other places.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.8 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.7 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.6 |
|
08-Jan-1994 |
mycroft |
Prototypes.
|
#
1.5 |
|
08-Jan-1994 |
mycroft |
Fix some inconsistent spacing; spaces at the end of lines, etc.
|
#
1.4 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.3 |
|
22-May-1993 |
cgd |
branches: 1.3.4; add include of select.h if necessary for protos, or delete if extraneous
|
#
1.2 |
|
18-May-1993 |
cgd |
make kernel select interface be one-stop shopping & clean it all up.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521
|
#
1.95 |
|
03-May-2018 |
maxv |
Remove now unused tcpip.h includes. Some were already unused before.
|
Revision tags: pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330
|
#
1.94 |
|
29-Mar-2018 |
maxv |
Remove #ifdef INET. Same as tcp_input.c. Makes the code easier to understand.
Also make tcp6_mtudisc() static in tcp_subr.c.
|
Revision tags: pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
|
#
1.93 |
|
19-Jan-2018 |
ozaki-r |
branches: 1.93.2; Run tcp_slowtimo in workqueue if NET_MPSAFE
If NET_MPSAFE is enabled, we have to avoid taking softnet_lock in softint as much as possible to prevent any softint handlers including callout handlers such as tcp_slowtimo from sticking on softnet_lock because it results in undesired delays of executing subsequent softint handlers.
NFCI for !NET_MPSAFE
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
|
#
1.92 |
|
28-Jul-2017 |
maxv |
Remove TCP_COMPAT_42. This feature is a workaround for a bug in the TCP stack of BSD4.2. Having such features just does not make any sense, and looking at the code, I'm not sure it actually works.
|
Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726
|
#
1.91 |
|
25-Jul-2016 |
knakahara |
branches: 1.91.8; fix: unlock in reverse order
|
Revision tags: pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.90 |
|
26-Apr-2016 |
ozaki-r |
branches: 1.90.2; Sweep unnecessary route.h inclusions
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.89 |
|
24-Aug-2015 |
pooka |
sprinkle _KERNEL_OPT
|
Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
|
#
1.88 |
|
10-Nov-2014 |
maxv |
branches: 1.88.2; Do not uselessly include <sys/malloc.h>.
|
Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.87 |
|
02-Jan-2014 |
pooka |
branches: 1.87.4; Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.86 |
|
31-Aug-2011 |
plunky |
branches: 1.86.2; 1.86.12; 1.86.16; NULL does not need a cast
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.85 |
|
20-Apr-2011 |
gdt |
Rewrite comments about TCP RTO calculations.
Long ago, the storage representations of srtt and rttvar were changed from the 4.4BSD scheme, and the comments are out of sync with the code. This commit rewrites most of the comments that explain the RTO calculations, and points out some issues in the code.
Joint work with Bev Schwartz of BBN (original analysis and comments), but I have rewritten and extended them, so errors are mine.
This material is based upon work supported by the Defense Advanced Research Projects Agency and Space and Naval Warfare Systems Center, Pacific, under Contract No. N66001-09-C-2073. Approved for Public Release, Distribution Unlimited
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.84 |
|
10-Nov-2008 |
uebayasi |
branches: 1.84.8; 1.84.10; Whitespace.
|
#
1.83 |
|
09-Nov-2008 |
bouyer |
Fix kern/39769: race condition in TCP timers When a TCP timer is disarmed (with callout_stop()) in the general case callout_invoking() isn't checked, so the timer handler could be called run when the current interrupt handler exits, athough the timer is disarmed. This case cause bad things like TCPT_REXMT and TCPT_PERSIST being both pending, causing a panic (see the PR for details). Close the issue by aborting the handler if the timer is not callout_expired(). (the EXPIRED flag being cleared by callout_stop()).
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.82 |
|
10-Oct-2008 |
ad |
branches: 1.82.2; 1.82.4; tcp_delack: test for TF_DELACK.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.81 |
|
28-Apr-2008 |
martin |
branches: 1.81.2; 1.81.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-nfs-mp-base
|
#
1.80 |
|
24-Apr-2008 |
ad |
branches: 1.80.2; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base
|
#
1.79 |
|
12-Apr-2008 |
thorpej |
branches: 1.79.2; Make IP, TCP, UDP, and ICMP statistics per-CPU. The stats are collated when the user requests them via sysctl.
|
#
1.78 |
|
08-Apr-2008 |
thorpej |
Change TCP stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old tcpstat structure; old netstat binaries will continue to work properly.
|
Revision tags: nick-csl-alignment-base5 ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base matt-mips64-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.77 |
|
20-Jun-2007 |
christos |
branches: 1.77.28; - per socket keepalive settings - settable connection establishment timeout
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 yamt-idlelwp-base8 wrstuden-fixsa-base thorpej-atomic-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 newlock2-base netbsd-4-base
|
#
1.76 |
|
09-Oct-2006 |
rpaulo |
branches: 1.76.2; 1.76.8; 1.76.10; Modular (I tried ;-) TCP congestion control API. Whenever certain conditions happen in the TCP stack, this interface calls the specified callback to handle the situation according to the currently selected congestion control algorithm. A new sysctl node was created: net.inet.tcp.congctl.{available,selected} with obvious meanings. The old net.inet.tcp.newreno MIB was removed. The API is discussed in tcp_congctl(9).
In the near future, it will be possible to selected a congestion control algorithm on a per-socket basis.
Discussed on tech-net and reviewed by <yamt>.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.75 |
|
14-May-2006 |
elad |
branches: 1.75.8; 1.75.10; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.74 |
|
15-Apr-2006 |
christos |
Coverity CID 1153: Add KASSERT before deref.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.73 |
|
11-Dec-2005 |
christos |
branches: 1.73.4; 1.73.6; 1.73.8; 1.73.10; 1.73.12; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.72 |
|
19-Jul-2005 |
christos |
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.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.71 |
|
02-Mar-2005 |
mycroft |
branches: 1.71.2; 1.71.4; Copyright maintenance.
|
#
1.70 |
|
28-Feb-2005 |
jonathan |
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.
|
Revision tags: yamt-km-base2
|
#
1.69 |
|
03-Feb-2005 |
perry |
ANSIfy function declarations
|
#
1.68 |
|
27-Jan-2005 |
mycroft |
Whoops. Exit fast recovery when handling a timeout.
|
#
1.67 |
|
26-Jan-2005 |
mycroft |
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.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE yamt-km-base netbsd-2-0-1-RELEASE kent-audio1-beforemerge netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 BEFORE-IPF413 netbsd-2-0-base BEFORE-IPF411
|
#
1.66 |
|
02-Jan-2004 |
itojun |
branches: 1.66.8; 1.66.10; some corrections from markus@openbsd; - callout_ack() was called with wrong argument
|
#
1.65 |
|
27-Oct-2003 |
itojun |
make it compilable with TCP_DEBUG defined
|
#
1.64 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.63 |
|
20-Jul-2003 |
he |
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.
|
#
1.62 |
|
03-Feb-2003 |
thorpej |
branches: 1.62.2; Test callout_pending(), not callout_active(), and eliminate now-unnecessary callout_deactivate() calls.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.61 |
|
24-Nov-2002 |
scw |
Quell an uninitialised variable warning.
|
Revision tags: kqueue-aftermerge kqueue-beforemerge
|
#
1.60 |
|
22-Oct-2002 |
simonb |
Guard use of "so" in tcp_timer_persist() and tcp_timer_2msl() with #ifdef TCP_DEBUG.
|
Revision tags: gehenna-devsw-base kqueue-base
|
#
1.59 |
|
09-Jun-2002 |
itojun |
whitespace
|
#
1.58 |
|
26-May-2002 |
itojun |
path MTU discovery blackhole detection. PR 12790 (sorry for not committing it for a long time)
|
Revision tags: netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.57 |
|
13-Nov-2001 |
lukem |
branches: 1.57.8; 1.57.10; add RCSIDs
|
Revision tags: thorpej-mips-cache-base
|
#
1.56 |
|
04-Nov-2001 |
matt |
Change a few variable/tables to const since they are read-only.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf
|
#
1.55 |
|
11-Sep-2001 |
thorpej |
branches: 1.55.2; Use callouts for SYN cache timers, rather than traversing time queues in tcp_slowtimo().
|
#
1.54 |
|
10-Sep-2001 |
thorpej |
Update copyrights.
|
#
1.53 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.52 |
|
10-Sep-2001 |
thorpej |
Initialize TCP timer variables in a new function, tcp_timer_init().
|
#
1.51 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.50 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.49 |
|
10-Sep-2001 |
thorpej |
Use a callout for the delayed ACK timer, and delete tcp_fasttimo(). Expose the delayed ACK timer as net.inet.tcp.delack_ticks.
|
Revision tags: thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.48 |
|
19-Oct-2000 |
itojun |
branches: 1.48.2; 1.48.4; 1.48.6; remove #ifdef TCP6. it is not likely for us to bring in sys/netinet6/tcp6*.c (separate TCP/IPv6 stack) into netbsd-current.
|
#
1.47 |
|
17-Oct-2000 |
itojun |
be more friendly with INET-less build. XXX we need to do more to do a working INET-less build
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.46 |
|
30-Mar-2000 |
augustss |
Remove register declarations.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.45 |
|
14-Jul-1999 |
itojun |
branches: 1.45.2; Use proper ip protocol # field and tcp hdr on sending RST against SYN, when ip header and tcp header are not adjacent to each other (i.e. when ip6 options are attached).
To test this, try telnet @::1@::1 port toward a port without responding server. Prior to the fix, the kernel will generate broken RST packet.
|
#
1.44 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base kenh-if-detach-base chs-ubc-base
|
#
1.43 |
|
10-Sep-1998 |
mouse |
branches: 1.43.8; 1.43.10; Create tcp.keepidle, tcp.keepintvl, tcp.keepcnt, tcp.slowhz sysctls.
|
#
1.42 |
|
04-Sep-1998 |
mycroft |
Fix a couple of bogons related to tcp_new_iss(): * Don't add tcp_iss_seq when creating a new ISS from TIME-WAIT state. * Do the clock increment even when using the rnd device.
|
Revision tags: eeh-paddr_t-base
|
#
1.41 |
|
17-Jul-1998 |
thorpej |
Comment where we use the Loss Window.
|
#
1.40 |
|
02-Jun-1998 |
thorpej |
Loss window MUST be one segment, per draft-floyd-incr-init-win-03.
|
#
1.39 |
|
11-May-1998 |
thorpej |
Make sure a timer is marked "disarmed" once it has expired.
|
#
1.38 |
|
11-May-1998 |
thorpej |
Nuke TUBA per my note to tech-net; there's no reason to keep it around.
|
#
1.37 |
|
07-May-1998 |
thorpej |
Define all TCP timers in terms of PRT timers.
|
#
1.36 |
|
06-May-1998 |
thorpej |
Use macros from tcp_timer.h to manipulate TCP timers, so that their implementation can be changed easily.
|
#
1.35 |
|
01-May-1998 |
kml |
Remove bogus black hole discovery code
|
#
1.34 |
|
29-Apr-1998 |
thorpej |
Make use of the work-arounds for ancient broken TCP peers run-time conditional (tcp_compat_42). The kernel config option TCP_COMPAT_42 will still enable this by default, or disable this by default if the option is not included (i.e. current behavior). This will be made a sysctl soon.
|
#
1.33 |
|
29-Apr-1998 |
kml |
Add support for deletion of routes added by path MTU discovery; uses new generic route timeout code. Add sysctl for timeout period.
|
#
1.32 |
|
31-Mar-1998 |
thorpej |
Fix a potential-congestion case in the larger initial congestion window code, as clarified in the TCPIMPL WG meeting at IETF #41: If the SYN (active open) or SYN,ACK (passive open) was retransmitted, the initial congestion window for the first slow start of that connection must be one segment.
|
#
1.31 |
|
19-Mar-1998 |
kml |
Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.
|
#
1.30 |
|
19-Feb-1998 |
thorpej |
Update copyright (sigh, should have done this long ago).
|
#
1.29 |
|
12-Jan-1998 |
scottr |
Use option header file for TCP_COMPAT_42
|
#
1.28 |
|
05-Jan-1998 |
thorpej |
Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates.
|
#
1.27 |
|
31-Dec-1997 |
thorpej |
Implement a queue for delayed ACK processing. This queue is used in tcp_fasttimo() in lieu of scanning all open TCP connections.
|
#
1.26 |
|
17-Dec-1997 |
thorpej |
From 4.4BSD-Lite2: - When running the slow timers, skip PCBs in LISTEN state. - When processing the persist timer, drop the connection if the connection idle time exceeds the maximum backoff for retransmit. Part of kern/2335 (pete@daemon.net).
|
#
1.25 |
|
11-Dec-1997 |
thorpej |
Implement an infrastructure to allow larger initial congestion windows. The sysctl'able variable "tcp_init_win", when set to 0, selects an auto-tuning algorithm for selecting the initial window, based on transmit segment size, per discussion in the IETF tcpimpl working group.
Default initial window is still 1 segment, but will soon become 2 segments, per discussion in tcpimpl.
|
#
1.24 |
|
11-Dec-1997 |
thorpej |
In tcp_fasttimo(), don't clear TF_DELACK; we need it to count delayed ACKs in tcp_output(), and it will only be cleared in tcp_output() if the ACK was transmitted sucessfully. Also, don't count delayed ACKs here, let tcp_output() count them.
|
#
1.23 |
|
09-Dec-1997 |
thorpej |
Costmetic change: use intotcpcb() in tcp_fasttimo().
|
#
1.22 |
|
08-Nov-1997 |
kml |
TCP MSS fixes to provide cleaner slow-start and recovery.
|
Revision tags: netbsd-1-3-base marc-pcmcia-base
|
#
1.21 |
|
13-Oct-1997 |
explorer |
branches: 1.21.2; o Make usage of /dev/random dependant on pseudo-device rnd # /dev/random and in-kernel generator in config files.
o Add declaration to all architectures.
o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include that this code is derived in part from Ted Tyso's linux code.
|
#
1.20 |
|
10-Oct-1997 |
explorer |
Add hooks to use the kernel random system to generate TCP sequence numbers.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp
|
#
1.19 |
|
28-Jul-1997 |
thorpej |
branches: 1.19.2; Garbage-collect some "extern"s.
|
#
1.18 |
|
23-Jul-1997 |
thorpej |
Pull SYN_cache_branch down into the main line.
|
Revision tags: SYN_cache_cur_base is-newarp-before-merge is-newarp-base
|
#
1.17 |
|
10-Dec-1996 |
mycroft |
branches: 1.17.8; Fix RTT scaling problems introduced with Brakmo and Peterson changes.
|
#
1.16 |
|
09-Sep-1996 |
mycroft |
Add in_nullhost() and in_hosteq() macros, to hide some protocol details. Also, fix a bug in TCP wrt SYN+URG packets.
|
#
1.15 |
|
22-May-1996 |
mycroft |
Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
13-Feb-1996 |
christos |
branches: 1.14.4; netinet prototypes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.13 |
|
12-Aug-1995 |
mycroft |
splnet --> splsoftnet
|
#
1.12 |
|
18-Jun-1995 |
cgd |
convert pcb lists to CIRCLEQs, so that the end can be looked at more easily, and so that the original (insque/remque) logic can be effectively mimiced. (This fixes a bug in the previous set of list changes.) also (since terminator is no longer null) reinstate uninitted list checks, but mark them XXX.
|
#
1.11 |
|
12-Jun-1995 |
mycroft |
Various cleanup, including: * Convert several data structures to use queue.h. * Split in_pcbnotify() into two parts; one for notifying a specific PCB, and one for notifying all PCBs for a particular foreign address.
|
#
1.10 |
|
13-Apr-1995 |
cgd |
be a bit more careful and explicit with types. (basically a large no-op.)
|
#
1.9 |
|
14-Oct-1994 |
mycroft |
Don't return received data to the user until the initial handshake is complete. Also use TCPS_HAVEESTABLISHED() in a few other places.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.8 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.7 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.6 |
|
08-Jan-1994 |
mycroft |
Prototypes.
|
#
1.5 |
|
08-Jan-1994 |
mycroft |
Fix some inconsistent spacing; spaces at the end of lines, etc.
|
#
1.4 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.3 |
|
22-May-1993 |
cgd |
branches: 1.3.4; add include of select.h if necessary for protos, or delete if extraneous
|
#
1.2 |
|
18-May-1993 |
cgd |
make kernel select interface be one-stop shopping & clean it all up.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.93 |
|
19-Jan-2018 |
ozaki-r |
Run tcp_slowtimo in workqueue if NET_MPSAFE
If NET_MPSAFE is enabled, we have to avoid taking softnet_lock in softint as much as possible to prevent any softint handlers including callout handlers such as tcp_slowtimo from sticking on softnet_lock because it results in undesired delays of executing subsequent softint handlers.
NFCI for !NET_MPSAFE
|
Revision tags: tls-maxphys-base-20171202 nick-nhusb-base-20170825
|
#
1.92 |
|
28-Jul-2017 |
maxv |
Remove TCP_COMPAT_42. This feature is a workaround for a bug in the TCP stack of BSD4.2. Having such features just does not make any sense, and looking at the code, I'm not sure it actually works.
|
Revision tags: matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726
|
#
1.91 |
|
25-Jul-2016 |
knakahara |
fix: unlock in reverse order
|
Revision tags: pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.90 |
|
26-Apr-2016 |
ozaki-r |
branches: 1.90.2; Sweep unnecessary route.h inclusions
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.89 |
|
24-Aug-2015 |
pooka |
sprinkle _KERNEL_OPT
|
Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
|
#
1.88 |
|
10-Nov-2014 |
maxv |
branches: 1.88.2; Do not uselessly include <sys/malloc.h>.
|
Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.87 |
|
02-Jan-2014 |
pooka |
branches: 1.87.4; Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.86 |
|
31-Aug-2011 |
plunky |
branches: 1.86.2; 1.86.12; 1.86.16; NULL does not need a cast
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.85 |
|
20-Apr-2011 |
gdt |
Rewrite comments about TCP RTO calculations.
Long ago, the storage representations of srtt and rttvar were changed from the 4.4BSD scheme, and the comments are out of sync with the code. This commit rewrites most of the comments that explain the RTO calculations, and points out some issues in the code.
Joint work with Bev Schwartz of BBN (original analysis and comments), but I have rewritten and extended them, so errors are mine.
This material is based upon work supported by the Defense Advanced Research Projects Agency and Space and Naval Warfare Systems Center, Pacific, under Contract No. N66001-09-C-2073. Approved for Public Release, Distribution Unlimited
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.84 |
|
10-Nov-2008 |
uebayasi |
branches: 1.84.8; 1.84.10; Whitespace.
|
#
1.83 |
|
09-Nov-2008 |
bouyer |
Fix kern/39769: race condition in TCP timers When a TCP timer is disarmed (with callout_stop()) in the general case callout_invoking() isn't checked, so the timer handler could be called run when the current interrupt handler exits, athough the timer is disarmed. This case cause bad things like TCPT_REXMT and TCPT_PERSIST being both pending, causing a panic (see the PR for details). Close the issue by aborting the handler if the timer is not callout_expired(). (the EXPIRED flag being cleared by callout_stop()).
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.82 |
|
10-Oct-2008 |
ad |
branches: 1.82.2; 1.82.4; tcp_delack: test for TF_DELACK.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.81 |
|
28-Apr-2008 |
martin |
branches: 1.81.2; 1.81.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-nfs-mp-base
|
#
1.80 |
|
24-Apr-2008 |
ad |
branches: 1.80.2; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base
|
#
1.79 |
|
12-Apr-2008 |
thorpej |
branches: 1.79.2; Make IP, TCP, UDP, and ICMP statistics per-CPU. The stats are collated when the user requests them via sysctl.
|
#
1.78 |
|
08-Apr-2008 |
thorpej |
Change TCP stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old tcpstat structure; old netstat binaries will continue to work properly.
|
Revision tags: nick-csl-alignment-base5 ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base matt-mips64-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.77 |
|
20-Jun-2007 |
christos |
branches: 1.77.28; - per socket keepalive settings - settable connection establishment timeout
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 yamt-idlelwp-base8 wrstuden-fixsa-base thorpej-atomic-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 newlock2-base netbsd-4-base
|
#
1.76 |
|
09-Oct-2006 |
rpaulo |
branches: 1.76.2; 1.76.8; 1.76.10; Modular (I tried ;-) TCP congestion control API. Whenever certain conditions happen in the TCP stack, this interface calls the specified callback to handle the situation according to the currently selected congestion control algorithm. A new sysctl node was created: net.inet.tcp.congctl.{available,selected} with obvious meanings. The old net.inet.tcp.newreno MIB was removed. The API is discussed in tcp_congctl(9).
In the near future, it will be possible to selected a congestion control algorithm on a per-socket basis.
Discussed on tech-net and reviewed by <yamt>.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.75 |
|
14-May-2006 |
elad |
branches: 1.75.8; 1.75.10; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.74 |
|
15-Apr-2006 |
christos |
Coverity CID 1153: Add KASSERT before deref.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.73 |
|
11-Dec-2005 |
christos |
branches: 1.73.4; 1.73.6; 1.73.8; 1.73.10; 1.73.12; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.72 |
|
19-Jul-2005 |
christos |
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.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.71 |
|
02-Mar-2005 |
mycroft |
branches: 1.71.2; 1.71.4; Copyright maintenance.
|
#
1.70 |
|
28-Feb-2005 |
jonathan |
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.
|
Revision tags: yamt-km-base2
|
#
1.69 |
|
03-Feb-2005 |
perry |
ANSIfy function declarations
|
#
1.68 |
|
27-Jan-2005 |
mycroft |
Whoops. Exit fast recovery when handling a timeout.
|
#
1.67 |
|
26-Jan-2005 |
mycroft |
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.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE yamt-km-base netbsd-2-0-1-RELEASE kent-audio1-beforemerge netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 BEFORE-IPF413 netbsd-2-0-base BEFORE-IPF411
|
#
1.66 |
|
02-Jan-2004 |
itojun |
branches: 1.66.8; 1.66.10; some corrections from markus@openbsd; - callout_ack() was called with wrong argument
|
#
1.65 |
|
27-Oct-2003 |
itojun |
make it compilable with TCP_DEBUG defined
|
#
1.64 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.63 |
|
20-Jul-2003 |
he |
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.
|
#
1.62 |
|
03-Feb-2003 |
thorpej |
branches: 1.62.2; Test callout_pending(), not callout_active(), and eliminate now-unnecessary callout_deactivate() calls.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.61 |
|
24-Nov-2002 |
scw |
Quell an uninitialised variable warning.
|
Revision tags: kqueue-aftermerge kqueue-beforemerge
|
#
1.60 |
|
22-Oct-2002 |
simonb |
Guard use of "so" in tcp_timer_persist() and tcp_timer_2msl() with #ifdef TCP_DEBUG.
|
Revision tags: gehenna-devsw-base kqueue-base
|
#
1.59 |
|
09-Jun-2002 |
itojun |
whitespace
|
#
1.58 |
|
26-May-2002 |
itojun |
path MTU discovery blackhole detection. PR 12790 (sorry for not committing it for a long time)
|
Revision tags: netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.57 |
|
13-Nov-2001 |
lukem |
branches: 1.57.8; 1.57.10; add RCSIDs
|
Revision tags: thorpej-mips-cache-base
|
#
1.56 |
|
04-Nov-2001 |
matt |
Change a few variable/tables to const since they are read-only.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf
|
#
1.55 |
|
11-Sep-2001 |
thorpej |
branches: 1.55.2; Use callouts for SYN cache timers, rather than traversing time queues in tcp_slowtimo().
|
#
1.54 |
|
10-Sep-2001 |
thorpej |
Update copyrights.
|
#
1.53 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.52 |
|
10-Sep-2001 |
thorpej |
Initialize TCP timer variables in a new function, tcp_timer_init().
|
#
1.51 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.50 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.49 |
|
10-Sep-2001 |
thorpej |
Use a callout for the delayed ACK timer, and delete tcp_fasttimo(). Expose the delayed ACK timer as net.inet.tcp.delack_ticks.
|
Revision tags: thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.48 |
|
19-Oct-2000 |
itojun |
branches: 1.48.2; 1.48.4; 1.48.6; remove #ifdef TCP6. it is not likely for us to bring in sys/netinet6/tcp6*.c (separate TCP/IPv6 stack) into netbsd-current.
|
#
1.47 |
|
17-Oct-2000 |
itojun |
be more friendly with INET-less build. XXX we need to do more to do a working INET-less build
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.46 |
|
30-Mar-2000 |
augustss |
Remove register declarations.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.45 |
|
14-Jul-1999 |
itojun |
branches: 1.45.2; Use proper ip protocol # field and tcp hdr on sending RST against SYN, when ip header and tcp header are not adjacent to each other (i.e. when ip6 options are attached).
To test this, try telnet @::1@::1 port toward a port without responding server. Prior to the fix, the kernel will generate broken RST packet.
|
#
1.44 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base kenh-if-detach-base chs-ubc-base
|
#
1.43 |
|
10-Sep-1998 |
mouse |
branches: 1.43.8; 1.43.10; Create tcp.keepidle, tcp.keepintvl, tcp.keepcnt, tcp.slowhz sysctls.
|
#
1.42 |
|
04-Sep-1998 |
mycroft |
Fix a couple of bogons related to tcp_new_iss(): * Don't add tcp_iss_seq when creating a new ISS from TIME-WAIT state. * Do the clock increment even when using the rnd device.
|
Revision tags: eeh-paddr_t-base
|
#
1.41 |
|
17-Jul-1998 |
thorpej |
Comment where we use the Loss Window.
|
#
1.40 |
|
02-Jun-1998 |
thorpej |
Loss window MUST be one segment, per draft-floyd-incr-init-win-03.
|
#
1.39 |
|
11-May-1998 |
thorpej |
Make sure a timer is marked "disarmed" once it has expired.
|
#
1.38 |
|
11-May-1998 |
thorpej |
Nuke TUBA per my note to tech-net; there's no reason to keep it around.
|
#
1.37 |
|
07-May-1998 |
thorpej |
Define all TCP timers in terms of PRT timers.
|
#
1.36 |
|
06-May-1998 |
thorpej |
Use macros from tcp_timer.h to manipulate TCP timers, so that their implementation can be changed easily.
|
#
1.35 |
|
01-May-1998 |
kml |
Remove bogus black hole discovery code
|
#
1.34 |
|
29-Apr-1998 |
thorpej |
Make use of the work-arounds for ancient broken TCP peers run-time conditional (tcp_compat_42). The kernel config option TCP_COMPAT_42 will still enable this by default, or disable this by default if the option is not included (i.e. current behavior). This will be made a sysctl soon.
|
#
1.33 |
|
29-Apr-1998 |
kml |
Add support for deletion of routes added by path MTU discovery; uses new generic route timeout code. Add sysctl for timeout period.
|
#
1.32 |
|
31-Mar-1998 |
thorpej |
Fix a potential-congestion case in the larger initial congestion window code, as clarified in the TCPIMPL WG meeting at IETF #41: If the SYN (active open) or SYN,ACK (passive open) was retransmitted, the initial congestion window for the first slow start of that connection must be one segment.
|
#
1.31 |
|
19-Mar-1998 |
kml |
Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.
|
#
1.30 |
|
19-Feb-1998 |
thorpej |
Update copyright (sigh, should have done this long ago).
|
#
1.29 |
|
12-Jan-1998 |
scottr |
Use option header file for TCP_COMPAT_42
|
#
1.28 |
|
05-Jan-1998 |
thorpej |
Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates.
|
#
1.27 |
|
31-Dec-1997 |
thorpej |
Implement a queue for delayed ACK processing. This queue is used in tcp_fasttimo() in lieu of scanning all open TCP connections.
|
#
1.26 |
|
17-Dec-1997 |
thorpej |
From 4.4BSD-Lite2: - When running the slow timers, skip PCBs in LISTEN state. - When processing the persist timer, drop the connection if the connection idle time exceeds the maximum backoff for retransmit. Part of kern/2335 (pete@daemon.net).
|
#
1.25 |
|
11-Dec-1997 |
thorpej |
Implement an infrastructure to allow larger initial congestion windows. The sysctl'able variable "tcp_init_win", when set to 0, selects an auto-tuning algorithm for selecting the initial window, based on transmit segment size, per discussion in the IETF tcpimpl working group.
Default initial window is still 1 segment, but will soon become 2 segments, per discussion in tcpimpl.
|
#
1.24 |
|
11-Dec-1997 |
thorpej |
In tcp_fasttimo(), don't clear TF_DELACK; we need it to count delayed ACKs in tcp_output(), and it will only be cleared in tcp_output() if the ACK was transmitted sucessfully. Also, don't count delayed ACKs here, let tcp_output() count them.
|
#
1.23 |
|
09-Dec-1997 |
thorpej |
Costmetic change: use intotcpcb() in tcp_fasttimo().
|
#
1.22 |
|
08-Nov-1997 |
kml |
TCP MSS fixes to provide cleaner slow-start and recovery.
|
Revision tags: netbsd-1-3-base marc-pcmcia-base
|
#
1.21 |
|
13-Oct-1997 |
explorer |
branches: 1.21.2; o Make usage of /dev/random dependant on pseudo-device rnd # /dev/random and in-kernel generator in config files.
o Add declaration to all architectures.
o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include that this code is derived in part from Ted Tyso's linux code.
|
#
1.20 |
|
10-Oct-1997 |
explorer |
Add hooks to use the kernel random system to generate TCP sequence numbers.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp
|
#
1.19 |
|
28-Jul-1997 |
thorpej |
branches: 1.19.2; Garbage-collect some "extern"s.
|
#
1.18 |
|
23-Jul-1997 |
thorpej |
Pull SYN_cache_branch down into the main line.
|
Revision tags: SYN_cache_cur_base is-newarp-before-merge is-newarp-base
|
#
1.17 |
|
10-Dec-1996 |
mycroft |
branches: 1.17.8; Fix RTT scaling problems introduced with Brakmo and Peterson changes.
|
#
1.16 |
|
09-Sep-1996 |
mycroft |
Add in_nullhost() and in_hosteq() macros, to hide some protocol details. Also, fix a bug in TCP wrt SYN+URG packets.
|
#
1.15 |
|
22-May-1996 |
mycroft |
Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
13-Feb-1996 |
christos |
branches: 1.14.4; netinet prototypes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.13 |
|
12-Aug-1995 |
mycroft |
splnet --> splsoftnet
|
#
1.12 |
|
18-Jun-1995 |
cgd |
convert pcb lists to CIRCLEQs, so that the end can be looked at more easily, and so that the original (insque/remque) logic can be effectively mimiced. (This fixes a bug in the previous set of list changes.) also (since terminator is no longer null) reinstate uninitted list checks, but mark them XXX.
|
#
1.11 |
|
12-Jun-1995 |
mycroft |
Various cleanup, including: * Convert several data structures to use queue.h. * Split in_pcbnotify() into two parts; one for notifying a specific PCB, and one for notifying all PCBs for a particular foreign address.
|
#
1.10 |
|
13-Apr-1995 |
cgd |
be a bit more careful and explicit with types. (basically a large no-op.)
|
#
1.9 |
|
14-Oct-1994 |
mycroft |
Don't return received data to the user until the initial handshake is complete. Also use TCPS_HAVEESTABLISHED() in a few other places.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.8 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.7 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.6 |
|
08-Jan-1994 |
mycroft |
Prototypes.
|
#
1.5 |
|
08-Jan-1994 |
mycroft |
Fix some inconsistent spacing; spaces at the end of lines, etc.
|
#
1.4 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.3 |
|
22-May-1993 |
cgd |
branches: 1.3.4; add include of select.h if necessary for protos, or delete if extraneous
|
#
1.2 |
|
18-May-1993 |
cgd |
make kernel select interface be one-stop shopping & clean it all up.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
#
1.92 |
|
28-Jul-2017 |
maxv |
Remove TCP_COMPAT_42. This feature is a workaround for a bug in the TCP stack of BSD4.2. Having such features just does not make any sense, and looking at the code, I'm not sure it actually works.
|
Revision tags: perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726
|
#
1.91 |
|
25-Jul-2016 |
knakahara |
fix: unlock in reverse order
|
Revision tags: pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.90 |
|
26-Apr-2016 |
ozaki-r |
branches: 1.90.2; Sweep unnecessary route.h inclusions
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.89 |
|
24-Aug-2015 |
pooka |
sprinkle _KERNEL_OPT
|
Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
|
#
1.88 |
|
10-Nov-2014 |
maxv |
branches: 1.88.2; Do not uselessly include <sys/malloc.h>.
|
Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.87 |
|
02-Jan-2014 |
pooka |
branches: 1.87.4; Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.86 |
|
31-Aug-2011 |
plunky |
branches: 1.86.2; 1.86.12; 1.86.16; NULL does not need a cast
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.85 |
|
20-Apr-2011 |
gdt |
Rewrite comments about TCP RTO calculations.
Long ago, the storage representations of srtt and rttvar were changed from the 4.4BSD scheme, and the comments are out of sync with the code. This commit rewrites most of the comments that explain the RTO calculations, and points out some issues in the code.
Joint work with Bev Schwartz of BBN (original analysis and comments), but I have rewritten and extended them, so errors are mine.
This material is based upon work supported by the Defense Advanced Research Projects Agency and Space and Naval Warfare Systems Center, Pacific, under Contract No. N66001-09-C-2073. Approved for Public Release, Distribution Unlimited
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.84 |
|
10-Nov-2008 |
uebayasi |
branches: 1.84.8; 1.84.10; Whitespace.
|
#
1.83 |
|
09-Nov-2008 |
bouyer |
Fix kern/39769: race condition in TCP timers When a TCP timer is disarmed (with callout_stop()) in the general case callout_invoking() isn't checked, so the timer handler could be called run when the current interrupt handler exits, athough the timer is disarmed. This case cause bad things like TCPT_REXMT and TCPT_PERSIST being both pending, causing a panic (see the PR for details). Close the issue by aborting the handler if the timer is not callout_expired(). (the EXPIRED flag being cleared by callout_stop()).
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.82 |
|
10-Oct-2008 |
ad |
branches: 1.82.2; 1.82.4; tcp_delack: test for TF_DELACK.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.81 |
|
28-Apr-2008 |
martin |
branches: 1.81.2; 1.81.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-nfs-mp-base
|
#
1.80 |
|
24-Apr-2008 |
ad |
branches: 1.80.2; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base
|
#
1.79 |
|
12-Apr-2008 |
thorpej |
branches: 1.79.2; Make IP, TCP, UDP, and ICMP statistics per-CPU. The stats are collated when the user requests them via sysctl.
|
#
1.78 |
|
08-Apr-2008 |
thorpej |
Change TCP stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old tcpstat structure; old netstat binaries will continue to work properly.
|
Revision tags: nick-csl-alignment-base5 ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base matt-mips64-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.77 |
|
20-Jun-2007 |
christos |
branches: 1.77.28; - per socket keepalive settings - settable connection establishment timeout
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 yamt-idlelwp-base8 wrstuden-fixsa-base thorpej-atomic-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 newlock2-base netbsd-4-base
|
#
1.76 |
|
09-Oct-2006 |
rpaulo |
branches: 1.76.2; 1.76.8; 1.76.10; Modular (I tried ;-) TCP congestion control API. Whenever certain conditions happen in the TCP stack, this interface calls the specified callback to handle the situation according to the currently selected congestion control algorithm. A new sysctl node was created: net.inet.tcp.congctl.{available,selected} with obvious meanings. The old net.inet.tcp.newreno MIB was removed. The API is discussed in tcp_congctl(9).
In the near future, it will be possible to selected a congestion control algorithm on a per-socket basis.
Discussed on tech-net and reviewed by <yamt>.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.75 |
|
14-May-2006 |
elad |
branches: 1.75.8; 1.75.10; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.74 |
|
15-Apr-2006 |
christos |
Coverity CID 1153: Add KASSERT before deref.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.73 |
|
11-Dec-2005 |
christos |
branches: 1.73.4; 1.73.6; 1.73.8; 1.73.10; 1.73.12; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.72 |
|
19-Jul-2005 |
christos |
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.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.71 |
|
02-Mar-2005 |
mycroft |
branches: 1.71.2; 1.71.4; Copyright maintenance.
|
#
1.70 |
|
28-Feb-2005 |
jonathan |
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.
|
Revision tags: yamt-km-base2
|
#
1.69 |
|
03-Feb-2005 |
perry |
ANSIfy function declarations
|
#
1.68 |
|
27-Jan-2005 |
mycroft |
Whoops. Exit fast recovery when handling a timeout.
|
#
1.67 |
|
26-Jan-2005 |
mycroft |
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.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE yamt-km-base netbsd-2-0-1-RELEASE kent-audio1-beforemerge netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 BEFORE-IPF413 netbsd-2-0-base BEFORE-IPF411
|
#
1.66 |
|
02-Jan-2004 |
itojun |
branches: 1.66.8; 1.66.10; some corrections from markus@openbsd; - callout_ack() was called with wrong argument
|
#
1.65 |
|
27-Oct-2003 |
itojun |
make it compilable with TCP_DEBUG defined
|
#
1.64 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.63 |
|
20-Jul-2003 |
he |
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.
|
#
1.62 |
|
03-Feb-2003 |
thorpej |
branches: 1.62.2; Test callout_pending(), not callout_active(), and eliminate now-unnecessary callout_deactivate() calls.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.61 |
|
24-Nov-2002 |
scw |
Quell an uninitialised variable warning.
|
Revision tags: kqueue-aftermerge kqueue-beforemerge
|
#
1.60 |
|
22-Oct-2002 |
simonb |
Guard use of "so" in tcp_timer_persist() and tcp_timer_2msl() with #ifdef TCP_DEBUG.
|
Revision tags: gehenna-devsw-base kqueue-base
|
#
1.59 |
|
09-Jun-2002 |
itojun |
whitespace
|
#
1.58 |
|
26-May-2002 |
itojun |
path MTU discovery blackhole detection. PR 12790 (sorry for not committing it for a long time)
|
Revision tags: netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.57 |
|
13-Nov-2001 |
lukem |
branches: 1.57.8; 1.57.10; add RCSIDs
|
Revision tags: thorpej-mips-cache-base
|
#
1.56 |
|
04-Nov-2001 |
matt |
Change a few variable/tables to const since they are read-only.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf
|
#
1.55 |
|
11-Sep-2001 |
thorpej |
branches: 1.55.2; Use callouts for SYN cache timers, rather than traversing time queues in tcp_slowtimo().
|
#
1.54 |
|
10-Sep-2001 |
thorpej |
Update copyrights.
|
#
1.53 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.52 |
|
10-Sep-2001 |
thorpej |
Initialize TCP timer variables in a new function, tcp_timer_init().
|
#
1.51 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.50 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.49 |
|
10-Sep-2001 |
thorpej |
Use a callout for the delayed ACK timer, and delete tcp_fasttimo(). Expose the delayed ACK timer as net.inet.tcp.delack_ticks.
|
Revision tags: thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.48 |
|
19-Oct-2000 |
itojun |
branches: 1.48.2; 1.48.4; 1.48.6; remove #ifdef TCP6. it is not likely for us to bring in sys/netinet6/tcp6*.c (separate TCP/IPv6 stack) into netbsd-current.
|
#
1.47 |
|
17-Oct-2000 |
itojun |
be more friendly with INET-less build. XXX we need to do more to do a working INET-less build
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.46 |
|
30-Mar-2000 |
augustss |
Remove register declarations.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.45 |
|
14-Jul-1999 |
itojun |
branches: 1.45.2; Use proper ip protocol # field and tcp hdr on sending RST against SYN, when ip header and tcp header are not adjacent to each other (i.e. when ip6 options are attached).
To test this, try telnet @::1@::1 port toward a port without responding server. Prior to the fix, the kernel will generate broken RST packet.
|
#
1.44 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base kenh-if-detach-base chs-ubc-base
|
#
1.43 |
|
10-Sep-1998 |
mouse |
branches: 1.43.8; 1.43.10; Create tcp.keepidle, tcp.keepintvl, tcp.keepcnt, tcp.slowhz sysctls.
|
#
1.42 |
|
04-Sep-1998 |
mycroft |
Fix a couple of bogons related to tcp_new_iss(): * Don't add tcp_iss_seq when creating a new ISS from TIME-WAIT state. * Do the clock increment even when using the rnd device.
|
Revision tags: eeh-paddr_t-base
|
#
1.41 |
|
17-Jul-1998 |
thorpej |
Comment where we use the Loss Window.
|
#
1.40 |
|
02-Jun-1998 |
thorpej |
Loss window MUST be one segment, per draft-floyd-incr-init-win-03.
|
#
1.39 |
|
11-May-1998 |
thorpej |
Make sure a timer is marked "disarmed" once it has expired.
|
#
1.38 |
|
11-May-1998 |
thorpej |
Nuke TUBA per my note to tech-net; there's no reason to keep it around.
|
#
1.37 |
|
07-May-1998 |
thorpej |
Define all TCP timers in terms of PRT timers.
|
#
1.36 |
|
06-May-1998 |
thorpej |
Use macros from tcp_timer.h to manipulate TCP timers, so that their implementation can be changed easily.
|
#
1.35 |
|
01-May-1998 |
kml |
Remove bogus black hole discovery code
|
#
1.34 |
|
29-Apr-1998 |
thorpej |
Make use of the work-arounds for ancient broken TCP peers run-time conditional (tcp_compat_42). The kernel config option TCP_COMPAT_42 will still enable this by default, or disable this by default if the option is not included (i.e. current behavior). This will be made a sysctl soon.
|
#
1.33 |
|
29-Apr-1998 |
kml |
Add support for deletion of routes added by path MTU discovery; uses new generic route timeout code. Add sysctl for timeout period.
|
#
1.32 |
|
31-Mar-1998 |
thorpej |
Fix a potential-congestion case in the larger initial congestion window code, as clarified in the TCPIMPL WG meeting at IETF #41: If the SYN (active open) or SYN,ACK (passive open) was retransmitted, the initial congestion window for the first slow start of that connection must be one segment.
|
#
1.31 |
|
19-Mar-1998 |
kml |
Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.
|
#
1.30 |
|
19-Feb-1998 |
thorpej |
Update copyright (sigh, should have done this long ago).
|
#
1.29 |
|
12-Jan-1998 |
scottr |
Use option header file for TCP_COMPAT_42
|
#
1.28 |
|
05-Jan-1998 |
thorpej |
Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates.
|
#
1.27 |
|
31-Dec-1997 |
thorpej |
Implement a queue for delayed ACK processing. This queue is used in tcp_fasttimo() in lieu of scanning all open TCP connections.
|
#
1.26 |
|
17-Dec-1997 |
thorpej |
From 4.4BSD-Lite2: - When running the slow timers, skip PCBs in LISTEN state. - When processing the persist timer, drop the connection if the connection idle time exceeds the maximum backoff for retransmit. Part of kern/2335 (pete@daemon.net).
|
#
1.25 |
|
11-Dec-1997 |
thorpej |
Implement an infrastructure to allow larger initial congestion windows. The sysctl'able variable "tcp_init_win", when set to 0, selects an auto-tuning algorithm for selecting the initial window, based on transmit segment size, per discussion in the IETF tcpimpl working group.
Default initial window is still 1 segment, but will soon become 2 segments, per discussion in tcpimpl.
|
#
1.24 |
|
11-Dec-1997 |
thorpej |
In tcp_fasttimo(), don't clear TF_DELACK; we need it to count delayed ACKs in tcp_output(), and it will only be cleared in tcp_output() if the ACK was transmitted sucessfully. Also, don't count delayed ACKs here, let tcp_output() count them.
|
#
1.23 |
|
09-Dec-1997 |
thorpej |
Costmetic change: use intotcpcb() in tcp_fasttimo().
|
#
1.22 |
|
08-Nov-1997 |
kml |
TCP MSS fixes to provide cleaner slow-start and recovery.
|
Revision tags: netbsd-1-3-base marc-pcmcia-base
|
#
1.21 |
|
13-Oct-1997 |
explorer |
branches: 1.21.2; o Make usage of /dev/random dependant on pseudo-device rnd # /dev/random and in-kernel generator in config files.
o Add declaration to all architectures.
o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include that this code is derived in part from Ted Tyso's linux code.
|
#
1.20 |
|
10-Oct-1997 |
explorer |
Add hooks to use the kernel random system to generate TCP sequence numbers.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp
|
#
1.19 |
|
28-Jul-1997 |
thorpej |
branches: 1.19.2; Garbage-collect some "extern"s.
|
#
1.18 |
|
23-Jul-1997 |
thorpej |
Pull SYN_cache_branch down into the main line.
|
Revision tags: SYN_cache_cur_base is-newarp-before-merge is-newarp-base
|
#
1.17 |
|
10-Dec-1996 |
mycroft |
branches: 1.17.8; Fix RTT scaling problems introduced with Brakmo and Peterson changes.
|
#
1.16 |
|
09-Sep-1996 |
mycroft |
Add in_nullhost() and in_hosteq() macros, to hide some protocol details. Also, fix a bug in TCP wrt SYN+URG packets.
|
#
1.15 |
|
22-May-1996 |
mycroft |
Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
13-Feb-1996 |
christos |
branches: 1.14.4; netinet prototypes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.13 |
|
12-Aug-1995 |
mycroft |
splnet --> splsoftnet
|
#
1.12 |
|
18-Jun-1995 |
cgd |
convert pcb lists to CIRCLEQs, so that the end can be looked at more easily, and so that the original (insque/remque) logic can be effectively mimiced. (This fixes a bug in the previous set of list changes.) also (since terminator is no longer null) reinstate uninitted list checks, but mark them XXX.
|
#
1.11 |
|
12-Jun-1995 |
mycroft |
Various cleanup, including: * Convert several data structures to use queue.h. * Split in_pcbnotify() into two parts; one for notifying a specific PCB, and one for notifying all PCBs for a particular foreign address.
|
#
1.10 |
|
13-Apr-1995 |
cgd |
be a bit more careful and explicit with types. (basically a large no-op.)
|
#
1.9 |
|
14-Oct-1994 |
mycroft |
Don't return received data to the user until the initial handshake is complete. Also use TCPS_HAVEESTABLISHED() in a few other places.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.8 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.7 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.6 |
|
08-Jan-1994 |
mycroft |
Prototypes.
|
#
1.5 |
|
08-Jan-1994 |
mycroft |
Fix some inconsistent spacing; spaces at the end of lines, etc.
|
#
1.4 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.3 |
|
22-May-1993 |
cgd |
branches: 1.3.4; add include of select.h if necessary for protos, or delete if extraneous
|
#
1.2 |
|
18-May-1993 |
cgd |
make kernel select interface be one-stop shopping & clean it all up.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726
|
#
1.91 |
|
25-Jul-2016 |
knakahara |
fix: unlock in reverse order
|
Revision tags: pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.90 |
|
26-Apr-2016 |
ozaki-r |
branches: 1.90.2; Sweep unnecessary route.h inclusions
|
Revision tags: nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 nick-nhusb-base-20150921
|
#
1.89 |
|
24-Aug-2015 |
pooka |
sprinkle _KERNEL_OPT
|
Revision tags: nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base
|
#
1.88 |
|
10-Nov-2014 |
maxv |
branches: 1.88.2; Do not uselessly include <sys/malloc.h>.
|
Revision tags: netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
|
#
1.87 |
|
02-Jan-2014 |
pooka |
branches: 1.87.4; Allow kernels compiled with INET+INET6 to be booted as IPv4-only or IPv6-only.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE yamt-pagecache-tag8 netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 agc-symver-base netbsd-6-1-RC2 netbsd-6-1-RC1 yamt-pagecache-base8 netbsd-6-0-1-RELEASE yamt-pagecache-base7 matt-nb6-plus-nbase yamt-pagecache-base6 netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-pre-base2 jmcneill-usbmp-base2 netbsd-6-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
|
#
1.86 |
|
31-Aug-2011 |
plunky |
branches: 1.86.2; 1.86.12; 1.86.16; NULL does not need a cast
|
Revision tags: rmind-uvmplock-nbase cherry-xenmp-base rmind-uvmplock-base
|
#
1.85 |
|
20-Apr-2011 |
gdt |
Rewrite comments about TCP RTO calculations.
Long ago, the storage representations of srtt and rttvar were changed from the 4.4BSD scheme, and the comments are out of sync with the code. This commit rewrites most of the comments that explain the RTO calculations, and points out some issues in the code.
Joint work with Bev Schwartz of BBN (original analysis and comments), but I have rewritten and extended them, so errors are mine.
This material is based upon work supported by the Defense Advanced Research Projects Agency and Space and Naval Warfare Systems Center, Pacific, under Contract No. N66001-09-C-2073. Approved for Public Release, Distribution Unlimited
|
Revision tags: bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9 uebayasi-xip-base matt-premerge-20091211 yamt-nfs-mp-base8 yamt-nfs-mp-base7 jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 nick-hppapmap-base2 jym-xensuspend-base haad-dm-base2 haad-nbase2 ad-audiomp2-base nick-hppapmap-base haad-dm-base mjf-devfs2-base
|
#
1.84 |
|
10-Nov-2008 |
uebayasi |
branches: 1.84.8; 1.84.10; Whitespace.
|
#
1.83 |
|
09-Nov-2008 |
bouyer |
Fix kern/39769: race condition in TCP timers When a TCP timer is disarmed (with callout_stop()) in the general case callout_invoking() isn't checked, so the timer handler could be called run when the current interrupt handler exits, athough the timer is disarmed. This case cause bad things like TCPT_REXMT and TCPT_PERSIST being both pending, causing a panic (see the PR for details). Close the issue by aborting the handler if the timer is not callout_expired(). (the EXPIRED flag being cleared by callout_stop()).
|
Revision tags: netbsd-5-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4
|
#
1.82 |
|
10-Oct-2008 |
ad |
branches: 1.82.2; 1.82.4; tcp_delack: test for TF_DELACK.
|
Revision tags: wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 simonb-wapbl-nbase yamt-pf42-base4 simonb-wapbl-base yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.81 |
|
28-Apr-2008 |
martin |
branches: 1.81.2; 1.81.6; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-nfs-mp-base
|
#
1.80 |
|
24-Apr-2008 |
ad |
branches: 1.80.2; Merge the socket locking patch:
- Socket layer becomes MP safe. - Unix protocols become MP safe. - Allows protocol processing interrupts to safely block on locks. - Fixes a number of race conditions.
With much feedback from matt@ and plunky@.
|
Revision tags: yamt-pf42-baseX yamt-pf42-base
|
#
1.79 |
|
12-Apr-2008 |
thorpej |
branches: 1.79.2; Make IP, TCP, UDP, and ICMP statistics per-CPU. The stats are collated when the user requests them via sysctl.
|
#
1.78 |
|
08-Apr-2008 |
thorpej |
Change TCP stats from a structure to an array of uint64_t's.
Note: This is ABI-compatible with the old tcpstat structure; old netstat binaries will continue to work properly.
|
Revision tags: nick-csl-alignment-base5 ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase nick-net80211-sync-base keiichi-mipv6-base bouyer-xeni386-merge1 matt-armv6-prevmlocking vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 matt-armv6-nbase jmcneill-base mjf-devfs-base bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base yamt-x86pmap-base3 yamt-x86pmap-base2 yamt-x86pmap-base matt-armv6-base matt-mips64-base jmcneill-pm-base hpcarm-cleanup-base nick-csl-alignment-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base
|
#
1.77 |
|
20-Jun-2007 |
christos |
branches: 1.77.28; - per socket keepalive settings - settable connection establishment timeout
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 matt-nb4-arm-base netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 yamt-idlelwp-base8 wrstuden-fixsa-base thorpej-atomic-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 yamt-splraiseipl-base2 newlock2-base netbsd-4-base
|
#
1.76 |
|
09-Oct-2006 |
rpaulo |
branches: 1.76.2; 1.76.8; 1.76.10; Modular (I tried ;-) TCP congestion control API. Whenever certain conditions happen in the TCP stack, this interface calls the specified callback to handle the situation according to the currently selected congestion control algorithm. A new sysctl node was created: net.inet.tcp.congctl.{available,selected} with obvious meanings. The old net.inet.tcp.newreno MIB was removed. The API is discussed in tcp_congctl(9).
In the near future, it will be possible to selected a congestion control algorithm on a per-socket basis.
Discussed on tech-net and reviewed by <yamt>.
|
Revision tags: abandoned-netbsd-4-base yamt-splraiseipl-base yamt-pdpolicy-base9 yamt-pdpolicy-base8 yamt-pdpolicy-base7 yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base yamt-pdpolicy-base5 chap-midi-base simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.75 |
|
14-May-2006 |
elad |
branches: 1.75.8; 1.75.10; integrate kauth.
|
Revision tags: elad-kernelauth-base
|
#
1.74 |
|
15-Apr-2006 |
christos |
Coverity CID 1153: Add KASSERT before deref.
|
Revision tags: yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 yamt-pdpolicy-base yamt-uio_vmspace-base5
|
#
1.73 |
|
11-Dec-2005 |
christos |
branches: 1.73.4; 1.73.6; 1.73.8; 1.73.10; 1.73.12; merge ktrace-lwp.
|
Revision tags: yamt-readahead-base3 yamt-readahead-base2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base ktrace-lwp-base
|
#
1.72 |
|
19-Jul-2005 |
christos |
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.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 yamt-km-base4 yamt-km-base3 netbsd-3-base kent-audio2-base
|
#
1.71 |
|
02-Mar-2005 |
mycroft |
branches: 1.71.2; 1.71.4; Copyright maintenance.
|
#
1.70 |
|
28-Feb-2005 |
jonathan |
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.
|
Revision tags: yamt-km-base2
|
#
1.69 |
|
03-Feb-2005 |
perry |
ANSIfy function declarations
|
#
1.68 |
|
27-Jan-2005 |
mycroft |
Whoops. Exit fast recovery when handling a timeout.
|
#
1.67 |
|
26-Jan-2005 |
mycroft |
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.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE yamt-km-base netbsd-2-0-1-RELEASE kent-audio1-beforemerge netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 BEFORE-IPF413 netbsd-2-0-base BEFORE-IPF411
|
#
1.66 |
|
02-Jan-2004 |
itojun |
branches: 1.66.8; 1.66.10; some corrections from markus@openbsd; - callout_ack() was called with wrong argument
|
#
1.65 |
|
27-Oct-2003 |
itojun |
make it compilable with TCP_DEBUG defined
|
#
1.64 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
|
#
1.63 |
|
20-Jul-2003 |
he |
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.
|
#
1.62 |
|
03-Feb-2003 |
thorpej |
branches: 1.62.2; Test callout_pending(), not callout_active(), and eliminate now-unnecessary callout_deactivate() calls.
|
Revision tags: nathanw_sa_before_merge fvdl_fs64_base gmcgarry_ctxsw_base gmcgarry_ucred_base nathanw_sa_base
|
#
1.61 |
|
24-Nov-2002 |
scw |
Quell an uninitialised variable warning.
|
Revision tags: kqueue-aftermerge kqueue-beforemerge
|
#
1.60 |
|
22-Oct-2002 |
simonb |
Guard use of "so" in tcp_timer_persist() and tcp_timer_2msl() with #ifdef TCP_DEBUG.
|
Revision tags: gehenna-devsw-base kqueue-base
|
#
1.59 |
|
09-Jun-2002 |
itojun |
whitespace
|
#
1.58 |
|
26-May-2002 |
itojun |
path MTU discovery blackhole detection. PR 12790 (sorry for not committing it for a long time)
|
Revision tags: netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.57 |
|
13-Nov-2001 |
lukem |
branches: 1.57.8; 1.57.10; add RCSIDs
|
Revision tags: thorpej-mips-cache-base
|
#
1.56 |
|
04-Nov-2001 |
matt |
Change a few variable/tables to const since they are read-only.
|
Revision tags: thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf
|
#
1.55 |
|
11-Sep-2001 |
thorpej |
branches: 1.55.2; Use callouts for SYN cache timers, rather than traversing time queues in tcp_slowtimo().
|
#
1.54 |
|
10-Sep-2001 |
thorpej |
Update copyrights.
|
#
1.53 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.52 |
|
10-Sep-2001 |
thorpej |
Initialize TCP timer variables in a new function, tcp_timer_init().
|
#
1.51 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.50 |
|
10-Sep-2001 |
thorpej |
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.
|
#
1.49 |
|
10-Sep-2001 |
thorpej |
Use a callout for the delayed ACK timer, and delete tcp_fasttimo(). Expose the delayed ACK timer as net.inet.tcp.delack_ticks.
|
Revision tags: thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.48 |
|
19-Oct-2000 |
itojun |
branches: 1.48.2; 1.48.4; 1.48.6; remove #ifdef TCP6. it is not likely for us to bring in sys/netinet6/tcp6*.c (separate TCP/IPv6 stack) into netbsd-current.
|
#
1.47 |
|
17-Oct-2000 |
itojun |
be more friendly with INET-less build. XXX we need to do more to do a working INET-less build
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.46 |
|
30-Mar-2000 |
augustss |
Remove register declarations.
|
Revision tags: chs-ubc2-newbase wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base fvdl-softdep-base chs-ubc2-base
|
#
1.45 |
|
14-Jul-1999 |
itojun |
branches: 1.45.2; Use proper ip protocol # field and tcp hdr on sending RST against SYN, when ip header and tcp header are not adjacent to each other (i.e. when ip6 options are attached).
To test this, try telnet @::1@::1 port toward a port without responding server. Prior to the fix, the kernel will generate broken RST packet.
|
#
1.44 |
|
01-Jul-1999 |
itojun |
IPv6 kernel code, based on KAME/NetBSD 1.4, SNAP kit 19990628. (Sorry for a big commit, I can't separate this into several pieces...) Pls check sys/netinet6/TODO and sys/netinet6/IMPLEMENTATION for details.
- sys/kern: do not assume single mbuf, accept chained mbuf on passing data from userland to kernel (or other way round). - "midway" ATM card: ATM PVC pseudo device support, like those done in ALTQ package (ftp://ftp.csl.sony.co.jp/pub/kjc/). - sys/netinet/tcp*: IPv4/v6 dual stack tcp support. - sys/netinet/{ip6,icmp6}.h, sys/net/pfkeyv2.h: IETF document assumes those file to be there so we patch it up. - sys/netinet: IPsec additions are here and there. - sys/netinet6/*: most of IPv6 code sits here. - sys/netkey: IPsec key management code - dev/pci/pcidevs: regen
In my understanding no code here is subject to export control so it should be safe.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base kenh-if-detach-base chs-ubc-base
|
#
1.43 |
|
10-Sep-1998 |
mouse |
branches: 1.43.8; 1.43.10; Create tcp.keepidle, tcp.keepintvl, tcp.keepcnt, tcp.slowhz sysctls.
|
#
1.42 |
|
04-Sep-1998 |
mycroft |
Fix a couple of bogons related to tcp_new_iss(): * Don't add tcp_iss_seq when creating a new ISS from TIME-WAIT state. * Do the clock increment even when using the rnd device.
|
Revision tags: eeh-paddr_t-base
|
#
1.41 |
|
17-Jul-1998 |
thorpej |
Comment where we use the Loss Window.
|
#
1.40 |
|
02-Jun-1998 |
thorpej |
Loss window MUST be one segment, per draft-floyd-incr-init-win-03.
|
#
1.39 |
|
11-May-1998 |
thorpej |
Make sure a timer is marked "disarmed" once it has expired.
|
#
1.38 |
|
11-May-1998 |
thorpej |
Nuke TUBA per my note to tech-net; there's no reason to keep it around.
|
#
1.37 |
|
07-May-1998 |
thorpej |
Define all TCP timers in terms of PRT timers.
|
#
1.36 |
|
06-May-1998 |
thorpej |
Use macros from tcp_timer.h to manipulate TCP timers, so that their implementation can be changed easily.
|
#
1.35 |
|
01-May-1998 |
kml |
Remove bogus black hole discovery code
|
#
1.34 |
|
29-Apr-1998 |
thorpej |
Make use of the work-arounds for ancient broken TCP peers run-time conditional (tcp_compat_42). The kernel config option TCP_COMPAT_42 will still enable this by default, or disable this by default if the option is not included (i.e. current behavior). This will be made a sysctl soon.
|
#
1.33 |
|
29-Apr-1998 |
kml |
Add support for deletion of routes added by path MTU discovery; uses new generic route timeout code. Add sysctl for timeout period.
|
#
1.32 |
|
31-Mar-1998 |
thorpej |
Fix a potential-congestion case in the larger initial congestion window code, as clarified in the TCPIMPL WG meeting at IETF #41: If the SYN (active open) or SYN,ACK (passive open) was retransmitted, the initial congestion window for the first slow start of that connection must be one segment.
|
#
1.31 |
|
19-Mar-1998 |
kml |
Fix a retransmission bug introduced by the Brakmo and Peterson RTO estimation changes. Under some circumstances it would return a value of 0, while the old Van Jacobson RTO code would return a minimum of 3. This would result in 12 retransmissions, each 1 second apart. This takes care of those instances, and ensures that t_rttmin is used everywhere as a lower bound.
|
#
1.30 |
|
19-Feb-1998 |
thorpej |
Update copyright (sigh, should have done this long ago).
|
#
1.29 |
|
12-Jan-1998 |
scottr |
Use option header file for TCP_COMPAT_42
|
#
1.28 |
|
05-Jan-1998 |
thorpej |
Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes left were SCCS IDs and Copyright dates.
|
#
1.27 |
|
31-Dec-1997 |
thorpej |
Implement a queue for delayed ACK processing. This queue is used in tcp_fasttimo() in lieu of scanning all open TCP connections.
|
#
1.26 |
|
17-Dec-1997 |
thorpej |
From 4.4BSD-Lite2: - When running the slow timers, skip PCBs in LISTEN state. - When processing the persist timer, drop the connection if the connection idle time exceeds the maximum backoff for retransmit. Part of kern/2335 (pete@daemon.net).
|
#
1.25 |
|
11-Dec-1997 |
thorpej |
Implement an infrastructure to allow larger initial congestion windows. The sysctl'able variable "tcp_init_win", when set to 0, selects an auto-tuning algorithm for selecting the initial window, based on transmit segment size, per discussion in the IETF tcpimpl working group.
Default initial window is still 1 segment, but will soon become 2 segments, per discussion in tcpimpl.
|
#
1.24 |
|
11-Dec-1997 |
thorpej |
In tcp_fasttimo(), don't clear TF_DELACK; we need it to count delayed ACKs in tcp_output(), and it will only be cleared in tcp_output() if the ACK was transmitted sucessfully. Also, don't count delayed ACKs here, let tcp_output() count them.
|
#
1.23 |
|
09-Dec-1997 |
thorpej |
Costmetic change: use intotcpcb() in tcp_fasttimo().
|
#
1.22 |
|
08-Nov-1997 |
kml |
TCP MSS fixes to provide cleaner slow-start and recovery.
|
Revision tags: netbsd-1-3-base marc-pcmcia-base
|
#
1.21 |
|
13-Oct-1997 |
explorer |
branches: 1.21.2; o Make usage of /dev/random dependant on pseudo-device rnd # /dev/random and in-kernel generator in config files.
o Add declaration to all architectures.
o Clean up copyright message in rnd.c, rnd.h, and rndpool.c to include that this code is derived in part from Ted Tyso's linux code.
|
#
1.20 |
|
10-Oct-1997 |
explorer |
Add hooks to use the kernel random system to generate TCP sequence numbers.
|
Revision tags: thorpej-signal-base marc-pcmcia-bp
|
#
1.19 |
|
28-Jul-1997 |
thorpej |
branches: 1.19.2; Garbage-collect some "extern"s.
|
#
1.18 |
|
23-Jul-1997 |
thorpej |
Pull SYN_cache_branch down into the main line.
|
Revision tags: SYN_cache_cur_base is-newarp-before-merge is-newarp-base
|
#
1.17 |
|
10-Dec-1996 |
mycroft |
branches: 1.17.8; Fix RTT scaling problems introduced with Brakmo and Peterson changes.
|
#
1.16 |
|
09-Sep-1996 |
mycroft |
Add in_nullhost() and in_hosteq() macros, to hide some protocol details. Also, fix a bug in TCP wrt SYN+URG packets.
|
#
1.15 |
|
22-May-1996 |
mycroft |
Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait. Remove SS_PRIV completely.
|
Revision tags: netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base
|
#
1.14 |
|
13-Feb-1996 |
christos |
branches: 1.14.4; netinet prototypes
|
Revision tags: netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.13 |
|
12-Aug-1995 |
mycroft |
splnet --> splsoftnet
|
#
1.12 |
|
18-Jun-1995 |
cgd |
convert pcb lists to CIRCLEQs, so that the end can be looked at more easily, and so that the original (insque/remque) logic can be effectively mimiced. (This fixes a bug in the previous set of list changes.) also (since terminator is no longer null) reinstate uninitted list checks, but mark them XXX.
|
#
1.11 |
|
12-Jun-1995 |
mycroft |
Various cleanup, including: * Convert several data structures to use queue.h. * Split in_pcbnotify() into two parts; one for notifying a specific PCB, and one for notifying all PCBs for a particular foreign address.
|
#
1.10 |
|
13-Apr-1995 |
cgd |
be a bit more careful and explicit with types. (basically a large no-op.)
|
#
1.9 |
|
14-Oct-1994 |
mycroft |
Don't return received data to the user until the initial handshake is complete. Also use TCPS_HAVEESTABLISHED() in a few other places.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.8 |
|
29-Jun-1994 |
cgd |
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
|
#
1.7 |
|
13-May-1994 |
mycroft |
Update to 4.4-Lite networking code, with a few local changes.
|
#
1.6 |
|
08-Jan-1994 |
mycroft |
Prototypes.
|
#
1.5 |
|
08-Jan-1994 |
mycroft |
Fix some inconsistent spacing; spaces at the end of lines, etc.
|
#
1.4 |
|
18-Dec-1993 |
mycroft |
Canonicalize all #includes.
|
Revision tags: magnum-base netbsd-0-9-patch-001 netbsd-0-9-RELEASE netbsd-0-9-BETA netbsd-0-9-ALPHA2 netbsd-0-9-ALPHA netbsd-0-9-base
|
#
1.3 |
|
22-May-1993 |
cgd |
branches: 1.3.4; add include of select.h if necessary for protos, or delete if extraneous
|
#
1.2 |
|
18-May-1993 |
cgd |
make kernel select interface be one-stop shopping & clean it all up.
|
#
1.1 |
|
21-Mar-1993 |
cgd |
branches: 1.1.1; Initial revision
|