aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4')
-rw-r--r--net/ipv4/arp.c2
-rw-r--r--net/ipv4/devinet.c111
-rw-r--r--net/ipv4/ip_fragment.c6
-rw-r--r--net/ipv4/netfilter.c6
-rw-r--r--net/ipv4/netfilter/ip_queue.c3
-rw-r--r--net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c10
-rw-r--r--net/ipv4/netfilter/nf_conntrack_proto_icmp.c8
-rw-r--r--net/ipv4/route.c73
-rw-r--r--net/ipv4/sysctl_net_ipv4.c165
-rw-r--r--net/ipv4/xfrm4_policy.c1
10 files changed, 37 insertions, 348 deletions
diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
index 4e80f336c0cf..c95cd93acf29 100644
--- a/net/ipv4/arp.c
+++ b/net/ipv4/arp.c
@@ -1240,7 +1240,7 @@ void __init arp_init(void)
1240 arp_proc_init(); 1240 arp_proc_init();
1241#ifdef CONFIG_SYSCTL 1241#ifdef CONFIG_SYSCTL
1242 neigh_sysctl_register(NULL, &arp_tbl.parms, NET_IPV4, 1242 neigh_sysctl_register(NULL, &arp_tbl.parms, NET_IPV4,
1243 NET_IPV4_NEIGH, "ipv4", NULL, NULL); 1243 NET_IPV4_NEIGH, "ipv4", NULL);
1244#endif 1244#endif
1245 register_netdevice_notifier(&arp_netdev_notifier); 1245 register_netdevice_notifier(&arp_netdev_notifier);
1246} 1246}
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index e3126612fcbb..5cdbc102a418 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1311,58 +1311,6 @@ static int devinet_conf_proc(ctl_table *ctl, int write,
1311 return ret; 1311 return ret;
1312} 1312}
1313 1313
1314static int devinet_conf_sysctl(ctl_table *table,
1315 void __user *oldval, size_t __user *oldlenp,
1316 void __user *newval, size_t newlen)
1317{
1318 struct ipv4_devconf *cnf;
1319 struct net *net;
1320 int *valp = table->data;
1321 int new;
1322 int i;
1323
1324 if (!newval || !newlen)
1325 return 0;
1326
1327 if (newlen != sizeof(int))
1328 return -EINVAL;
1329
1330 if (get_user(new, (int __user *)newval))
1331 return -EFAULT;
1332
1333 if (new == *valp)
1334 return 0;
1335
1336 if (oldval && oldlenp) {
1337 size_t len;
1338
1339 if (get_user(len, oldlenp))
1340 return -EFAULT;
1341
1342 if (len) {
1343 if (len > table->maxlen)
1344 len = table->maxlen;
1345 if (copy_to_user(oldval, valp, len))
1346 return -EFAULT;
1347 if (put_user(len, oldlenp))
1348 return -EFAULT;
1349 }
1350 }
1351
1352 *valp = new;
1353
1354 cnf = table->extra1;
1355 net = table->extra2;
1356 i = (int *)table->data - cnf->data;
1357
1358 set_bit(i, cnf->state);
1359
1360 if (cnf == net->ipv4.devconf_dflt)
1361 devinet_copy_dflt_conf(net, i);
1362
1363 return 1;
1364}
1365
1366static int devinet_sysctl_forward(ctl_table *ctl, int write, 1314static int devinet_sysctl_forward(ctl_table *ctl, int write,
1367 void __user *buffer, 1315 void __user *buffer,
1368 size_t *lenp, loff_t *ppos) 1316 size_t *lenp, loff_t *ppos)
@@ -1408,47 +1356,28 @@ int ipv4_doint_and_flush(ctl_table *ctl, int write,
1408 return ret; 1356 return ret;
1409} 1357}
1410 1358
1411int ipv4_doint_and_flush_strategy(ctl_table *table, 1359#define DEVINET_SYSCTL_ENTRY(attr, name, mval, proc) \
1412 void __user *oldval, size_t __user *oldlenp,
1413 void __user *newval, size_t newlen)
1414{
1415 int ret = devinet_conf_sysctl(table, oldval, oldlenp, newval, newlen);
1416 struct net *net = table->extra2;
1417
1418 if (ret == 1)
1419 rt_cache_flush(net, 0);
1420
1421 return ret;
1422}
1423
1424
1425#define DEVINET_SYSCTL_ENTRY(attr, name, mval, proc, sysctl) \
1426 { \ 1360 { \
1427 .ctl_name = NET_IPV4_CONF_ ## attr, \
1428 .procname = name, \ 1361 .procname = name, \
1429 .data = ipv4_devconf.data + \ 1362 .data = ipv4_devconf.data + \
1430 NET_IPV4_CONF_ ## attr - 1, \ 1363 NET_IPV4_CONF_ ## attr - 1, \
1431 .maxlen = sizeof(int), \ 1364 .maxlen = sizeof(int), \
1432 .mode = mval, \ 1365 .mode = mval, \
1433 .proc_handler = proc, \ 1366 .proc_handler = proc, \
1434 .strategy = sysctl, \
1435 .extra1 = &ipv4_devconf, \ 1367 .extra1 = &ipv4_devconf, \
1436 } 1368 }
1437 1369
1438#define DEVINET_SYSCTL_RW_ENTRY(attr, name) \ 1370#define DEVINET_SYSCTL_RW_ENTRY(attr, name) \
1439 DEVINET_SYSCTL_ENTRY(attr, name, 0644, devinet_conf_proc, \ 1371 DEVINET_SYSCTL_ENTRY(attr, name, 0644, devinet_conf_proc)
1440 devinet_conf_sysctl)
1441 1372
1442#define DEVINET_SYSCTL_RO_ENTRY(attr, name) \ 1373#define DEVINET_SYSCTL_RO_ENTRY(attr, name) \
1443 DEVINET_SYSCTL_ENTRY(attr, name, 0444, devinet_conf_proc, \ 1374 DEVINET_SYSCTL_ENTRY(attr, name, 0444, devinet_conf_proc)
1444 devinet_conf_sysctl)
1445 1375
1446#define DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, proc, sysctl) \ 1376#define DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, proc) \
1447 DEVINET_SYSCTL_ENTRY(attr, name, 0644, proc, sysctl) 1377 DEVINET_SYSCTL_ENTRY(attr, name, 0644, proc)
1448 1378
1449#define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \ 1379#define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \
1450 DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush, \ 1380 DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush)
1451 ipv4_doint_and_flush_strategy)
1452 1381
1453static struct devinet_sysctl_table { 1382static struct devinet_sysctl_table {
1454 struct ctl_table_header *sysctl_header; 1383 struct ctl_table_header *sysctl_header;
@@ -1457,8 +1386,7 @@ static struct devinet_sysctl_table {
1457} devinet_sysctl = { 1386} devinet_sysctl = {
1458 .devinet_vars = { 1387 .devinet_vars = {
1459 DEVINET_SYSCTL_COMPLEX_ENTRY(FORWARDING, "forwarding", 1388 DEVINET_SYSCTL_COMPLEX_ENTRY(FORWARDING, "forwarding",
1460 devinet_sysctl_forward, 1389 devinet_sysctl_forward),
1461 devinet_conf_sysctl),
1462 DEVINET_SYSCTL_RO_ENTRY(MC_FORWARDING, "mc_forwarding"), 1390 DEVINET_SYSCTL_RO_ENTRY(MC_FORWARDING, "mc_forwarding"),
1463 1391
1464 DEVINET_SYSCTL_RW_ENTRY(ACCEPT_REDIRECTS, "accept_redirects"), 1392 DEVINET_SYSCTL_RW_ENTRY(ACCEPT_REDIRECTS, "accept_redirects"),
@@ -1490,7 +1418,7 @@ static struct devinet_sysctl_table {
1490}; 1418};
1491 1419
1492static int __devinet_sysctl_register(struct net *net, char *dev_name, 1420static int __devinet_sysctl_register(struct net *net, char *dev_name,
1493 int ctl_name, struct ipv4_devconf *p) 1421 struct ipv4_devconf *p)
1494{ 1422{
1495 int i; 1423 int i;
1496 struct devinet_sysctl_table *t; 1424 struct devinet_sysctl_table *t;
@@ -1498,9 +1426,9 @@ static int __devinet_sysctl_register(struct net *net, char *dev_name,
1498#define DEVINET_CTL_PATH_DEV 3 1426#define DEVINET_CTL_PATH_DEV 3
1499 1427
1500 struct ctl_path devinet_ctl_path[] = { 1428 struct ctl_path devinet_ctl_path[] = {
1501 { .procname = "net", .ctl_name = CTL_NET, }, 1429 { .procname = "net", },
1502 { .procname = "ipv4", .ctl_name = NET_IPV4, }, 1430 { .procname = "ipv4", },
1503 { .procname = "conf", .ctl_name = NET_IPV4_CONF, }, 1431 { .procname = "conf", },
1504 { /* to be set */ }, 1432 { /* to be set */ },
1505 { }, 1433 { },
1506 }; 1434 };
@@ -1525,7 +1453,6 @@ static int __devinet_sysctl_register(struct net *net, char *dev_name,
1525 goto free; 1453 goto free;
1526 1454
1527 devinet_ctl_path[DEVINET_CTL_PATH_DEV].procname = t->dev_name; 1455 devinet_ctl_path[DEVINET_CTL_PATH_DEV].procname = t->dev_name;
1528 devinet_ctl_path[DEVINET_CTL_PATH_DEV].ctl_name = ctl_name;
1529 1456
1530 t->sysctl_header = register_net_sysctl_table(net, devinet_ctl_path, 1457 t->sysctl_header = register_net_sysctl_table(net, devinet_ctl_path,
1531 t->devinet_vars); 1458 t->devinet_vars);
@@ -1559,9 +1486,9 @@ static void __devinet_sysctl_unregister(struct ipv4_devconf *cnf)
1559static void devinet_sysctl_register(struct in_device *idev) 1486static void devinet_sysctl_register(struct in_device *idev)
1560{ 1487{
1561 neigh_sysctl_register(idev->dev, idev->arp_parms, NET_IPV4, 1488 neigh_sysctl_register(idev->dev, idev->arp_parms, NET_IPV4,
1562 NET_IPV4_NEIGH, "ipv4", NULL, NULL); 1489 NET_IPV4_NEIGH, "ipv4", NULL);
1563 __devinet_sysctl_register(dev_net(idev->dev), idev->dev->name, 1490 __devinet_sysctl_register(dev_net(idev->dev), idev->dev->name,
1564 idev->dev->ifindex, &idev->cnf); 1491 &idev->cnf);
1565} 1492}
1566 1493
1567static void devinet_sysctl_unregister(struct in_device *idev) 1494static void devinet_sysctl_unregister(struct in_device *idev)
@@ -1572,14 +1499,12 @@ static void devinet_sysctl_unregister(struct in_device *idev)
1572 1499
1573static struct ctl_table ctl_forward_entry[] = { 1500static struct ctl_table ctl_forward_entry[] = {
1574 { 1501 {
1575 .ctl_name = NET_IPV4_FORWARD,
1576 .procname = "ip_forward", 1502 .procname = "ip_forward",
1577 .data = &ipv4_devconf.data[ 1503 .data = &ipv4_devconf.data[
1578 NET_IPV4_CONF_FORWARDING - 1], 1504 NET_IPV4_CONF_FORWARDING - 1],
1579 .maxlen = sizeof(int), 1505 .maxlen = sizeof(int),
1580 .mode = 0644, 1506 .mode = 0644,
1581 .proc_handler = devinet_sysctl_forward, 1507 .proc_handler = devinet_sysctl_forward,
1582 .strategy = devinet_conf_sysctl,
1583 .extra1 = &ipv4_devconf, 1508 .extra1 = &ipv4_devconf,
1584 .extra2 = &init_net, 1509 .extra2 = &init_net,
1585 }, 1510 },
@@ -1587,8 +1512,8 @@ static struct ctl_table ctl_forward_entry[] = {
1587}; 1512};
1588 1513
1589static __net_initdata struct ctl_path net_ipv4_path[] = { 1514static __net_initdata struct ctl_path net_ipv4_path[] = {
1590 { .procname = "net", .ctl_name = CTL_NET, }, 1515 { .procname = "net", },
1591 { .procname = "ipv4", .ctl_name = NET_IPV4, }, 1516 { .procname = "ipv4", },
1592 { }, 1517 { },
1593}; 1518};
1594#endif 1519#endif
@@ -1627,13 +1552,11 @@ static __net_init int devinet_init_net(struct net *net)
1627 } 1552 }
1628 1553
1629#ifdef CONFIG_SYSCTL 1554#ifdef CONFIG_SYSCTL
1630 err = __devinet_sysctl_register(net, "all", 1555 err = __devinet_sysctl_register(net, "all", all);
1631 NET_PROTO_CONF_ALL, all);
1632 if (err < 0) 1556 if (err < 0)
1633 goto err_reg_all; 1557 goto err_reg_all;
1634 1558
1635 err = __devinet_sysctl_register(net, "default", 1559 err = __devinet_sysctl_register(net, "default", dflt);
1636 NET_PROTO_CONF_DEFAULT, dflt);
1637 if (err < 0) 1560 if (err < 0)
1638 goto err_reg_dflt; 1561 goto err_reg_dflt;
1639 1562
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index c4735310a923..86964b353c31 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -604,7 +604,6 @@ static int zero;
604 604
605static struct ctl_table ip4_frags_ns_ctl_table[] = { 605static struct ctl_table ip4_frags_ns_ctl_table[] = {
606 { 606 {
607 .ctl_name = NET_IPV4_IPFRAG_HIGH_THRESH,
608 .procname = "ipfrag_high_thresh", 607 .procname = "ipfrag_high_thresh",
609 .data = &init_net.ipv4.frags.high_thresh, 608 .data = &init_net.ipv4.frags.high_thresh,
610 .maxlen = sizeof(int), 609 .maxlen = sizeof(int),
@@ -612,7 +611,6 @@ static struct ctl_table ip4_frags_ns_ctl_table[] = {
612 .proc_handler = proc_dointvec 611 .proc_handler = proc_dointvec
613 }, 612 },
614 { 613 {
615 .ctl_name = NET_IPV4_IPFRAG_LOW_THRESH,
616 .procname = "ipfrag_low_thresh", 614 .procname = "ipfrag_low_thresh",
617 .data = &init_net.ipv4.frags.low_thresh, 615 .data = &init_net.ipv4.frags.low_thresh,
618 .maxlen = sizeof(int), 616 .maxlen = sizeof(int),
@@ -620,26 +618,22 @@ static struct ctl_table ip4_frags_ns_ctl_table[] = {
620 .proc_handler = proc_dointvec 618 .proc_handler = proc_dointvec
621 }, 619 },
622 { 620 {
623 .ctl_name = NET_IPV4_IPFRAG_TIME,
624 .procname = "ipfrag_time", 621 .procname = "ipfrag_time",
625 .data = &init_net.ipv4.frags.timeout, 622 .data = &init_net.ipv4.frags.timeout,
626 .maxlen = sizeof(int), 623 .maxlen = sizeof(int),
627 .mode = 0644, 624 .mode = 0644,
628 .proc_handler = proc_dointvec_jiffies, 625 .proc_handler = proc_dointvec_jiffies,
629 .strategy = sysctl_jiffies
630 }, 626 },
631 { } 627 { }
632}; 628};
633 629
634static struct ctl_table ip4_frags_ctl_table[] = { 630static struct ctl_table ip4_frags_ctl_table[] = {
635 { 631 {
636 .ctl_name = NET_IPV4_IPFRAG_SECRET_INTERVAL,
637 .procname = "ipfrag_secret_interval", 632 .procname = "ipfrag_secret_interval",
638 .data = &ip4_frags.secret_interval, 633 .data = &ip4_frags.secret_interval,
639 .maxlen = sizeof(int), 634 .maxlen = sizeof(int),
640 .mode = 0644, 635 .mode = 0644,
641 .proc_handler = proc_dointvec_jiffies, 636 .proc_handler = proc_dointvec_jiffies,
642 .strategy = sysctl_jiffies
643 }, 637 },
644 { 638 {
645 .procname = "ipfrag_max_dist", 639 .procname = "ipfrag_max_dist",
diff --git a/net/ipv4/netfilter.c b/net/ipv4/netfilter.c
index f53cb8df4182..c14623fc4d5e 100644
--- a/net/ipv4/netfilter.c
+++ b/net/ipv4/netfilter.c
@@ -248,9 +248,9 @@ module_exit(ipv4_netfilter_fini);
248 248
249#ifdef CONFIG_SYSCTL 249#ifdef CONFIG_SYSCTL
250struct ctl_path nf_net_ipv4_netfilter_sysctl_path[] = { 250struct ctl_path nf_net_ipv4_netfilter_sysctl_path[] = {
251 { .procname = "net", .ctl_name = CTL_NET, }, 251 { .procname = "net", },
252 { .procname = "ipv4", .ctl_name = NET_IPV4, }, 252 { .procname = "ipv4", },
253 { .procname = "netfilter", .ctl_name = NET_IPV4_NETFILTER, }, 253 { .procname = "netfilter", },
254 { } 254 { }
255}; 255};
256EXPORT_SYMBOL_GPL(nf_net_ipv4_netfilter_sysctl_path); 256EXPORT_SYMBOL_GPL(nf_net_ipv4_netfilter_sysctl_path);
diff --git a/net/ipv4/netfilter/ip_queue.c b/net/ipv4/netfilter/ip_queue.c
index 49ad44712f46..2855f1f38cbc 100644
--- a/net/ipv4/netfilter/ip_queue.c
+++ b/net/ipv4/netfilter/ip_queue.c
@@ -515,14 +515,13 @@ static struct ctl_table_header *ipq_sysctl_header;
515 515
516static ctl_table ipq_table[] = { 516static ctl_table ipq_table[] = {
517 { 517 {
518 .ctl_name = NET_IPQ_QMAX,
519 .procname = NET_IPQ_QMAX_NAME, 518 .procname = NET_IPQ_QMAX_NAME,
520 .data = &queue_maxlen, 519 .data = &queue_maxlen,
521 .maxlen = sizeof(queue_maxlen), 520 .maxlen = sizeof(queue_maxlen),
522 .mode = 0644, 521 .mode = 0644,
523 .proc_handler = proc_dointvec 522 .proc_handler = proc_dointvec
524 }, 523 },
525 { .ctl_name = 0 } 524 { }
526}; 525};
527#endif 526#endif
528 527
diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
index 9cd423ffafa8..d171b123a656 100644
--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
+++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
@@ -195,7 +195,6 @@ static int log_invalid_proto_max = 255;
195 195
196static ctl_table ip_ct_sysctl_table[] = { 196static ctl_table ip_ct_sysctl_table[] = {
197 { 197 {
198 .ctl_name = NET_IPV4_NF_CONNTRACK_MAX,
199 .procname = "ip_conntrack_max", 198 .procname = "ip_conntrack_max",
200 .data = &nf_conntrack_max, 199 .data = &nf_conntrack_max,
201 .maxlen = sizeof(int), 200 .maxlen = sizeof(int),
@@ -203,7 +202,6 @@ static ctl_table ip_ct_sysctl_table[] = {
203 .proc_handler = proc_dointvec, 202 .proc_handler = proc_dointvec,
204 }, 203 },
205 { 204 {
206 .ctl_name = NET_IPV4_NF_CONNTRACK_COUNT,
207 .procname = "ip_conntrack_count", 205 .procname = "ip_conntrack_count",
208 .data = &init_net.ct.count, 206 .data = &init_net.ct.count,
209 .maxlen = sizeof(int), 207 .maxlen = sizeof(int),
@@ -211,7 +209,6 @@ static ctl_table ip_ct_sysctl_table[] = {
211 .proc_handler = proc_dointvec, 209 .proc_handler = proc_dointvec,
212 }, 210 },
213 { 211 {
214 .ctl_name = NET_IPV4_NF_CONNTRACK_BUCKETS,
215 .procname = "ip_conntrack_buckets", 212 .procname = "ip_conntrack_buckets",
216 .data = &nf_conntrack_htable_size, 213 .data = &nf_conntrack_htable_size,
217 .maxlen = sizeof(unsigned int), 214 .maxlen = sizeof(unsigned int),
@@ -219,7 +216,6 @@ static ctl_table ip_ct_sysctl_table[] = {
219 .proc_handler = proc_dointvec, 216 .proc_handler = proc_dointvec,
220 }, 217 },
221 { 218 {
222 .ctl_name = NET_IPV4_NF_CONNTRACK_CHECKSUM,
223 .procname = "ip_conntrack_checksum", 219 .procname = "ip_conntrack_checksum",
224 .data = &init_net.ct.sysctl_checksum, 220 .data = &init_net.ct.sysctl_checksum,
225 .maxlen = sizeof(int), 221 .maxlen = sizeof(int),
@@ -227,19 +223,15 @@ static ctl_table ip_ct_sysctl_table[] = {
227 .proc_handler = proc_dointvec, 223 .proc_handler = proc_dointvec,
228 }, 224 },
229 { 225 {
230 .ctl_name = NET_IPV4_NF_CONNTRACK_LOG_INVALID,
231 .procname = "ip_conntrack_log_invalid", 226 .procname = "ip_conntrack_log_invalid",
232 .data = &init_net.ct.sysctl_log_invalid, 227 .data = &init_net.ct.sysctl_log_invalid,
233 .maxlen = sizeof(unsigned int), 228 .maxlen = sizeof(unsigned int),
234 .mode = 0644, 229 .mode = 0644,
235 .proc_handler = proc_dointvec_minmax, 230 .proc_handler = proc_dointvec_minmax,
236 .strategy = sysctl_intvec,
237 .extra1 = &log_invalid_proto_min, 231 .extra1 = &log_invalid_proto_min,
238 .extra2 = &log_invalid_proto_max, 232 .extra2 = &log_invalid_proto_max,
239 }, 233 },
240 { 234 { }
241 .ctl_name = 0
242 }
243}; 235};
244#endif /* CONFIG_SYSCTL && CONFIG_NF_CONNTRACK_PROC_COMPAT */ 236#endif /* CONFIG_SYSCTL && CONFIG_NF_CONNTRACK_PROC_COMPAT */
245 237
diff --git a/net/ipv4/netfilter/nf_conntrack_proto_icmp.c b/net/ipv4/netfilter/nf_conntrack_proto_icmp.c
index e3dd93623df8..7afd39b5b781 100644
--- a/net/ipv4/netfilter/nf_conntrack_proto_icmp.c
+++ b/net/ipv4/netfilter/nf_conntrack_proto_icmp.c
@@ -270,9 +270,7 @@ static struct ctl_table icmp_sysctl_table[] = {
270 .mode = 0644, 270 .mode = 0644,
271 .proc_handler = proc_dointvec_jiffies, 271 .proc_handler = proc_dointvec_jiffies,
272 }, 272 },
273 { 273 { }
274 .ctl_name = 0
275 }
276}; 274};
277#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT 275#ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
278static struct ctl_table icmp_compat_sysctl_table[] = { 276static struct ctl_table icmp_compat_sysctl_table[] = {
@@ -283,9 +281,7 @@ static struct ctl_table icmp_compat_sysctl_table[] = {
283 .mode = 0644, 281 .mode = 0644,
284 .proc_handler = proc_dointvec_jiffies, 282 .proc_handler = proc_dointvec_jiffies,
285 }, 283 },
286 { 284 { }
287 .ctl_name = 0
288 }
289}; 285};
290#endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */ 286#endif /* CONFIG_NF_CONNTRACK_PROC_COMPAT */
291#endif /* CONFIG_SYSCTL */ 287#endif /* CONFIG_SYSCTL */
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 90cdcfc32937..e446496f564f 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -3058,23 +3058,6 @@ static int ipv4_sysctl_rtcache_flush(ctl_table *__ctl, int write,
3058 return -EINVAL; 3058 return -EINVAL;
3059} 3059}
3060 3060
3061static int ipv4_sysctl_rtcache_flush_strategy(ctl_table *table,
3062 void __user *oldval,
3063 size_t __user *oldlenp,
3064 void __user *newval,
3065 size_t newlen)
3066{
3067 int delay;
3068 struct net *net;
3069 if (newlen != sizeof(int))
3070 return -EINVAL;
3071 if (get_user(delay, (int __user *)newval))
3072 return -EFAULT;
3073 net = (struct net *)table->extra1;
3074 rt_cache_flush(net, delay);
3075 return 0;
3076}
3077
3078static void rt_secret_reschedule(int old) 3061static void rt_secret_reschedule(int old)
3079{ 3062{
3080 struct net *net; 3063 struct net *net;
@@ -3119,23 +3102,8 @@ static int ipv4_sysctl_rt_secret_interval(ctl_table *ctl, int write,
3119 return ret; 3102 return ret;
3120} 3103}
3121 3104
3122static int ipv4_sysctl_rt_secret_interval_strategy(ctl_table *table,
3123 void __user *oldval,
3124 size_t __user *oldlenp,
3125 void __user *newval,
3126 size_t newlen)
3127{
3128 int old = ip_rt_secret_interval;
3129 int ret = sysctl_jiffies(table, oldval, oldlenp, newval, newlen);
3130
3131 rt_secret_reschedule(old);
3132
3133 return ret;
3134}
3135
3136static ctl_table ipv4_route_table[] = { 3105static ctl_table ipv4_route_table[] = {
3137 { 3106 {
3138 .ctl_name = NET_IPV4_ROUTE_GC_THRESH,
3139 .procname = "gc_thresh", 3107 .procname = "gc_thresh",
3140 .data = &ipv4_dst_ops.gc_thresh, 3108 .data = &ipv4_dst_ops.gc_thresh,
3141 .maxlen = sizeof(int), 3109 .maxlen = sizeof(int),
@@ -3143,7 +3111,6 @@ static ctl_table ipv4_route_table[] = {
3143 .proc_handler = proc_dointvec, 3111 .proc_handler = proc_dointvec,
3144 }, 3112 },
3145 { 3113 {
3146 .ctl_name = NET_IPV4_ROUTE_MAX_SIZE,
3147 .procname = "max_size", 3114 .procname = "max_size",
3148 .data = &ip_rt_max_size, 3115 .data = &ip_rt_max_size,
3149 .maxlen = sizeof(int), 3116 .maxlen = sizeof(int),
@@ -3153,43 +3120,34 @@ static ctl_table ipv4_route_table[] = {
3153 { 3120 {
3154 /* Deprecated. Use gc_min_interval_ms */ 3121 /* Deprecated. Use gc_min_interval_ms */
3155 3122
3156 .ctl_name = NET_IPV4_ROUTE_GC_MIN_INTERVAL,
3157 .procname = "gc_min_interval", 3123 .procname = "gc_min_interval",
3158 .data = &ip_rt_gc_min_interval, 3124 .data = &ip_rt_gc_min_interval,
3159 .maxlen = sizeof(int), 3125 .maxlen = sizeof(int),
3160 .mode = 0644, 3126 .mode = 0644,
3161 .proc_handler = proc_dointvec_jiffies, 3127 .proc_handler = proc_dointvec_jiffies,
3162 .strategy = sysctl_jiffies,
3163 }, 3128 },
3164 { 3129 {
3165 .ctl_name = NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS,
3166 .procname = "gc_min_interval_ms", 3130 .procname = "gc_min_interval_ms",
3167 .data = &ip_rt_gc_min_interval, 3131 .data = &ip_rt_gc_min_interval,
3168 .maxlen = sizeof(int), 3132 .maxlen = sizeof(int),
3169 .mode = 0644, 3133 .mode = 0644,
3170 .proc_handler = proc_dointvec_ms_jiffies, 3134 .proc_handler = proc_dointvec_ms_jiffies,
3171 .strategy = sysctl_ms_jiffies,
3172 }, 3135 },
3173 { 3136 {
3174 .ctl_name = NET_IPV4_ROUTE_GC_TIMEOUT,
3175 .procname = "gc_timeout", 3137 .procname = "gc_timeout",
3176 .data = &ip_rt_gc_timeout, 3138 .data = &ip_rt_gc_timeout,
3177 .maxlen = sizeof(int), 3139 .maxlen = sizeof(int),
3178 .mode = 0644, 3140 .mode = 0644,
3179 .proc_handler = proc_dointvec_jiffies, 3141 .proc_handler = proc_dointvec_jiffies,
3180 .strategy = sysctl_jiffies,
3181 }, 3142 },
3182 { 3143 {
3183 .ctl_name = NET_IPV4_ROUTE_GC_INTERVAL,
3184 .procname = "gc_interval", 3144 .procname = "gc_interval",
3185 .data = &ip_rt_gc_interval, 3145 .data = &ip_rt_gc_interval,
3186 .maxlen = sizeof(int), 3146 .maxlen = sizeof(int),
3187 .mode = 0644, 3147 .mode = 0644,
3188 .proc_handler = proc_dointvec_jiffies, 3148 .proc_handler = proc_dointvec_jiffies,
3189 .strategy = sysctl_jiffies,
3190 }, 3149 },
3191 { 3150 {
3192 .ctl_name = NET_IPV4_ROUTE_REDIRECT_LOAD,
3193 .procname = "redirect_load", 3151 .procname = "redirect_load",
3194 .data = &ip_rt_redirect_load, 3152 .data = &ip_rt_redirect_load,
3195 .maxlen = sizeof(int), 3153 .maxlen = sizeof(int),
@@ -3197,7 +3155,6 @@ static ctl_table ipv4_route_table[] = {
3197 .proc_handler = proc_dointvec, 3155 .proc_handler = proc_dointvec,
3198 }, 3156 },
3199 { 3157 {
3200 .ctl_name = NET_IPV4_ROUTE_REDIRECT_NUMBER,
3201 .procname = "redirect_number", 3158 .procname = "redirect_number",
3202 .data = &ip_rt_redirect_number, 3159 .data = &ip_rt_redirect_number,
3203 .maxlen = sizeof(int), 3160 .maxlen = sizeof(int),
@@ -3205,7 +3162,6 @@ static ctl_table ipv4_route_table[] = {
3205 .proc_handler = proc_dointvec, 3162 .proc_handler = proc_dointvec,
3206 }, 3163 },
3207 { 3164 {
3208 .ctl_name = NET_IPV4_ROUTE_REDIRECT_SILENCE,
3209 .procname = "redirect_silence", 3165 .procname = "redirect_silence",
3210 .data = &ip_rt_redirect_silence, 3166 .data = &ip_rt_redirect_silence,
3211 .maxlen = sizeof(int), 3167 .maxlen = sizeof(int),
@@ -3213,7 +3169,6 @@ static ctl_table ipv4_route_table[] = {
3213 .proc_handler = proc_dointvec, 3169 .proc_handler = proc_dointvec,
3214 }, 3170 },
3215 { 3171 {
3216 .ctl_name = NET_IPV4_ROUTE_ERROR_COST,
3217 .procname = "error_cost", 3172 .procname = "error_cost",
3218 .data = &ip_rt_error_cost, 3173 .data = &ip_rt_error_cost,
3219 .maxlen = sizeof(int), 3174 .maxlen = sizeof(int),
@@ -3221,7 +3176,6 @@ static ctl_table ipv4_route_table[] = {
3221 .proc_handler = proc_dointvec, 3176 .proc_handler = proc_dointvec,
3222 }, 3177 },
3223 { 3178 {
3224 .ctl_name = NET_IPV4_ROUTE_ERROR_BURST,
3225 .procname = "error_burst", 3179 .procname = "error_burst",
3226 .data = &ip_rt_error_burst, 3180 .data = &ip_rt_error_burst,
3227 .maxlen = sizeof(int), 3181 .maxlen = sizeof(int),
@@ -3229,7 +3183,6 @@ static ctl_table ipv4_route_table[] = {
3229 .proc_handler = proc_dointvec, 3183 .proc_handler = proc_dointvec,
3230 }, 3184 },
3231 { 3185 {
3232 .ctl_name = NET_IPV4_ROUTE_GC_ELASTICITY,
3233 .procname = "gc_elasticity", 3186 .procname = "gc_elasticity",
3234 .data = &ip_rt_gc_elasticity, 3187 .data = &ip_rt_gc_elasticity,
3235 .maxlen = sizeof(int), 3188 .maxlen = sizeof(int),
@@ -3237,16 +3190,13 @@ static ctl_table ipv4_route_table[] = {
3237 .proc_handler = proc_dointvec, 3190 .proc_handler = proc_dointvec,
3238 }, 3191 },
3239 { 3192 {
3240 .ctl_name = NET_IPV4_ROUTE_MTU_EXPIRES,
3241 .procname = "mtu_expires", 3193 .procname = "mtu_expires",
3242 .data = &ip_rt_mtu_expires, 3194 .data = &ip_rt_mtu_expires,
3243 .maxlen = sizeof(int), 3195 .maxlen = sizeof(int),
3244 .mode = 0644, 3196 .mode = 0644,
3245 .proc_handler = proc_dointvec_jiffies, 3197 .proc_handler = proc_dointvec_jiffies,
3246 .strategy = sysctl_jiffies,
3247 }, 3198 },
3248 { 3199 {
3249 .ctl_name = NET_IPV4_ROUTE_MIN_PMTU,
3250 .procname = "min_pmtu", 3200 .procname = "min_pmtu",
3251 .data = &ip_rt_min_pmtu, 3201 .data = &ip_rt_min_pmtu,
3252 .maxlen = sizeof(int), 3202 .maxlen = sizeof(int),
@@ -3254,7 +3204,6 @@ static ctl_table ipv4_route_table[] = {
3254 .proc_handler = proc_dointvec, 3204 .proc_handler = proc_dointvec,
3255 }, 3205 },
3256 { 3206 {
3257 .ctl_name = NET_IPV4_ROUTE_MIN_ADVMSS,
3258 .procname = "min_adv_mss", 3207 .procname = "min_adv_mss",
3259 .data = &ip_rt_min_advmss, 3208 .data = &ip_rt_min_advmss,
3260 .maxlen = sizeof(int), 3209 .maxlen = sizeof(int),
@@ -3262,50 +3211,46 @@ static ctl_table ipv4_route_table[] = {
3262 .proc_handler = proc_dointvec, 3211 .proc_handler = proc_dointvec,
3263 }, 3212 },
3264 { 3213 {
3265 .ctl_name = NET_IPV4_ROUTE_SECRET_INTERVAL,
3266 .procname = "secret_interval", 3214 .procname = "secret_interval",
3267 .data = &ip_rt_secret_interval, 3215 .data = &ip_rt_secret_interval,
3268 .maxlen = sizeof(int), 3216 .maxlen = sizeof(int),
3269 .mode = 0644, 3217 .mode = 0644,
3270 .proc_handler = ipv4_sysctl_rt_secret_interval, 3218 .proc_handler = ipv4_sysctl_rt_secret_interval,
3271 .strategy = ipv4_sysctl_rt_secret_interval_strategy,
3272 }, 3219 },
3273 { .ctl_name = 0 } 3220 { }
3274}; 3221};
3275 3222
3276static struct ctl_table empty[1]; 3223static struct ctl_table empty[1];
3277 3224
3278static struct ctl_table ipv4_skeleton[] = 3225static struct ctl_table ipv4_skeleton[] =
3279{ 3226{
3280 { .procname = "route", .ctl_name = NET_IPV4_ROUTE, 3227 { .procname = "route",
3281 .mode = 0555, .child = ipv4_route_table}, 3228 .mode = 0555, .child = ipv4_route_table},
3282 { .procname = "neigh", .ctl_name = NET_IPV4_NEIGH, 3229 { .procname = "neigh",
3283 .mode = 0555, .child = empty}, 3230 .mode = 0555, .child = empty},
3284 { } 3231 { }
3285}; 3232};
3286 3233
3287static __net_initdata struct ctl_path ipv4_path[] = { 3234static __net_initdata struct ctl_path ipv4_path[] = {
3288 { .procname = "net", .ctl_name = CTL_NET, }, 3235 { .procname = "net", },
3289 { .procname = "ipv4", .ctl_name = NET_IPV4, }, 3236 { .procname = "ipv4", },
3290 { }, 3237 { },
3291}; 3238};
3292 3239
3293static struct ctl_table ipv4_route_flush_table[] = { 3240static struct ctl_table ipv4_route_flush_table[] = {
3294 { 3241 {
3295 .ctl_name = NET_IPV4_ROUTE_FLUSH,
3296 .procname = "flush", 3242 .procname = "flush",
3297 .maxlen = sizeof(int), 3243 .maxlen = sizeof(int),
3298 .mode = 0200, 3244 .mode = 0200,
3299 .proc_handler = ipv4_sysctl_rtcache_flush, 3245 .proc_handler = ipv4_sysctl_rtcache_flush,
3300 .strategy = ipv4_sysctl_rtcache_flush_strategy,
3301 }, 3246 },
3302 { .ctl_name = 0 }, 3247 { },
3303}; 3248};
3304 3249
3305static __net_initdata struct ctl_path ipv4_route_path[] = { 3250static __net_initdata struct ctl_path ipv4_route_path[] = {
3306 { .procname = "net", .ctl_name = CTL_NET, }, 3251 { .procname = "net", },
3307 { .procname = "ipv4", .ctl_name = NET_IPV4, }, 3252 { .procname = "ipv4", },
3308 { .procname = "route", .ctl_name = NET_IPV4_ROUTE, }, 3253 { .procname = "route", },
3309 { }, 3254 { },
3310}; 3255};
3311 3256
diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
index 13f7ab6ad6a0..7e3712ce3994 100644
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -63,34 +63,6 @@ static int ipv4_local_port_range(ctl_table *table, int write,
63 return ret; 63 return ret;
64} 64}
65 65
66/* Validate changes from sysctl interface. */
67static int ipv4_sysctl_local_port_range(ctl_table *table,
68 void __user *oldval,
69 size_t __user *oldlenp,
70 void __user *newval, size_t newlen)
71{
72 int ret;
73 int range[2];
74 ctl_table tmp = {
75 .data = &range,
76 .maxlen = sizeof(range),
77 .mode = table->mode,
78 .extra1 = &ip_local_port_range_min,
79 .extra2 = &ip_local_port_range_max,
80 };
81
82 inet_get_local_port_range(range, range + 1);
83 ret = sysctl_intvec(&tmp, oldval, oldlenp, newval, newlen);
84 if (ret == 0 && newval && newlen) {
85 if (range[1] < range[0])
86 ret = -EINVAL;
87 else
88 set_local_port_range(range);
89 }
90 return ret;
91}
92
93
94static int proc_tcp_congestion_control(ctl_table *ctl, int write, 66static int proc_tcp_congestion_control(ctl_table *ctl, int write,
95 void __user *buffer, size_t *lenp, loff_t *ppos) 67 void __user *buffer, size_t *lenp, loff_t *ppos)
96{ 68{
@@ -109,25 +81,6 @@ static int proc_tcp_congestion_control(ctl_table *ctl, int write,
109 return ret; 81 return ret;
110} 82}
111 83
112static int sysctl_tcp_congestion_control(ctl_table *table,
113 void __user *oldval,
114 size_t __user *oldlenp,
115 void __user *newval, size_t newlen)
116{
117 char val[TCP_CA_NAME_MAX];
118 ctl_table tbl = {
119 .data = val,
120 .maxlen = TCP_CA_NAME_MAX,
121 };
122 int ret;
123
124 tcp_get_default_congestion_control(val);
125 ret = sysctl_string(&tbl, oldval, oldlenp, newval, newlen);
126 if (ret == 1 && newval && newlen)
127 ret = tcp_set_default_congestion_control(val);
128 return ret;
129}
130
131static int proc_tcp_available_congestion_control(ctl_table *ctl, 84static int proc_tcp_available_congestion_control(ctl_table *ctl,
132 int write, 85 int write,
133 void __user *buffer, size_t *lenp, 86 void __user *buffer, size_t *lenp,
@@ -165,32 +118,8 @@ static int proc_allowed_congestion_control(ctl_table *ctl,
165 return ret; 118 return ret;
166} 119}
167 120
168static int strategy_allowed_congestion_control(ctl_table *table,
169 void __user *oldval,
170 size_t __user *oldlenp,
171 void __user *newval,
172 size_t newlen)
173{
174 ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX };
175 int ret;
176
177 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
178 if (!tbl.data)
179 return -ENOMEM;
180
181 tcp_get_available_congestion_control(tbl.data, tbl.maxlen);
182 ret = sysctl_string(&tbl, oldval, oldlenp, newval, newlen);
183 if (ret == 1 && newval && newlen)
184 ret = tcp_set_allowed_congestion_control(tbl.data);
185 kfree(tbl.data);
186
187 return ret;
188
189}
190
191static struct ctl_table ipv4_table[] = { 121static struct ctl_table ipv4_table[] = {
192 { 122 {
193 .ctl_name = NET_IPV4_TCP_TIMESTAMPS,
194 .procname = "tcp_timestamps", 123 .procname = "tcp_timestamps",
195 .data = &sysctl_tcp_timestamps, 124 .data = &sysctl_tcp_timestamps,
196 .maxlen = sizeof(int), 125 .maxlen = sizeof(int),
@@ -198,7 +127,6 @@ static struct ctl_table ipv4_table[] = {
198 .proc_handler = proc_dointvec 127 .proc_handler = proc_dointvec
199 }, 128 },
200 { 129 {
201 .ctl_name = NET_IPV4_TCP_WINDOW_SCALING,
202 .procname = "tcp_window_scaling", 130 .procname = "tcp_window_scaling",
203 .data = &sysctl_tcp_window_scaling, 131 .data = &sysctl_tcp_window_scaling,
204 .maxlen = sizeof(int), 132 .maxlen = sizeof(int),
@@ -206,7 +134,6 @@ static struct ctl_table ipv4_table[] = {
206 .proc_handler = proc_dointvec 134 .proc_handler = proc_dointvec
207 }, 135 },
208 { 136 {
209 .ctl_name = NET_IPV4_TCP_SACK,
210 .procname = "tcp_sack", 137 .procname = "tcp_sack",
211 .data = &sysctl_tcp_sack, 138 .data = &sysctl_tcp_sack,
212 .maxlen = sizeof(int), 139 .maxlen = sizeof(int),
@@ -214,7 +141,6 @@ static struct ctl_table ipv4_table[] = {
214 .proc_handler = proc_dointvec 141 .proc_handler = proc_dointvec
215 }, 142 },
216 { 143 {
217 .ctl_name = NET_IPV4_TCP_RETRANS_COLLAPSE,
218 .procname = "tcp_retrans_collapse", 144 .procname = "tcp_retrans_collapse",
219 .data = &sysctl_tcp_retrans_collapse, 145 .data = &sysctl_tcp_retrans_collapse,
220 .maxlen = sizeof(int), 146 .maxlen = sizeof(int),
@@ -222,17 +148,14 @@ static struct ctl_table ipv4_table[] = {
222 .proc_handler = proc_dointvec 148 .proc_handler = proc_dointvec
223 }, 149 },
224 { 150 {
225 .ctl_name = NET_IPV4_DEFAULT_TTL,
226 .procname = "ip_default_ttl", 151 .procname = "ip_default_ttl",
227 .data = &sysctl_ip_default_ttl, 152 .data = &sysctl_ip_default_ttl,
228 .maxlen = sizeof(int), 153 .maxlen = sizeof(int),
229 .mode = 0644, 154 .mode = 0644,
230 .proc_handler = ipv4_doint_and_flush, 155 .proc_handler = ipv4_doint_and_flush,
231 .strategy = ipv4_doint_and_flush_strategy,
232 .extra2 = &init_net, 156 .extra2 = &init_net,
233 }, 157 },
234 { 158 {
235 .ctl_name = NET_IPV4_NO_PMTU_DISC,
236 .procname = "ip_no_pmtu_disc", 159 .procname = "ip_no_pmtu_disc",
237 .data = &ipv4_config.no_pmtu_disc, 160 .data = &ipv4_config.no_pmtu_disc,
238 .maxlen = sizeof(int), 161 .maxlen = sizeof(int),
@@ -240,7 +163,6 @@ static struct ctl_table ipv4_table[] = {
240 .proc_handler = proc_dointvec 163 .proc_handler = proc_dointvec
241 }, 164 },
242 { 165 {
243 .ctl_name = NET_IPV4_NONLOCAL_BIND,
244 .procname = "ip_nonlocal_bind", 166 .procname = "ip_nonlocal_bind",
245 .data = &sysctl_ip_nonlocal_bind, 167 .data = &sysctl_ip_nonlocal_bind,
246 .maxlen = sizeof(int), 168 .maxlen = sizeof(int),
@@ -248,7 +170,6 @@ static struct ctl_table ipv4_table[] = {
248 .proc_handler = proc_dointvec 170 .proc_handler = proc_dointvec
249 }, 171 },
250 { 172 {
251 .ctl_name = NET_IPV4_TCP_SYN_RETRIES,
252 .procname = "tcp_syn_retries", 173 .procname = "tcp_syn_retries",
253 .data = &sysctl_tcp_syn_retries, 174 .data = &sysctl_tcp_syn_retries,
254 .maxlen = sizeof(int), 175 .maxlen = sizeof(int),
@@ -256,7 +177,6 @@ static struct ctl_table ipv4_table[] = {
256 .proc_handler = proc_dointvec 177 .proc_handler = proc_dointvec
257 }, 178 },
258 { 179 {
259 .ctl_name = NET_TCP_SYNACK_RETRIES,
260 .procname = "tcp_synack_retries", 180 .procname = "tcp_synack_retries",
261 .data = &sysctl_tcp_synack_retries, 181 .data = &sysctl_tcp_synack_retries,
262 .maxlen = sizeof(int), 182 .maxlen = sizeof(int),
@@ -264,7 +184,6 @@ static struct ctl_table ipv4_table[] = {
264 .proc_handler = proc_dointvec 184 .proc_handler = proc_dointvec
265 }, 185 },
266 { 186 {
267 .ctl_name = NET_TCP_MAX_ORPHANS,
268 .procname = "tcp_max_orphans", 187 .procname = "tcp_max_orphans",
269 .data = &sysctl_tcp_max_orphans, 188 .data = &sysctl_tcp_max_orphans,
270 .maxlen = sizeof(int), 189 .maxlen = sizeof(int),
@@ -272,7 +191,6 @@ static struct ctl_table ipv4_table[] = {
272 .proc_handler = proc_dointvec 191 .proc_handler = proc_dointvec
273 }, 192 },
274 { 193 {
275 .ctl_name = NET_TCP_MAX_TW_BUCKETS,
276 .procname = "tcp_max_tw_buckets", 194 .procname = "tcp_max_tw_buckets",
277 .data = &tcp_death_row.sysctl_max_tw_buckets, 195 .data = &tcp_death_row.sysctl_max_tw_buckets,
278 .maxlen = sizeof(int), 196 .maxlen = sizeof(int),
@@ -280,7 +198,6 @@ static struct ctl_table ipv4_table[] = {
280 .proc_handler = proc_dointvec 198 .proc_handler = proc_dointvec
281 }, 199 },
282 { 200 {
283 .ctl_name = NET_IPV4_DYNADDR,
284 .procname = "ip_dynaddr", 201 .procname = "ip_dynaddr",
285 .data = &sysctl_ip_dynaddr, 202 .data = &sysctl_ip_dynaddr,
286 .maxlen = sizeof(int), 203 .maxlen = sizeof(int),
@@ -288,16 +205,13 @@ static struct ctl_table ipv4_table[] = {
288 .proc_handler = proc_dointvec 205 .proc_handler = proc_dointvec
289 }, 206 },
290 { 207 {
291 .ctl_name = NET_IPV4_TCP_KEEPALIVE_TIME,
292 .procname = "tcp_keepalive_time", 208 .procname = "tcp_keepalive_time",
293 .data = &sysctl_tcp_keepalive_time, 209 .data = &sysctl_tcp_keepalive_time,
294 .maxlen = sizeof(int), 210 .maxlen = sizeof(int),
295 .mode = 0644, 211 .mode = 0644,
296 .proc_handler = proc_dointvec_jiffies, 212 .proc_handler = proc_dointvec_jiffies,
297 .strategy = sysctl_jiffies
298 }, 213 },
299 { 214 {
300 .ctl_name = NET_IPV4_TCP_KEEPALIVE_PROBES,
301 .procname = "tcp_keepalive_probes", 215 .procname = "tcp_keepalive_probes",
302 .data = &sysctl_tcp_keepalive_probes, 216 .data = &sysctl_tcp_keepalive_probes,
303 .maxlen = sizeof(int), 217 .maxlen = sizeof(int),
@@ -305,26 +219,21 @@ static struct ctl_table ipv4_table[] = {
305 .proc_handler = proc_dointvec 219 .proc_handler = proc_dointvec
306 }, 220 },
307 { 221 {
308 .ctl_name = NET_IPV4_TCP_KEEPALIVE_INTVL,
309 .procname = "tcp_keepalive_intvl", 222 .procname = "tcp_keepalive_intvl",
310 .data = &sysctl_tcp_keepalive_intvl, 223 .data = &sysctl_tcp_keepalive_intvl,
311 .maxlen = sizeof(int), 224 .maxlen = sizeof(int),
312 .mode = 0644, 225 .mode = 0644,
313 .proc_handler = proc_dointvec_jiffies, 226 .proc_handler = proc_dointvec_jiffies,
314 .strategy = sysctl_jiffies
315 }, 227 },
316 { 228 {
317 .ctl_name = NET_IPV4_TCP_RETRIES1,
318 .procname = "tcp_retries1", 229 .procname = "tcp_retries1",
319 .data = &sysctl_tcp_retries1, 230 .data = &sysctl_tcp_retries1,
320 .maxlen = sizeof(int), 231 .maxlen = sizeof(int),
321 .mode = 0644, 232 .mode = 0644,
322 .proc_handler = proc_dointvec_minmax, 233 .proc_handler = proc_dointvec_minmax,
323 .strategy = sysctl_intvec,
324 .extra2 = &tcp_retr1_max 234 .extra2 = &tcp_retr1_max
325 }, 235 },
326 { 236 {
327 .ctl_name = NET_IPV4_TCP_RETRIES2,
328 .procname = "tcp_retries2", 237 .procname = "tcp_retries2",
329 .data = &sysctl_tcp_retries2, 238 .data = &sysctl_tcp_retries2,
330 .maxlen = sizeof(int), 239 .maxlen = sizeof(int),
@@ -332,17 +241,14 @@ static struct ctl_table ipv4_table[] = {
332 .proc_handler = proc_dointvec 241 .proc_handler = proc_dointvec
333 }, 242 },
334 { 243 {
335 .ctl_name = NET_IPV4_TCP_FIN_TIMEOUT,
336 .procname = "tcp_fin_timeout", 244 .procname = "tcp_fin_timeout",
337 .data = &sysctl_tcp_fin_timeout, 245 .data = &sysctl_tcp_fin_timeout,
338 .maxlen = sizeof(int), 246 .maxlen = sizeof(int),
339 .mode = 0644, 247 .mode = 0644,
340 .proc_handler = proc_dointvec_jiffies, 248 .proc_handler = proc_dointvec_jiffies,
341 .strategy = sysctl_jiffies
342 }, 249 },
343#ifdef CONFIG_SYN_COOKIES 250#ifdef CONFIG_SYN_COOKIES
344 { 251 {
345 .ctl_name = NET_TCP_SYNCOOKIES,
346 .procname = "tcp_syncookies", 252 .procname = "tcp_syncookies",
347 .data = &sysctl_tcp_syncookies, 253 .data = &sysctl_tcp_syncookies,
348 .maxlen = sizeof(int), 254 .maxlen = sizeof(int),
@@ -351,7 +257,6 @@ static struct ctl_table ipv4_table[] = {
351 }, 257 },
352#endif 258#endif
353 { 259 {
354 .ctl_name = NET_TCP_TW_RECYCLE,
355 .procname = "tcp_tw_recycle", 260 .procname = "tcp_tw_recycle",
356 .data = &tcp_death_row.sysctl_tw_recycle, 261 .data = &tcp_death_row.sysctl_tw_recycle,
357 .maxlen = sizeof(int), 262 .maxlen = sizeof(int),
@@ -359,7 +264,6 @@ static struct ctl_table ipv4_table[] = {
359 .proc_handler = proc_dointvec 264 .proc_handler = proc_dointvec
360 }, 265 },
361 { 266 {
362 .ctl_name = NET_TCP_ABORT_ON_OVERFLOW,
363 .procname = "tcp_abort_on_overflow", 267 .procname = "tcp_abort_on_overflow",
364 .data = &sysctl_tcp_abort_on_overflow, 268 .data = &sysctl_tcp_abort_on_overflow,
365 .maxlen = sizeof(int), 269 .maxlen = sizeof(int),
@@ -367,7 +271,6 @@ static struct ctl_table ipv4_table[] = {
367 .proc_handler = proc_dointvec 271 .proc_handler = proc_dointvec
368 }, 272 },
369 { 273 {
370 .ctl_name = NET_TCP_STDURG,
371 .procname = "tcp_stdurg", 274 .procname = "tcp_stdurg",
372 .data = &sysctl_tcp_stdurg, 275 .data = &sysctl_tcp_stdurg,
373 .maxlen = sizeof(int), 276 .maxlen = sizeof(int),
@@ -375,7 +278,6 @@ static struct ctl_table ipv4_table[] = {
375 .proc_handler = proc_dointvec 278 .proc_handler = proc_dointvec
376 }, 279 },
377 { 280 {
378 .ctl_name = NET_TCP_RFC1337,
379 .procname = "tcp_rfc1337", 281 .procname = "tcp_rfc1337",
380 .data = &sysctl_tcp_rfc1337, 282 .data = &sysctl_tcp_rfc1337,
381 .maxlen = sizeof(int), 283 .maxlen = sizeof(int),
@@ -383,7 +285,6 @@ static struct ctl_table ipv4_table[] = {
383 .proc_handler = proc_dointvec 285 .proc_handler = proc_dointvec
384 }, 286 },
385 { 287 {
386 .ctl_name = NET_TCP_MAX_SYN_BACKLOG,
387 .procname = "tcp_max_syn_backlog", 288 .procname = "tcp_max_syn_backlog",
388 .data = &sysctl_max_syn_backlog, 289 .data = &sysctl_max_syn_backlog,
389 .maxlen = sizeof(int), 290 .maxlen = sizeof(int),
@@ -391,17 +292,14 @@ static struct ctl_table ipv4_table[] = {
391 .proc_handler = proc_dointvec 292 .proc_handler = proc_dointvec
392 }, 293 },
393 { 294 {
394 .ctl_name = NET_IPV4_LOCAL_PORT_RANGE,
395 .procname = "ip_local_port_range", 295 .procname = "ip_local_port_range",
396 .data = &sysctl_local_ports.range, 296 .data = &sysctl_local_ports.range,
397 .maxlen = sizeof(sysctl_local_ports.range), 297 .maxlen = sizeof(sysctl_local_ports.range),
398 .mode = 0644, 298 .mode = 0644,
399 .proc_handler = ipv4_local_port_range, 299 .proc_handler = ipv4_local_port_range,
400 .strategy = ipv4_sysctl_local_port_range,
401 }, 300 },
402#ifdef CONFIG_IP_MULTICAST 301#ifdef CONFIG_IP_MULTICAST
403 { 302 {
404 .ctl_name = NET_IPV4_IGMP_MAX_MEMBERSHIPS,
405 .procname = "igmp_max_memberships", 303 .procname = "igmp_max_memberships",
406 .data = &sysctl_igmp_max_memberships, 304 .data = &sysctl_igmp_max_memberships,
407 .maxlen = sizeof(int), 305 .maxlen = sizeof(int),
@@ -411,7 +309,6 @@ static struct ctl_table ipv4_table[] = {
411 309
412#endif 310#endif
413 { 311 {
414 .ctl_name = NET_IPV4_IGMP_MAX_MSF,
415 .procname = "igmp_max_msf", 312 .procname = "igmp_max_msf",
416 .data = &sysctl_igmp_max_msf, 313 .data = &sysctl_igmp_max_msf,
417 .maxlen = sizeof(int), 314 .maxlen = sizeof(int),
@@ -419,7 +316,6 @@ static struct ctl_table ipv4_table[] = {
419 .proc_handler = proc_dointvec 316 .proc_handler = proc_dointvec
420 }, 317 },
421 { 318 {
422 .ctl_name = NET_IPV4_INET_PEER_THRESHOLD,
423 .procname = "inet_peer_threshold", 319 .procname = "inet_peer_threshold",
424 .data = &inet_peer_threshold, 320 .data = &inet_peer_threshold,
425 .maxlen = sizeof(int), 321 .maxlen = sizeof(int),
@@ -427,43 +323,34 @@ static struct ctl_table ipv4_table[] = {
427 .proc_handler = proc_dointvec 323 .proc_handler = proc_dointvec
428 }, 324 },
429 { 325 {
430 .ctl_name = NET_IPV4_INET_PEER_MINTTL,
431 .procname = "inet_peer_minttl", 326 .procname = "inet_peer_minttl",
432 .data = &inet_peer_minttl, 327 .data = &inet_peer_minttl,
433 .maxlen = sizeof(int), 328 .maxlen = sizeof(int),
434 .mode = 0644, 329 .mode = 0644,
435 .proc_handler = proc_dointvec_jiffies, 330 .proc_handler = proc_dointvec_jiffies,
436 .strategy = sysctl_jiffies
437 }, 331 },
438 { 332 {
439 .ctl_name = NET_IPV4_INET_PEER_MAXTTL,
440 .procname = "inet_peer_maxttl", 333 .procname = "inet_peer_maxttl",
441 .data = &inet_peer_maxttl, 334 .data = &inet_peer_maxttl,
442 .maxlen = sizeof(int), 335 .maxlen = sizeof(int),
443 .mode = 0644, 336 .mode = 0644,
444 .proc_handler = proc_dointvec_jiffies, 337 .proc_handler = proc_dointvec_jiffies,
445 .strategy = sysctl_jiffies
446 }, 338 },
447 { 339 {
448 .ctl_name = NET_IPV4_INET_PEER_GC_MINTIME,
449 .procname = "inet_peer_gc_mintime", 340 .procname = "inet_peer_gc_mintime",
450 .data = &inet_peer_gc_mintime, 341 .data = &inet_peer_gc_mintime,
451 .maxlen = sizeof(int), 342 .maxlen = sizeof(int),
452 .mode = 0644, 343 .mode = 0644,
453 .proc_handler = proc_dointvec_jiffies, 344 .proc_handler = proc_dointvec_jiffies,
454 .strategy = sysctl_jiffies
455 }, 345 },
456 { 346 {
457 .ctl_name = NET_IPV4_INET_PEER_GC_MAXTIME,
458 .procname = "inet_peer_gc_maxtime", 347 .procname = "inet_peer_gc_maxtime",
459 .data = &inet_peer_gc_maxtime, 348 .data = &inet_peer_gc_maxtime,
460 .maxlen = sizeof(int), 349 .maxlen = sizeof(int),
461 .mode = 0644, 350 .mode = 0644,
462 .proc_handler = proc_dointvec_jiffies, 351 .proc_handler = proc_dointvec_jiffies,
463 .strategy = sysctl_jiffies
464 }, 352 },
465 { 353 {
466 .ctl_name = NET_TCP_ORPHAN_RETRIES,
467 .procname = "tcp_orphan_retries", 354 .procname = "tcp_orphan_retries",
468 .data = &sysctl_tcp_orphan_retries, 355 .data = &sysctl_tcp_orphan_retries,
469 .maxlen = sizeof(int), 356 .maxlen = sizeof(int),
@@ -471,7 +358,6 @@ static struct ctl_table ipv4_table[] = {
471 .proc_handler = proc_dointvec 358 .proc_handler = proc_dointvec
472 }, 359 },
473 { 360 {
474 .ctl_name = NET_TCP_FACK,
475 .procname = "tcp_fack", 361 .procname = "tcp_fack",
476 .data = &sysctl_tcp_fack, 362 .data = &sysctl_tcp_fack,
477 .maxlen = sizeof(int), 363 .maxlen = sizeof(int),
@@ -479,7 +365,6 @@ static struct ctl_table ipv4_table[] = {
479 .proc_handler = proc_dointvec 365 .proc_handler = proc_dointvec
480 }, 366 },
481 { 367 {
482 .ctl_name = NET_TCP_REORDERING,
483 .procname = "tcp_reordering", 368 .procname = "tcp_reordering",
484 .data = &sysctl_tcp_reordering, 369 .data = &sysctl_tcp_reordering,
485 .maxlen = sizeof(int), 370 .maxlen = sizeof(int),
@@ -487,7 +372,6 @@ static struct ctl_table ipv4_table[] = {
487 .proc_handler = proc_dointvec 372 .proc_handler = proc_dointvec
488 }, 373 },
489 { 374 {
490 .ctl_name = NET_TCP_ECN,
491 .procname = "tcp_ecn", 375 .procname = "tcp_ecn",
492 .data = &sysctl_tcp_ecn, 376 .data = &sysctl_tcp_ecn,
493 .maxlen = sizeof(int), 377 .maxlen = sizeof(int),
@@ -495,7 +379,6 @@ static struct ctl_table ipv4_table[] = {
495 .proc_handler = proc_dointvec 379 .proc_handler = proc_dointvec
496 }, 380 },
497 { 381 {
498 .ctl_name = NET_TCP_DSACK,
499 .procname = "tcp_dsack", 382 .procname = "tcp_dsack",
500 .data = &sysctl_tcp_dsack, 383 .data = &sysctl_tcp_dsack,
501 .maxlen = sizeof(int), 384 .maxlen = sizeof(int),
@@ -503,7 +386,6 @@ static struct ctl_table ipv4_table[] = {
503 .proc_handler = proc_dointvec 386 .proc_handler = proc_dointvec
504 }, 387 },
505 { 388 {
506 .ctl_name = NET_TCP_MEM,
507 .procname = "tcp_mem", 389 .procname = "tcp_mem",
508 .data = &sysctl_tcp_mem, 390 .data = &sysctl_tcp_mem,
509 .maxlen = sizeof(sysctl_tcp_mem), 391 .maxlen = sizeof(sysctl_tcp_mem),
@@ -511,7 +393,6 @@ static struct ctl_table ipv4_table[] = {
511 .proc_handler = proc_dointvec 393 .proc_handler = proc_dointvec
512 }, 394 },
513 { 395 {
514 .ctl_name = NET_TCP_WMEM,
515 .procname = "tcp_wmem", 396 .procname = "tcp_wmem",
516 .data = &sysctl_tcp_wmem, 397 .data = &sysctl_tcp_wmem,
517 .maxlen = sizeof(sysctl_tcp_wmem), 398 .maxlen = sizeof(sysctl_tcp_wmem),
@@ -519,7 +400,6 @@ static struct ctl_table ipv4_table[] = {
519 .proc_handler = proc_dointvec 400 .proc_handler = proc_dointvec
520 }, 401 },
521 { 402 {
522 .ctl_name = NET_TCP_RMEM,
523 .procname = "tcp_rmem", 403 .procname = "tcp_rmem",
524 .data = &sysctl_tcp_rmem, 404 .data = &sysctl_tcp_rmem,
525 .maxlen = sizeof(sysctl_tcp_rmem), 405 .maxlen = sizeof(sysctl_tcp_rmem),
@@ -527,7 +407,6 @@ static struct ctl_table ipv4_table[] = {
527 .proc_handler = proc_dointvec 407 .proc_handler = proc_dointvec
528 }, 408 },
529 { 409 {
530 .ctl_name = NET_TCP_APP_WIN,
531 .procname = "tcp_app_win", 410 .procname = "tcp_app_win",
532 .data = &sysctl_tcp_app_win, 411 .data = &sysctl_tcp_app_win,
533 .maxlen = sizeof(int), 412 .maxlen = sizeof(int),
@@ -535,7 +414,6 @@ static struct ctl_table ipv4_table[] = {
535 .proc_handler = proc_dointvec 414 .proc_handler = proc_dointvec
536 }, 415 },
537 { 416 {
538 .ctl_name = NET_TCP_ADV_WIN_SCALE,
539 .procname = "tcp_adv_win_scale", 417 .procname = "tcp_adv_win_scale",
540 .data = &sysctl_tcp_adv_win_scale, 418 .data = &sysctl_tcp_adv_win_scale,
541 .maxlen = sizeof(int), 419 .maxlen = sizeof(int),
@@ -543,7 +421,6 @@ static struct ctl_table ipv4_table[] = {
543 .proc_handler = proc_dointvec 421 .proc_handler = proc_dointvec
544 }, 422 },
545 { 423 {
546 .ctl_name = NET_TCP_TW_REUSE,
547 .procname = "tcp_tw_reuse", 424 .procname = "tcp_tw_reuse",
548 .data = &sysctl_tcp_tw_reuse, 425 .data = &sysctl_tcp_tw_reuse,
549 .maxlen = sizeof(int), 426 .maxlen = sizeof(int),
@@ -551,7 +428,6 @@ static struct ctl_table ipv4_table[] = {
551 .proc_handler = proc_dointvec 428 .proc_handler = proc_dointvec
552 }, 429 },
553 { 430 {
554 .ctl_name = NET_TCP_FRTO,
555 .procname = "tcp_frto", 431 .procname = "tcp_frto",
556 .data = &sysctl_tcp_frto, 432 .data = &sysctl_tcp_frto,
557 .maxlen = sizeof(int), 433 .maxlen = sizeof(int),
@@ -559,7 +435,6 @@ static struct ctl_table ipv4_table[] = {
559 .proc_handler = proc_dointvec 435 .proc_handler = proc_dointvec
560 }, 436 },
561 { 437 {
562 .ctl_name = NET_TCP_FRTO_RESPONSE,
563 .procname = "tcp_frto_response", 438 .procname = "tcp_frto_response",
564 .data = &sysctl_tcp_frto_response, 439 .data = &sysctl_tcp_frto_response,
565 .maxlen = sizeof(int), 440 .maxlen = sizeof(int),
@@ -567,7 +442,6 @@ static struct ctl_table ipv4_table[] = {
567 .proc_handler = proc_dointvec 442 .proc_handler = proc_dointvec
568 }, 443 },
569 { 444 {
570 .ctl_name = NET_TCP_LOW_LATENCY,
571 .procname = "tcp_low_latency", 445 .procname = "tcp_low_latency",
572 .data = &sysctl_tcp_low_latency, 446 .data = &sysctl_tcp_low_latency,
573 .maxlen = sizeof(int), 447 .maxlen = sizeof(int),
@@ -575,7 +449,6 @@ static struct ctl_table ipv4_table[] = {
575 .proc_handler = proc_dointvec 449 .proc_handler = proc_dointvec
576 }, 450 },
577 { 451 {
578 .ctl_name = NET_TCP_NO_METRICS_SAVE,
579 .procname = "tcp_no_metrics_save", 452 .procname = "tcp_no_metrics_save",
580 .data = &sysctl_tcp_nometrics_save, 453 .data = &sysctl_tcp_nometrics_save,
581 .maxlen = sizeof(int), 454 .maxlen = sizeof(int),
@@ -583,7 +456,6 @@ static struct ctl_table ipv4_table[] = {
583 .proc_handler = proc_dointvec, 456 .proc_handler = proc_dointvec,
584 }, 457 },
585 { 458 {
586 .ctl_name = NET_TCP_MODERATE_RCVBUF,
587 .procname = "tcp_moderate_rcvbuf", 459 .procname = "tcp_moderate_rcvbuf",
588 .data = &sysctl_tcp_moderate_rcvbuf, 460 .data = &sysctl_tcp_moderate_rcvbuf,
589 .maxlen = sizeof(int), 461 .maxlen = sizeof(int),
@@ -591,7 +463,6 @@ static struct ctl_table ipv4_table[] = {
591 .proc_handler = proc_dointvec, 463 .proc_handler = proc_dointvec,
592 }, 464 },
593 { 465 {
594 .ctl_name = NET_TCP_TSO_WIN_DIVISOR,
595 .procname = "tcp_tso_win_divisor", 466 .procname = "tcp_tso_win_divisor",
596 .data = &sysctl_tcp_tso_win_divisor, 467 .data = &sysctl_tcp_tso_win_divisor,
597 .maxlen = sizeof(int), 468 .maxlen = sizeof(int),
@@ -599,15 +470,12 @@ static struct ctl_table ipv4_table[] = {
599 .proc_handler = proc_dointvec, 470 .proc_handler = proc_dointvec,
600 }, 471 },
601 { 472 {
602 .ctl_name = NET_TCP_CONG_CONTROL,
603 .procname = "tcp_congestion_control", 473 .procname = "tcp_congestion_control",
604 .mode = 0644, 474 .mode = 0644,
605 .maxlen = TCP_CA_NAME_MAX, 475 .maxlen = TCP_CA_NAME_MAX,
606 .proc_handler = proc_tcp_congestion_control, 476 .proc_handler = proc_tcp_congestion_control,
607 .strategy = sysctl_tcp_congestion_control,
608 }, 477 },
609 { 478 {
610 .ctl_name = NET_TCP_ABC,
611 .procname = "tcp_abc", 479 .procname = "tcp_abc",
612 .data = &sysctl_tcp_abc, 480 .data = &sysctl_tcp_abc,
613 .maxlen = sizeof(int), 481 .maxlen = sizeof(int),
@@ -615,7 +483,6 @@ static struct ctl_table ipv4_table[] = {
615 .proc_handler = proc_dointvec, 483 .proc_handler = proc_dointvec,
616 }, 484 },
617 { 485 {
618 .ctl_name = NET_TCP_MTU_PROBING,
619 .procname = "tcp_mtu_probing", 486 .procname = "tcp_mtu_probing",
620 .data = &sysctl_tcp_mtu_probing, 487 .data = &sysctl_tcp_mtu_probing,
621 .maxlen = sizeof(int), 488 .maxlen = sizeof(int),
@@ -623,7 +490,6 @@ static struct ctl_table ipv4_table[] = {
623 .proc_handler = proc_dointvec, 490 .proc_handler = proc_dointvec,
624 }, 491 },
625 { 492 {
626 .ctl_name = NET_TCP_BASE_MSS,
627 .procname = "tcp_base_mss", 493 .procname = "tcp_base_mss",
628 .data = &sysctl_tcp_base_mss, 494 .data = &sysctl_tcp_base_mss,
629 .maxlen = sizeof(int), 495 .maxlen = sizeof(int),
@@ -631,7 +497,6 @@ static struct ctl_table ipv4_table[] = {
631 .proc_handler = proc_dointvec, 497 .proc_handler = proc_dointvec,
632 }, 498 },
633 { 499 {
634 .ctl_name = NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS,
635 .procname = "tcp_workaround_signed_windows", 500 .procname = "tcp_workaround_signed_windows",
636 .data = &sysctl_tcp_workaround_signed_windows, 501 .data = &sysctl_tcp_workaround_signed_windows,
637 .maxlen = sizeof(int), 502 .maxlen = sizeof(int),
@@ -640,7 +505,6 @@ static struct ctl_table ipv4_table[] = {
640 }, 505 },
641#ifdef CONFIG_NET_DMA 506#ifdef CONFIG_NET_DMA
642 { 507 {
643 .ctl_name = NET_TCP_DMA_COPYBREAK,
644 .procname = "tcp_dma_copybreak", 508 .procname = "tcp_dma_copybreak",
645 .data = &sysctl_tcp_dma_copybreak, 509 .data = &sysctl_tcp_dma_copybreak,
646 .maxlen = sizeof(int), 510 .maxlen = sizeof(int),
@@ -649,7 +513,6 @@ static struct ctl_table ipv4_table[] = {
649 }, 513 },
650#endif 514#endif
651 { 515 {
652 .ctl_name = NET_TCP_SLOW_START_AFTER_IDLE,
653 .procname = "tcp_slow_start_after_idle", 516 .procname = "tcp_slow_start_after_idle",
654 .data = &sysctl_tcp_slow_start_after_idle, 517 .data = &sysctl_tcp_slow_start_after_idle,
655 .maxlen = sizeof(int), 518 .maxlen = sizeof(int),
@@ -658,7 +521,6 @@ static struct ctl_table ipv4_table[] = {
658 }, 521 },
659#ifdef CONFIG_NETLABEL 522#ifdef CONFIG_NETLABEL
660 { 523 {
661 .ctl_name = NET_CIPSOV4_CACHE_ENABLE,
662 .procname = "cipso_cache_enable", 524 .procname = "cipso_cache_enable",
663 .data = &cipso_v4_cache_enabled, 525 .data = &cipso_v4_cache_enabled,
664 .maxlen = sizeof(int), 526 .maxlen = sizeof(int),
@@ -666,7 +528,6 @@ static struct ctl_table ipv4_table[] = {
666 .proc_handler = proc_dointvec, 528 .proc_handler = proc_dointvec,
667 }, 529 },
668 { 530 {
669 .ctl_name = NET_CIPSOV4_CACHE_BUCKET_SIZE,
670 .procname = "cipso_cache_bucket_size", 531 .procname = "cipso_cache_bucket_size",
671 .data = &cipso_v4_cache_bucketsize, 532 .data = &cipso_v4_cache_bucketsize,
672 .maxlen = sizeof(int), 533 .maxlen = sizeof(int),
@@ -674,7 +535,6 @@ static struct ctl_table ipv4_table[] = {
674 .proc_handler = proc_dointvec, 535 .proc_handler = proc_dointvec,
675 }, 536 },
676 { 537 {
677 .ctl_name = NET_CIPSOV4_RBM_OPTFMT,
678 .procname = "cipso_rbm_optfmt", 538 .procname = "cipso_rbm_optfmt",
679 .data = &cipso_v4_rbm_optfmt, 539 .data = &cipso_v4_rbm_optfmt,
680 .maxlen = sizeof(int), 540 .maxlen = sizeof(int),
@@ -682,7 +542,6 @@ static struct ctl_table ipv4_table[] = {
682 .proc_handler = proc_dointvec, 542 .proc_handler = proc_dointvec,
683 }, 543 },
684 { 544 {
685 .ctl_name = NET_CIPSOV4_RBM_STRICTVALID,
686 .procname = "cipso_rbm_strictvalid", 545 .procname = "cipso_rbm_strictvalid",
687 .data = &cipso_v4_rbm_strictvalid, 546 .data = &cipso_v4_rbm_strictvalid,
688 .maxlen = sizeof(int), 547 .maxlen = sizeof(int),
@@ -697,15 +556,12 @@ static struct ctl_table ipv4_table[] = {
697 .proc_handler = proc_tcp_available_congestion_control, 556 .proc_handler = proc_tcp_available_congestion_control,
698 }, 557 },
699 { 558 {
700 .ctl_name = NET_TCP_ALLOWED_CONG_CONTROL,
701 .procname = "tcp_allowed_congestion_control", 559 .procname = "tcp_allowed_congestion_control",
702 .maxlen = TCP_CA_BUF_MAX, 560 .maxlen = TCP_CA_BUF_MAX,
703 .mode = 0644, 561 .mode = 0644,
704 .proc_handler = proc_allowed_congestion_control, 562 .proc_handler = proc_allowed_congestion_control,
705 .strategy = strategy_allowed_congestion_control,
706 }, 563 },
707 { 564 {
708 .ctl_name = NET_TCP_MAX_SSTHRESH,
709 .procname = "tcp_max_ssthresh", 565 .procname = "tcp_max_ssthresh",
710 .data = &sysctl_tcp_max_ssthresh, 566 .data = &sysctl_tcp_max_ssthresh,
711 .maxlen = sizeof(int), 567 .maxlen = sizeof(int),
@@ -713,7 +569,6 @@ static struct ctl_table ipv4_table[] = {
713 .proc_handler = proc_dointvec, 569 .proc_handler = proc_dointvec,
714 }, 570 },
715 { 571 {
716 .ctl_name = CTL_UNNUMBERED,
717 .procname = "tcp_cookie_size", 572 .procname = "tcp_cookie_size",
718 .data = &sysctl_tcp_cookie_size, 573 .data = &sysctl_tcp_cookie_size,
719 .maxlen = sizeof(int), 574 .maxlen = sizeof(int),
@@ -721,41 +576,34 @@ static struct ctl_table ipv4_table[] = {
721 .proc_handler = proc_dointvec 576 .proc_handler = proc_dointvec
722 }, 577 },
723 { 578 {
724 .ctl_name = CTL_UNNUMBERED,
725 .procname = "udp_mem", 579 .procname = "udp_mem",
726 .data = &sysctl_udp_mem, 580 .data = &sysctl_udp_mem,
727 .maxlen = sizeof(sysctl_udp_mem), 581 .maxlen = sizeof(sysctl_udp_mem),
728 .mode = 0644, 582 .mode = 0644,
729 .proc_handler = proc_dointvec_minmax, 583 .proc_handler = proc_dointvec_minmax,
730 .strategy = sysctl_intvec,
731 .extra1 = &zero 584 .extra1 = &zero
732 }, 585 },
733 { 586 {
734 .ctl_name = CTL_UNNUMBERED,
735 .procname = "udp_rmem_min", 587 .procname = "udp_rmem_min",
736 .data = &sysctl_udp_rmem_min, 588 .data = &sysctl_udp_rmem_min,
737 .maxlen = sizeof(sysctl_udp_rmem_min), 589 .maxlen = sizeof(sysctl_udp_rmem_min),
738 .mode = 0644, 590 .mode = 0644,
739 .proc_handler = proc_dointvec_minmax, 591 .proc_handler = proc_dointvec_minmax,
740 .strategy = sysctl_intvec,
741 .extra1 = &zero 592 .extra1 = &zero
742 }, 593 },
743 { 594 {
744 .ctl_name = CTL_UNNUMBERED,
745 .procname = "udp_wmem_min", 595 .procname = "udp_wmem_min",
746 .data = &sysctl_udp_wmem_min, 596 .data = &sysctl_udp_wmem_min,
747 .maxlen = sizeof(sysctl_udp_wmem_min), 597 .maxlen = sizeof(sysctl_udp_wmem_min),
748 .mode = 0644, 598 .mode = 0644,
749 .proc_handler = proc_dointvec_minmax, 599 .proc_handler = proc_dointvec_minmax,
750 .strategy = sysctl_intvec,
751 .extra1 = &zero 600 .extra1 = &zero
752 }, 601 },
753 { .ctl_name = 0 } 602 { }
754}; 603};
755 604
756static struct ctl_table ipv4_net_table[] = { 605static struct ctl_table ipv4_net_table[] = {
757 { 606 {
758 .ctl_name = NET_IPV4_ICMP_ECHO_IGNORE_ALL,
759 .procname = "icmp_echo_ignore_all", 607 .procname = "icmp_echo_ignore_all",
760 .data = &init_net.ipv4.sysctl_icmp_echo_ignore_all, 608 .data = &init_net.ipv4.sysctl_icmp_echo_ignore_all,
761 .maxlen = sizeof(int), 609 .maxlen = sizeof(int),
@@ -763,7 +611,6 @@ static struct ctl_table ipv4_net_table[] = {
763 .proc_handler = proc_dointvec 611 .proc_handler = proc_dointvec
764 }, 612 },
765 { 613 {
766 .ctl_name = NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS,
767 .procname = "icmp_echo_ignore_broadcasts", 614 .procname = "icmp_echo_ignore_broadcasts",
768 .data = &init_net.ipv4.sysctl_icmp_echo_ignore_broadcasts, 615 .data = &init_net.ipv4.sysctl_icmp_echo_ignore_broadcasts,
769 .maxlen = sizeof(int), 616 .maxlen = sizeof(int),
@@ -771,7 +618,6 @@ static struct ctl_table ipv4_net_table[] = {
771 .proc_handler = proc_dointvec 618 .proc_handler = proc_dointvec
772 }, 619 },
773 { 620 {
774 .ctl_name = NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES,
775 .procname = "icmp_ignore_bogus_error_responses", 621 .procname = "icmp_ignore_bogus_error_responses",
776 .data = &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses, 622 .data = &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses,
777 .maxlen = sizeof(int), 623 .maxlen = sizeof(int),
@@ -779,7 +625,6 @@ static struct ctl_table ipv4_net_table[] = {
779 .proc_handler = proc_dointvec 625 .proc_handler = proc_dointvec
780 }, 626 },
781 { 627 {
782 .ctl_name = NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR,
783 .procname = "icmp_errors_use_inbound_ifaddr", 628 .procname = "icmp_errors_use_inbound_ifaddr",
784 .data = &init_net.ipv4.sysctl_icmp_errors_use_inbound_ifaddr, 629 .data = &init_net.ipv4.sysctl_icmp_errors_use_inbound_ifaddr,
785 .maxlen = sizeof(int), 630 .maxlen = sizeof(int),
@@ -787,16 +632,13 @@ static struct ctl_table ipv4_net_table[] = {
787 .proc_handler = proc_dointvec 632 .proc_handler = proc_dointvec
788 }, 633 },
789 { 634 {
790 .ctl_name = NET_IPV4_ICMP_RATELIMIT,
791 .procname = "icmp_ratelimit", 635 .procname = "icmp_ratelimit",
792 .data = &init_net.ipv4.sysctl_icmp_ratelimit, 636 .data = &init_net.ipv4.sysctl_icmp_ratelimit,
793 .maxlen = sizeof(int), 637 .maxlen = sizeof(int),
794 .mode = 0644, 638 .mode = 0644,
795 .proc_handler = proc_dointvec_ms_jiffies, 639 .proc_handler = proc_dointvec_ms_jiffies,
796 .strategy = sysctl_ms_jiffies
797 }, 640 },
798 { 641 {
799 .ctl_name = NET_IPV4_ICMP_RATEMASK,
800 .procname = "icmp_ratemask", 642 .procname = "icmp_ratemask",
801 .data = &init_net.ipv4.sysctl_icmp_ratemask, 643 .data = &init_net.ipv4.sysctl_icmp_ratemask,
802 .maxlen = sizeof(int), 644 .maxlen = sizeof(int),
@@ -804,7 +646,6 @@ static struct ctl_table ipv4_net_table[] = {
804 .proc_handler = proc_dointvec 646 .proc_handler = proc_dointvec
805 }, 647 },
806 { 648 {
807 .ctl_name = CTL_UNNUMBERED,
808 .procname = "rt_cache_rebuild_count", 649 .procname = "rt_cache_rebuild_count",
809 .data = &init_net.ipv4.sysctl_rt_cache_rebuild_count, 650 .data = &init_net.ipv4.sysctl_rt_cache_rebuild_count,
810 .maxlen = sizeof(int), 651 .maxlen = sizeof(int),
@@ -815,8 +656,8 @@ static struct ctl_table ipv4_net_table[] = {
815}; 656};
816 657
817struct ctl_path net_ipv4_ctl_path[] = { 658struct ctl_path net_ipv4_ctl_path[] = {
818 { .procname = "net", .ctl_name = CTL_NET, }, 659 { .procname = "net", },
819 { .procname = "ipv4", .ctl_name = NET_IPV4, }, 660 { .procname = "ipv4", },
820 { }, 661 { },
821}; 662};
822EXPORT_SYMBOL_GPL(net_ipv4_ctl_path); 663EXPORT_SYMBOL_GPL(net_ipv4_ctl_path);
diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
index 74fb2eb833ec..8c08a28d8f83 100644
--- a/net/ipv4/xfrm4_policy.c
+++ b/net/ipv4/xfrm4_policy.c
@@ -267,7 +267,6 @@ static struct xfrm_policy_afinfo xfrm4_policy_afinfo = {
267#ifdef CONFIG_SYSCTL 267#ifdef CONFIG_SYSCTL
268static struct ctl_table xfrm4_policy_table[] = { 268static struct ctl_table xfrm4_policy_table[] = {
269 { 269 {
270 .ctl_name = CTL_UNNUMBERED,
271 .procname = "xfrm4_gc_thresh", 270 .procname = "xfrm4_gc_thresh",
272 .data = &xfrm4_dst_ops.gc_thresh, 271 .data = &xfrm4_dst_ops.gc_thresh,
273 .maxlen = sizeof(int), 272 .maxlen = sizeof(int),