[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20090813.160839.127192632.davem@davemloft.net>
Date: Thu, 13 Aug 2009 16:08:39 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: damian@....rwth-aachen.de
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH] revert TCP retransmission backoff on ICMP destination
unreachable
From: Damian Lukowski <damian@....rwth-aachen.de>
Date: Tue, 11 Aug 2009 13:27:42 +0200
> @@ -1220,6 +1220,8 @@
> #define tcp_for_write_queue_from_safe(skb, tmp, sk) \
> skb_queue_walk_from_safe(&(sk)->sk_write_queue, skb, tmp)
>
> +#define retrans_overstepped(sk, boundary) (inet_csk(sk)->icsk_retransmits && (tcp_time_stamp - tcp_sk(sk)->retrans_stamp) >= TCP_RTO_MIN*(2 << boundary))
> +
Longer than 80 columns, and use an inline function instead
of a macro in order to get proper type checking.
> @@ -332,11 +332,14 @@
> {
> struct iphdr *iph = (struct iphdr *)skb->data;
> struct tcphdr *th = (struct tcphdr *)(skb->data + (iph->ihl << 2));
> +
> + struct inet_connection_sock *icsk;
> struct tcp_sock *tp;
> struct inet_sock *inet;
Do not break up the function local variables with spurious new lines
like this, please.
> const int type = icmp_hdr(skb)->type;
> const int code = icmp_hdr(skb)->code;
> struct sock *sk;
> + struct sk_buff *skb_r;
> __u32 seq;
> int err;
> struct net *net = dev_net(skb->dev);
> @@ -367,6 +370,7 @@
> if (sk->sk_state == TCP_CLOSE)
> goto out;
>
> + icsk = inet_csk(sk);
> tp = tcp_sk(sk);
> seq = ntohl(th->seq);
> if (sk->sk_state != TCP_LISTEN &&
> @@ -393,6 +397,34 @@
> }
>
> err = icmp_err_convert[code].errno;
> +
> + /* check if ICMP unreachable messages allow revert of back-off */
> + if ((code != ICMP_NET_UNREACH && code != ICMP_HOST_UNREACH) || seq != tp->snd_una
> + || !icsk->icsk_retransmits || !icsk->icsk_backoff) break;
> +
> + icsk->icsk_backoff--;
> + icsk->icsk_rto >>= 1;
> +
> + skb_r = skb_peek(&sk->sk_write_queue);
> + BUG_ON(!skb_r);
> +
The indentation and tabbing is messed up in all of the code you are
adding, please fix it up to be consistent with the surrounding code
and the rest of the TCP stack.
Do not use C++ style // comments.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists