summaryrefslogtreecommitdiffstats
path: root/include/net/fib_rules.h
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2006-08-11 08:09:48 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2006-09-22 23:54:25 +0200
commit9e762a4a89b302cb3b26a1f9bb33eff459eaeca9 (patch)
tree4be606cc6bfe097beac3aeeea32b4adc107409b7 /include/net/fib_rules.h
parent[NET]: Use u32 for routing table IDs (diff)
downloadlinux-9e762a4a89b302cb3b26a1f9bb33eff459eaeca9.tar.xz
linux-9e762a4a89b302cb3b26a1f9bb33eff459eaeca9.zip
[NET]: Introduce RTA_TABLE/FRA_TABLE attributes
Introduce RTA_TABLE route attribute and FRA_TABLE routing rule attribute to hold 32 bit routing table IDs. Usespace compatibility is provided by continuing to accept and send the rtm_table field, but because of its limited size it can only carry the low 8 bits of the table ID. This implies that if larger IDs are used, _all_ userspace programs using them need to use RTA_TABLE. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/fib_rules.h')
-rw-r--r--include/net/fib_rules.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h
index 61375d9e53f8..8e2f473d3e82 100644
--- a/include/net/fib_rules.h
+++ b/include/net/fib_rules.h
@@ -74,6 +74,13 @@ static inline void fib_rule_put(struct fib_rule *rule)
call_rcu(&rule->rcu, fib_rule_put_rcu);
}
+static inline u32 frh_get_table(struct fib_rule_hdr *frh, struct nlattr **nla)
+{
+ if (nla[FRA_TABLE])
+ return nla_get_u32(nla[FRA_TABLE]);
+ return frh->table;
+}
+
extern int fib_rules_register(struct fib_rules_ops *);
extern int fib_rules_unregister(struct fib_rules_ops *);