aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/netns/ipv4.h
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-07-06 01:13:13 -0400
committerDavid S. Miller <davem@davemloft.net>2012-07-06 01:13:13 -0400
commitf4530fa574df4d833506c53697ed1daa0d390bf4 (patch)
tree2a19ff4c8410d5aee18a78cddaeb765ed9aa95d6 /include/net/netns/ipv4.h
parent700db99d0140e9da2a31e08ebd3e1b121691aa26 (diff)
ipv4: Avoid overhead when no custom FIB rules are installed.
If the user hasn't actually installed any custom rules, or fiddled with the default ones, don't go through the whole FIB rules layer. It's just pure overhead. Instead do what we do with CONFIG_IP_MULTIPLE_TABLES disabled, check the individual tables by hand, one by one. Also, move fib_num_tclassid_users into the ipv4 network namespace. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/netns/ipv4.h')
-rw-r--r--include/net/netns/ipv4.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
index 227f0cd9d3f6..599e48fa97cb 100644
--- a/include/net/netns/ipv4.h
+++ b/include/net/netns/ipv4.h
@@ -11,6 +11,7 @@ struct ctl_table_header;
11struct ipv4_devconf; 11struct ipv4_devconf;
12struct fib_rules_ops; 12struct fib_rules_ops;
13struct hlist_head; 13struct hlist_head;
14struct fib_table;
14struct sock; 15struct sock;
15 16
16struct netns_ipv4 { 17struct netns_ipv4 {
@@ -24,6 +25,13 @@ struct netns_ipv4 {
24 struct ipv4_devconf *devconf_dflt; 25 struct ipv4_devconf *devconf_dflt;
25#ifdef CONFIG_IP_MULTIPLE_TABLES 26#ifdef CONFIG_IP_MULTIPLE_TABLES
26 struct fib_rules_ops *rules_ops; 27 struct fib_rules_ops *rules_ops;
28 bool fib_has_custom_rules;
29 struct fib_table *fib_local;
30 struct fib_table *fib_main;
31 struct fib_table *fib_default;
32#endif
33#ifdef CONFIG_IP_ROUTE_CLASSID
34 int fib_num_tclassid_users;
27#endif 35#endif
28 struct hlist_head *fib_table_hash; 36 struct hlist_head *fib_table_hash;
29 struct sock *fibnl; 37 struct sock *fibnl;