Commit e1ef4bf2 authored by Thomas Graf's avatar Thomas Graf Committed by David S. Miller

[IPV4]: Use Protocol Independant Policy Routing Rules Framework

Signed-off-by: default avatarThomas Graf <tgraf@suug.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 101367c2
......@@ -18,6 +18,7 @@
#include <net/flow.h>
#include <linux/seq_file.h>
#include <net/fib_rules.h>
/* WARNING: The ordering of these elements must match ordering
* of RTA_* rtnetlink attribute numbers.
......@@ -203,9 +204,8 @@ static inline void fib_select_default(const struct flowi *flp, struct fib_result
#define ip_fib_main_table (fib_tables[RT_TABLE_MAIN])
extern struct fib_table * fib_tables[RT_TABLE_MAX+1];
extern int fib_lookup(const struct flowi *flp, struct fib_result *res);
extern int fib_lookup(struct flowi *flp, struct fib_result *res);
extern struct fib_table *__fib_new_table(int id);
extern void fib_rule_put(struct fib_rule *r);
static inline struct fib_table *fib_get_table(int id)
{
......@@ -251,15 +251,15 @@ extern u32 __fib_res_prefsrc(struct fib_result *res);
extern struct fib_table *fib_hash_init(int id);
#ifdef CONFIG_IP_MULTIPLE_TABLES
/* Exported by fib_rules.c */
extern int fib4_rules_dump(struct sk_buff *skb, struct netlink_callback *cb);
extern void __init fib4_rules_init(void);
extern void __exit fib4_rules_cleanup(void);
extern int inet_rtm_delrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg);
extern int inet_rtm_newrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg);
extern int inet_dump_rules(struct sk_buff *skb, struct netlink_callback *cb);
#ifdef CONFIG_NET_CLS_ROUTE
extern u32 fib_rules_tclass(struct fib_result *res);
#endif
extern void fib_rules_init(void);
#endif
static inline void fib_combine_itag(u32 *itag, struct fib_result *res)
......
......@@ -88,6 +88,7 @@ config IP_FIB_HASH
config IP_MULTIPLE_TABLES
bool "IP: policy routing"
depends on IP_ADVANCED_ROUTER
select FIB_RULES
---help---
Normally, a router decides what to do with a received packet based
solely on the packet's final destination address. If you say Y here,
......
......@@ -1151,9 +1151,7 @@ static struct rtnetlink_link inet_rtnetlink_table[RTM_NR_MSGTYPES] = {
[RTM_GETROUTE - RTM_BASE] = { .doit = inet_rtm_getroute,
.dumpit = inet_dump_fib, },
#ifdef CONFIG_IP_MULTIPLE_TABLES
[RTM_NEWRULE - RTM_BASE] = { .doit = inet_rtm_newrule, },
[RTM_DELRULE - RTM_BASE] = { .doit = inet_rtm_delrule, },
[RTM_GETRULE - RTM_BASE] = { .dumpit = inet_dump_rules, },
[RTM_GETRULE - RTM_BASE] = { .dumpit = fib4_rules_dump, },
#endif
};
......
......@@ -656,7 +656,7 @@ void __init ip_fib_init(void)
ip_fib_local_table = fib_hash_init(RT_TABLE_LOCAL);
ip_fib_main_table = fib_hash_init(RT_TABLE_MAIN);
#else
fib_rules_init();
fib4_rules_init();
#endif
register_netdevice_notifier(&fib_netdev_notifier);
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment