DragonFly BSD

CVS log for src/sys/netinet/tcp_var.h

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

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.42: download - view: text, markup, annotated - select for diffs
Mon Oct 27 02:56:30 2008 UTC (5 years, 9 months ago) by sephe
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.41: preferred, unified
Changes since revision 1.41: +2 -0 lines
pr_ctlinput is usually called when certains types of ICMP packets are received.
However, the processing of ICMP packets happens in netisr0, which means the
thread context, in which pr_ctlinput is called, is not correct.  To handle this
following two fixes are applied:
- Add pr_ctlport to protosw and ip6protosw, which could be used to locate
  correct msgport to call pr_ctlinput for specific protocol
- All necessary information needed by pr_ctlinput are gather into one netmsg,
  and this netmsg is delivered synchronously (some information is on the stack)

Note for new protocol implementation:
pr_ctlinput and pr_ctlport should be both NULL or both non-NULL.

Obtained-from: dillon@
Tested-by: pavalos@

Revision 1.41: download - view: text, markup, annotated - select for diffs
Fri Aug 15 21:37:16 2008 UTC (6 years ago) by nth
Branches: MAIN
Diff to: previous 1.40: preferred, unified
Changes since revision 1.40: +0 -1 lines
Allocate sackblock structs with kmalloc() instead of zalloc().

Revision 1.40: download - view: text, markup, annotated - select for diffs
Wed Dec 19 11:00:22 2007 UTC (6 years, 8 months ago) by sephe
Branches: MAIN
CVS tags: DragonFly_RELEASE_2_0_Slip, DragonFly_RELEASE_2_0, DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12, DragonFly_Preview
Diff to: previous 1.39: preferred, unified
Changes since revision 1.39: +2 -1 lines
Make divert(4) socket dispatch mbuf to correct the lwkt port for further
processing (ip_{input,output}):
- Add mbuf** function parameter to protosw.pr_mport()
- Pass 'addr' to pr_mport() in so_pru_send(); udp_soport() is adjusted
  accordingly
- Add additional parameter to ip_mport(), so it could be called with both
  incoming and outgoing packets.  And the processing for outgoing UDP packets
  matches udp_soport()
- Add div_soport() as IPPROTO_DIVERT's pr_mport()
  o  Delegate non-PRU_SEND operation to cpu0_soport()
  o  Move receiving interface setting up code from div_output() into this
     function, so ip_mport() could be called
  o  Use ip_mport() to find the target lwkt port

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

Revision 1.38: download - view: text, markup, annotated - select for diffs
Sat Sep 30 21:23:28 2006 UTC (7 years, 10 months ago) by swildner
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8
Diff to: previous 1.37: preferred, unified
Changes since revision 1.37: +15 -16 lines
Rearrange stuff a bit to satisfy GCC 4.1.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Sat May 20 02:42:12 2006 UTC (8 years, 3 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6
Diff to: previous 1.36: preferred, unified
Changes since revision 1.36: +7 -0 lines
I'm growing tired of having to add #include lines for header files that
the include file(s) I really want depend on.

Go through nearly all major system include files and add appropriately
#ifndef'd #include lines to include all dependant header files.  Kernel
source files now only need to #include the header files they directly
depend on.

So, for example, if I wanted to add a SYSCTL to a kernel source file,
I would only have to #include <sys/sysctl.h> to bring in the support for
it, rather then four or five header files in addition to <sys/sysctl.h>.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Sat Jan 14 11:33:50 2006 UTC (8 years, 7 months ago) by swildner
Branches: MAIN
Diff to: previous 1.35: preferred, unified
Changes since revision 1.35: +1 -1 lines
* Remove (void) casts for discarded return values.

* Put function types on separate lines.

* Ansify function definitions.

* Remove __P.

In-collaboration-with: Alexey Slynko <slynko@tronet.ru>

Revision 1.35: download - view: text, markup, annotated - select for diffs
Tue May 10 15:48:10 2005 UTC (9 years, 3 months ago) by hsu
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_4_Slip, DragonFly_RELEASE_1_4
Diff to: previous 1.34: preferred, unified
Changes since revision 1.34: +24 -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.34: download - view: text, markup, annotated - select for diffs
Mon Apr 18 22:41:23 2005 UTC (9 years, 4 months ago) by hsu
Branches: MAIN
CVS tags: DragonFly_Stable
Diff to: previous 1.33: preferred, unified
Changes since revision 1.33: +1 -0 lines
Use a larger initial window size when restarting after a long idle period.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Mon Apr 11 09:54:22 2005 UTC (9 years, 4 months ago) by hmp
Branches: MAIN
Diff to: previous 1.32: preferred, unified
Changes since revision 1.32: +0 -1 lines
Remove the '_GD' macro hack:

I introduced it some revisions ago so that functions with locally
cached 'globaldata' can redefine it in order to minimise time
required for updating the IP/TCP per-cpu statistics counters.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Mon Apr 11 09:43:50 2005 UTC (9 years, 4 months ago) by hmp
Branches: MAIN
Diff to: previous 1.31: preferred, unified
Changes since revision 1.31: +3 -3 lines
Mechanical cleanup of TCP per-cpu statistics code, better naming etc.

Correct a stale comment regarding initialisation of the counters.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Thu Mar 10 08:19:27 2005 UTC (9 years, 5 months ago) by hsu
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2
Diff to: previous 1.30: preferred, unified
Changes since revision 1.30: +1 -2 lines
Better byte packing for struct tcpopt.

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

Revision 1.30: download - view: text, markup, annotated - select for diffs
Wed Mar 9 06:54:34 2005 UTC (9 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.29: preferred, unified
Changes since revision 1.29: +1 -0 lines
Take into account the number of SACKed bytes skipped when slow-starting
in order to send out a full congestion window's worth of packets.

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

Revision 1.29: download - view: text, markup, annotated - select for diffs
Fri Mar 4 05:57:50 2005 UTC (9 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.28: preferred, unified
Changes since revision 1.28: +8 -9 lines
The route in a syncache entry is cleared if the connection was successfully
completed, so there's no need to keep a separate SCF_KEEPROUTE flag.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Sat Jan 8 09:26:32 2005 UTC (9 years, 7 months ago) by hsu
Branches: MAIN
Diff to: previous 1.27: preferred, unified
Changes since revision 1.27: +0 -2 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.27: download - view: text, markup, annotated - select for diffs
Tue Dec 21 02:54:15 2004 UTC (9 years, 8 months ago) by hsu
Branches: MAIN
Diff to: previous 1.26: preferred, unified
Changes since revision 1.26: +19 -17 lines
Clean up the routing and networking code before I parallelize routing.

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

Revision 1.25: download - view: text, markup, annotated - select for diffs
Tue Aug 3 00:04:13 2004 UTC (10 years ago) by dillon
Branches: MAIN
CVS tags: DragonFly_Snap29Sep2004, DragonFly_Snap13Sep2004
Diff to: previous 1.24: preferred, unified
Changes since revision 1.24: +8 -1 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.24: download - view: text, markup, annotated - select for diffs
Sat Jul 17 20:31:31 2004 UTC (10 years, 1 month ago) by hsu
Branches: MAIN
Diff to: previous 1.23: preferred, unified
Changes since revision 1.23: +0 -1 lines
Readability changes, mostly removing the option to not do NewReno,
re-indenting some code, and ansifying some function definitions.

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

Approved by:	Matt

Revision 1.22: download - view: text, markup, annotated - select for diffs
Fri Jun 4 04:32:23 2004 UTC (10 years, 2 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_1_0_RC1
Diff to: previous 1.21: preferred, unified
Changes since revision 1.21: +2 -2 lines
Use MPIPE instead of the really hackish use of m_get() and mtod()/dtom()
for the 'tcptemp' structure.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Thu Jun 3 18:30:03 2004 UTC (10 years, 2 months ago) by joerg
Branches: MAIN
Diff to: previous 1.20: preferred, unified
Changes since revision 1.20: +1 -1 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.20: download - view: text, markup, annotated - select for diffs
Thu May 20 04:32:59 2004 UTC (10 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.19: preferred, unified
Changes since revision 1.19: +4 -4 lines
Put snd_recover in the same cache line as snd_una.  Make room in the
snd_una cache line by coalescing the t_force field into t_flags and moving
snd_up into the old t_force slot.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu Apr 29 10:06:41 2004 UTC (10 years, 3 months ago) by hmp
Branches: MAIN
Diff to: previous 1.18: preferred, unified
Changes since revision 1.18: +108 -4 lines
1) Move the tcp_stats structure back to netinet/tcp_var.h.
2) Remove netinet/tcp_stats.h because it is no longer needed.

Requested by:	Jeffrey Hsu

Revision 1.18: download - view: text, markup, annotated - select for diffs
Fri Apr 23 10:21:08 2004 UTC (10 years, 3 months ago) by hsu
Branches: MAIN
Diff to: previous 1.17: preferred, unified
Changes since revision 1.17: +1 -1 lines
Pass more information down to the protocol-specific socket dispatch function
to use if desired.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sat Apr 10 00:10:42 2004 UTC (10 years, 4 months ago) by hsu
Branches: MAIN
Diff to: previous 1.16: preferred, unified
Changes since revision 1.16: +3 -0 lines
Send connects to the right processor.

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

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

Revision 1.15: download - view: text, markup, annotated - select for diffs
Sun Mar 14 08:21:53 2004 UTC (10 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.14: preferred, unified
Changes since revision 1.14: +2 -0 lines
Make tcp_drain() per-cpu.

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

Revision 1.13: download - view: text, markup, annotated - select for diffs
Mon Mar 8 00:39:00 2004 UTC (10 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.12: preferred, unified
Changes since revision 1.12: +32 -24 lines
Implement Early Retransmit.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sat Mar 6 05:00:41 2004 UTC (10 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.11: preferred, unified
Changes since revision 1.11: +0 -1 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.11: download - view: text, markup, annotated - select for diffs
Sat Mar 6 01:58:55 2004 UTC (10 years, 5 months ago) by hsu
Branches: MAIN
Diff to: previous 1.10: preferred, unified
Changes since revision 1.10: +1 -1 lines
Dispatch upper-half protocol request handling.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue Mar 2 20:41:13 2004 UTC (10 years, 5 months ago) by rob
Branches: MAIN
Diff to: previous 1.9: preferred, unified
Changes since revision 1.9: +2 -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.9: download - view: text, markup, annotated - select for diffs
Sat Nov 8 07:57:51 2003 UTC (10 years, 9 months ago) by dillon
Branches: MAIN
Diff to: previous 1.8: preferred, unified
Changes since revision 1.8: +3 -1 lines
Network threading stage 1/3: netisrs are already software interrupts,
which means they alraedy run in their own thread.  This commit creates
multiple supporting threads for netisrs rather then just one and code
has been added to begin routing packets to particular threads based on
their content.  Eventually this will lead to us being able to isolate and
serialize PCBs in particular threads.  The tail end of the ip_input path's
protocol dispatch, the UIPC (user entry) code, and listen socket have not
been covered yet and still need to be serialized.

A new debugging sysctl, net.inet.ip.mthread_enable, has been added.  It
defaults to 1.  If you set this sysctl 0 netisr processing will revert to
the prior single-threaded behavior.

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

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sat Aug 23 11:18:00 2003 UTC (11 years ago) by rob
Branches: MAIN
Diff to: previous 1.7: preferred, unified
Changes since revision 1.7: +28 -28 lines
if ipv6 doesnt need oldstyle prototypes maybe its time we took them out
of ipv4's code

Revision 1.7: download - view: text, markup, annotated - select for diffs
Thu Aug 14 23:09:33 2003 UTC (11 years ago) by hsu
Branches: MAIN
Diff to: previous 1.6: preferred, unified
Changes since revision 1.6: +3 -0 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.6: download - view: text, markup, annotated - select for diffs
Thu Aug 14 21:08:57 2003 UTC (11 years ago) by hsu
Branches: MAIN
Diff to: previous 1.5: preferred, unified
Changes since revision 1.5: +2 -2 lines
Fix spurious spelling within comments.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Wed Aug 13 18:34:25 2003 UTC (11 years ago) by hsu
Branches: MAIN
Diff to: previous 1.4: preferred, unified
Changes since revision 1.4: +6 -0 lines
Implement the Eifel Dectection Algorithm for TCP (RFC 3522).

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu Jul 24 01:31:07 2003 UTC (11 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.3: preferred, unified
Changes since revision 1.3: +1 -0 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 (11 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.2: preferred, unified
Changes since revision 1.2: +28 -23 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 (11 years, 2 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:35 2003 UTC (11 years, 2 months ago) by dillon
Branches: MAIN
CVS tags: FREEBSD_4_FORK
import from FreeBSD RELENG_4 1.56.2.13

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