aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/dn_fib.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/dn_fib.h')
-rw-r--r--include/net/dn_fib.h18
1 files changed, 6 insertions, 12 deletions
diff --git a/include/net/dn_fib.h b/include/net/dn_fib.h
index a15dcf0d5c1e..f01626cbbed6 100644
--- a/include/net/dn_fib.h
+++ b/include/net/dn_fib.h
@@ -22,7 +22,7 @@ struct dn_kern_rta
22}; 22};
23 23
24struct dn_fib_res { 24struct dn_fib_res {
25 struct dn_fib_rule *r; 25 struct fib_rule *r;
26 struct dn_fib_info *fi; 26 struct dn_fib_info *fi;
27 unsigned char prefixlen; 27 unsigned char prefixlen;
28 unsigned char nh_sel; 28 unsigned char nh_sel;
@@ -94,7 +94,8 @@ struct dn_fib_node {
94 94
95 95
96struct dn_fib_table { 96struct dn_fib_table {
97 int n; 97 struct hlist_node hlist;
98 u32 n;
98 99
99 int (*insert)(struct dn_fib_table *t, struct rtmsg *r, 100 int (*insert)(struct dn_fib_table *t, struct rtmsg *r,
100 struct dn_kern_rta *rta, struct nlmsghdr *n, 101 struct dn_kern_rta *rta, struct nlmsghdr *n,
@@ -130,14 +131,11 @@ extern __le16 dn_fib_get_attr16(struct rtattr *attr, int attrlen, int type);
130extern void dn_fib_flush(void); 131extern void dn_fib_flush(void);
131extern void dn_fib_select_multipath(const struct flowi *fl, 132extern void dn_fib_select_multipath(const struct flowi *fl,
132 struct dn_fib_res *res); 133 struct dn_fib_res *res);
133extern int dn_fib_sync_down(__le16 local, struct net_device *dev,
134 int force);
135extern int dn_fib_sync_up(struct net_device *dev);
136 134
137/* 135/*
138 * dn_tables.c 136 * dn_tables.c
139 */ 137 */
140extern struct dn_fib_table *dn_fib_get_table(int n, int creat); 138extern struct dn_fib_table *dn_fib_get_table(u32 n, int creat);
141extern struct dn_fib_table *dn_fib_empty_table(void); 139extern struct dn_fib_table *dn_fib_empty_table(void);
142extern void dn_fib_table_init(void); 140extern void dn_fib_table_init(void);
143extern void dn_fib_table_cleanup(void); 141extern void dn_fib_table_cleanup(void);
@@ -147,10 +145,8 @@ extern void dn_fib_table_cleanup(void);
147 */ 145 */
148extern void dn_fib_rules_init(void); 146extern void dn_fib_rules_init(void);
149extern void dn_fib_rules_cleanup(void); 147extern void dn_fib_rules_cleanup(void);
150extern void dn_fib_rule_put(struct dn_fib_rule *);
151extern __le16 dn_fib_rules_policy(__le16 saddr, struct dn_fib_res *res, unsigned *flags);
152extern unsigned dnet_addr_type(__le16 addr); 148extern unsigned dnet_addr_type(__le16 addr);
153extern int dn_fib_lookup(const struct flowi *fl, struct dn_fib_res *res); 149extern int dn_fib_lookup(struct flowi *fl, struct dn_fib_res *res);
154 150
155/* 151/*
156 * rtnetlink interface 152 * rtnetlink interface
@@ -176,11 +172,9 @@ static inline void dn_fib_res_put(struct dn_fib_res *res)
176 if (res->fi) 172 if (res->fi)
177 dn_fib_info_put(res->fi); 173 dn_fib_info_put(res->fi);
178 if (res->r) 174 if (res->r)
179 dn_fib_rule_put(res->r); 175 fib_rule_put(res->r);
180} 176}
181 177
182extern struct dn_fib_table *dn_fib_tables[];
183
184#else /* Endnode */ 178#else /* Endnode */
185 179
186#define dn_fib_init() do { } while(0) 180#define dn_fib_init() do { } while(0)