|
@@ -125,7 +125,7 @@ void fib_select_default(struct net *net,
|
|
#endif
|
|
#endif
|
|
tb = fib_get_table(net, table);
|
|
tb = fib_get_table(net, table);
|
|
if (FIB_RES_GW(*res) && FIB_RES_NH(*res).nh_scope == RT_SCOPE_LINK)
|
|
if (FIB_RES_GW(*res) && FIB_RES_NH(*res).nh_scope == RT_SCOPE_LINK)
|
|
- tb->tb_select_default(tb, flp, res);
|
|
|
|
|
|
+ fib_table_select_default(tb, flp, res);
|
|
}
|
|
}
|
|
|
|
|
|
static void fib_flush(struct net *net)
|
|
static void fib_flush(struct net *net)
|
|
@@ -139,7 +139,7 @@ static void fib_flush(struct net *net)
|
|
for (h = 0; h < FIB_TABLE_HASHSZ; h++) {
|
|
for (h = 0; h < FIB_TABLE_HASHSZ; h++) {
|
|
head = &net->ipv4.fib_table_hash[h];
|
|
head = &net->ipv4.fib_table_hash[h];
|
|
hlist_for_each_entry(tb, node, head, tb_hlist)
|
|
hlist_for_each_entry(tb, node, head, tb_hlist)
|
|
- flushed += tb->tb_flush(tb);
|
|
|
|
|
|
+ flushed += fib_table_flush(tb);
|
|
}
|
|
}
|
|
|
|
|
|
if (flushed)
|
|
if (flushed)
|
|
@@ -162,7 +162,7 @@ struct net_device * ip_dev_find(struct net *net, __be32 addr)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
local_table = fib_get_table(net, RT_TABLE_LOCAL);
|
|
local_table = fib_get_table(net, RT_TABLE_LOCAL);
|
|
- if (!local_table || local_table->tb_lookup(local_table, &fl, &res))
|
|
|
|
|
|
+ if (!local_table || fib_table_lookup(local_table, &fl, &res))
|
|
return NULL;
|
|
return NULL;
|
|
if (res.type != RTN_LOCAL)
|
|
if (res.type != RTN_LOCAL)
|
|
goto out;
|
|
goto out;
|
|
@@ -200,7 +200,7 @@ static inline unsigned __inet_dev_addr_type(struct net *net,
|
|
local_table = fib_get_table(net, RT_TABLE_LOCAL);
|
|
local_table = fib_get_table(net, RT_TABLE_LOCAL);
|
|
if (local_table) {
|
|
if (local_table) {
|
|
ret = RTN_UNICAST;
|
|
ret = RTN_UNICAST;
|
|
- if (!local_table->tb_lookup(local_table, &fl, &res)) {
|
|
|
|
|
|
+ if (!fib_table_lookup(local_table, &fl, &res)) {
|
|
if (!dev || dev == res.fi->fib_dev)
|
|
if (!dev || dev == res.fi->fib_dev)
|
|
ret = res.type;
|
|
ret = res.type;
|
|
fib_res_put(&res);
|
|
fib_res_put(&res);
|
|
@@ -473,13 +473,13 @@ int ip_rt_ioctl(struct net *net, unsigned int cmd, void __user *arg)
|
|
if (cmd == SIOCDELRT) {
|
|
if (cmd == SIOCDELRT) {
|
|
tb = fib_get_table(net, cfg.fc_table);
|
|
tb = fib_get_table(net, cfg.fc_table);
|
|
if (tb)
|
|
if (tb)
|
|
- err = tb->tb_delete(tb, &cfg);
|
|
|
|
|
|
+ err = fib_table_delete(tb, &cfg);
|
|
else
|
|
else
|
|
err = -ESRCH;
|
|
err = -ESRCH;
|
|
} else {
|
|
} else {
|
|
tb = fib_new_table(net, cfg.fc_table);
|
|
tb = fib_new_table(net, cfg.fc_table);
|
|
if (tb)
|
|
if (tb)
|
|
- err = tb->tb_insert(tb, &cfg);
|
|
|
|
|
|
+ err = fib_table_insert(tb, &cfg);
|
|
else
|
|
else
|
|
err = -ENOBUFS;
|
|
err = -ENOBUFS;
|
|
}
|
|
}
|
|
@@ -594,7 +594,7 @@ static int inet_rtm_delroute(struct sk_buff *skb, struct nlmsghdr *nlh, void *ar
|
|
goto errout;
|
|
goto errout;
|
|
}
|
|
}
|
|
|
|
|
|
- err = tb->tb_delete(tb, &cfg);
|
|
|
|
|
|
+ err = fib_table_delete(tb, &cfg);
|
|
errout:
|
|
errout:
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
@@ -616,7 +616,7 @@ static int inet_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh, void *ar
|
|
goto errout;
|
|
goto errout;
|
|
}
|
|
}
|
|
|
|
|
|
- err = tb->tb_insert(tb, &cfg);
|
|
|
|
|
|
+ err = fib_table_insert(tb, &cfg);
|
|
errout:
|
|
errout:
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
@@ -647,7 +647,7 @@ static int inet_dump_fib(struct sk_buff *skb, struct netlink_callback *cb)
|
|
if (dumped)
|
|
if (dumped)
|
|
memset(&cb->args[2], 0, sizeof(cb->args) -
|
|
memset(&cb->args[2], 0, sizeof(cb->args) -
|
|
2 * sizeof(cb->args[0]));
|
|
2 * sizeof(cb->args[0]));
|
|
- if (tb->tb_dump(tb, skb, cb) < 0)
|
|
|
|
|
|
+ if (fib_table_dump(tb, skb, cb) < 0)
|
|
goto out;
|
|
goto out;
|
|
dumped = 1;
|
|
dumped = 1;
|
|
next:
|
|
next:
|
|
@@ -701,9 +701,9 @@ static void fib_magic(int cmd, int type, __be32 dst, int dst_len, struct in_ifad
|
|
cfg.fc_scope = RT_SCOPE_HOST;
|
|
cfg.fc_scope = RT_SCOPE_HOST;
|
|
|
|
|
|
if (cmd == RTM_NEWROUTE)
|
|
if (cmd == RTM_NEWROUTE)
|
|
- tb->tb_insert(tb, &cfg);
|
|
|
|
|
|
+ fib_table_insert(tb, &cfg);
|
|
else
|
|
else
|
|
- tb->tb_delete(tb, &cfg);
|
|
|
|
|
|
+ fib_table_delete(tb, &cfg);
|
|
}
|
|
}
|
|
|
|
|
|
void fib_add_ifaddr(struct in_ifaddr *ifa)
|
|
void fib_add_ifaddr(struct in_ifaddr *ifa)
|
|
@@ -832,7 +832,7 @@ static void nl_fib_lookup(struct fib_result_nl *frn, struct fib_table *tb )
|
|
local_bh_disable();
|
|
local_bh_disable();
|
|
|
|
|
|
frn->tb_id = tb->tb_id;
|
|
frn->tb_id = tb->tb_id;
|
|
- frn->err = tb->tb_lookup(tb, &fl, &res);
|
|
|
|
|
|
+ frn->err = fib_table_lookup(tb, &fl, &res);
|
|
|
|
|
|
if (!frn->err) {
|
|
if (!frn->err) {
|
|
frn->prefixlen = res.prefixlen;
|
|
frn->prefixlen = res.prefixlen;
|
|
@@ -1009,7 +1009,7 @@ static void __net_exit ip_fib_net_exit(struct net *net)
|
|
head = &net->ipv4.fib_table_hash[i];
|
|
head = &net->ipv4.fib_table_hash[i];
|
|
hlist_for_each_entry_safe(tb, node, tmp, head, tb_hlist) {
|
|
hlist_for_each_entry_safe(tb, node, tmp, head, tb_hlist) {
|
|
hlist_del(node);
|
|
hlist_del(node);
|
|
- tb->tb_flush(tb);
|
|
|
|
|
|
+ fib_table_flush(tb);
|
|
kfree(tb);
|
|
kfree(tb);
|
|
}
|
|
}
|
|
}
|
|
}
|