diff options
author | Thomas Graf <tgraf@suug.ch> | 2007-03-26 02:24:24 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:27:17 -0400 |
commit | c454673da7c1d6533f40ec2f788023df9af56ebf (patch) | |
tree | 004d329e049f3bdef09ff20623e24cba9f1fac12 /include | |
parent | 687ad8cc640fd1f1619cc44a9ab274dabd48c758 (diff) |
[NET] rules: Unified rules dumping
Implements a unified, protocol independant rules dumping function
which is capable of both, dumping a specific protocol family or
all of them. This speeds up dumping as less lookups are required.
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/net/fib_rules.h | 3 | ||||
-rw-r--r-- | include/net/rtnetlink.h | 8 |
2 files changed, 8 insertions, 3 deletions
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h index b2b9ccdf32d6..ff3029fe9656 100644 --- a/include/net/fib_rules.h +++ b/include/net/fib_rules.h | |||
@@ -98,7 +98,4 @@ extern int fib_rules_unregister(struct fib_rules_ops *); | |||
98 | extern int fib_rules_lookup(struct fib_rules_ops *, | 98 | extern int fib_rules_lookup(struct fib_rules_ops *, |
99 | struct flowi *, int flags, | 99 | struct flowi *, int flags, |
100 | struct fib_lookup_arg *); | 100 | struct fib_lookup_arg *); |
101 | |||
102 | extern int fib_rules_dump(struct sk_buff *, | ||
103 | struct netlink_callback *, int); | ||
104 | #endif | 101 | #endif |
diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h index dce7072bd28c..086fa9e89509 100644 --- a/include/net/rtnetlink.h +++ b/include/net/rtnetlink.h | |||
@@ -15,4 +15,12 @@ extern int rtnl_unregister(int protocol, int msgtype); | |||
15 | extern void rtnl_unregister_all(int protocol); | 15 | extern void rtnl_unregister_all(int protocol); |
16 | extern int rtnl_dump_all(struct sk_buff *skb, struct netlink_callback *cb); | 16 | extern int rtnl_dump_all(struct sk_buff *skb, struct netlink_callback *cb); |
17 | 17 | ||
18 | static inline int rtnl_msg_family(struct nlmsghdr *nlh) | ||
19 | { | ||
20 | if (nlmsg_len(nlh) >= sizeof(struct rtgenmsg)) | ||
21 | return ((struct rtgenmsg *) nlmsg_data(nlh))->rtgen_family; | ||
22 | else | ||
23 | return AF_UNSPEC; | ||
24 | } | ||
25 | |||
18 | #endif | 26 | #endif |