<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net/ipv4/tcp_input.c, branch v2.6.30</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>tcp: Fix tcp_prequeue() to get correct rto_min value</title>
<updated>2009-05-04T18:11:01+00:00</updated>
<author>
<name>Satoru SATOH</name>
<email>satoru.satoh@gmail.com</email>
</author>
<published>2009-05-04T18:11:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0c266898b42fe4e4e2f9edfc9d3474c10f93aa6a'/>
<id>0c266898b42fe4e4e2f9edfc9d3474c10f93aa6a</id>
<content type='text'>
tcp_prequeue() refers to the constant value (TCP_RTO_MIN) regardless of
the actual value might be tuned. The following patches fix this and make
tcp_prequeue get the actual value returns from tcp_rto_min().

Signed-off-by: Satoru SATOH &lt;satoru.satoh@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tcp_prequeue() refers to the constant value (TCP_RTO_MIN) regardless of
the actual value might be tuned. The following patches fix this and make
tcp_prequeue get the actual value returns from tcp_rto_min().

Signed-off-by: Satoru SATOH &lt;satoru.satoh@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: fix &gt;2 iw selection</title>
<updated>2009-04-14T09:08:53+00:00</updated>
<author>
<name>Ilpo Järvinen</name>
<email>ilpo.jarvinen@helsinki.fi</email>
</author>
<published>2009-04-14T09:08:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=86bcebafc5e7f5163ccf828792fe694b112ed6fa'/>
<id>86bcebafc5e7f5163ccf828792fe694b112ed6fa</id>
<content type='text'>
A long-standing feature in tcp_init_metrics() is such that
any of its goto reset prevents call to tcp_init_cwnd().

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A long-standing feature in tcp_init_metrics() is such that
any of its goto reset prevents call to tcp_init_cwnd().

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: Discard segments that ack data not yet sent</title>
<updated>2009-03-23T04:49:57+00:00</updated>
<author>
<name>John Dykstra</name>
<email>john.dykstra1@gmail.com</email>
</author>
<published>2009-03-23T04:49:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=96e0bf4b5193d0d97d139f99e2dd128763d55521'/>
<id>96e0bf4b5193d0d97d139f99e2dd128763d55521</id>
<content type='text'>
Discard incoming packets whose ack field iincludes data not yet sent.
This is consistent with RFC 793 Section 3.9.

Change tcp_ack() to distinguish between too-small and too-large ack
field values.  Keep segments with too-large ack fields out of the fast
path, and change slow path to discard them.

Reported-by:  Oliver Zheng &lt;mailinglists+netdev@oliverzheng.com&gt;
Signed-off-by: John Dykstra &lt;john.dykstra1@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Discard incoming packets whose ack field iincludes data not yet sent.
This is consistent with RFC 793 Section 3.9.

Change tcp_ack() to distinguish between too-small and too-large ack
field values.  Keep segments with too-large ack fields out of the fast
path, and change slow path to discard them.

Reported-by:  Oliver Zheng &lt;mailinglists+netdev@oliverzheng.com&gt;
Signed-off-by: John Dykstra &lt;john.dykstra1@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net/*: use linux/kernel.h swap()</title>
<updated>2009-03-21T20:36:17+00:00</updated>
<author>
<name>Ilpo Järvinen</name>
<email>ilpo.jarvinen@helsinki.fi</email>
</author>
<published>2009-03-21T20:36:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a0bffffc148cd8e75a48a89ad2ddb74e4081a20a'/>
<id>a0bffffc148cd8e75a48a89ad2ddb74e4081a20a</id>
<content type='text'>
tcp_sack_swap seems unnecessary so I pushed swap to the caller.
Also removed comment that seemed then pointless, and added include
when not already there. Compile tested.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tcp_sack_swap seems unnecessary so I pushed swap to the caller.
Also removed comment that seemed then pointless, and added include
when not already there. Compile tested.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: simplify tcp_current_mss</title>
<updated>2009-03-16T03:09:54+00:00</updated>
<author>
<name>Ilpo Järvinen</name>
<email>ilpo.jarvinen@helsinki.fi</email>
</author>
<published>2009-03-14T14:23:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0c54b85f2828128274f319a1eb3ce7f604fe2a53'/>
<id>0c54b85f2828128274f319a1eb3ce7f604fe2a53</id>
<content type='text'>
There's very little need for most of the callsites to get
tp-&gt;xmit_goal_size updated. That will cost us divide as is,
so slice the function in two. Also, the only users of the
tp-&gt;xmit_goal_size are directly behind tcp_current_mss(),
so there's no need to store that variable into tcp_sock
at all! The drop of xmit_goal_size currently leaves 16-bit
hole and some reorganization would again be necessary to
change that (but I'm aiming to fill that hole with u16
xmit_goal_size_segs to cache the results of the remaining
divide to get that tso on regression).

Bring xmit_goal_size parts into tcp.c

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Cc: Evgeniy Polyakov &lt;zbr@ioremap.net&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There's very little need for most of the callsites to get
tp-&gt;xmit_goal_size updated. That will cost us divide as is,
so slice the function in two. Also, the only users of the
tp-&gt;xmit_goal_size are directly behind tcp_current_mss(),
so there's no need to store that variable into tcp_sock
at all! The drop of xmit_goal_size currently leaves 16-bit
hole and some reorganization would again be necessary to
change that (but I'm aiming to fill that hole with u16
xmit_goal_size_segs to cache the results of the remaining
divide to get that tso on regression).

Bring xmit_goal_size parts into tcp.c

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Cc: Evgeniy Polyakov &lt;zbr@ioremap.net&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: don't check mtu probe completion in the loop</title>
<updated>2009-03-16T03:09:53+00:00</updated>
<author>
<name>Ilpo Järvinen</name>
<email>ilpo.jarvinen@helsinki.fi</email>
</author>
<published>2009-03-14T14:23:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=72211e90501f954f586481c25521c3724cda3cc7'/>
<id>72211e90501f954f586481c25521c3724cda3cc7</id>
<content type='text'>
It seems that no variables clash such that we couldn't do
the check just once later on. Therefore move it.

Also kill dead obvious comment, dead argument and add
unlikely since this mtu probe does not happen too often.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It seems that no variables clash such that we couldn't do
the check just once later on. Therefore move it.

Also kill dead obvious comment, dead argument and add
unlikely since this mtu probe does not happen too often.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: consolidate paws check</title>
<updated>2009-03-16T03:09:52+00:00</updated>
<author>
<name>Ilpo Järvinen</name>
<email>ilpo.jarvinen@helsinki.fi</email>
</author>
<published>2009-03-14T14:23:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c887e6d2d9aee56ee7c9f2af4cec3a5efdcc4c72'/>
<id>c887e6d2d9aee56ee7c9f2af4cec3a5efdcc4c72</id>
<content type='text'>
Wow, it was quite tricky to merge that stream of negations
but I think I finally got it right:

check &amp; replace_ts_recent:
(s32)(rcv_tsval - ts_recent) &gt;= 0                  =&gt; 0
(s32)(ts_recent - rcv_tsval) &lt;= 0                  =&gt; 0

discard:
(s32)(ts_recent - rcv_tsval)  &gt; TCP_PAWS_WINDOW    =&gt; 1
(s32)(ts_recent - rcv_tsval) &lt;= TCP_PAWS_WINDOW    =&gt; 0

I toggled the return values of tcp_paws_check around since
the old encoding added yet-another negation making tracking
of truth-values really complicated.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Wow, it was quite tricky to merge that stream of negations
but I think I finally got it right:

check &amp; replace_ts_recent:
(s32)(rcv_tsval - ts_recent) &gt;= 0                  =&gt; 0
(s32)(ts_recent - rcv_tsval) &lt;= 0                  =&gt; 0

discard:
(s32)(ts_recent - rcv_tsval)  &gt; TCP_PAWS_WINDOW    =&gt; 1
(s32)(ts_recent - rcv_tsval) &lt;= TCP_PAWS_WINDOW    =&gt; 0

I toggled the return values of tcp_paws_check around since
the old encoding added yet-another negation making tracking
of truth-values really complicated.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: kill dead end_seq variable in clean_rtx_queue</title>
<updated>2009-03-16T03:09:51+00:00</updated>
<author>
<name>Ilpo Järvinen</name>
<email>ilpo.jarvinen@helsinki.fi</email>
</author>
<published>2009-03-14T14:23:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c43d558a5139a3b22dcac3f19f64ecb39130b02e'/>
<id>c43d558a5139a3b22dcac3f19f64ecb39130b02e</id>
<content type='text'>
I've already forgotten what for this was necessary, anyway
it's no longer used (if it ever was).

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I've already forgotten what for this was necessary, anyway
it's no longer used (if it ever was).

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: remove pointless .dsack/.num_sacks code</title>
<updated>2009-03-16T03:09:51+00:00</updated>
<author>
<name>Ilpo Järvinen</name>
<email>ilpo.jarvinen@helsinki.fi</email>
</author>
<published>2009-03-14T14:23:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5861f8e58dd84fc34b691c2e8d4824dea68c360e'/>
<id>5861f8e58dd84fc34b691c2e8d4824dea68c360e</id>
<content type='text'>
In the pure assignment case, the earlier zeroing is
still in effect.

David S. Miller raised concerns if the ifs are there to avoid
dirtying cachelines. I came to these conclusions:

&gt; We'll be dirty it anyway (now that I check), the first "real" statement
&gt; in tcp_rcv_established is:
&gt;
&gt;       tp-&gt;rx_opt.saw_tstamp = 0;
&gt;
&gt; ...that'll land on the same dword. :-/
&gt;
&gt; I suppose the blocks are there just because they had more complexity
&gt; inside when they had to calculate the eff_sacks too (maybe it would
&gt; have been better to just remove them in that drop-patch so you would
&gt; have had less head-ache :-)).

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the pure assignment case, the earlier zeroing is
still in effect.

David S. Miller raised concerns if the ifs are there to avoid
dirtying cachelines. I came to these conclusions:

&gt; We'll be dirty it anyway (now that I check), the first "real" statement
&gt; in tcp_rcv_established is:
&gt;
&gt;       tp-&gt;rx_opt.saw_tstamp = 0;
&gt;
&gt; ...that'll land on the same dword. :-/
&gt;
&gt; I suppose the blocks are there just because they had more complexity
&gt; inside when they had to calculate the eff_sacks too (maybe it would
&gt; have been better to just remove them in that drop-patch so you would
&gt; have had less head-ache :-)).

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: tcp_init_wl / tcp_update_wl argument cleanup</title>
<updated>2009-03-03T06:42:02+00:00</updated>
<author>
<name>Hantzis Fotis</name>
<email>xantzis@ceid.upatras.gr</email>
</author>
<published>2009-03-03T06:42:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ee7537b63a28b42b22e48842dfeedc66d96b71f1'/>
<id>ee7537b63a28b42b22e48842dfeedc66d96b71f1</id>
<content type='text'>
The above functions from include/net/tcp.h have been defined with an
argument that they never use. The argument is 'u32 ack' which is never
used inside the function body, and thus it can be removed. The rest of
the patch involves the necessary changes to the function callers of the
above two functions.

Signed-off-by: Hantzis Fotis &lt;xantzis@ceid.upatras.gr&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The above functions from include/net/tcp.h have been defined with an
argument that they never use. The argument is 'u32 ack' which is never
used inside the function body, and thus it can be removed. The rest of
the patch involves the necessary changes to the function callers of the
above two functions.

Signed-off-by: Hantzis Fotis &lt;xantzis@ceid.upatras.gr&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
