diff options
-rw-r--r-- | include/linux/inetdevice.h | 42 | ||||
-rw-r--r-- | include/linux/sysctl.h | 4 | ||||
-rw-r--r-- | net/ipv4/devinet.c | 26 |
3 files changed, 49 insertions, 23 deletions
diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h index cf257809771b..2be1a1a2beb9 100644 --- a/include/linux/inetdevice.h +++ b/include/linux/inetdevice.h | |||
@@ -10,10 +10,40 @@ | |||
10 | #include <linux/timer.h> | 10 | #include <linux/timer.h> |
11 | #include <linux/sysctl.h> | 11 | #include <linux/sysctl.h> |
12 | 12 | ||
13 | enum | ||
14 | { | ||
15 | IPV4_DEVCONF_FORWARDING=1, | ||
16 | IPV4_DEVCONF_MC_FORWARDING, | ||
17 | IPV4_DEVCONF_PROXY_ARP, | ||
18 | IPV4_DEVCONF_ACCEPT_REDIRECTS, | ||
19 | IPV4_DEVCONF_SECURE_REDIRECTS, | ||
20 | IPV4_DEVCONF_SEND_REDIRECTS, | ||
21 | IPV4_DEVCONF_SHARED_MEDIA, | ||
22 | IPV4_DEVCONF_RP_FILTER, | ||
23 | IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE, | ||
24 | IPV4_DEVCONF_BOOTP_RELAY, | ||
25 | IPV4_DEVCONF_LOG_MARTIANS, | ||
26 | IPV4_DEVCONF_TAG, | ||
27 | IPV4_DEVCONF_ARPFILTER, | ||
28 | IPV4_DEVCONF_MEDIUM_ID, | ||
29 | IPV4_DEVCONF_NOXFRM, | ||
30 | IPV4_DEVCONF_NOPOLICY, | ||
31 | IPV4_DEVCONF_FORCE_IGMP_VERSION, | ||
32 | IPV4_DEVCONF_ARP_ANNOUNCE, | ||
33 | IPV4_DEVCONF_ARP_IGNORE, | ||
34 | IPV4_DEVCONF_PROMOTE_SECONDARIES, | ||
35 | IPV4_DEVCONF_ARP_ACCEPT, | ||
36 | IPV4_DEVCONF_ARP_NOTIFY, | ||
37 | IPV4_DEVCONF_ACCEPT_LOCAL, | ||
38 | IPV4_DEVCONF_SRC_VMARK, | ||
39 | IPV4_DEVCONF_PROXY_ARP_PVLAN, | ||
40 | __IPV4_DEVCONF_MAX | ||
41 | }; | ||
42 | |||
13 | struct ipv4_devconf { | 43 | struct ipv4_devconf { |
14 | void *sysctl; | 44 | void *sysctl; |
15 | int data[__NET_IPV4_CONF_MAX - 1]; | 45 | int data[__IPV4_DEVCONF_MAX - 1]; |
16 | DECLARE_BITMAP(state, __NET_IPV4_CONF_MAX - 1); | 46 | DECLARE_BITMAP(state, __IPV4_DEVCONF_MAX - 1); |
17 | }; | 47 | }; |
18 | 48 | ||
19 | struct in_device { | 49 | struct in_device { |
@@ -40,7 +70,7 @@ struct in_device { | |||
40 | struct rcu_head rcu_head; | 70 | struct rcu_head rcu_head; |
41 | }; | 71 | }; |
42 | 72 | ||
43 | #define IPV4_DEVCONF(cnf, attr) ((cnf).data[NET_IPV4_CONF_ ## attr - 1]) | 73 | #define IPV4_DEVCONF(cnf, attr) ((cnf).data[IPV4_DEVCONF_ ## attr - 1]) |
44 | #define IPV4_DEVCONF_ALL(net, attr) \ | 74 | #define IPV4_DEVCONF_ALL(net, attr) \ |
45 | IPV4_DEVCONF((*(net)->ipv4.devconf_all), attr) | 75 | IPV4_DEVCONF((*(net)->ipv4.devconf_all), attr) |
46 | 76 | ||
@@ -60,13 +90,13 @@ static inline void ipv4_devconf_set(struct in_device *in_dev, int index, | |||
60 | 90 | ||
61 | static inline void ipv4_devconf_setall(struct in_device *in_dev) | 91 | static inline void ipv4_devconf_setall(struct in_device *in_dev) |
62 | { | 92 | { |
63 | bitmap_fill(in_dev->cnf.state, __NET_IPV4_CONF_MAX - 1); | 93 | bitmap_fill(in_dev->cnf.state, __IPV4_DEVCONF_MAX - 1); |
64 | } | 94 | } |
65 | 95 | ||
66 | #define IN_DEV_CONF_GET(in_dev, attr) \ | 96 | #define IN_DEV_CONF_GET(in_dev, attr) \ |
67 | ipv4_devconf_get((in_dev), NET_IPV4_CONF_ ## attr) | 97 | ipv4_devconf_get((in_dev), IPV4_DEVCONF_ ## attr) |
68 | #define IN_DEV_CONF_SET(in_dev, attr, val) \ | 98 | #define IN_DEV_CONF_SET(in_dev, attr, val) \ |
69 | ipv4_devconf_set((in_dev), NET_IPV4_CONF_ ## attr, (val)) | 99 | ipv4_devconf_set((in_dev), IPV4_DEVCONF_ ## attr, (val)) |
70 | 100 | ||
71 | #define IN_DEV_ANDCONF(in_dev, attr) \ | 101 | #define IN_DEV_ANDCONF(in_dev, attr) \ |
72 | (IPV4_DEVCONF_ALL(dev_net(in_dev->dev), attr) && \ | 102 | (IPV4_DEVCONF_ALL(dev_net(in_dev->dev), attr) && \ |
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 9f236cdcf3fe..7c74e919cabe 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
@@ -481,10 +481,6 @@ enum | |||
481 | NET_IPV4_CONF_PROMOTE_SECONDARIES=20, | 481 | NET_IPV4_CONF_PROMOTE_SECONDARIES=20, |
482 | NET_IPV4_CONF_ARP_ACCEPT=21, | 482 | NET_IPV4_CONF_ARP_ACCEPT=21, |
483 | NET_IPV4_CONF_ARP_NOTIFY=22, | 483 | NET_IPV4_CONF_ARP_NOTIFY=22, |
484 | NET_IPV4_CONF_ACCEPT_LOCAL=23, | ||
485 | NET_IPV4_CONF_SRC_VMARK=24, | ||
486 | NET_IPV4_CONF_PROXY_ARP_PVLAN=25, | ||
487 | __NET_IPV4_CONF_MAX | ||
488 | }; | 484 | }; |
489 | 485 | ||
490 | /* /proc/sys/net/ipv4/netfilter */ | 486 | /* /proc/sys/net/ipv4/netfilter */ |
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index cd71a3908391..b1eddee9bf94 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c | |||
@@ -64,20 +64,20 @@ | |||
64 | 64 | ||
65 | static struct ipv4_devconf ipv4_devconf = { | 65 | static struct ipv4_devconf ipv4_devconf = { |
66 | .data = { | 66 | .data = { |
67 | [NET_IPV4_CONF_ACCEPT_REDIRECTS - 1] = 1, | 67 | [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1, |
68 | [NET_IPV4_CONF_SEND_REDIRECTS - 1] = 1, | 68 | [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1, |
69 | [NET_IPV4_CONF_SECURE_REDIRECTS - 1] = 1, | 69 | [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1, |
70 | [NET_IPV4_CONF_SHARED_MEDIA - 1] = 1, | 70 | [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1, |
71 | }, | 71 | }, |
72 | }; | 72 | }; |
73 | 73 | ||
74 | static struct ipv4_devconf ipv4_devconf_dflt = { | 74 | static struct ipv4_devconf ipv4_devconf_dflt = { |
75 | .data = { | 75 | .data = { |
76 | [NET_IPV4_CONF_ACCEPT_REDIRECTS - 1] = 1, | 76 | [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1, |
77 | [NET_IPV4_CONF_SEND_REDIRECTS - 1] = 1, | 77 | [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1, |
78 | [NET_IPV4_CONF_SECURE_REDIRECTS - 1] = 1, | 78 | [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1, |
79 | [NET_IPV4_CONF_SHARED_MEDIA - 1] = 1, | 79 | [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1, |
80 | [NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE - 1] = 1, | 80 | [IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE - 1] = 1, |
81 | }, | 81 | }, |
82 | }; | 82 | }; |
83 | 83 | ||
@@ -1360,7 +1360,7 @@ int ipv4_doint_and_flush(ctl_table *ctl, int write, | |||
1360 | { \ | 1360 | { \ |
1361 | .procname = name, \ | 1361 | .procname = name, \ |
1362 | .data = ipv4_devconf.data + \ | 1362 | .data = ipv4_devconf.data + \ |
1363 | NET_IPV4_CONF_ ## attr - 1, \ | 1363 | IPV4_DEVCONF_ ## attr - 1, \ |
1364 | .maxlen = sizeof(int), \ | 1364 | .maxlen = sizeof(int), \ |
1365 | .mode = mval, \ | 1365 | .mode = mval, \ |
1366 | .proc_handler = proc, \ | 1366 | .proc_handler = proc, \ |
@@ -1381,7 +1381,7 @@ int ipv4_doint_and_flush(ctl_table *ctl, int write, | |||
1381 | 1381 | ||
1382 | static struct devinet_sysctl_table { | 1382 | static struct devinet_sysctl_table { |
1383 | struct ctl_table_header *sysctl_header; | 1383 | struct ctl_table_header *sysctl_header; |
1384 | struct ctl_table devinet_vars[__NET_IPV4_CONF_MAX]; | 1384 | struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX]; |
1385 | char *dev_name; | 1385 | char *dev_name; |
1386 | } devinet_sysctl = { | 1386 | } devinet_sysctl = { |
1387 | .devinet_vars = { | 1387 | .devinet_vars = { |
@@ -1503,7 +1503,7 @@ static struct ctl_table ctl_forward_entry[] = { | |||
1503 | { | 1503 | { |
1504 | .procname = "ip_forward", | 1504 | .procname = "ip_forward", |
1505 | .data = &ipv4_devconf.data[ | 1505 | .data = &ipv4_devconf.data[ |
1506 | NET_IPV4_CONF_FORWARDING - 1], | 1506 | IPV4_DEVCONF_FORWARDING - 1], |
1507 | .maxlen = sizeof(int), | 1507 | .maxlen = sizeof(int), |
1508 | .mode = 0644, | 1508 | .mode = 0644, |
1509 | .proc_handler = devinet_sysctl_forward, | 1509 | .proc_handler = devinet_sysctl_forward, |
@@ -1547,7 +1547,7 @@ static __net_init int devinet_init_net(struct net *net) | |||
1547 | if (tbl == NULL) | 1547 | if (tbl == NULL) |
1548 | goto err_alloc_ctl; | 1548 | goto err_alloc_ctl; |
1549 | 1549 | ||
1550 | tbl[0].data = &all->data[NET_IPV4_CONF_FORWARDING - 1]; | 1550 | tbl[0].data = &all->data[IPV4_DEVCONF_FORWARDING - 1]; |
1551 | tbl[0].extra1 = all; | 1551 | tbl[0].extra1 = all; |
1552 | tbl[0].extra2 = net; | 1552 | tbl[0].extra2 = net; |
1553 | #endif | 1553 | #endif |