int sysctl_tcp_ecn;
        int sysctl_tcp_ecn_fallback;
 
+       int sysctl_ip_default_ttl;
        int sysctl_ip_no_pmtu_disc;
        int sysctl_ip_fwd_use_pmtu;
        int sysctl_ip_nonlocal_bind;
 
        return skb->skb_iif;
 }
 
-extern int sysctl_ip_default_ttl;
-
 static inline int ip4_dst_hoplimit(const struct dst_entry *dst)
 {
        int hoplimit = dst_metric_raw(dst, RTAX_HOPLIMIT);
+       struct net *net = dev_net(dst->dev);
 
        if (hoplimit == 0)
-               hoplimit = sysctl_ip_default_ttl;
+               hoplimit = net->ipv4.sysctl_ip_default_ttl;
        return hoplimit;
 }
 
 
        struct iphdr *niph;
        const struct tcphdr *oth;
        struct tcphdr _oth;
+       struct net *net = sock_net(oldskb->sk);
 
        if (!nft_bridge_iphdr_validate(oldskb))
                return;
 
        skb_reserve(nskb, LL_MAX_HEADER);
        niph = nf_reject_iphdr_put(nskb, oldskb, IPPROTO_TCP,
-                                  sysctl_ip_default_ttl);
+                                  net->ipv4.sysctl_ip_default_ttl);
        nf_reject_ip_tcphdr_put(nskb, oldskb, oth);
-       niph->ttl       = sysctl_ip_default_ttl;
+       niph->ttl       = net->ipv4.sysctl_ip_default_ttl;
        niph->tot_len   = htons(nskb->len);
        ip_send_check(niph);
 
        void *payload;
        __wsum csum;
        u8 proto;
+       struct net *net = sock_net(oldskb->sk);
 
        if (oldskb->csum_bad || !nft_bridge_iphdr_validate(oldskb))
                return;
 
        skb_reserve(nskb, LL_MAX_HEADER);
        niph = nf_reject_iphdr_put(nskb, oldskb, IPPROTO_ICMP,
-                                  sysctl_ip_default_ttl);
+                                  net->ipv4.sysctl_ip_default_ttl);
 
        skb_reset_transport_header(nskb);
        icmph = (struct icmphdr *)skb_put(nskb, sizeof(struct icmphdr));
 
 #include <linux/netlink.h>
 #include <linux/tcp.h>
 
-int sysctl_ip_default_ttl __read_mostly = IPDEFTTL;
-EXPORT_SYMBOL(sysctl_ip_default_ttl);
-
 static int
 ip_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,
            unsigned int mtu,
 
                val = inet->tos;
                break;
        case IP_TTL:
+       {
+               struct net *net = sock_net(sk);
                val = (inet->uc_ttl == -1 ?
-                      sysctl_ip_default_ttl :
+                      net->ipv4.sysctl_ip_default_ttl :
                       inet->uc_ttl);
                break;
+       }
        case IP_HDRINCL:
                val = inet->hdrincl;
                break;
 
 synproxy_build_ip(struct sk_buff *skb, __be32 saddr, __be32 daddr)
 {
        struct iphdr *iph;
+       struct net *net = sock_net(skb->sk);
 
        skb_reset_network_header(skb);
        iph = (struct iphdr *)skb_put(skb, sizeof(*iph));
        iph->tos        = 0;
        iph->id         = 0;
        iph->frag_off   = htons(IP_DF);
-       iph->ttl        = sysctl_ip_default_ttl;
+       iph->ttl        = net->ipv4.sysctl_ip_default_ttl;
        iph->protocol   = IPPROTO_TCP;
        iph->check      = 0;
        iph->saddr      = saddr;
 
 
        seq_printf(seq, "\nIp: %d %d",
                   IPV4_DEVCONF_ALL(net, FORWARDING) ? 1 : 2,
-                  sysctl_ip_default_ttl);
+                  net->ipv4.sysctl_ip_default_ttl);
 
        BUILD_BUG_ON(offsetof(struct ipstats_mib, mibs) != 0);
        for (i = 0; snmp4_ipstats_list[i].name != NULL; i++)
 
                .mode           = 0644,
                .proc_handler   = proc_dointvec
        },
-       {
-               .procname       = "ip_default_ttl",
-               .data           = &sysctl_ip_default_ttl,
-               .maxlen         = sizeof(int),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec_minmax,
-               .extra1         = &ip_ttl_min,
-               .extra2         = &ip_ttl_max,
-       },
        {
                .procname       = "tcp_max_orphans",
                .data           = &sysctl_tcp_max_orphans,
                .mode           = 0644,
                .proc_handler   = proc_dointvec
        },
+       {
+               .procname       = "ip_default_ttl",
+               .data           = &init_net.ipv4.sysctl_ip_default_ttl,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &ip_ttl_min,
+               .extra2         = &ip_ttl_max,
+       },
        {
                .procname       = "ip_local_port_range",
                .maxlen         = sizeof(init_net.ipv4.ip_local_ports.range),
        if (!net->ipv4.sysctl_local_reserved_ports)
                goto err_ports;
 
+       net->ipv4.sysctl_ip_default_ttl = IPDEFTTL;
+
        return 0;
 
 err_ports: