<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/ipv4/tcp_input.c, branch linux-2.6.23.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.23.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.23.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2007-11-16T18:10:56Z</updated>
<entry>
<title>TCP: Make sure write_queue_from does not begin with NULL ptr (CVE-2007-5501)</title>
<updated>2007-11-16T18:10:56Z</updated>
<author>
<name>Ilpo Järvinen</name>
</author>
<published>2007-11-14T23:47:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b0f08ee5e5b8dfc3a875a41c24db878373274799'/>
<id>urn:sha1:b0f08ee5e5b8dfc3a875a41c24db878373274799</id>
<content type='text'>
patch 96a2d41a3e495734b63bff4e5dd0112741b93b38 in mainline.

NULL ptr can be returned from tcp_write_queue_head to cached_skb
and then assigned to skb if packets_out was zero. Without this,
system is vulnerable to a carefully crafted ACKs which obviously
is remotely triggerable.

Besides, there's very little that needs to be done in sacktag
if there weren't any packets outstanding, just skipping the rest
doesn't hurt.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

</content>
</entry>
<entry>
<title>[TCP]: Fix fastpath_cnt_hint when GSO skb is partially ACKed</title>
<updated>2007-10-08T06:43:10Z</updated>
<author>
<name>Ilpo Järvinen</name>
</author>
<published>2007-10-08T06:43:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=48611c47d09023d9356e78550d1cadb8d61da9c8'/>
<id>urn:sha1:48611c47d09023d9356e78550d1cadb8d61da9c8</id>
<content type='text'>
When only GSO skb was partially ACKed, no hints are reset,
therefore fastpath_cnt_hint must be tweaked too or else it can
corrupt fackets_out. The corruption to occur, one must have
non-trivial ACK/SACK sequence, so this bug is not very often
that harmful. There's a fackets_out state reset in TCP because
fackets_out is known to be inaccurate and that fixes the issue
eventually anyway.

In case there was also at least one skb that got fully ACKed,
the fastpath_skb_hint is set to NULL which causes a recount for
fastpath_cnt_hint (the old value won't be accessed anymore),
thus it can safely be decremented without additional checking.

Reported by Cedric Le Goater &lt;clg@fr.ibm.com&gt;

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[TCP]: 'dst' can be NULL in tcp_rto_min()</title>
<updated>2007-08-31T21:39:44Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2007-08-31T21:39:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c127c58ae9bf196d787815b1bd6b0aec5aee816'/>
<id>urn:sha1:5c127c58ae9bf196d787815b1bd6b0aec5aee816</id>
<content type='text'>
Reported by Rick Jones.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[TCP]: Allow minimum RTO to be configurable via routing metrics.</title>
<updated>2007-08-31T05:10:28Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2007-08-31T05:10:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=05bb1fad1cde025a864a90cfeb98dcbefe78a44a'/>
<id>urn:sha1:05bb1fad1cde025a864a90cfeb98dcbefe78a44a</id>
<content type='text'>
Cell phone networks do link layer retransmissions and other
things that cause unnecessary timeout retransmits.  So allow
the minimum RTO to be inflated per-route to deal with this.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[TCP]: Describe tcp_init_cwnd() thoroughly in a comment.</title>
<updated>2007-08-27T01:35:36Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2007-08-25T05:21:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=26722873a460703e319462afa7ebb8ed3a036c07'/>
<id>urn:sha1:26722873a460703e319462afa7ebb8ed3a036c07</id>
<content type='text'>
People often get tripped up by this function and think that
it does not implemented the prescribed algorithms from
RFC2414 and RFC3390, even though it does.

So add a comment to head off such misunderstandings in the
future.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[TCP]: DSACK signals data receival, be conservative</title>
<updated>2007-08-03T02:47:59Z</updated>
<author>
<name>Ilpo Järvinen</name>
</author>
<published>2007-08-03T02:47:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=49ff4bb4cd4c04acf8f9e3d3ec2148305a1db445'/>
<id>urn:sha1:49ff4bb4cd4c04acf8f9e3d3ec2148305a1db445</id>
<content type='text'>
In case a DSACK is received, it's better to lower cwnd as it's
a sign of data receival.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[TCP]: Also handle snd_una changes in tcp_cwnd_down</title>
<updated>2007-08-03T02:46:58Z</updated>
<author>
<name>Ilpo Järvinen</name>
</author>
<published>2007-08-03T02:46:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2e6052941ae1f2f875d7d9092acb8836af1e0193'/>
<id>urn:sha1:2e6052941ae1f2f875d7d9092acb8836af1e0193</id>
<content type='text'>
tcp_cwnd_down must check for it too as it should be conservative
in case of collapse stuff and also when receiver is trying to
lie (though that wouldn't be very successful/useful anyway).

Note:
- Separated also is_dupack and do_lost in fast_retransalert
	* Much cleaner look-and-feel now
	* This time it really fixes cumulative ACK with many new
	  SACK blocks recovery entry (I claimed this fixes with
	  last patch but it wasn't). TCP will now call
	  tcp_update_scoreboard regardless of is_dupack when
	  in recovery as long as there is enough fackets_out.
- Introduce FLAG_SND_UNA_ADVANCED
	* Some prior_snd_una arguments are unnecessary after it
- Added helper FLAG_ANY_PROGRESS to avoid long FLAG...|FLAG...
  constructs

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[TCP]: Bidir flow must not disregard SACK blocks for lost marking</title>
<updated>2007-07-31T09:28:31Z</updated>
<author>
<name>Ilpo Järvinen</name>
</author>
<published>2007-07-31T02:51:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b8ed601cefe7a4014b93560bd846caf44f25b1c1'/>
<id>urn:sha1:b8ed601cefe7a4014b93560bd846caf44f25b1c1</id>
<content type='text'>
It's possible that new SACK blocks that should trigger new LOST
markings arrive with new data (which previously made is_dupack
false). In addition, I think this fixes a case where we get
a cumulative ACK with enough SACK blocks to trigger the fast
recovery (is_dupack would be false there too).

I'm not completely pleased with this solution because readability
of the code is somewhat questionable as 'is_dupack' in SACK case
is no longer about dupacks only but would mean something like
'lost_marker_work_todo' too... But because of Eifel stuff done
in CA_Recovery, the FLAG_DATA_SACKED check cannot be placed to
the if statement which seems attractive solution. Nevertheless,
I didn't like adding another variable just for that either... :-)

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[TCP]: Fix ratehalving with bidirectional flows</title>
<updated>2007-07-31T09:28:30Z</updated>
<author>
<name>Ilpo Järvinen</name>
</author>
<published>2007-07-31T02:48:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1e757f9996114f713a79d3fbcd08739efcfc5c34'/>
<id>urn:sha1:1e757f9996114f713a79d3fbcd08739efcfc5c34</id>
<content type='text'>
Actually, the ratehalving seems to work too well, as cwnd is
reduced on every second ACK even though the packets in flight
remains unchanged. Recoveries in a bidirectional flows suffer
quite badly because of this, both NewReno and SACK are affected.

After this patch, rate halving is performed for ACK only if
packets in flight was supposedly changed too.

Signed-off-by: Ilpo Järvinen &lt;ilpo.jarvinen@helsinki.fi&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[TCP]: congestion control API pass RTT in microseconds</title>
<updated>2007-07-31T09:27:57Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2007-07-26T06:49:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=30cfd0baf0a0c4329fff1ef4b622919297969ec8'/>
<id>urn:sha1:30cfd0baf0a0c4329fff1ef4b622919297969ec8</id>
<content type='text'>
This patch changes the API for the callback that is done after an ACK is
received. It solves a couple of issues:

  * Some congestion controls want higher resolution value of RTT
    (controlled by TCP_CONG_RTT_SAMPLE flag). These don't really want a ktime, but
    all compute a RTT in microseconds.

  * Other congestion control could use RTT at jiffies resolution.

To keep API consistent the units should be the same for both cases, just the
resolution should change.

Signed-off-by: Stephen Hemminger &lt;shemminger@linux-foundation.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
