tcp: Namespace-ify sysctl_tcp_tso_win_divisor
[linux-2.6-microblaze.git] / net / ipv4 / tcp_ipv4.c
index e22439f..284ff16 100644 (file)
@@ -85,6 +85,8 @@
 #include <crypto/hash.h>
 #include <linux/scatterlist.h>
 
+#include <trace/events/tcp.h>
+
 #ifdef CONFIG_TCP_MD5SIG
 static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
                               __be32 daddr, __be32 saddr, const struct tcphdr *th);
@@ -701,8 +703,10 @@ static void tcp_v4_send_reset(const struct sock *sk, struct sk_buff *skb)
         * routing might fail in this case. No choice here, if we choose to force
         * input interface, we will misroute in case of asymmetric route.
         */
-       if (sk)
+       if (sk) {
                arg.bound_dev_if = sk->sk_bound_dev_if;
+               trace_tcp_send_reset(sk, skb);
+       }
 
        BUILD_BUG_ON(offsetof(struct sock, sk_bound_dev_if) !=
                     offsetof(struct inet_timewait_sock, tw_bound_dev_if));
@@ -1865,6 +1869,8 @@ void tcp_v4_destroy_sock(struct sock *sk)
 {
        struct tcp_sock *tp = tcp_sk(sk);
 
+       trace_tcp_destroy_sock(sk);
+
        tcp_clear_xmit_timers(sk);
 
        tcp_cleanup_congestion_control(sk);
@@ -2478,6 +2484,21 @@ static int __net_init tcp_sk_init(struct net *net)
        net->ipv4.sysctl_tcp_sack = 1;
        net->ipv4.sysctl_tcp_window_scaling = 1;
        net->ipv4.sysctl_tcp_timestamps = 1;
+       net->ipv4.sysctl_tcp_early_retrans = 3;
+       net->ipv4.sysctl_tcp_recovery = TCP_RACK_LOSS_DETECTION;
+       net->ipv4.sysctl_tcp_slow_start_after_idle = 1; /* By default, RFC2861 behavior.  */
+       net->ipv4.sysctl_tcp_retrans_collapse = 1;
+       net->ipv4.sysctl_tcp_max_reordering = 300;
+       net->ipv4.sysctl_tcp_dsack = 1;
+       net->ipv4.sysctl_tcp_app_win = 31;
+       net->ipv4.sysctl_tcp_adv_win_scale = 1;
+       net->ipv4.sysctl_tcp_frto = 2;
+       net->ipv4.sysctl_tcp_moderate_rcvbuf = 1;
+       /* This limits the percentage of the congestion window which we
+        * will allow a single TSO frame to consume.  Building TSO frames
+        * which are too large can cause TCP streams to be bursty.
+        */
+       net->ipv4.sysctl_tcp_tso_win_divisor = 3;
 
        net->ipv4.sysctl_tcp_fastopen = TFO_CLIENT_ENABLE;
        spin_lock_init(&net->ipv4.tcp_fastopen_ctx_lock);