mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
ipv4: Namespaceify min_adv_mss sysctl knob
Different netns has different requirement on the setting of min_adv_mss sysctl which the advertised MSS will be never lower than. Enable min_adv_mss to be configured per network namespace. Signed-off-by: xu xin <xu.xin16@zte.com.cn> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
349fdca687
commit
2e9589ff80
@ -83,6 +83,7 @@ struct netns_ipv4 {
|
||||
|
||||
u32 ip_rt_min_pmtu;
|
||||
int ip_rt_mtu_expires;
|
||||
int ip_rt_min_advmss;
|
||||
|
||||
struct local_ports ip_local_ports;
|
||||
|
||||
|
@ -112,14 +112,13 @@
|
||||
|
||||
#define DEFAULT_MIN_PMTU (512 + 20 + 20)
|
||||
#define DEFAULT_MTU_EXPIRES (10 * 60 * HZ)
|
||||
|
||||
#define DEFAULT_MIN_ADVMSS 256
|
||||
static int ip_rt_max_size;
|
||||
static int ip_rt_redirect_number __read_mostly = 9;
|
||||
static int ip_rt_redirect_load __read_mostly = HZ / 50;
|
||||
static int ip_rt_redirect_silence __read_mostly = ((HZ / 50) << (9 + 1));
|
||||
static int ip_rt_error_cost __read_mostly = HZ;
|
||||
static int ip_rt_error_burst __read_mostly = 5 * HZ;
|
||||
static int ip_rt_min_advmss __read_mostly = 256;
|
||||
|
||||
static int ip_rt_gc_timeout __read_mostly = RT_GC_TIMEOUT;
|
||||
|
||||
@ -1298,9 +1297,10 @@ static void set_class_tag(struct rtable *rt, u32 tag)
|
||||
|
||||
static unsigned int ipv4_default_advmss(const struct dst_entry *dst)
|
||||
{
|
||||
struct net *net = dev_net(dst->dev);
|
||||
unsigned int header_size = sizeof(struct tcphdr) + sizeof(struct iphdr);
|
||||
unsigned int advmss = max_t(unsigned int, ipv4_mtu(dst) - header_size,
|
||||
ip_rt_min_advmss);
|
||||
net->ipv4.ip_rt_min_advmss);
|
||||
|
||||
return min(advmss, IPV4_MAX_PMTU - header_size);
|
||||
}
|
||||
@ -3535,13 +3535,6 @@ static struct ctl_table ipv4_route_table[] = {
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
{
|
||||
.procname = "min_adv_mss",
|
||||
.data = &ip_rt_min_advmss,
|
||||
.maxlen = sizeof(int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
{ }
|
||||
};
|
||||
|
||||
@ -3569,6 +3562,13 @@ static struct ctl_table ipv4_route_netns_table[] = {
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec_jiffies,
|
||||
},
|
||||
{
|
||||
.procname = "min_adv_mss",
|
||||
.data = &init_net.ipv4.ip_rt_min_advmss,
|
||||
.maxlen = sizeof(int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
{ },
|
||||
};
|
||||
|
||||
@ -3631,6 +3631,7 @@ static __net_init int netns_ip_rt_init(struct net *net)
|
||||
/* Set default value for namespaceified sysctls */
|
||||
net->ipv4.ip_rt_min_pmtu = DEFAULT_MIN_PMTU;
|
||||
net->ipv4.ip_rt_mtu_expires = DEFAULT_MTU_EXPIRES;
|
||||
net->ipv4.ip_rt_min_advmss = DEFAULT_MIN_ADVMSS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user