DragonFly BSD

CVS log for src/sys/netinet/tcp_input.c

[BACK] Up to [DragonFly] / src / sys / netinet

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.68: download - view: text, markup, annotated - select for diffs
Fri Aug 22 09:14:17 2008 UTC (5 years, 7 months ago) by sephe
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.67: preferred, unified
Changes since revision 1.67: +6 -5 lines
Save 'ipfw forward' information in mtag, use m_pkthdr.fw_flags to indicate
that this mtag exists (mainly to avoid unnecessary mtag locating).  This
actually eliminates the last reference to MT_TAG mbuf; nuke it completely.

Revision 1.67: download - view: text, markup, annotated - select for diffs
Sun Apr 22 01:13:14 2007 UTC (6 years, 11 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_2_0_Slip, DragonFly_RELEASE_2_0, DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12, DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10, DragonFly_Preview
Diff to: previous 1.66: preferred, unified
Changes since revision 1.66: +20 -20 lines
Give the sockbuf structure its own header file and supporting source file.
Move all sockbuf-specific functions from kern/uipc_socket2.c into the new
kern/uipc_sockbuf.c and move all the sockbuf-specific structures from
sys/socketvar.h to sys/sockbuf.h.

Change the sockbuf structure to only contain those fields required to
properly management a chain of mbufs.  Create a signalsockbuf structure
to hold the remaining fields (e.g. selinfo, mbmax, etc).

Change the so_rcv and so_snd structures in the struct socket from
a sockbuf to a signalsockbuf.

Remove the recently added sorecv_direct structure which was being used
to provide a direct mbuf path to consumers for socket I/O.  Use the newly
revamped sockbuf base structure instead.  This gives mbuf consumers
direct access to the sockbuf API functions for use outside of a struct
socket.  This will also allow new API functions to be added to the sockbuf
interface to ease the job of parsing data out of chained mbufs.

Revision 1.66: download - view: text, markup, annotated - select for diffs
Tue Apr 17 17:28:04 2007 UTC (7 years ago) by dillon
Branches: MAIN
Diff to: previous 1.65: preferred, unified
Changes since revision 1.65: +13 -2 lines
Don't allow snd_nxt to be set to a value less then snd_una when restoring
snd_nxt in the TCP limited transmit code.  This can occur if the code
blocks and acks are processed prior to restoration.

This bug fix is currently unverified.  The possible trigger is running
netstat -an on a machine very heavily loaded with 6000+ network connections.

Reported-by: Peter Avalos <pavalos@theshell.com>

Revision 1.65: download - view: text, markup, annotated - select for diffs
Wed Apr 4 06:13:26 2007 UTC (7 years ago) by dillon
Branches: MAIN
Diff to: previous 1.64: preferred, unified
Changes since revision 1.64: +5 -0 lines
Add IP_MINTTL socket option - used to set the minimum acceptable TTL a
packet must have when received on a socket.  All packets with a lower TTL
are silently dropped.  Works on already connected/connecting and listening
sockets for RAW/UDP/TCP.

Add IP_RECVTTL socket option support - When set, userland receives the
incoming packet's TTL as ancillary data with recvmsg(2) call.

Allows the implementation of security mechanisms described in RFC3682 (GTSM).

Obtained-from: FreeBSD.
Submitted-by: Hasso Tepper <hasso@estpak.ee>

Revision 1.64: download - view: text, markup, annotated - select for diffs
Sun Mar 4 18:51:59 2007 UTC (7 years, 1 month ago) by swildner
Branches: MAIN
Diff to: previous 1.63: preferred, unified
Changes since revision 1.63: +0 -17 lines
Remove weird license clause which has expired.

Revision 1.63: download - view: text, markup, annotated - select for diffs
Tue Sep 5 00:55:48 2006 UTC (7 years, 7 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8
Diff to: previous 1.62: preferred, unified
Changes since revision 1.62: +5 -5 lines
Rename malloc->kmalloc, free->kfree, and realloc->krealloc.  Pass 1

Revision 1.58.2.1: download - view: text, markup, annotated - select for diffs
Fri Sep 9 01:08:18 2005 UTC (8 years, 7 months ago) by demizu
Branches: DragonFly_RELEASE_1_2
CVS tags: DragonFly_RELEASE_1_2_Slip
Diff to: previous 1.58: preferred, unified; next MAIN 1.59: preferred, unified
Changes since revision 1.58: +27 -6 lines
MFC tcp_seq.h 1.8 and tcp_input.c 1.62.
Fix the same problem described in FreeBSD-SA-05:15.tcp, which
refers CAN-2005-0356 and CAN-2005-2068.  The e-mail below has more.
http://leaf.dragonflybsd.org/mailarchive/bugs/2005-08/msg00052.html

Revision 1.62: download - view: text, markup, annotated - select for diffs
Mon Aug 29 10:24:10 2005 UTC (8 years, 7 months ago) by demizu
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6, DragonFly_RELEASE_1_4_Slip, DragonFly_RELEASE_1_4
Diff to: previous 1.61: preferred, unified
Changes since revision 1.61: +27 -6 lines
Fix the same problem described in FreeBSD-SA-05:15.tcp, which
refers CAN-2005-0356 and CAN-2005-2068.  The e-mail below has more.
http://leaf.dragonflybsd.org/mailarchive/bugs/2005-08/msg00052.html

Revision 1.61: download - view: text, markup, annotated - select for diffs
Mon Aug 29 10:04:01 2005 UTC (8 years, 7 months ago) by demizu
Branches: MAIN
Diff to: previous 1.60: preferred, unified
Changes since revision 1.60: +5 -2 lines
Fix a bug in NewReno which may send a huge amount of data
when a partial ACK is received.  The e-mail below has more.
http://leaf.dragonflybsd.org/mailarchive/bugs/2005-07/msg00013.html

Revision 1.60: download - view: text, markup, annotated - select for diffs
Tue May 10 15:48:10 2005 UTC (8 years, 11 months ago) by hsu
Branches: MAIN
Diff to: previous 1.59: preferred, unified
Changes since revision 1.59: +37 -19 lines
Implement TCP Appropriate Byte Counting.

Reviewed by Noritoshi Demizu, demizu@dd.iij4u.or.jp.
Misunderstanding of spec clarified by Mark Allman.

Revision 1.59: download - view: text, markup, annotated - select for diffs
Mon Apr 18 22:41:23 2005 UTC (9 years ago) by hsu
Branches: MAIN
CVS tags: DragonFly_Stable
Diff to: previous 1.58: preferred, unified
Changes since revision 1.58: +1 -1 lines
Use a larger initial window size when restarting after a long idle period.

Revision 1.58: download - view: text, markup, annotated - select for diffs
Wed Mar 23 08:02:46 2005 UTC (9 years ago) by hsu
Branches: MAIN
Branch point for: DragonFly_RELEASE_1_2
Diff to: previous 1.57: preferred, unified
Changes since revision 1.57: +0 -1 lines
Eliminate a redundant variable assignment.

Noticed by:	Noritoshi Demizu <demizu@dd.iij4u.or.jp>

Revision 1.57: download - view: text, markup, annotated - select for diffs
Mon Mar 21 01:56:22 2005 UTC (9 years ago) by hsu
Branches: MAIN
Diff to: previous 1.56: preferred, unified
Changes since revision 1.56: +2 -1 lines
When doing Limited Transmit, don't retract snd_nxt if it was previously
the same as snd_max.

Submitted by:	Noritoshi Demizu <demizu@dd.iij4u.or.jp>

Revision 1.56: download - view: text, markup, annotated - select for diffs
Mon Mar 21 01:49:43 2005 UTC (9 years ago) by hsu
Branches: MAIN
Diff to: previous 1.55: preferred, unified
Changes since revision 1.55: +4 -0 lines
Ensure that Limited Transmit always sends new data, even after a
retransmission timeout.

Reported by:	Noritoshi Demizu <demizu@dd.iij4u.or.jp>

Revision 1.55: download - view: text, markup, annotated - select for diffs
Fri Mar 18 18:29:05 2005 UTC (9 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.54: preferred, unified
Changes since revision 1.54: +23 -1 lines
Add a sysctl "net.inet.tcp.aggregate_acks" which controls the tcp ack
aggregation feature, default to on.  This feature was added a while
back and most systems will want to leave it on.  The feature only effects
situations where TCP packets are aggregated by e.g. a GigE interface or a
router talking to a GigE interface and allows the tcp stack to send just
one ack after receiving a large burst (~8-10) of tcp packets rather then
sending four or five back-to-back acks.  The single ack actually gets the
sequence space updated more quickly on the other end as well as greatly
reduces the PPS rate and bandwidth used by the return channel.  Protocol
stacks on both ends are also made more efficient due to the fewer acks that
need to be sent and received.

The feature has one side-effect which warrents having the sysctl.  The
slow-start exponential ramp-up takes longer to ramp-up due to the lower
ack rate, reducing tcp bandwidth at the beginning of the connection (but
not once it gets going).  This ONLY effects links which huge bandwidth-delay
products (like 100ms x 100MBits), and then only for a short time, and
even in such cases the difference is not usually noticeable except when
explicitly tested for.  LANs and most WAN links are NOT effected.   The
positive aspects greatly outweight the negative ones in most cases and
sysops will almost always want to leave the feature on.

Delayed-Ack-Analysis-by: Noritoshi Demizu <demizu@dd.iij4u.or.jp>

Revision 1.54: download - view: text, markup, annotated - select for diffs
Wed Mar 9 06:57:29 2005 UTC (9 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.53: preferred, unified
Changes since revision 1.53: +2 -2 lines
Use fixed-width type to ensure correct wraparound for
sequence number arithmetic.

Submitted by:	Noritoshi Demizu <demizu@dd.iij4u.or.jp>

Revision 1.53: download - view: text, markup, annotated - select for diffs
Fri Mar 4 03:48:25 2005 UTC (9 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.52: preferred, unified
Changes since revision 1.52: +3 -5 lines
Cosmetic changes only.

Revision 1.52: download - view: text, markup, annotated - select for diffs
Tue Feb 8 22:56:19 2005 UTC (9 years, 2 months ago) by hsu
Branches: MAIN
Diff to: previous 1.51: preferred, unified
Changes since revision 1.51: +2 -2 lines
Now that 'so_pcb' is properly declared as a 'void *', remove a layer of
indirection and directly use 'so->so_pcb' in place of 'sotoinpcb(so)'.

Revision 1.51: download - view: text, markup, annotated - select for diffs
Tue Feb 1 16:09:37 2005 UTC (9 years, 2 months ago) by hrs
Branches: MAIN
Diff to: previous 1.50: preferred, unified
Changes since revision 1.50: +1 -2 lines
- Nuke #ifdef SCOPEDROUTING.  It was never enabled and is useless now[1].
- Add in6_domifattach(), in6_domifdetach(), and ifp->if_afdata[2].
- ANSIfy.

Obtained from:	KAME via FreeBSD
References (FreeBSD):

	net/
	if.c		1.168[2]
	if_var.h	1.59[2]

	netinet/
	icmp6.h		1.12[2]
	tcp_input.c	1.209[2]

	netinet6/
	icmp6.c		1.38[1], 1.39[2]
	in6.c		1.30[1], 1.31[2]
	ip6_forward.c	1.20[1]
	in6_gif.c	1.15[1]
	in6_proto.c	1.25[2]
	in6_ifattach.c	1.17[1], 1.18[2]
	ip6_input.c	1.53[1], 1.57[2]
	ip6_output.c	1.58[1], 1.59[2]
	in6_src.c	1.14[2]
	in6_var.h	1.14[2]
	nd6.c		1.30[1], 1.32[2]
	nd6.h		1.13[2]
	nd6_nbr.c	1.19[2]
	nd6_rtr.c	1.20[2]
	scope6.c	1.8[2]
	scope6_var.h	1.3[2]

	sys/
	domain.h	1.18[2]
	kernel.h	1.113[2]

Revision 1.50: download - view: text, markup, annotated - select for diffs
Sat Jan 8 09:26:32 2005 UTC (9 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.49: preferred, unified
Changes since revision 1.49: +1 -4 lines
Remove the sysctl options for altering the initial TCP congestion window size.
They violate the TCP spec and don't really buy the user anything, especially
now that we have RFC3390 support for larger initial window sizes on by default.

Revision 1.49: download - view: text, markup, annotated - select for diffs
Wed Dec 29 05:44:43 2004 UTC (9 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.48: preferred, unified
Changes since revision 1.48: +1 -1 lines
Fix compile error.

Revision 1.48: download - view: text, markup, annotated - select for diffs
Wed Dec 29 03:26:42 2004 UTC (9 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.47: preferred, unified
Changes since revision 1.47: +10 -10 lines
Forced commit to say the previous commit wasn't really a buffer overflow
after all, but the code is more uniform this way, so leave it like this,
except for ipsec.c where we use the standard libkern inet_ntoa() instead of
defining a private copy.

Revision 1.47: download - view: text, markup, annotated - select for diffs
Wed Dec 29 01:19:53 2004 UTC (9 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.46: preferred, unified
Changes since revision 1.46: +2 -1 lines
Fix buffer overflow bug involving inet_ntoa().

Revision 1.46: download - view: text, markup, annotated - select for diffs
Tue Dec 21 02:54:15 2004 UTC (9 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.45: preferred, unified
Changes since revision 1.45: +17 -21 lines
Clean up the routing and networking code before I parallelize routing.

Revision 1.45: download - view: text, markup, annotated - select for diffs
Wed Dec 8 23:59:01 2004 UTC (9 years, 4 months ago) by hsu
Branches: MAIN
Diff to: previous 1.44: preferred, unified
Changes since revision 1.44: +3 -3 lines
Cache a pointer the last mbuf in the sockbuf for faster insertion.
Update it on sockbuf insertion and deletion and on user reads.
Add a new sbappendstream() function that inserts in constant time.
Use it for TCP.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Sat Dec 4 21:48:25 2004 UTC (9 years, 4 months ago) by hsu
Branches: MAIN
Diff to: previous 1.43: preferred, unified
Changes since revision 1.43: +1 -1 lines
Accept resets sent while the receive window is zero.

Alternative fix to FreeBSD bug kern/72502.

Revision 1.43: download - view: text, markup, annotated - select for diffs
Sat Dec 4 10:14:27 2004 UTC (9 years, 4 months ago) by hsu
Branches: MAIN
Diff to: previous 1.42: preferred, unified
Changes since revision 1.42: +24 -6 lines
Handle window updates inside header prediction to increase the hit rate.

Revision 1.42: download - view: text, markup, annotated - select for diffs
Thu Nov 18 20:12:26 2004 UTC (9 years, 4 months ago) by dillon
Branches: MAIN
Diff to: previous 1.41: preferred, unified
Changes since revision 1.41: +1 -1 lines
Re-enable SACK by default.  Jeff fixed the corruption issue reported by
H.Miyamoto and downloads now test good again.

Originally-reported-by: H.Miyamoto (aka "Yuukis"). <Ys@PixyGarden.net>
Additional-reports/testing: H.Miyamoto,
			Joerg Sonnenberger <joerg@britannica.bec.de>,
			walt <wa1ter@myrealbox.com>

Revision 1.41: download - view: text, markup, annotated - select for diffs
Wed Nov 17 21:50:46 2004 UTC (9 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.40: preferred, unified
Changes since revision 1.40: +1 -1 lines
Properly propagate the FIN flag from the following to-be-coalesced segment.

Questionable use of logical AND caught by:	Matt Dillon

Revision 1.40: download - view: text, markup, annotated - select for diffs
Wed Nov 17 20:51:16 2004 UTC (9 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.39: preferred, unified
Changes since revision 1.39: +6 -3 lines
Fix bug with wrong length being used when coalescing out-of-order segments.

Revision 1.39: download - view: text, markup, annotated - select for diffs
Wed Nov 17 02:18:17 2004 UTC (9 years, 5 months ago) by dillon
Branches: MAIN
Diff to: previous 1.38: preferred, unified
Changes since revision 1.38: +1 -1 lines
Temporarily change the net.inet.tcp.sack default from 1 to 0 after confirmed
reports of file corruption in downloads.  This will be changed back to 1
after we figure out and fix the issue.

Corrupted-downloads-reported-by: walt <wa1ter@myrealbox.com>

Revision 1.38: download - view: text, markup, annotated - select for diffs
Sun Nov 14 00:49:08 2004 UTC (9 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.37: preferred, unified
Changes since revision 1.37: +343 -129 lines
Implement SACK.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Fri Oct 15 22:59:10 2004 UTC (9 years, 6 months ago) by hsu
Branches: MAIN
Diff to: previous 1.36: preferred, unified
Changes since revision 1.36: +2 -2 lines
Update includes now that the Fast IPSec code has moved to netproto/ipsec.

Submitted by:  Pawel Biernacki <kaktus@dragonflybsd.pl>

Revision 1.36: download - view: text, markup, annotated - select for diffs
Sat Aug 14 06:41:33 2004 UTC (9 years, 8 months ago) by hsu
Branches: MAIN
CVS tags: DragonFly_Snap29Sep2004, DragonFly_Snap13Sep2004
Diff to: previous 1.35: preferred, unified
Changes since revision 1.35: +16 -18 lines
Move a comment to the right place.
Indentation changes.

Revision 1.35: download - view: text, markup, annotated - select for diffs
Wed Aug 11 02:36:22 2004 UTC (9 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.34: preferred, unified
Changes since revision 1.34: +1 -1 lines
Add a state to sanity check tcp_close() to make sure it is not called
twice.

Add a 'cpu' field to the inpcb so the cpu owning a pcb can be made
well-known, for use in later assertions as we move closer to removing
the BGL.

Fix a bug in the closing of listen sockets.  The inp wildcard hash table
removal was being done asynchronously with the freeing of the inp, which
could lead to problems.  Instead of sending messages in parallel to all tcp
protocol threads to remove the wildcard hash we instead chain a single
message through all tcp protocol threads to remove the hash, then detach the
inp at the end of the chain.

There is still an issue with the socket being ripped out from under other
protocol threads which might be trying to accept connections on behalf of
the listen socket which must be resolved before the BGL can be removed (amoung
other things).

Revision 1.34: download - view: text, markup, annotated - select for diffs
Sun Aug 8 06:33:24 2004 UTC (9 years, 8 months ago) by hsu
Branches: MAIN
Diff to: previous 1.33: preferred, unified
Changes since revision 1.33: +113 -122 lines
Get cosmetic changes out of the way before committing SACK.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Tue Aug 3 00:04:13 2004 UTC (9 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.32: preferred, unified
Changes since revision 1.32: +16 -3 lines
tcp_input()'s DELAY_ACK() code checks to see if the delayed ack timer is
running and if it is not it starts it and returns rather then issue an
ack.  If the timer is already running tcp_input() will generate an immediate
ack, resulting in one ack every other packet.  This every-other-packet ack
is usually required to ensure that the window does not close too much and
stall the sender, but it really only exists because the tcp stack does not
look ahead to see if there are other incoming packets that need to be
processed that might themselves require additional acks.  For optimal
operation we really want to process all the pending TCP packets for
the connection before sending any 'normal' acks.

Many ethernet interfaces, including and most especially GigE interfaces,
rate-limit their interrupts.  This results in several packets being moved
from the RX ring to the TCP/IP stack all at once, in a batch.

GIVE THE TCP stack its own netisr dispatcher loop rather then using the
generic netisr dispatcher loop.  The TCP dispatcher loop will call an
additional routine, tcp_willblock(), after all messages queued to the TCP
protocol stack have been exhausted.

When tcp_input() needs to send an ack in the normal header-prediction case
it now places the TCPCB on a queue rather then send an immediate ack.
tcp_willblock() processes this queue and calls tcp_output() to send the
actual ack.

The result is that on a GigE interface which typically queues 8+ packets
per interrupt, a TCP stream will only be acked once per ~8 packets rather
then 4 times (every other packet) per ~8 packets.  This *GREATLY* reduces TCP
protocol overhead and network ack traffic on both ends of the connection.

NOTE: a later commit will deal with pure window space updates which generate
an additional ACK per ~8 packets when the user program drains the buffer.

Reviewed-by: Jeffrey Hsu <hsu@crater.dragonflybsd.org>

Revision 1.32: download - view: text, markup, annotated - select for diffs
Tue Jul 27 17:57:02 2004 UTC (9 years, 8 months ago) by drhodus
Branches: MAIN
Diff to: previous 1.31: preferred, unified
Changes since revision 1.31: +1 -1 lines
Correct line wrap.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Sat Jul 17 20:31:31 2004 UTC (9 years, 9 months ago) by hsu
Branches: MAIN
Diff to: previous 1.30: preferred, unified
Changes since revision 1.30: +202 -248 lines
Readability changes, mostly removing the option to not do NewReno,
re-indenting some code, and ansifying some function definitions.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Thu Jul 8 22:07:35 2004 UTC (9 years, 9 months ago) by hsu
Branches: MAIN
CVS tags: DragonFly_1_0_REL, DragonFly_1_0A_REL
Diff to: previous 1.29: preferred, unified
Changes since revision 1.29: +50 -1 lines
Add the standard DragonFly copyright notice to go along with mine.

Approved by:	Matt

Revision 1.29: download - view: text, markup, annotated - select for diffs
Sun Jun 6 05:38:58 2004 UTC (9 years, 10 months ago) by hsu
Branches: MAIN
CVS tags: DragonFly_1_0_RC1
Diff to: previous 1.28: preferred, unified
Changes since revision 1.28: +6 -0 lines
Detect and foil optimistic ACK attack with forced slow-start
as suggested by Azcorra, Bernardos, and Soto.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Thu Jun 3 18:30:03 2004 UTC (9 years, 10 months ago) by joerg
Branches: MAIN
Diff to: previous 1.27: preferred, unified
Changes since revision 1.27: +9 -3 lines
Make pr_input use variadic arguments for anything but the first mbuf.

Add a warning for NSIP, it is likely to be broken.

Revision 1.27: download - view: text, markup, annotated - select for diffs
Thu May 20 04:28:52 2004 UTC (9 years, 10 months ago) by hsu
Branches: MAIN
Diff to: previous 1.26: preferred, unified
Changes since revision 1.26: +9 -11 lines
Trade off more writes for a simpler check for when to pull up snd_recover.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Thu Apr 22 04:35:45 2004 UTC (9 years, 11 months ago) by dillon
Branches: MAIN
Diff to: previous 1.25: preferred, unified
Changes since revision 1.25: +2 -2 lines
M_NOWAIT to mostly M_INTWAIT conversions, with a splattering of
M_NULLOK to prevent exhaustion attacks from crashing the system.

Note in patricular that the MALLOC tseg_qent for the tcp reassembly
queue went from M_NOWAIT to M_INTWAIT | M_NULLOK.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Tue Apr 13 05:23:13 2004 UTC (10 years ago) by dillon
Branches: MAIN
Diff to: previous 1.24: preferred, unified
Changes since revision 1.24: +0 -12 lines
get rid of TCP_DISTRIBUTED_TCBINFO, it only added confusion.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Wed Apr 7 17:01:25 2004 UTC (10 years ago) by dillon
Branches: MAIN
Diff to: previous 1.23: preferred, unified
Changes since revision 1.23: +0 -5 lines
Make TCP stats per-cpu.

Submitted-by: Hiten Pandya <hmp@crater.dragonflybsd.org>

Revision 1.23: download - view: text, markup, annotated - select for diffs
Mon Apr 5 17:47:01 2004 UTC (10 years ago) by dillon
Branches: MAIN
Diff to: previous 1.22: preferred, unified
Changes since revision 1.22: +19 -4 lines
per-cpu tcbinfo[]s aren't ready for prime time yet.  The tcbinfo is assigned
at tcp_attach time, but there is insufficient information available at this
time to select the hash table and the wrong one gets assigned N-1 out of N
times on MP systems (N = number of cpus), causing outgoing tcp connections
to fail.

An an option, TCP_DISTRIBUTED_TCBINFO, so MP-safe tcbinfo distribution can
continue to be developed without impacting users.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Mon Mar 22 06:38:17 2004 UTC (10 years ago) by hsu
Branches: MAIN
Diff to: previous 1.21: preferred, unified
Changes since revision 1.21: +9 -20 lines
Consolidate length checks in ip_demux().

Revision 1.21: download - view: text, markup, annotated - select for diffs
Sun Mar 21 07:15:36 2004 UTC (10 years ago) by hsu
Branches: MAIN
Diff to: previous 1.20: preferred, unified
Changes since revision 1.20: +42 -38 lines
Cosmetic cleanup.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Tue Mar 9 21:21:54 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.19: preferred, unified
Changes since revision 1.19: +15 -9 lines
Clarify strange ipfw byte ordering convention.

Consulted with:	Luigi Rizzo <rizzo@icir.org>

Revision 1.19: download - view: text, markup, annotated - select for diffs
Mon Mar 8 19:44:32 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.18: preferred, unified
Changes since revision 1.18: +12 -5 lines
Partition the TCP connection table.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Mon Mar 8 00:39:00 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.17: preferred, unified
Changes since revision 1.17: +40 -9 lines
Implement Early Retransmit.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sat Mar 6 07:30:43 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.16: preferred, unified
Changes since revision 1.16: +1 -1 lines
Remove unused second argument to ip_stripoptions().

Revision 1.16: download - view: text, markup, annotated - select for diffs
Sat Mar 6 05:00:41 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.15: preferred, unified
Changes since revision 1.15: +0 -2 lines
Change the "struct inpcbhead *listhead" field in "struct inpcbinfo"
to "struct inpcbhead listhead" so we can have a separate list per
"struct inpcbinfo" when it becomes per-cpu.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Tue Mar 2 20:41:13 2004 UTC (10 years, 1 month ago) by rob
Branches: MAIN
Diff to: previous 1.14: preferred, unified
Changes since revision 1.14: +37 -0 lines

Patch forr FreeBSD-SA-04:04.tcp

limits out of sequence reassembly queue size, to make sure we don't run
out of mbufs, resulting in a DOS attack.

This is the same as tcp47.patch

checked by Robert Garrett & Joerg Sonnenberger

Revision 1.14: download - view: text, markup, annotated - select for diffs
Wed Feb 25 08:46:28 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.13: preferred, unified
Changes since revision 1.13: +5 -2 lines
Relax a KASSERT condition to allow for a valid corner case where
the FIN on the last segment consumes an extra sequence number.

Spurious panic reported by Mike Silbersack <silby@silby.com>.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Sat Feb 14 21:12:39 2004 UTC (10 years, 2 months ago) by dillon
Branches: MAIN
Diff to: previous 1.12: preferred, unified
Changes since revision 1.12: +1 -2 lines
Move <machine/in_cksum.h> to <sys/in_cksum.h>.  This file is now platform
independant.  If we want to add extreme machine specialization later on
then sys/in_cksum.h will #include machine/in_cksum.h.

Move i386/i386/in_cksum.c to netinet/in_cksum.c.  Note that netinet/in_cksum.c
already existed but was not used by the build system at all.  The move
overwrites it.  The new in_cksum.c is a portable, complete rewrite which
references core assembly (procedure call) to do 32-bit-aligned work.  See
also i386/i386/in_cksum2.s.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sun Oct 19 05:19:21 2003 UTC (10 years, 6 months ago) by hsu
Branches: MAIN
Diff to: previous 1.11: preferred, unified
Changes since revision 1.11: +13 -15 lines
Unravel a nested conditional.
Same as FreeBSD rev 1.185.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Sat Sep 13 18:35:20 2003 UTC (10 years, 7 months ago) by dillon
Branches: MAIN
Diff to: previous 1.10: preferred, unified
Changes since revision 1.10: +0 -1 lines
Cleanup.  Remove unused variable.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue Sep 2 10:04:47 2003 UTC (10 years, 7 months ago) by hsu
Branches: MAIN
Diff to: previous 1.9: preferred, unified
Changes since revision 1.9: +5 -6 lines
Account for when Limited Transmit is not congestion window limited.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Thu Aug 14 23:09:33 2003 UTC (10 years, 8 months ago) by hsu
Branches: MAIN
Diff to: previous 1.8: preferred, unified
Changes since revision 1.8: +29 -40 lines
Make the logic clear on when to use Eifel detection or fall back
onto the old RTT heuristic.

Move infrequently executed code out of the fast path to avoid
L1 instruction cache pollution.

Add statistics to disambiguate how a spurious retransmit was detected.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Wed Aug 13 18:34:25 2003 UTC (10 years, 8 months ago) by hsu
Branches: MAIN
Diff to: previous 1.7: preferred, unified
Changes since revision 1.7: +40 -4 lines
Implement the Eifel Dectection Algorithm for TCP (RFC 3522).

Revision 1.7: download - view: text, markup, annotated - select for diffs
Thu Aug 7 21:54:32 2003 UTC (10 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.6: preferred, unified
Changes since revision 1.6: +1 -1 lines
kernel tree reorganization stage 1: Major cvs repository work (not logged as
commits) plus a major reworking of the #include's to accomodate the
relocations.

    * CVS repository files manually moved.  Old directories left intact
      and empty (temporary).

    * Reorganize all filesystems into vfs/, most devices into dev/,
      sub-divide devices by function.

    * Begin to move device-specific architecture files to the device
      subdirs rather then throwing them all into, e.g. i386/include

    * Reorganize files related to system busses, placing the related code
      in a new bus/ directory.  Also move cam to bus/cam though this may
      not have been the best idea in retrospect.

    * Reorganize emulation code and place it in a new emulation/ directory.

    * Remove the -I- compiler option in order to allow #include file
      localization, rename all config generated X.h files to use_X.h to
      clean up the conflicts.

    * Remove /usr/src/include (or /usr/include) dependancies during the
      kernel build, beyond what is normally needed to compile helper
      programs.

    * Make config create 'machine' softlinks for architecture specific
      directories outside of the standard <arch>/include.

    * Bump the config rev.

    WARNING! after this commit /usr/include and /usr/src/sys/compile/*
    should be regenerated from scratch.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Sat Jul 26 21:00:04 2003 UTC (10 years, 8 months ago) by rob
Branches: MAIN
Diff to: previous 1.5: preferred, unified
Changes since revision 1.5: +19 -19 lines
Register keyword removal

Approved by: Matt Dillon

Revision 1.5: download - view: text, markup, annotated - select for diffs
Thu Jul 24 23:33:33 2003 UTC (10 years, 8 months ago) by hsu
Branches: MAIN
Diff to: previous 1.4: preferred, unified
Changes since revision 1.4: +10 -3 lines
Add support for RFC 3390, which allows for a variable-sized
initial congestion window.

This decreases the number of round-trip delays required for
short HTTP transfers which never make it out of slow-start.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu Jul 24 01:31:07 2003 UTC (10 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.3: preferred, unified
Changes since revision 1.3: +33 -1 lines
Here is an implementation of Limited Transmit (RFC 3042) for DragonFlyBSD.
This reduces the high latency problems that NewReno often exhibits in the face
of packet loss.

Submitted-by: Jeffrey Hsu <hsu@FreeBSD.org>

Revision 1.3: download - view: text, markup, annotated - select for diffs
Wed Jul 23 06:21:01 2003 UTC (10 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.2: preferred, unified
Changes since revision 1.2: +26 -21 lines
Merge from FreeBSD 2003/07/15 15:49:53 PDT commit to sys/netinet.
Unify the "send high" and "recover" variables as specified in the
lastest rev of the spec.  Use an explicit flag for Fast Recovery. [1]

Fix bug with exiting Fast Recovery on a retransmit timeout
diagnosed by Lu Guohan. [2]

Original Commit by: Jeffrey Hsu <hsu@FreeBSD.org>

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Jun 17 04:28:51 2003 UTC (10 years, 10 months ago) by dillon
Branches: MAIN
CVS tags: PRE_MP
Diff to: previous 1.1: preferred, unified
Changes since revision 1.1: +1 -0 lines
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids.  Most
ids have been removed from !lint sections and moved into comment sections.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue Jun 17 02:55:34 2003 UTC (10 years, 10 months ago) by dillon
Branches: MAIN
CVS tags: FREEBSD_4_FORK
import from FreeBSD RELENG_4 1.107.2.38

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options