diff options
author | Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> | 2008-09-21 00:20:20 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-09-21 00:20:20 -0400 |
commit | 006f582c73f4eda35e06fd323193c3df43fb3459 (patch) | |
tree | d82762cfb6fb5e6889a52d316fa263a80c4f9fb3 /include | |
parent | 41ea36e35a0daa75377b3e70680e5c3a3f83fe27 (diff) |
tcp: convert retransmit_cnt_hint to seqno
Main benefit in this is that we can then freely point
the retransmit_skb_hint to anywhere we want to because
there's no longer need to know what would be the count
changes involve, and since this is really used only as a
terminator, unnecessary work is one time walk at most,
and if some retransmissions are necessary after that
point later on, the walk is not full waste of time
anyway.
Since retransmit_high must be kept valid, all lost
markers must ensure that.
Now I also have learned how those "holes" in the
rexmittable skbs can appear, mtu probe does them. So
I removed the misleading comment as well.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/tcp.h | 2 | ||||
-rw-r--r-- | include/net/tcp.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 2e2557388e36..d7637c4b2840 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
@@ -358,7 +358,7 @@ struct tcp_sock { | |||
358 | */ | 358 | */ |
359 | 359 | ||
360 | int lost_cnt_hint; | 360 | int lost_cnt_hint; |
361 | int retransmit_cnt_hint; | 361 | u32 retransmit_high; /* L-bits may be on up to this seqno */ |
362 | 362 | ||
363 | u32 lost_retrans_low; /* Sent seq after any rxmit (lowest) */ | 363 | u32 lost_retrans_low; /* Sent seq after any rxmit (lowest) */ |
364 | 364 | ||
diff --git a/include/net/tcp.h b/include/net/tcp.h index b71676326950..d0e90c50722b 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -472,6 +472,8 @@ extern void tcp_send_delayed_ack(struct sock *sk); | |||
472 | 472 | ||
473 | /* tcp_input.c */ | 473 | /* tcp_input.c */ |
474 | extern void tcp_cwnd_application_limited(struct sock *sk); | 474 | extern void tcp_cwnd_application_limited(struct sock *sk); |
475 | extern void tcp_skb_mark_lost_uncond_verify(struct tcp_sock *tp, | ||
476 | struct sk_buff *skb); | ||
475 | 477 | ||
476 | /* tcp_timer.c */ | 478 | /* tcp_timer.c */ |
477 | extern void tcp_init_xmit_timers(struct sock *); | 479 | extern void tcp_init_xmit_timers(struct sock *); |