diff options
-rw-r--r-- | net/ipv4/tcp_hybla.c | 2 | ||||
-rw-r--r-- | net/ipv4/tcp_input.c | 57 | ||||
-rw-r--r-- | net/ipv4/tcp_minisocks.c | 6 | ||||
-rw-r--r-- | net/ipv4/tcp_output.c | 34 | ||||
-rw-r--r-- | net/ipv4/tcp_westwood.c | 2 |
5 files changed, 51 insertions, 50 deletions
diff --git a/net/ipv4/tcp_hybla.c b/net/ipv4/tcp_hybla.c index 59e691d26f64..e5be35117223 100644 --- a/net/ipv4/tcp_hybla.c +++ b/net/ipv4/tcp_hybla.c | |||
@@ -144,7 +144,7 @@ static void hybla_cong_avoid(struct sock *sk, u32 ack, u32 rtt, | |||
144 | ca->snd_cwnd_cents += odd; | 144 | ca->snd_cwnd_cents += odd; |
145 | 145 | ||
146 | /* check when fractions goes >=128 and increase cwnd by 1. */ | 146 | /* check when fractions goes >=128 and increase cwnd by 1. */ |
147 | while(ca->snd_cwnd_cents >= 128) { | 147 | while (ca->snd_cwnd_cents >= 128) { |
148 | tp->snd_cwnd++; | 148 | tp->snd_cwnd++; |
149 | ca->snd_cwnd_cents -= 128; | 149 | ca->snd_cwnd_cents -= 128; |
150 | tp->snd_cwnd_cnt = 0; | 150 | tp->snd_cwnd_cnt = 0; |
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 22d0bb03c5da..fb0256085948 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -578,7 +578,7 @@ static void tcp_rtt_estimator(struct sock *sk, const __u32 mrtt) | |||
578 | * does not matter how to _calculate_ it. Seems, it was trap | 578 | * does not matter how to _calculate_ it. Seems, it was trap |
579 | * that VJ failed to avoid. 8) | 579 | * that VJ failed to avoid. 8) |
580 | */ | 580 | */ |
581 | if(m == 0) | 581 | if (m == 0) |
582 | m = 1; | 582 | m = 1; |
583 | if (tp->srtt != 0) { | 583 | if (tp->srtt != 0) { |
584 | m -= (tp->srtt >> 3); /* m is now error in rtt est */ | 584 | m -= (tp->srtt >> 3); /* m is now error in rtt est */ |
@@ -1758,12 +1758,11 @@ static void tcp_mark_head_lost(struct sock *sk, struct tcp_sock *tp, | |||
1758 | 1758 | ||
1759 | /* clear xmit_retransmit_queue hints | 1759 | /* clear xmit_retransmit_queue hints |
1760 | * if this is beyond hint */ | 1760 | * if this is beyond hint */ |
1761 | if(tp->retransmit_skb_hint != NULL && | 1761 | if (tp->retransmit_skb_hint != NULL && |
1762 | before(TCP_SKB_CB(skb)->seq, | 1762 | before(TCP_SKB_CB(skb)->seq, |
1763 | TCP_SKB_CB(tp->retransmit_skb_hint)->seq)) { | 1763 | TCP_SKB_CB(tp->retransmit_skb_hint)->seq)) |
1764 | |||
1765 | tp->retransmit_skb_hint = NULL; | 1764 | tp->retransmit_skb_hint = NULL; |
1766 | } | 1765 | |
1767 | } | 1766 | } |
1768 | } | 1767 | } |
1769 | tcp_sync_left_out(tp); | 1768 | tcp_sync_left_out(tp); |
@@ -2441,7 +2440,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, __s32 *seq_rtt_p) | |||
2441 | 2440 | ||
2442 | if (sacked) { | 2441 | if (sacked) { |
2443 | if (sacked & TCPCB_RETRANS) { | 2442 | if (sacked & TCPCB_RETRANS) { |
2444 | if(sacked & TCPCB_SACKED_RETRANS) | 2443 | if (sacked & TCPCB_SACKED_RETRANS) |
2445 | tp->retrans_out -= tcp_skb_pcount(skb); | 2444 | tp->retrans_out -= tcp_skb_pcount(skb); |
2446 | acked |= FLAG_RETRANS_DATA_ACKED; | 2445 | acked |= FLAG_RETRANS_DATA_ACKED; |
2447 | seq_rtt = -1; | 2446 | seq_rtt = -1; |
@@ -2840,7 +2839,7 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, | |||
2840 | ptr = (unsigned char *)(th + 1); | 2839 | ptr = (unsigned char *)(th + 1); |
2841 | opt_rx->saw_tstamp = 0; | 2840 | opt_rx->saw_tstamp = 0; |
2842 | 2841 | ||
2843 | while(length>0) { | 2842 | while (length > 0) { |
2844 | int opcode=*ptr++; | 2843 | int opcode=*ptr++; |
2845 | int opsize; | 2844 | int opsize; |
2846 | 2845 | ||
@@ -2856,9 +2855,9 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, | |||
2856 | return; | 2855 | return; |
2857 | if (opsize > length) | 2856 | if (opsize > length) |
2858 | return; /* don't parse partial options */ | 2857 | return; /* don't parse partial options */ |
2859 | switch(opcode) { | 2858 | switch (opcode) { |
2860 | case TCPOPT_MSS: | 2859 | case TCPOPT_MSS: |
2861 | if(opsize==TCPOLEN_MSS && th->syn && !estab) { | 2860 | if (opsize==TCPOLEN_MSS && th->syn && !estab) { |
2862 | u16 in_mss = ntohs(get_unaligned((__be16 *)ptr)); | 2861 | u16 in_mss = ntohs(get_unaligned((__be16 *)ptr)); |
2863 | if (in_mss) { | 2862 | if (in_mss) { |
2864 | if (opt_rx->user_mss && opt_rx->user_mss < in_mss) | 2863 | if (opt_rx->user_mss && opt_rx->user_mss < in_mss) |
@@ -2868,12 +2867,12 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, | |||
2868 | } | 2867 | } |
2869 | break; | 2868 | break; |
2870 | case TCPOPT_WINDOW: | 2869 | case TCPOPT_WINDOW: |
2871 | if(opsize==TCPOLEN_WINDOW && th->syn && !estab) | 2870 | if (opsize==TCPOLEN_WINDOW && th->syn && !estab) |
2872 | if (sysctl_tcp_window_scaling) { | 2871 | if (sysctl_tcp_window_scaling) { |
2873 | __u8 snd_wscale = *(__u8 *) ptr; | 2872 | __u8 snd_wscale = *(__u8 *) ptr; |
2874 | opt_rx->wscale_ok = 1; | 2873 | opt_rx->wscale_ok = 1; |
2875 | if (snd_wscale > 14) { | 2874 | if (snd_wscale > 14) { |
2876 | if(net_ratelimit()) | 2875 | if (net_ratelimit()) |
2877 | printk(KERN_INFO "tcp_parse_options: Illegal window " | 2876 | printk(KERN_INFO "tcp_parse_options: Illegal window " |
2878 | "scaling value %d >14 received.\n", | 2877 | "scaling value %d >14 received.\n", |
2879 | snd_wscale); | 2878 | snd_wscale); |
@@ -2883,7 +2882,7 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, | |||
2883 | } | 2882 | } |
2884 | break; | 2883 | break; |
2885 | case TCPOPT_TIMESTAMP: | 2884 | case TCPOPT_TIMESTAMP: |
2886 | if(opsize==TCPOLEN_TIMESTAMP) { | 2885 | if (opsize==TCPOLEN_TIMESTAMP) { |
2887 | if ((estab && opt_rx->tstamp_ok) || | 2886 | if ((estab && opt_rx->tstamp_ok) || |
2888 | (!estab && sysctl_tcp_timestamps)) { | 2887 | (!estab && sysctl_tcp_timestamps)) { |
2889 | opt_rx->saw_tstamp = 1; | 2888 | opt_rx->saw_tstamp = 1; |
@@ -2893,7 +2892,7 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, | |||
2893 | } | 2892 | } |
2894 | break; | 2893 | break; |
2895 | case TCPOPT_SACK_PERM: | 2894 | case TCPOPT_SACK_PERM: |
2896 | if(opsize==TCPOLEN_SACK_PERM && th->syn && !estab) { | 2895 | if (opsize==TCPOLEN_SACK_PERM && th->syn && !estab) { |
2897 | if (sysctl_tcp_sack) { | 2896 | if (sysctl_tcp_sack) { |
2898 | opt_rx->sack_ok = 1; | 2897 | opt_rx->sack_ok = 1; |
2899 | tcp_sack_reset(opt_rx); | 2898 | tcp_sack_reset(opt_rx); |
@@ -2902,7 +2901,7 @@ void tcp_parse_options(struct sk_buff *skb, struct tcp_options_received *opt_rx, | |||
2902 | break; | 2901 | break; |
2903 | 2902 | ||
2904 | case TCPOPT_SACK: | 2903 | case TCPOPT_SACK: |
2905 | if((opsize >= (TCPOLEN_SACK_BASE + TCPOLEN_SACK_PERBLOCK)) && | 2904 | if ((opsize >= (TCPOLEN_SACK_BASE + TCPOLEN_SACK_PERBLOCK)) && |
2906 | !((opsize - TCPOLEN_SACK_BASE) % TCPOLEN_SACK_PERBLOCK) && | 2905 | !((opsize - TCPOLEN_SACK_BASE) % TCPOLEN_SACK_PERBLOCK) && |
2907 | opt_rx->sack_ok) { | 2906 | opt_rx->sack_ok) { |
2908 | TCP_SKB_CB(skb)->sacked = (ptr - 2) - (unsigned char *)th; | 2907 | TCP_SKB_CB(skb)->sacked = (ptr - 2) - (unsigned char *)th; |
@@ -2964,7 +2963,7 @@ static inline void tcp_replace_ts_recent(struct tcp_sock *tp, u32 seq) | |||
2964 | * Not only, also it occurs for expired timestamps. | 2963 | * Not only, also it occurs for expired timestamps. |
2965 | */ | 2964 | */ |
2966 | 2965 | ||
2967 | if((s32)(tp->rx_opt.rcv_tsval - tp->rx_opt.ts_recent) >= 0 || | 2966 | if ((s32)(tp->rx_opt.rcv_tsval - tp->rx_opt.ts_recent) >= 0 || |
2968 | get_seconds() >= tp->rx_opt.ts_recent_stamp + TCP_PAWS_24DAYS) | 2967 | get_seconds() >= tp->rx_opt.ts_recent_stamp + TCP_PAWS_24DAYS) |
2969 | tcp_store_ts_recent(tp); | 2968 | tcp_store_ts_recent(tp); |
2970 | } | 2969 | } |
@@ -3223,7 +3222,7 @@ static void tcp_sack_maybe_coalesce(struct tcp_sock *tp) | |||
3223 | */ | 3222 | */ |
3224 | tp->rx_opt.num_sacks--; | 3223 | tp->rx_opt.num_sacks--; |
3225 | tp->rx_opt.eff_sacks = min(tp->rx_opt.num_sacks + tp->rx_opt.dsack, 4 - tp->rx_opt.tstamp_ok); | 3224 | tp->rx_opt.eff_sacks = min(tp->rx_opt.num_sacks + tp->rx_opt.dsack, 4 - tp->rx_opt.tstamp_ok); |
3226 | for(i=this_sack; i < tp->rx_opt.num_sacks; i++) | 3225 | for (i=this_sack; i < tp->rx_opt.num_sacks; i++) |
3227 | sp[i] = sp[i+1]; | 3226 | sp[i] = sp[i+1]; |
3228 | continue; | 3227 | continue; |
3229 | } | 3228 | } |
@@ -3276,7 +3275,7 @@ static void tcp_sack_new_ofo_skb(struct sock *sk, u32 seq, u32 end_seq) | |||
3276 | tp->rx_opt.num_sacks--; | 3275 | tp->rx_opt.num_sacks--; |
3277 | sp--; | 3276 | sp--; |
3278 | } | 3277 | } |
3279 | for(; this_sack > 0; this_sack--, sp--) | 3278 | for (; this_sack > 0; this_sack--, sp--) |
3280 | *sp = *(sp-1); | 3279 | *sp = *(sp-1); |
3281 | 3280 | ||
3282 | new_sack: | 3281 | new_sack: |
@@ -3302,7 +3301,7 @@ static void tcp_sack_remove(struct tcp_sock *tp) | |||
3302 | return; | 3301 | return; |
3303 | } | 3302 | } |
3304 | 3303 | ||
3305 | for(this_sack = 0; this_sack < num_sacks; ) { | 3304 | for (this_sack = 0; this_sack < num_sacks; ) { |
3306 | /* Check if the start of the sack is covered by RCV.NXT. */ | 3305 | /* Check if the start of the sack is covered by RCV.NXT. */ |
3307 | if (!before(tp->rcv_nxt, sp->start_seq)) { | 3306 | if (!before(tp->rcv_nxt, sp->start_seq)) { |
3308 | int i; | 3307 | int i; |
@@ -3358,7 +3357,7 @@ static void tcp_ofo_queue(struct sock *sk) | |||
3358 | __skb_unlink(skb, &tp->out_of_order_queue); | 3357 | __skb_unlink(skb, &tp->out_of_order_queue); |
3359 | __skb_queue_tail(&sk->sk_receive_queue, skb); | 3358 | __skb_queue_tail(&sk->sk_receive_queue, skb); |
3360 | tp->rcv_nxt = TCP_SKB_CB(skb)->end_seq; | 3359 | tp->rcv_nxt = TCP_SKB_CB(skb)->end_seq; |
3361 | if(skb->h.th->fin) | 3360 | if (skb->h.th->fin) |
3362 | tcp_fin(skb, sk, skb->h.th); | 3361 | tcp_fin(skb, sk, skb->h.th); |
3363 | } | 3362 | } |
3364 | } | 3363 | } |
@@ -3424,9 +3423,9 @@ queue_and_out: | |||
3424 | __skb_queue_tail(&sk->sk_receive_queue, skb); | 3423 | __skb_queue_tail(&sk->sk_receive_queue, skb); |
3425 | } | 3424 | } |
3426 | tp->rcv_nxt = TCP_SKB_CB(skb)->end_seq; | 3425 | tp->rcv_nxt = TCP_SKB_CB(skb)->end_seq; |
3427 | if(skb->len) | 3426 | if (skb->len) |
3428 | tcp_event_data_recv(sk, tp, skb); | 3427 | tcp_event_data_recv(sk, tp, skb); |
3429 | if(th->fin) | 3428 | if (th->fin) |
3430 | tcp_fin(skb, sk, th); | 3429 | tcp_fin(skb, sk, th); |
3431 | 3430 | ||
3432 | if (!skb_queue_empty(&tp->out_of_order_queue)) { | 3431 | if (!skb_queue_empty(&tp->out_of_order_queue)) { |
@@ -4323,7 +4322,7 @@ slow_path: | |||
4323 | goto discard; | 4322 | goto discard; |
4324 | } | 4323 | } |
4325 | 4324 | ||
4326 | if(th->rst) { | 4325 | if (th->rst) { |
4327 | tcp_reset(sk); | 4326 | tcp_reset(sk); |
4328 | goto discard; | 4327 | goto discard; |
4329 | } | 4328 | } |
@@ -4338,7 +4337,7 @@ slow_path: | |||
4338 | } | 4337 | } |
4339 | 4338 | ||
4340 | step5: | 4339 | step5: |
4341 | if(th->ack) | 4340 | if (th->ack) |
4342 | tcp_ack(sk, skb, FLAG_SLOWPATH); | 4341 | tcp_ack(sk, skb, FLAG_SLOWPATH); |
4343 | 4342 | ||
4344 | tcp_rcv_rtt_measure_ts(sk, skb); | 4343 | tcp_rcv_rtt_measure_ts(sk, skb); |
@@ -4626,13 +4625,13 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb, | |||
4626 | goto discard; | 4625 | goto discard; |
4627 | 4626 | ||
4628 | case TCP_LISTEN: | 4627 | case TCP_LISTEN: |
4629 | if(th->ack) | 4628 | if (th->ack) |
4630 | return 1; | 4629 | return 1; |
4631 | 4630 | ||
4632 | if(th->rst) | 4631 | if (th->rst) |
4633 | goto discard; | 4632 | goto discard; |
4634 | 4633 | ||
4635 | if(th->syn) { | 4634 | if (th->syn) { |
4636 | if (icsk->icsk_af_ops->conn_request(sk, skb) < 0) | 4635 | if (icsk->icsk_af_ops->conn_request(sk, skb) < 0) |
4637 | return 1; | 4636 | return 1; |
4638 | 4637 | ||
@@ -4688,7 +4687,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb, | |||
4688 | } | 4687 | } |
4689 | 4688 | ||
4690 | /* step 2: check RST bit */ | 4689 | /* step 2: check RST bit */ |
4691 | if(th->rst) { | 4690 | if (th->rst) { |
4692 | tcp_reset(sk); | 4691 | tcp_reset(sk); |
4693 | goto discard; | 4692 | goto discard; |
4694 | } | 4693 | } |
@@ -4711,7 +4710,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb, | |||
4711 | if (th->ack) { | 4710 | if (th->ack) { |
4712 | int acceptable = tcp_ack(sk, skb, FLAG_SLOWPATH); | 4711 | int acceptable = tcp_ack(sk, skb, FLAG_SLOWPATH); |
4713 | 4712 | ||
4714 | switch(sk->sk_state) { | 4713 | switch (sk->sk_state) { |
4715 | case TCP_SYN_RECV: | 4714 | case TCP_SYN_RECV: |
4716 | if (acceptable) { | 4715 | if (acceptable) { |
4717 | tp->copied_seq = tp->rcv_nxt; | 4716 | tp->copied_seq = tp->rcv_nxt; |
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index ac4ce48a6599..463d2b24d2db 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
@@ -246,7 +246,7 @@ kill: | |||
246 | if (paws_reject) | 246 | if (paws_reject) |
247 | NET_INC_STATS_BH(LINUX_MIB_PAWSESTABREJECTED); | 247 | NET_INC_STATS_BH(LINUX_MIB_PAWSESTABREJECTED); |
248 | 248 | ||
249 | if(!th->rst) { | 249 | if (!th->rst) { |
250 | /* In this case we must reset the TIMEWAIT timer. | 250 | /* In this case we must reset the TIMEWAIT timer. |
251 | * | 251 | * |
252 | * If it is ACKless SYN it may be both old duplicate | 252 | * If it is ACKless SYN it may be both old duplicate |
@@ -324,7 +324,7 @@ void tcp_time_wait(struct sock *sk, int state, int timeo) | |||
324 | if (tcp_alloc_md5sig_pool() == NULL) | 324 | if (tcp_alloc_md5sig_pool() == NULL) |
325 | BUG(); | 325 | BUG(); |
326 | } | 326 | } |
327 | } while(0); | 327 | } while (0); |
328 | #endif | 328 | #endif |
329 | 329 | ||
330 | /* Linkage updates. */ | 330 | /* Linkage updates. */ |
@@ -438,7 +438,7 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req, | |||
438 | keepalive_time_when(newtp)); | 438 | keepalive_time_when(newtp)); |
439 | 439 | ||
440 | newtp->rx_opt.tstamp_ok = ireq->tstamp_ok; | 440 | newtp->rx_opt.tstamp_ok = ireq->tstamp_ok; |
441 | if((newtp->rx_opt.sack_ok = ireq->sack_ok) != 0) { | 441 | if ((newtp->rx_opt.sack_ok = ireq->sack_ok) != 0) { |
442 | if (sysctl_tcp_fack) | 442 | if (sysctl_tcp_fack) |
443 | newtp->rx_opt.sack_ok |= 2; | 443 | newtp->rx_opt.sack_ok |= 2; |
444 | } | 444 | } |
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 2a62b55b15f1..f19f5fb361b5 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -236,7 +236,7 @@ static u16 tcp_select_window(struct sock *sk) | |||
236 | u32 new_win = __tcp_select_window(sk); | 236 | u32 new_win = __tcp_select_window(sk); |
237 | 237 | ||
238 | /* Never shrink the offered window */ | 238 | /* Never shrink the offered window */ |
239 | if(new_win < cur_win) { | 239 | if (new_win < cur_win) { |
240 | /* Danger Will Robinson! | 240 | /* Danger Will Robinson! |
241 | * Don't update rcv_wup/rcv_wnd here or else | 241 | * Don't update rcv_wup/rcv_wnd here or else |
242 | * we will not be able to advertise a zero | 242 | * we will not be able to advertise a zero |
@@ -287,10 +287,12 @@ static void tcp_build_and_update_options(__be32 *ptr, struct tcp_sock *tp, | |||
287 | (TCPOPT_SACK << 8) | | 287 | (TCPOPT_SACK << 8) | |
288 | (TCPOLEN_SACK_BASE + (tp->rx_opt.eff_sacks * | 288 | (TCPOLEN_SACK_BASE + (tp->rx_opt.eff_sacks * |
289 | TCPOLEN_SACK_PERBLOCK))); | 289 | TCPOLEN_SACK_PERBLOCK))); |
290 | for(this_sack = 0; this_sack < tp->rx_opt.eff_sacks; this_sack++) { | 290 | |
291 | for (this_sack = 0; this_sack < tp->rx_opt.eff_sacks; this_sack++) { | ||
291 | *ptr++ = htonl(sp[this_sack].start_seq); | 292 | *ptr++ = htonl(sp[this_sack].start_seq); |
292 | *ptr++ = htonl(sp[this_sack].end_seq); | 293 | *ptr++ = htonl(sp[this_sack].end_seq); |
293 | } | 294 | } |
295 | |||
294 | if (tp->rx_opt.dsack) { | 296 | if (tp->rx_opt.dsack) { |
295 | tp->rx_opt.dsack = 0; | 297 | tp->rx_opt.dsack = 0; |
296 | tp->rx_opt.eff_sacks--; | 298 | tp->rx_opt.eff_sacks--; |
@@ -335,7 +337,7 @@ static void tcp_syn_build_options(__be32 *ptr, int mss, int ts, int sack, | |||
335 | */ | 337 | */ |
336 | *ptr++ = htonl((TCPOPT_MSS << 24) | (TCPOLEN_MSS << 16) | mss); | 338 | *ptr++ = htonl((TCPOPT_MSS << 24) | (TCPOLEN_MSS << 16) | mss); |
337 | if (ts) { | 339 | if (ts) { |
338 | if(sack) | 340 | if (sack) |
339 | *ptr++ = htonl((TCPOPT_SACK_PERM << 24) | | 341 | *ptr++ = htonl((TCPOPT_SACK_PERM << 24) | |
340 | (TCPOLEN_SACK_PERM << 16) | | 342 | (TCPOLEN_SACK_PERM << 16) | |
341 | (TCPOPT_TIMESTAMP << 8) | | 343 | (TCPOPT_TIMESTAMP << 8) | |
@@ -347,7 +349,7 @@ static void tcp_syn_build_options(__be32 *ptr, int mss, int ts, int sack, | |||
347 | TCPOLEN_TIMESTAMP); | 349 | TCPOLEN_TIMESTAMP); |
348 | *ptr++ = htonl(tstamp); /* TSVAL */ | 350 | *ptr++ = htonl(tstamp); /* TSVAL */ |
349 | *ptr++ = htonl(ts_recent); /* TSECR */ | 351 | *ptr++ = htonl(ts_recent); /* TSECR */ |
350 | } else if(sack) | 352 | } else if (sack) |
351 | *ptr++ = htonl((TCPOPT_NOP << 24) | | 353 | *ptr++ = htonl((TCPOPT_NOP << 24) | |
352 | (TCPOPT_NOP << 16) | | 354 | (TCPOPT_NOP << 16) | |
353 | (TCPOPT_SACK_PERM << 8) | | 355 | (TCPOPT_SACK_PERM << 8) | |
@@ -428,7 +430,7 @@ static int tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, int clone_it, | |||
428 | sysctl_flags = 0; | 430 | sysctl_flags = 0; |
429 | if (unlikely(tcb->flags & TCPCB_FLAG_SYN)) { | 431 | if (unlikely(tcb->flags & TCPCB_FLAG_SYN)) { |
430 | tcp_header_size = sizeof(struct tcphdr) + TCPOLEN_MSS; | 432 | tcp_header_size = sizeof(struct tcphdr) + TCPOLEN_MSS; |
431 | if(sysctl_tcp_timestamps) { | 433 | if (sysctl_tcp_timestamps) { |
432 | tcp_header_size += TCPOLEN_TSTAMP_ALIGNED; | 434 | tcp_header_size += TCPOLEN_TSTAMP_ALIGNED; |
433 | sysctl_flags |= SYSCTL_FLAG_TSTAMPS; | 435 | sysctl_flags |= SYSCTL_FLAG_TSTAMPS; |
434 | } | 436 | } |
@@ -1618,7 +1620,7 @@ static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *skb, int m | |||
1618 | u16 flags = TCP_SKB_CB(skb)->flags; | 1620 | u16 flags = TCP_SKB_CB(skb)->flags; |
1619 | 1621 | ||
1620 | /* Also punt if next skb has been SACK'd. */ | 1622 | /* Also punt if next skb has been SACK'd. */ |
1621 | if(TCP_SKB_CB(next_skb)->sacked & TCPCB_SACKED_ACKED) | 1623 | if (TCP_SKB_CB(next_skb)->sacked & TCPCB_SACKED_ACKED) |
1622 | return; | 1624 | return; |
1623 | 1625 | ||
1624 | /* Next skb is out of window. */ | 1626 | /* Next skb is out of window. */ |
@@ -1778,13 +1780,13 @@ int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb) | |||
1778 | } | 1780 | } |
1779 | 1781 | ||
1780 | /* Collapse two adjacent packets if worthwhile and we can. */ | 1782 | /* Collapse two adjacent packets if worthwhile and we can. */ |
1781 | if(!(TCP_SKB_CB(skb)->flags & TCPCB_FLAG_SYN) && | 1783 | if (!(TCP_SKB_CB(skb)->flags & TCPCB_FLAG_SYN) && |
1782 | (skb->len < (cur_mss >> 1)) && | 1784 | (skb->len < (cur_mss >> 1)) && |
1783 | (tcp_write_queue_next(sk, skb) != tcp_send_head(sk)) && | 1785 | (tcp_write_queue_next(sk, skb) != tcp_send_head(sk)) && |
1784 | (!tcp_skb_is_last(sk, skb)) && | 1786 | (!tcp_skb_is_last(sk, skb)) && |
1785 | (skb_shinfo(skb)->nr_frags == 0 && skb_shinfo(tcp_write_queue_next(sk, skb))->nr_frags == 0) && | 1787 | (skb_shinfo(skb)->nr_frags == 0 && skb_shinfo(tcp_write_queue_next(sk, skb))->nr_frags == 0) && |
1786 | (tcp_skb_pcount(skb) == 1 && tcp_skb_pcount(tcp_write_queue_next(sk, skb)) == 1) && | 1788 | (tcp_skb_pcount(skb) == 1 && tcp_skb_pcount(tcp_write_queue_next(sk, skb)) == 1) && |
1787 | (sysctl_tcp_retrans_collapse != 0)) | 1789 | (sysctl_tcp_retrans_collapse != 0)) |
1788 | tcp_retrans_try_collapse(sk, skb, cur_mss); | 1790 | tcp_retrans_try_collapse(sk, skb, cur_mss); |
1789 | 1791 | ||
1790 | if (inet_csk(sk)->icsk_af_ops->rebuild_header(sk)) | 1792 | if (inet_csk(sk)->icsk_af_ops->rebuild_header(sk)) |
@@ -1794,9 +1796,9 @@ int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb) | |||
1794 | * retransmit when old data is attached. So strip it off | 1796 | * retransmit when old data is attached. So strip it off |
1795 | * since it is cheap to do so and saves bytes on the network. | 1797 | * since it is cheap to do so and saves bytes on the network. |
1796 | */ | 1798 | */ |
1797 | if(skb->len > 0 && | 1799 | if (skb->len > 0 && |
1798 | (TCP_SKB_CB(skb)->flags & TCPCB_FLAG_FIN) && | 1800 | (TCP_SKB_CB(skb)->flags & TCPCB_FLAG_FIN) && |
1799 | tp->snd_una == (TCP_SKB_CB(skb)->end_seq - 1)) { | 1801 | tp->snd_una == (TCP_SKB_CB(skb)->end_seq - 1)) { |
1800 | if (!pskb_trim(skb, 0)) { | 1802 | if (!pskb_trim(skb, 0)) { |
1801 | TCP_SKB_CB(skb)->seq = TCP_SKB_CB(skb)->end_seq - 1; | 1803 | TCP_SKB_CB(skb)->seq = TCP_SKB_CB(skb)->end_seq - 1; |
1802 | skb_shinfo(skb)->gso_segs = 1; | 1804 | skb_shinfo(skb)->gso_segs = 1; |
diff --git a/net/ipv4/tcp_westwood.c b/net/ipv4/tcp_westwood.c index 4e1b61032a9c..1f91aeae10af 100644 --- a/net/ipv4/tcp_westwood.c +++ b/net/ipv4/tcp_westwood.c | |||
@@ -226,7 +226,7 @@ static void tcp_westwood_event(struct sock *sk, enum tcp_ca_event event) | |||
226 | struct tcp_sock *tp = tcp_sk(sk); | 226 | struct tcp_sock *tp = tcp_sk(sk); |
227 | struct westwood *w = inet_csk_ca(sk); | 227 | struct westwood *w = inet_csk_ca(sk); |
228 | 228 | ||
229 | switch(event) { | 229 | switch (event) { |
230 | case CA_EVENT_FAST_ACK: | 230 | case CA_EVENT_FAST_ACK: |
231 | westwood_fast_bw(sk); | 231 | westwood_fast_bw(sk); |
232 | break; | 232 | break; |