aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>2007-12-31 17:57:14 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:00:25 -0500
commit056834d9f6f6eaf4cc7268569e53acab957aac27 (patch)
tree86d8ae96566cc004e2737b8a9975fcd3e651e923 /net/ipv4/tcp_output.c
parent058dc3342b71ffb3531c4f9df7c35f943f392b8d (diff)
[TCP]: cleanup tcp_{in,out}put.c style
These were manually selected from indent's results which as is are too noisy to be of any use without human reason. In addition, some extra newlines between function and its comment were removed too. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r--net/ipv4/tcp_output.c146
1 files changed, 73 insertions, 73 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 454cf84b6154..bb7e80a284e7 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -221,14 +221,14 @@ void tcp_select_initial_window(int __space, __u32 mss,
221 * following RFC2414. Senders, not following this RFC, 221 * following RFC2414. Senders, not following this RFC,
222 * will be satisfied with 2. 222 * will be satisfied with 2.
223 */ 223 */
224 if (mss > (1<<*rcv_wscale)) { 224 if (mss > (1 << *rcv_wscale)) {
225 int init_cwnd = 4; 225 int init_cwnd = 4;
226 if (mss > 1460*3) 226 if (mss > 1460 * 3)
227 init_cwnd = 2; 227 init_cwnd = 2;
228 else if (mss > 1460) 228 else if (mss > 1460)
229 init_cwnd = 3; 229 init_cwnd = 3;
230 if (*rcv_wnd > init_cwnd*mss) 230 if (*rcv_wnd > init_cwnd * mss)
231 *rcv_wnd = init_cwnd*mss; 231 *rcv_wnd = init_cwnd * mss;
232 } 232 }
233 233
234 /* Set the clamp no higher than max representable value */ 234 /* Set the clamp no higher than max representable value */
@@ -278,11 +278,10 @@ static u16 tcp_select_window(struct sock *sk)
278 return new_win; 278 return new_win;
279} 279}
280 280
281static inline void TCP_ECN_send_synack(struct tcp_sock *tp, 281static inline void TCP_ECN_send_synack(struct tcp_sock *tp, struct sk_buff *skb)
282 struct sk_buff *skb)
283{ 282{
284 TCP_SKB_CB(skb)->flags &= ~TCPCB_FLAG_CWR; 283 TCP_SKB_CB(skb)->flags &= ~TCPCB_FLAG_CWR;
285 if (!(tp->ecn_flags&TCP_ECN_OK)) 284 if (!(tp->ecn_flags & TCP_ECN_OK))
286 TCP_SKB_CB(skb)->flags &= ~TCPCB_FLAG_ECE; 285 TCP_SKB_CB(skb)->flags &= ~TCPCB_FLAG_ECE;
287} 286}
288 287
@@ -292,7 +291,7 @@ static inline void TCP_ECN_send_syn(struct sock *sk, struct sk_buff *skb)
292 291
293 tp->ecn_flags = 0; 292 tp->ecn_flags = 0;
294 if (sysctl_tcp_ecn) { 293 if (sysctl_tcp_ecn) {
295 TCP_SKB_CB(skb)->flags |= TCPCB_FLAG_ECE|TCPCB_FLAG_CWR; 294 TCP_SKB_CB(skb)->flags |= TCPCB_FLAG_ECE | TCPCB_FLAG_CWR;
296 tp->ecn_flags = TCP_ECN_OK; 295 tp->ecn_flags = TCP_ECN_OK;
297 } 296 }
298} 297}
@@ -314,7 +313,7 @@ static inline void TCP_ECN_send(struct sock *sk, struct sk_buff *skb,
314 if (skb->len != tcp_header_len && 313 if (skb->len != tcp_header_len &&
315 !before(TCP_SKB_CB(skb)->seq, tp->snd_nxt)) { 314 !before(TCP_SKB_CB(skb)->seq, tp->snd_nxt)) {
316 INET_ECN_xmit(sk); 315 INET_ECN_xmit(sk);
317 if (tp->ecn_flags&TCP_ECN_QUEUE_CWR) { 316 if (tp->ecn_flags & TCP_ECN_QUEUE_CWR) {
318 tp->ecn_flags &= ~TCP_ECN_QUEUE_CWR; 317 tp->ecn_flags &= ~TCP_ECN_QUEUE_CWR;
319 tcp_hdr(skb)->cwr = 1; 318 tcp_hdr(skb)->cwr = 1;
320 skb_shinfo(skb)->gso_type |= SKB_GSO_TCP_ECN; 319 skb_shinfo(skb)->gso_type |= SKB_GSO_TCP_ECN;
@@ -431,7 +430,7 @@ static void tcp_syn_build_options(__be32 *ptr, int mss, int ts, int sack,
431 (TCPOPT_NOP << 16) | 430 (TCPOPT_NOP << 16) |
432 (TCPOPT_MD5SIG << 8) | 431 (TCPOPT_MD5SIG << 8) |
433 TCPOLEN_MD5SIG); 432 TCPOLEN_MD5SIG);
434 *md5_hash = (__u8 *) ptr; 433 *md5_hash = (__u8 *)ptr;
435 } 434 }
436#endif 435#endif
437} 436}
@@ -447,7 +446,8 @@ static void tcp_syn_build_options(__be32 *ptr, int mss, int ts, int sack,
447 * We are working here with either a clone of the original 446 * We are working here with either a clone of the original
448 * SKB, or a fresh unique copy made by the retransmit engine. 447 * SKB, or a fresh unique copy made by the retransmit engine.
449 */ 448 */
450static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it, gfp_t gfp_mask) 449static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it,
450 gfp_t gfp_mask)
451{ 451{
452 const struct inet_connection_sock *icsk = inet_csk(sk); 452 const struct inet_connection_sock *icsk = inet_csk(sk);
453 struct inet_sock *inet; 453 struct inet_sock *inet;
@@ -551,8 +551,8 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it,
551 th->urg_ptr = 0; 551 th->urg_ptr = 0;
552 552
553 if (unlikely(tp->urg_mode && 553 if (unlikely(tp->urg_mode &&
554 between(tp->snd_up, tcb->seq+1, tcb->seq+0xFFFF))) { 554 between(tp->snd_up, tcb->seq + 1, tcb->seq + 0xFFFF))) {
555 th->urg_ptr = htons(tp->snd_up-tcb->seq); 555 th->urg_ptr = htons(tp->snd_up - tcb->seq);
556 th->urg = 1; 556 th->urg = 1;
557 } 557 }
558 558
@@ -616,7 +616,6 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it,
616#undef SYSCTL_FLAG_SACK 616#undef SYSCTL_FLAG_SACK
617} 617}
618 618
619
620/* This routine just queue's the buffer 619/* This routine just queue's the buffer
621 * 620 *
622 * NOTE: probe0 timer is not checked, do not forget tcp_push_pending_frames, 621 * NOTE: probe0 timer is not checked, do not forget tcp_push_pending_frames,
@@ -634,7 +633,8 @@ static void tcp_queue_skb(struct sock *sk, struct sk_buff *skb)
634 sk_mem_charge(sk, skb->truesize); 633 sk_mem_charge(sk, skb->truesize);
635} 634}
636 635
637static void tcp_set_skb_tso_segs(struct sock *sk, struct sk_buff *skb, unsigned int mss_now) 636static void tcp_set_skb_tso_segs(struct sock *sk, struct sk_buff *skb,
637 unsigned int mss_now)
638{ 638{
639 if (skb->len <= mss_now || !sk_can_gso(sk)) { 639 if (skb->len <= mss_now || !sk_can_gso(sk)) {
640 /* Avoid the costly divide in the normal 640 /* Avoid the costly divide in the normal
@@ -670,7 +670,8 @@ static void tcp_adjust_fackets_out(struct sock *sk, struct sk_buff *skb,
670 * packet to the list. This won't be called frequently, I hope. 670 * packet to the list. This won't be called frequently, I hope.
671 * Remember, these are still headerless SKBs at this point. 671 * Remember, these are still headerless SKBs at this point.
672 */ 672 */
673int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss_now) 673int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len,
674 unsigned int mss_now)
674{ 675{
675 struct tcp_sock *tp = tcp_sk(sk); 676 struct tcp_sock *tp = tcp_sk(sk);
676 struct sk_buff *buff; 677 struct sk_buff *buff;
@@ -708,13 +709,14 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
708 709
709 /* PSH and FIN should only be set in the second packet. */ 710 /* PSH and FIN should only be set in the second packet. */
710 flags = TCP_SKB_CB(skb)->flags; 711 flags = TCP_SKB_CB(skb)->flags;
711 TCP_SKB_CB(skb)->flags = flags & ~(TCPCB_FLAG_FIN|TCPCB_FLAG_PSH); 712 TCP_SKB_CB(skb)->flags = flags & ~(TCPCB_FLAG_FIN | TCPCB_FLAG_PSH);
712 TCP_SKB_CB(buff)->flags = flags; 713 TCP_SKB_CB(buff)->flags = flags;
713 TCP_SKB_CB(buff)->sacked = TCP_SKB_CB(skb)->sacked; 714 TCP_SKB_CB(buff)->sacked = TCP_SKB_CB(skb)->sacked;
714 715
715 if (!skb_shinfo(skb)->nr_frags && skb->ip_summed != CHECKSUM_PARTIAL) { 716 if (!skb_shinfo(skb)->nr_frags && skb->ip_summed != CHECKSUM_PARTIAL) {
716 /* Copy and checksum data tail into the new buffer. */ 717 /* Copy and checksum data tail into the new buffer. */
717 buff->csum = csum_partial_copy_nocheck(skb->data + len, skb_put(buff, nsize), 718 buff->csum = csum_partial_copy_nocheck(skb->data + len,
719 skb_put(buff, nsize),
718 nsize, 0); 720 nsize, 0);
719 721
720 skb_trim(skb, len); 722 skb_trim(skb, len);
@@ -781,7 +783,7 @@ static void __pskb_trim_head(struct sk_buff *skb, int len)
781 783
782 eat = len; 784 eat = len;
783 k = 0; 785 k = 0;
784 for (i=0; i<skb_shinfo(skb)->nr_frags; i++) { 786 for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
785 if (skb_shinfo(skb)->frags[i].size <= eat) { 787 if (skb_shinfo(skb)->frags[i].size <= eat) {
786 put_page(skb_shinfo(skb)->frags[i].page); 788 put_page(skb_shinfo(skb)->frags[i].page);
787 eat -= skb_shinfo(skb)->frags[i].size; 789 eat -= skb_shinfo(skb)->frags[i].size;
@@ -804,8 +806,7 @@ static void __pskb_trim_head(struct sk_buff *skb, int len)
804 806
805int tcp_trim_head(struct sock *sk, struct sk_buff *skb, u32 len) 807int tcp_trim_head(struct sock *sk, struct sk_buff *skb, u32 len)
806{ 808{
807 if (skb_cloned(skb) && 809 if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
808 pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
809 return -ENOMEM; 810 return -ENOMEM;
810 811
811 /* If len == headlen, we avoid __skb_pull to preserve alignment. */ 812 /* If len == headlen, we avoid __skb_pull to preserve alignment. */
@@ -909,7 +910,6 @@ void tcp_mtup_init(struct sock *sk)
909 NOTE2. inet_csk(sk)->icsk_pmtu_cookie and tp->mss_cache 910 NOTE2. inet_csk(sk)->icsk_pmtu_cookie and tp->mss_cache
910 are READ ONLY outside this function. --ANK (980731) 911 are READ ONLY outside this function. --ANK (980731)
911 */ 912 */
912
913unsigned int tcp_sync_mss(struct sock *sk, u32 pmtu) 913unsigned int tcp_sync_mss(struct sock *sk, u32 pmtu)
914{ 914{
915 struct tcp_sock *tp = tcp_sk(sk); 915 struct tcp_sock *tp = tcp_sk(sk);
@@ -922,8 +922,8 @@ unsigned int tcp_sync_mss(struct sock *sk, u32 pmtu)
922 mss_now = tcp_mtu_to_mss(sk, pmtu); 922 mss_now = tcp_mtu_to_mss(sk, pmtu);
923 923
924 /* Bound mss with half of window */ 924 /* Bound mss with half of window */
925 if (tp->max_window && mss_now > (tp->max_window>>1)) 925 if (tp->max_window && mss_now > (tp->max_window >> 1))
926 mss_now = max((tp->max_window>>1), 68U - tp->tcp_header_len); 926 mss_now = max((tp->max_window >> 1), 68U - tp->tcp_header_len);
927 927
928 /* And store cached results */ 928 /* And store cached results */
929 icsk->icsk_pmtu_cookie = pmtu; 929 icsk->icsk_pmtu_cookie = pmtu;
@@ -977,8 +977,7 @@ unsigned int tcp_current_mss(struct sock *sk, int large_allowed)
977 inet_csk(sk)->icsk_ext_hdr_len - 977 inet_csk(sk)->icsk_ext_hdr_len -
978 tp->tcp_header_len); 978 tp->tcp_header_len);
979 979
980 if (tp->max_window && 980 if (tp->max_window && (xmit_size_goal > (tp->max_window >> 1)))
981 (xmit_size_goal > (tp->max_window >> 1)))
982 xmit_size_goal = max((tp->max_window >> 1), 981 xmit_size_goal = max((tp->max_window >> 1),
983 68U - tp->tcp_header_len); 982 68U - tp->tcp_header_len);
984 983
@@ -990,7 +989,6 @@ unsigned int tcp_current_mss(struct sock *sk, int large_allowed)
990} 989}
991 990
992/* Congestion window validation. (RFC2861) */ 991/* Congestion window validation. (RFC2861) */
993
994static void tcp_cwnd_validate(struct sock *sk) 992static void tcp_cwnd_validate(struct sock *sk)
995{ 993{
996 struct tcp_sock *tp = tcp_sk(sk); 994 struct tcp_sock *tp = tcp_sk(sk);
@@ -1017,8 +1015,7 @@ static void tcp_cwnd_validate(struct sock *sk)
1017 * per input skb which could be mostly avoided here (if desired). 1015 * per input skb which could be mostly avoided here (if desired).
1018 */ 1016 */
1019static unsigned int tcp_mss_split_point(struct sock *sk, struct sk_buff *skb, 1017static unsigned int tcp_mss_split_point(struct sock *sk, struct sk_buff *skb,
1020 unsigned int mss_now, 1018 unsigned int mss_now, unsigned int cwnd)
1021 unsigned int cwnd)
1022{ 1019{
1023 struct tcp_sock *tp = tcp_sk(sk); 1020 struct tcp_sock *tp = tcp_sk(sk);
1024 u32 needed, window, cwnd_len; 1021 u32 needed, window, cwnd_len;
@@ -1039,7 +1036,8 @@ static unsigned int tcp_mss_split_point(struct sock *sk, struct sk_buff *skb,
1039/* Can at least one segment of SKB be sent right now, according to the 1036/* Can at least one segment of SKB be sent right now, according to the
1040 * congestion window rules? If so, return how many segments are allowed. 1037 * congestion window rules? If so, return how many segments are allowed.
1041 */ 1038 */
1042static inline unsigned int tcp_cwnd_test(struct tcp_sock *tp, struct sk_buff *skb) 1039static inline unsigned int tcp_cwnd_test(struct tcp_sock *tp,
1040 struct sk_buff *skb)
1043{ 1041{
1044 u32 in_flight, cwnd; 1042 u32 in_flight, cwnd;
1045 1043
@@ -1059,13 +1057,12 @@ static inline unsigned int tcp_cwnd_test(struct tcp_sock *tp, struct sk_buff *sk
1059/* This must be invoked the first time we consider transmitting 1057/* This must be invoked the first time we consider transmitting
1060 * SKB onto the wire. 1058 * SKB onto the wire.
1061 */ 1059 */
1062static int tcp_init_tso_segs(struct sock *sk, struct sk_buff *skb, unsigned int mss_now) 1060static int tcp_init_tso_segs(struct sock *sk, struct sk_buff *skb,
1061 unsigned int mss_now)
1063{ 1062{
1064 int tso_segs = tcp_skb_pcount(skb); 1063 int tso_segs = tcp_skb_pcount(skb);
1065 1064
1066 if (!tso_segs || 1065 if (!tso_segs || (tso_segs > 1 && tcp_skb_mss(skb) != mss_now)) {
1067 (tso_segs > 1 &&
1068 tcp_skb_mss(skb) != mss_now)) {
1069 tcp_set_skb_tso_segs(sk, skb, mss_now); 1066 tcp_set_skb_tso_segs(sk, skb, mss_now);
1070 tso_segs = tcp_skb_pcount(skb); 1067 tso_segs = tcp_skb_pcount(skb);
1071 } 1068 }
@@ -1085,16 +1082,13 @@ static inline int tcp_minshall_check(const struct tcp_sock *tp)
1085 * 4. Or TCP_CORK is not set, and all sent packets are ACKed. 1082 * 4. Or TCP_CORK is not set, and all sent packets are ACKed.
1086 * With Minshall's modification: all sent small packets are ACKed. 1083 * With Minshall's modification: all sent small packets are ACKed.
1087 */ 1084 */
1088
1089static inline int tcp_nagle_check(const struct tcp_sock *tp, 1085static inline int tcp_nagle_check(const struct tcp_sock *tp,
1090 const struct sk_buff *skb, 1086 const struct sk_buff *skb,
1091 unsigned mss_now, int nonagle) 1087 unsigned mss_now, int nonagle)
1092{ 1088{
1093 return (skb->len < mss_now && 1089 return (skb->len < mss_now &&
1094 ((nonagle&TCP_NAGLE_CORK) || 1090 ((nonagle & TCP_NAGLE_CORK) ||
1095 (!nonagle && 1091 (!nonagle && tp->packets_out && tcp_minshall_check(tp))));
1096 tp->packets_out &&
1097 tcp_minshall_check(tp))));
1098} 1092}
1099 1093
1100/* Return non-zero if the Nagle test allows this packet to be 1094/* Return non-zero if the Nagle test allows this packet to be
@@ -1126,7 +1120,8 @@ static inline int tcp_nagle_test(struct tcp_sock *tp, struct sk_buff *skb,
1126} 1120}
1127 1121
1128/* Does at least the first segment of SKB fit into the send window? */ 1122/* Does at least the first segment of SKB fit into the send window? */
1129static inline int tcp_snd_wnd_test(struct tcp_sock *tp, struct sk_buff *skb, unsigned int cur_mss) 1123static inline int tcp_snd_wnd_test(struct tcp_sock *tp, struct sk_buff *skb,
1124 unsigned int cur_mss)
1130{ 1125{
1131 u32 end_seq = TCP_SKB_CB(skb)->end_seq; 1126 u32 end_seq = TCP_SKB_CB(skb)->end_seq;
1132 1127
@@ -1152,8 +1147,7 @@ static unsigned int tcp_snd_test(struct sock *sk, struct sk_buff *skb,
1152 return 0; 1147 return 0;
1153 1148
1154 cwnd_quota = tcp_cwnd_test(tp, skb); 1149 cwnd_quota = tcp_cwnd_test(tp, skb);
1155 if (cwnd_quota && 1150 if (cwnd_quota && !tcp_snd_wnd_test(tp, skb, cur_mss))
1156 !tcp_snd_wnd_test(tp, skb, cur_mss))
1157 cwnd_quota = 0; 1151 cwnd_quota = 0;
1158 1152
1159 return cwnd_quota; 1153 return cwnd_quota;
@@ -1177,7 +1171,8 @@ int tcp_may_send_now(struct sock *sk)
1177 * know that all the data is in scatter-gather pages, and that the 1171 * know that all the data is in scatter-gather pages, and that the
1178 * packet has never been sent out before (and thus is not cloned). 1172 * packet has never been sent out before (and thus is not cloned).
1179 */ 1173 */
1180static int tso_fragment(struct sock *sk, struct sk_buff *skb, unsigned int len, unsigned int mss_now) 1174static int tso_fragment(struct sock *sk, struct sk_buff *skb, unsigned int len,
1175 unsigned int mss_now)
1181{ 1176{
1182 struct sk_buff *buff; 1177 struct sk_buff *buff;
1183 int nlen = skb->len - len; 1178 int nlen = skb->len - len;
@@ -1203,7 +1198,7 @@ static int tso_fragment(struct sock *sk, struct sk_buff *skb, unsigned int len,
1203 1198
1204 /* PSH and FIN should only be set in the second packet. */ 1199 /* PSH and FIN should only be set in the second packet. */
1205 flags = TCP_SKB_CB(skb)->flags; 1200 flags = TCP_SKB_CB(skb)->flags;
1206 TCP_SKB_CB(skb)->flags = flags & ~(TCPCB_FLAG_FIN|TCPCB_FLAG_PSH); 1201 TCP_SKB_CB(skb)->flags = flags & ~(TCPCB_FLAG_FIN | TCPCB_FLAG_PSH);
1207 TCP_SKB_CB(buff)->flags = flags; 1202 TCP_SKB_CB(buff)->flags = flags;
1208 1203
1209 /* This packet was never sent out yet, so no SACK bits. */ 1204 /* This packet was never sent out yet, so no SACK bits. */
@@ -1247,8 +1242,7 @@ static int tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb)
1247 1242
1248 in_flight = tcp_packets_in_flight(tp); 1243 in_flight = tcp_packets_in_flight(tp);
1249 1244
1250 BUG_ON(tcp_skb_pcount(skb) <= 1 || 1245 BUG_ON(tcp_skb_pcount(skb) <= 1 || (tp->snd_cwnd <= in_flight));
1251 (tp->snd_cwnd <= in_flight));
1252 1246
1253 send_win = tcp_wnd_end(tp) - TCP_SKB_CB(skb)->seq; 1247 send_win = tcp_wnd_end(tp) - TCP_SKB_CB(skb)->seq;
1254 1248
@@ -1281,7 +1275,7 @@ static int tcp_tso_should_defer(struct sock *sk, struct sk_buff *skb)
1281 } 1275 }
1282 1276
1283 /* Ok, it looks like it is advisable to defer. */ 1277 /* Ok, it looks like it is advisable to defer. */
1284 tp->tso_deferred = 1 | (jiffies<<1); 1278 tp->tso_deferred = 1 | (jiffies << 1);
1285 1279
1286 return 1; 1280 return 1;
1287 1281
@@ -1293,7 +1287,8 @@ send_now:
1293/* Create a new MTU probe if we are ready. 1287/* Create a new MTU probe if we are ready.
1294 * Returns 0 if we should wait to probe (no cwnd available), 1288 * Returns 0 if we should wait to probe (no cwnd available),
1295 * 1 if a probe was sent, 1289 * 1 if a probe was sent,
1296 * -1 otherwise */ 1290 * -1 otherwise
1291 */
1297static int tcp_mtu_probe(struct sock *sk) 1292static int tcp_mtu_probe(struct sock *sk)
1298{ 1293{
1299 struct tcp_sock *tp = tcp_sk(sk); 1294 struct tcp_sock *tp = tcp_sk(sk);
@@ -1318,7 +1313,7 @@ static int tcp_mtu_probe(struct sock *sk)
1318 1313
1319 /* Very simple search strategy: just double the MSS. */ 1314 /* Very simple search strategy: just double the MSS. */
1320 mss_now = tcp_current_mss(sk, 0); 1315 mss_now = tcp_current_mss(sk, 0);
1321 probe_size = 2*tp->mss_cache; 1316 probe_size = 2 * tp->mss_cache;
1322 size_needed = probe_size + (tp->reordering + 1) * tp->mss_cache; 1317 size_needed = probe_size + (tp->reordering + 1) * tp->mss_cache;
1323 if (probe_size > tcp_mtu_to_mss(sk, icsk->icsk_mtup.search_high)) { 1318 if (probe_size > tcp_mtu_to_mss(sk, icsk->icsk_mtup.search_high)) {
1324 /* TODO: set timer for probe_converge_event */ 1319 /* TODO: set timer for probe_converge_event */
@@ -1366,7 +1361,8 @@ static int tcp_mtu_probe(struct sock *sk)
1366 skb_copy_bits(skb, 0, skb_put(nskb, copy), copy); 1361 skb_copy_bits(skb, 0, skb_put(nskb, copy), copy);
1367 else 1362 else
1368 nskb->csum = skb_copy_and_csum_bits(skb, 0, 1363 nskb->csum = skb_copy_and_csum_bits(skb, 0,
1369 skb_put(nskb, copy), copy, nskb->csum); 1364 skb_put(nskb, copy),
1365 copy, nskb->csum);
1370 1366
1371 if (skb->len <= copy) { 1367 if (skb->len <= copy) {
1372 /* We've eaten all the data from this skb. 1368 /* We've eaten all the data from this skb.
@@ -1380,7 +1376,8 @@ static int tcp_mtu_probe(struct sock *sk)
1380 if (!skb_shinfo(skb)->nr_frags) { 1376 if (!skb_shinfo(skb)->nr_frags) {
1381 skb_pull(skb, copy); 1377 skb_pull(skb, copy);
1382 if (skb->ip_summed != CHECKSUM_PARTIAL) 1378 if (skb->ip_summed != CHECKSUM_PARTIAL)
1383 skb->csum = csum_partial(skb->data, skb->len, 0); 1379 skb->csum = csum_partial(skb->data,
1380 skb->len, 0);
1384 } else { 1381 } else {
1385 __pskb_trim_head(skb, copy); 1382 __pskb_trim_head(skb, copy);
1386 tcp_set_skb_tso_segs(sk, skb, mss_now); 1383 tcp_set_skb_tso_segs(sk, skb, mss_now);
@@ -1400,7 +1397,7 @@ static int tcp_mtu_probe(struct sock *sk)
1400 TCP_SKB_CB(nskb)->when = tcp_time_stamp; 1397 TCP_SKB_CB(nskb)->when = tcp_time_stamp;
1401 if (!tcp_transmit_skb(sk, nskb, 1, GFP_ATOMIC)) { 1398 if (!tcp_transmit_skb(sk, nskb, 1, GFP_ATOMIC)) {
1402 /* Decrement cwnd here because we are sending 1399 /* Decrement cwnd here because we are sending
1403 * effectively two packets. */ 1400 * effectively two packets. */
1404 tp->snd_cwnd--; 1401 tp->snd_cwnd--;
1405 tcp_event_new_data_sent(sk, nskb); 1402 tcp_event_new_data_sent(sk, nskb);
1406 1403
@@ -1414,7 +1411,6 @@ static int tcp_mtu_probe(struct sock *sk)
1414 return -1; 1411 return -1;
1415} 1412}
1416 1413
1417
1418/* This routine writes packets to the network. It advances the 1414/* This routine writes packets to the network. It advances the
1419 * send_head. This happens as incoming acks open up the remote 1415 * send_head. This happens as incoming acks open up the remote
1420 * window for us. 1416 * window for us.
@@ -1626,7 +1622,8 @@ u32 __tcp_select_window(struct sock *sk)
1626 icsk->icsk_ack.quick = 0; 1622 icsk->icsk_ack.quick = 0;
1627 1623
1628 if (tcp_memory_pressure) 1624 if (tcp_memory_pressure)
1629 tp->rcv_ssthresh = min(tp->rcv_ssthresh, 4U*tp->advmss); 1625 tp->rcv_ssthresh = min(tp->rcv_ssthresh,
1626 4U * tp->advmss);
1630 1627
1631 if (free_space < mss) 1628 if (free_space < mss)
1632 return 0; 1629 return 0;
@@ -1659,7 +1656,7 @@ u32 __tcp_select_window(struct sock *sk)
1659 * is too small. 1656 * is too small.
1660 */ 1657 */
1661 if (window <= free_space - mss || window > free_space) 1658 if (window <= free_space - mss || window > free_space)
1662 window = (free_space/mss)*mss; 1659 window = (free_space / mss) * mss;
1663 else if (mss == full_space && 1660 else if (mss == full_space &&
1664 free_space > window + (full_space >> 1)) 1661 free_space > window + (full_space >> 1))
1665 window = free_space; 1662 window = free_space;
@@ -1669,7 +1666,8 @@ u32 __tcp_select_window(struct sock *sk)
1669} 1666}
1670 1667
1671/* Attempt to collapse two adjacent SKB's during retransmission. */ 1668/* Attempt to collapse two adjacent SKB's during retransmission. */
1672static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *skb, int mss_now) 1669static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *skb,
1670 int mss_now)
1673{ 1671{
1674 struct tcp_sock *tp = tcp_sk(sk); 1672 struct tcp_sock *tp = tcp_sk(sk);
1675 struct sk_buff *next_skb = tcp_write_queue_next(sk, skb); 1673 struct sk_buff *next_skb = tcp_write_queue_next(sk, skb);
@@ -1762,12 +1760,12 @@ void tcp_simple_retransmit(struct sock *sk)
1762 if (skb == tcp_send_head(sk)) 1760 if (skb == tcp_send_head(sk))
1763 break; 1761 break;
1764 if (skb->len > mss && 1762 if (skb->len > mss &&
1765 !(TCP_SKB_CB(skb)->sacked&TCPCB_SACKED_ACKED)) { 1763 !(TCP_SKB_CB(skb)->sacked & TCPCB_SACKED_ACKED)) {
1766 if (TCP_SKB_CB(skb)->sacked&TCPCB_SACKED_RETRANS) { 1764 if (TCP_SKB_CB(skb)->sacked & TCPCB_SACKED_RETRANS) {
1767 TCP_SKB_CB(skb)->sacked &= ~TCPCB_SACKED_RETRANS; 1765 TCP_SKB_CB(skb)->sacked &= ~TCPCB_SACKED_RETRANS;
1768 tp->retrans_out -= tcp_skb_pcount(skb); 1766 tp->retrans_out -= tcp_skb_pcount(skb);
1769 } 1767 }
1770 if (!(TCP_SKB_CB(skb)->sacked&TCPCB_LOST)) { 1768 if (!(TCP_SKB_CB(skb)->sacked & TCPCB_LOST)) {
1771 TCP_SKB_CB(skb)->sacked |= TCPCB_LOST; 1769 TCP_SKB_CB(skb)->sacked |= TCPCB_LOST;
1772 tp->lost_out += tcp_skb_pcount(skb); 1770 tp->lost_out += tcp_skb_pcount(skb);
1773 lost = 1; 1771 lost = 1;
@@ -1846,8 +1844,10 @@ int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb)
1846 (skb->len < (cur_mss >> 1)) && 1844 (skb->len < (cur_mss >> 1)) &&
1847 (tcp_write_queue_next(sk, skb) != tcp_send_head(sk)) && 1845 (tcp_write_queue_next(sk, skb) != tcp_send_head(sk)) &&
1848 (!tcp_skb_is_last(sk, skb)) && 1846 (!tcp_skb_is_last(sk, skb)) &&
1849 (skb_shinfo(skb)->nr_frags == 0 && skb_shinfo(tcp_write_queue_next(sk, skb))->nr_frags == 0) && 1847 (skb_shinfo(skb)->nr_frags == 0 &&
1850 (tcp_skb_pcount(skb) == 1 && tcp_skb_pcount(tcp_write_queue_next(sk, skb)) == 1) && 1848 skb_shinfo(tcp_write_queue_next(sk, skb))->nr_frags == 0) &&
1849 (tcp_skb_pcount(skb) == 1 &&
1850 tcp_skb_pcount(tcp_write_queue_next(sk, skb)) == 1) &&
1851 (sysctl_tcp_retrans_collapse != 0)) 1851 (sysctl_tcp_retrans_collapse != 0))
1852 tcp_retrans_try_collapse(sk, skb, cur_mss); 1852 tcp_retrans_try_collapse(sk, skb, cur_mss);
1853 1853
@@ -1885,7 +1885,7 @@ int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb)
1885 tp->total_retrans++; 1885 tp->total_retrans++;
1886 1886
1887#if FASTRETRANS_DEBUG > 0 1887#if FASTRETRANS_DEBUG > 0
1888 if (TCP_SKB_CB(skb)->sacked&TCPCB_SACKED_RETRANS) { 1888 if (TCP_SKB_CB(skb)->sacked & TCPCB_SACKED_RETRANS) {
1889 if (net_ratelimit()) 1889 if (net_ratelimit())
1890 printk(KERN_DEBUG "retrans_out leaked.\n"); 1890 printk(KERN_DEBUG "retrans_out leaked.\n");
1891 } 1891 }
@@ -1927,7 +1927,7 @@ void tcp_xmit_retransmit_queue(struct sock *sk)
1927 if (tp->retransmit_skb_hint) { 1927 if (tp->retransmit_skb_hint) {
1928 skb = tp->retransmit_skb_hint; 1928 skb = tp->retransmit_skb_hint;
1929 packet_cnt = tp->retransmit_cnt_hint; 1929 packet_cnt = tp->retransmit_cnt_hint;
1930 }else{ 1930 } else {
1931 skb = tcp_write_queue_head(sk); 1931 skb = tcp_write_queue_head(sk);
1932 packet_cnt = 0; 1932 packet_cnt = 0;
1933 } 1933 }
@@ -1954,7 +1954,7 @@ void tcp_xmit_retransmit_queue(struct sock *sk)
1954 return; 1954 return;
1955 1955
1956 if (sacked & TCPCB_LOST) { 1956 if (sacked & TCPCB_LOST) {
1957 if (!(sacked&(TCPCB_SACKED_ACKED|TCPCB_SACKED_RETRANS))) { 1957 if (!(sacked & (TCPCB_SACKED_ACKED|TCPCB_SACKED_RETRANS))) {
1958 if (tcp_retransmit_skb(sk, skb)) { 1958 if (tcp_retransmit_skb(sk, skb)) {
1959 tp->retransmit_skb_hint = NULL; 1959 tp->retransmit_skb_hint = NULL;
1960 return; 1960 return;
@@ -2036,7 +2036,6 @@ void tcp_xmit_retransmit_queue(struct sock *sk)
2036 } 2036 }
2037} 2037}
2038 2038
2039
2040/* Send a fin. The caller locks the socket for us. This cannot be 2039/* Send a fin. The caller locks the socket for us. This cannot be
2041 * allowed to fail queueing a FIN frame under any circumstances. 2040 * allowed to fail queueing a FIN frame under any circumstances.
2042 */ 2041 */
@@ -2122,14 +2121,14 @@ void tcp_send_active_reset(struct sock *sk, gfp_t priority)
2122 */ 2121 */
2123int tcp_send_synack(struct sock *sk) 2122int tcp_send_synack(struct sock *sk)
2124{ 2123{
2125 struct sk_buff* skb; 2124 struct sk_buff *skb;
2126 2125
2127 skb = tcp_write_queue_head(sk); 2126 skb = tcp_write_queue_head(sk);
2128 if (skb == NULL || !(TCP_SKB_CB(skb)->flags&TCPCB_FLAG_SYN)) { 2127 if (skb == NULL || !(TCP_SKB_CB(skb)->flags & TCPCB_FLAG_SYN)) {
2129 printk(KERN_DEBUG "tcp_send_synack: wrong queue state\n"); 2128 printk(KERN_DEBUG "tcp_send_synack: wrong queue state\n");
2130 return -EFAULT; 2129 return -EFAULT;
2131 } 2130 }
2132 if (!(TCP_SKB_CB(skb)->flags&TCPCB_FLAG_ACK)) { 2131 if (!(TCP_SKB_CB(skb)->flags & TCPCB_FLAG_ACK)) {
2133 if (skb_cloned(skb)) { 2132 if (skb_cloned(skb)) {
2134 struct sk_buff *nskb = skb_copy(skb, GFP_ATOMIC); 2133 struct sk_buff *nskb = skb_copy(skb, GFP_ATOMIC);
2135 if (nskb == NULL) 2134 if (nskb == NULL)
@@ -2153,8 +2152,8 @@ int tcp_send_synack(struct sock *sk)
2153/* 2152/*
2154 * Prepare a SYN-ACK. 2153 * Prepare a SYN-ACK.
2155 */ 2154 */
2156struct sk_buff * tcp_make_synack(struct sock *sk, struct dst_entry *dst, 2155struct sk_buff *tcp_make_synack(struct sock *sk, struct dst_entry *dst,
2157 struct request_sock *req) 2156 struct request_sock *req)
2158{ 2157{
2159 struct inet_request_sock *ireq = inet_rsk(req); 2158 struct inet_request_sock *ireq = inet_rsk(req);
2160 struct tcp_sock *tp = tcp_sk(sk); 2159 struct tcp_sock *tp = tcp_sk(sk);
@@ -2372,9 +2371,10 @@ void tcp_send_delayed_ack(struct sock *sk)
2372 2371
2373 if (ato > TCP_DELACK_MIN) { 2372 if (ato > TCP_DELACK_MIN) {
2374 const struct tcp_sock *tp = tcp_sk(sk); 2373 const struct tcp_sock *tp = tcp_sk(sk);
2375 int max_ato = HZ/2; 2374 int max_ato = HZ / 2;
2376 2375
2377 if (icsk->icsk_ack.pingpong || (icsk->icsk_ack.pending & ICSK_ACK_PUSHED)) 2376 if (icsk->icsk_ack.pingpong ||
2377 (icsk->icsk_ack.pending & ICSK_ACK_PUSHED))
2378 max_ato = TCP_DELACK_MAX; 2378 max_ato = TCP_DELACK_MAX;
2379 2379
2380 /* Slow path, intersegment interval is "high". */ 2380 /* Slow path, intersegment interval is "high". */
@@ -2384,7 +2384,7 @@ void tcp_send_delayed_ack(struct sock *sk)
2384 * directly. 2384 * directly.
2385 */ 2385 */
2386 if (tp->srtt) { 2386 if (tp->srtt) {
2387 int rtt = max(tp->srtt>>3, TCP_DELACK_MIN); 2387 int rtt = max(tp->srtt >> 3, TCP_DELACK_MIN);
2388 2388
2389 if (rtt < max_ato) 2389 if (rtt < max_ato)
2390 max_ato = rtt; 2390 max_ato = rtt;