From: Stephen Rothwell <sfr@canb.auug.org.au>
To: David Miller <davem@davemloft.net>, netdev@vger.kernel.org
Cc: linux-next@vger.kernel.org, linux-kernel@vger.kernel.org,
Eric Dumazet <edumazet@google.com>,
Nandita Dukkipati <nanditad@google.com>
Subject: linux-next: manual merge of the net-next tree with Linus' tree
Date: Mon, 22 Apr 2013 13:03:24 +1000 [thread overview]
Message-ID: <20130422130324.43b4521c6b4719ed7a96ef00@canb.auug.org.au> (raw)
[-- Attachment #1: Type: text/plain, Size: 3378 bytes --]
Hi all,
Today's linux-next merge of the net-next tree got a conflict in
net/ipv4/tcp_input.c between commit 12fb3dd9dc3c ("tcp: call
tcp_replace_ts_recent() from tcp_ack()") from Linus' tree and commit
9b717a8d2450 ("tcp: TLP loss detection") from the net-next tree.
I fixed it up (see below) and can carry the fix as necessary (no action
is required).
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc net/ipv4/tcp_input.c
index 13b9c08,6d9ca35..0000000
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@@ -108,12 -107,10 +107,11 @@@ int sysctl_tcp_early_retrans __read_mos
#define FLAG_DATA_SACKED 0x20 /* New SACK. */
#define FLAG_ECE 0x40 /* ECE in this ACK */
#define FLAG_SLOWPATH 0x100 /* Do not skip RFC checks for window update.*/
- #define FLAG_ONLY_ORIG_SACKED 0x200 /* SACKs only non-rexmit sent before RTO */
+ #define FLAG_ORIG_SACK_ACKED 0x200 /* Never retransmitted data are (s)acked */
#define FLAG_SND_UNA_ADVANCED 0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */
#define FLAG_DSACKING_ACK 0x800 /* SACK blocks contained D-SACK info */
- #define FLAG_NONHEAD_RETRANS_ACKED 0x1000 /* Non-head rexmitted data was ACKed */
#define FLAG_SACK_RENEGING 0x2000 /* snd_una advanced to a sacked seq */
+#define FLAG_UPDATE_TS_RECENT 0x4000 /* tcp_replace_ts_recent() */
#define FLAG_ACKED (FLAG_DATA_ACKED|FLAG_SYN_ACKED)
#define FLAG_NOT_DUP (FLAG_DATA|FLAG_WIN_UPDATE|FLAG_ACKED)
@@@ -3565,27 -3265,38 +3266,59 @@@ static void tcp_send_challenge_ack(stru
}
}
+static void tcp_store_ts_recent(struct tcp_sock *tp)
+{
+ tp->rx_opt.ts_recent = tp->rx_opt.rcv_tsval;
+ tp->rx_opt.ts_recent_stamp = get_seconds();
+}
+
+static void tcp_replace_ts_recent(struct tcp_sock *tp, u32 seq)
+{
+ if (tp->rx_opt.saw_tstamp && !after(seq, tp->rcv_wup)) {
+ /* PAWS bug workaround wrt. ACK frames, the PAWS discard
+ * extra check below makes sure this can only happen
+ * for pure ACK frames. -DaveM
+ *
+ * Not only, also it occurs for expired timestamps.
+ */
+
+ if (tcp_paws_check(&tp->rx_opt, 0))
+ tcp_store_ts_recent(tp);
+ }
+}
+
+ /* This routine deals with acks during a TLP episode.
+ * Ref: loss detection algorithm in draft-dukkipati-tcpm-tcp-loss-probe.
+ */
+ static void tcp_process_tlp_ack(struct sock *sk, u32 ack, int flag)
+ {
+ struct tcp_sock *tp = tcp_sk(sk);
+ bool is_tlp_dupack = (ack == tp->tlp_high_seq) &&
+ !(flag & (FLAG_SND_UNA_ADVANCED |
+ FLAG_NOT_DUP | FLAG_DATA_SACKED));
+
+ /* Mark the end of TLP episode on receiving TLP dupack or when
+ * ack is after tlp_high_seq.
+ */
+ if (is_tlp_dupack) {
+ tp->tlp_high_seq = 0;
+ return;
+ }
+
+ if (after(ack, tp->tlp_high_seq)) {
+ tp->tlp_high_seq = 0;
+ /* Don't reduce cwnd if DSACK arrives for TLP retrans. */
+ if (!(flag & FLAG_DSACKING_ACK)) {
+ tcp_init_cwnd_reduction(sk, true);
+ tcp_set_ca_state(sk, TCP_CA_CWR);
+ tcp_end_cwnd_reduction(sk);
+ tcp_set_ca_state(sk, TCP_CA_Open);
+ NET_INC_STATS_BH(sock_net(sk),
+ LINUX_MIB_TCPLOSSPROBERECOVERY);
+ }
+ }
+ }
+
/* This routine deals with incoming acks, but not outgoing ones. */
static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
{
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next reply other threads:[~2013-04-22 3:03 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-22 3:03 Stephen Rothwell [this message]
2013-04-23 0:41 ` linux-next: manual merge of the net-next tree with Linus' tree David Miller
-- strict thread matches above, loose matches on Subject: below --
2023-12-14 23:52 Stephen Rothwell
2023-02-16 23:40 Stephen Rothwell
2023-02-16 23:18 Stephen Rothwell
2022-10-27 23:28 Stephen Rothwell
2022-10-28 6:53 ` Marc Kleine-Budde
2022-09-21 1:00 Stephen Rothwell
2022-09-21 4:40 ` Colin Foster
2022-07-15 2:01 Stephen Rothwell
2022-07-15 1:48 Stephen Rothwell
2021-07-23 2:32 Stephen Rothwell
2021-01-29 0:59 Stephen Rothwell
2021-01-29 0:48 Stephen Rothwell
2021-01-29 0:43 Stephen Rothwell
2019-10-21 0:07 Stephen Rothwell
2019-09-15 20:31 Mark Brown
2019-09-15 20:24 Mark Brown
2019-06-17 1:44 Stephen Rothwell
2019-06-04 0:30 Stephen Rothwell
2019-06-04 0:29 Stephen Rothwell
2019-04-02 22:56 Stephen Rothwell
2018-07-20 1:49 Stephen Rothwell
2018-06-06 4:37 Stephen Rothwell
2017-12-04 22:59 Stephen Rothwell
2017-11-09 23:31 Stephen Rothwell
2017-11-10 4:37 ` Cong Wang
2017-11-10 4:39 ` David Miller
2017-10-30 17:24 Mark Brown
2017-10-30 17:08 Mark Brown
2017-10-30 17:02 Mark Brown
2017-10-30 17:43 ` Jakub Kicinski
2017-10-30 18:10 ` Mark Brown
2017-06-30 0:57 Stephen Rothwell
2017-05-03 1:07 Stephen Rothwell
2017-05-03 4:08 ` David Miller
2017-03-24 0:05 Stephen Rothwell
2017-03-24 0:10 ` David Miller
2017-03-24 1:24 ` Alexei Starovoitov
2017-02-02 1:49 Stephen Rothwell
2017-02-02 8:40 ` Yotam Gigi
2016-10-02 22:37 Stephen Rothwell
2016-10-02 22:32 Stephen Rothwell
2016-06-30 1:01 Stephen Rothwell
2016-05-03 3:15 Stephen Rothwell
2016-03-15 0:07 Stephen Rothwell
2016-03-15 8:53 ` Gregory CLEMENT
2015-07-14 1:46 Stephen Rothwell
2015-07-14 8:23 ` Nikolay Aleksandrov
2015-05-28 4:17 Stephen Rothwell
2015-05-28 13:34 ` Tom Lendacky
2015-02-12 1:05 Stephen Rothwell
2014-06-12 2:01 Stephen Rothwell
2014-06-05 3:13 Stephen Rothwell
2014-06-05 3:26 ` KY Srinivasan
2013-12-18 1:46 Stephen Rothwell
2013-12-18 1:56 ` Jeff Kirsher
2013-12-18 2:19 ` Stephen Rothwell
2013-09-05 5:23 Stephen Rothwell
2013-09-05 5:19 Stephen Rothwell
2013-09-05 7:33 ` Daniel Borkmann
2013-09-02 3:12 Stephen Rothwell
2013-06-17 2:44 Stephen Rothwell
2013-06-17 2:38 Stephen Rothwell
2013-04-22 3:09 Stephen Rothwell
2013-04-23 0:42 ` David Miller
2013-04-22 2:48 Stephen Rothwell
2013-04-22 2:43 Stephen Rothwell
2013-04-23 0:41 ` David Miller
2013-03-27 0:57 Stephen Rothwell
2013-03-27 4:54 ` David Miller
2013-03-12 0:33 Stephen Rothwell
2013-03-12 10:49 ` David Miller
2012-11-08 23:53 Stephen Rothwell
2012-11-10 23:34 ` David Miller
2012-10-02 1:51 Stephen Rothwell
2012-09-26 1:46 Stephen Rothwell
2012-07-19 1:15 Stephen Rothwell
2012-07-19 1:18 ` Jeff Kirsher
2012-02-27 1:11 Stephen Rothwell
2012-02-27 4:05 ` David Miller
2012-02-29 3:21 ` Ben Hutchings
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130422130324.43b4521c6b4719ed7a96ef00@canb.auug.org.au \
--to=sfr@canb.auug.org.au \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=nanditad@google.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).