diff options
author | Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> | 2008-09-21 00:18:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-09-21 00:18:55 -0400 |
commit | c8c213f20ce97c66fe2ff86f33814d1ca0f9d7ea (patch) | |
tree | d9334c8e095baf7d03629f633c62f886b3d06d84 /net/ipv4 | |
parent | 64edc2736e23994e0334b70c5ff08dc33e2ebbd9 (diff) |
tcp: move tcp_verify_retransmit_hint
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/tcp_input.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 7306bfb16cdb..9e95ad637db9 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -979,6 +979,19 @@ static void tcp_update_reordering(struct sock *sk, const int metric, | |||
979 | } | 979 | } |
980 | } | 980 | } |
981 | 981 | ||
982 | /* RFC: This is from the original, I doubt that this is necessary at all: | ||
983 | * clear xmit_retrans hint if seq of this skb is beyond hint. How could we | ||
984 | * retransmitted past LOST markings in the first place? I'm not fully sure | ||
985 | * about undo and end of connection cases, which can cause R without L? | ||
986 | */ | ||
987 | static void tcp_verify_retransmit_hint(struct tcp_sock *tp, struct sk_buff *skb) | ||
988 | { | ||
989 | if ((tp->retransmit_skb_hint != NULL) && | ||
990 | before(TCP_SKB_CB(skb)->seq, | ||
991 | TCP_SKB_CB(tp->retransmit_skb_hint)->seq)) | ||
992 | tp->retransmit_skb_hint = NULL; | ||
993 | } | ||
994 | |||
982 | /* This procedure tags the retransmission queue when SACKs arrive. | 995 | /* This procedure tags the retransmission queue when SACKs arrive. |
983 | * | 996 | * |
984 | * We have three tag bits: SACKED(S), RETRANS(R) and LOST(L). | 997 | * We have three tag bits: SACKED(S), RETRANS(R) and LOST(L). |
@@ -2156,19 +2169,6 @@ static int tcp_time_to_recover(struct sock *sk) | |||
2156 | return 0; | 2169 | return 0; |
2157 | } | 2170 | } |
2158 | 2171 | ||
2159 | /* RFC: This is from the original, I doubt that this is necessary at all: | ||
2160 | * clear xmit_retrans hint if seq of this skb is beyond hint. How could we | ||
2161 | * retransmitted past LOST markings in the first place? I'm not fully sure | ||
2162 | * about undo and end of connection cases, which can cause R without L? | ||
2163 | */ | ||
2164 | static void tcp_verify_retransmit_hint(struct tcp_sock *tp, struct sk_buff *skb) | ||
2165 | { | ||
2166 | if ((tp->retransmit_skb_hint != NULL) && | ||
2167 | before(TCP_SKB_CB(skb)->seq, | ||
2168 | TCP_SKB_CB(tp->retransmit_skb_hint)->seq)) | ||
2169 | tp->retransmit_skb_hint = NULL; | ||
2170 | } | ||
2171 | |||
2172 | /* Mark head of queue up as lost. With RFC3517 SACK, the packets is | 2172 | /* Mark head of queue up as lost. With RFC3517 SACK, the packets is |
2173 | * is against sacked "cnt", otherwise it's against facked "cnt" | 2173 | * is against sacked "cnt", otherwise it's against facked "cnt" |
2174 | */ | 2174 | */ |