mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
Remove DST_HOST
Previous changes to the IP routing code have removed all the tests for the DS_HOST route flag. Remove the flags and all the code that sets it. Signed-off-by: David Laight <david.laight@aculab.com> Acked-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
723d5e5b81
commit
af13b3c338
@ -504,7 +504,7 @@ static void vrf_rt6_release(struct net_device *dev, struct net_vrf *vrf)
|
||||
|
||||
static int vrf_rt6_create(struct net_device *dev)
|
||||
{
|
||||
int flags = DST_HOST | DST_NOPOLICY | DST_NOXFRM;
|
||||
int flags = DST_NOPOLICY | DST_NOXFRM;
|
||||
struct net_vrf *vrf = netdev_priv(dev);
|
||||
struct net *net = dev_net(dev);
|
||||
struct rt6_info *rt6;
|
||||
@ -739,7 +739,7 @@ static int vrf_rtable_create(struct net_device *dev)
|
||||
return -ENOMEM;
|
||||
|
||||
/* create a dst for routing packets out through a VRF device */
|
||||
rth = rt_dst_alloc(dev, 0, RTN_UNICAST, 1, 1, 0);
|
||||
rth = rt_dst_alloc(dev, 0, RTN_UNICAST, 1, 1);
|
||||
if (!rth)
|
||||
return -ENOMEM;
|
||||
|
||||
|
@ -35,7 +35,6 @@ struct dst_entry {
|
||||
int (*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||
|
||||
unsigned short flags;
|
||||
#define DST_HOST 0x0001
|
||||
#define DST_NOXFRM 0x0002
|
||||
#define DST_NOPOLICY 0x0004
|
||||
#define DST_NOCOUNT 0x0008
|
||||
|
@ -190,11 +190,10 @@ struct fib6_info {
|
||||
u8 should_flush:1,
|
||||
dst_nocount:1,
|
||||
dst_nopolicy:1,
|
||||
dst_host:1,
|
||||
fib6_destroying:1,
|
||||
offload:1,
|
||||
trap:1,
|
||||
unused:1;
|
||||
unused:2;
|
||||
|
||||
struct rcu_head rcu;
|
||||
struct nexthop *nh;
|
||||
|
@ -231,7 +231,7 @@ int ip_rt_ioctl(struct net *, unsigned int cmd, struct rtentry *rt);
|
||||
void ip_rt_get_source(u8 *src, struct sk_buff *skb, struct rtable *rt);
|
||||
struct rtable *rt_dst_alloc(struct net_device *dev,
|
||||
unsigned int flags, u16 type,
|
||||
bool nopolicy, bool noxfrm, bool will_cache);
|
||||
bool nopolicy, bool noxfrm);
|
||||
struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt);
|
||||
|
||||
struct in_ifaddr;
|
||||
|
@ -1173,7 +1173,7 @@ make_route:
|
||||
if (dev_out->flags & IFF_LOOPBACK)
|
||||
flags |= RTCF_LOCAL;
|
||||
|
||||
rt = dst_alloc(&dn_dst_ops, dev_out, 0, DST_OBSOLETE_NONE, DST_HOST);
|
||||
rt = dst_alloc(&dn_dst_ops, dev_out, 0, DST_OBSOLETE_NONE, 0);
|
||||
if (rt == NULL)
|
||||
goto e_nobufs;
|
||||
|
||||
@ -1439,7 +1439,7 @@ static int dn_route_input_slow(struct sk_buff *skb)
|
||||
}
|
||||
|
||||
make_route:
|
||||
rt = dst_alloc(&dn_dst_ops, out_dev, 1, DST_OBSOLETE_NONE, DST_HOST);
|
||||
rt = dst_alloc(&dn_dst_ops, out_dev, 1, DST_OBSOLETE_NONE, 0);
|
||||
if (rt == NULL)
|
||||
goto e_nobufs;
|
||||
|
||||
|
@ -1621,12 +1621,11 @@ static void rt_set_nexthop(struct rtable *rt, __be32 daddr,
|
||||
|
||||
struct rtable *rt_dst_alloc(struct net_device *dev,
|
||||
unsigned int flags, u16 type,
|
||||
bool nopolicy, bool noxfrm, bool will_cache)
|
||||
bool nopolicy, bool noxfrm)
|
||||
{
|
||||
struct rtable *rt;
|
||||
|
||||
rt = dst_alloc(&ipv4_dst_ops, dev, 1, DST_OBSOLETE_FORCE_CHK,
|
||||
(will_cache ? 0 : DST_HOST) |
|
||||
(nopolicy ? DST_NOPOLICY : 0) |
|
||||
(noxfrm ? DST_NOXFRM : 0));
|
||||
|
||||
@ -1674,7 +1673,6 @@ struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt)
|
||||
new_rt->rt_gw6 = rt->rt_gw6;
|
||||
INIT_LIST_HEAD(&new_rt->rt_uncached);
|
||||
|
||||
new_rt->dst.flags |= DST_HOST;
|
||||
new_rt->dst.input = rt->dst.input;
|
||||
new_rt->dst.output = rt->dst.output;
|
||||
new_rt->dst.error = rt->dst.error;
|
||||
@ -1734,7 +1732,7 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
|
||||
flags |= RTCF_LOCAL;
|
||||
|
||||
rth = rt_dst_alloc(dev_net(dev)->loopback_dev, flags, RTN_MULTICAST,
|
||||
IN_DEV_CONF_GET(in_dev, NOPOLICY), false, false);
|
||||
IN_DEV_CONF_GET(in_dev, NOPOLICY), false);
|
||||
if (!rth)
|
||||
return -ENOBUFS;
|
||||
|
||||
@ -1851,7 +1849,7 @@ static int __mkroute_input(struct sk_buff *skb,
|
||||
|
||||
rth = rt_dst_alloc(out_dev->dev, 0, res->type,
|
||||
IN_DEV_CONF_GET(in_dev, NOPOLICY),
|
||||
IN_DEV_CONF_GET(out_dev, NOXFRM), do_cache);
|
||||
IN_DEV_CONF_GET(out_dev, NOXFRM));
|
||||
if (!rth) {
|
||||
err = -ENOBUFS;
|
||||
goto cleanup;
|
||||
@ -2219,7 +2217,7 @@ local_input:
|
||||
|
||||
rth = rt_dst_alloc(l3mdev_master_dev_rcu(dev) ? : net->loopback_dev,
|
||||
flags | RTCF_LOCAL, res->type,
|
||||
IN_DEV_CONF_GET(in_dev, NOPOLICY), false, do_cache);
|
||||
IN_DEV_CONF_GET(in_dev, NOPOLICY), false);
|
||||
if (!rth)
|
||||
goto e_nobufs;
|
||||
|
||||
@ -2443,8 +2441,7 @@ static struct rtable *__mkroute_output(const struct fib_result *res,
|
||||
add:
|
||||
rth = rt_dst_alloc(dev_out, flags, type,
|
||||
IN_DEV_CONF_GET(in_dev, NOPOLICY),
|
||||
IN_DEV_CONF_GET(in_dev, NOXFRM),
|
||||
do_cache);
|
||||
IN_DEV_CONF_GET(in_dev, NOXFRM));
|
||||
if (!rth)
|
||||
return ERR_PTR(-ENOBUFS);
|
||||
|
||||
|
@ -1062,8 +1062,6 @@ static unsigned short fib6_info_dst_flags(struct fib6_info *rt)
|
||||
flags |= DST_NOCOUNT;
|
||||
if (rt->dst_nopolicy)
|
||||
flags |= DST_NOPOLICY;
|
||||
if (rt->dst_host)
|
||||
flags |= DST_HOST;
|
||||
|
||||
return flags;
|
||||
}
|
||||
@ -1349,7 +1347,6 @@ static struct rt6_info *ip6_rt_cache_alloc(const struct fib6_result *res,
|
||||
|
||||
ip6_rt_copy_init(rt, res);
|
||||
rt->rt6i_flags |= RTF_CACHE;
|
||||
rt->dst.flags |= DST_HOST;
|
||||
rt->rt6i_dst.addr = *daddr;
|
||||
rt->rt6i_dst.plen = 128;
|
||||
|
||||
@ -3142,7 +3139,6 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
|
||||
goto out;
|
||||
}
|
||||
|
||||
rt->dst.flags |= DST_HOST;
|
||||
rt->dst.input = ip6_input;
|
||||
rt->dst.output = ip6_output;
|
||||
rt->rt6i_gateway = fl6->daddr;
|
||||
@ -3645,8 +3641,6 @@ static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg,
|
||||
|
||||
ipv6_addr_prefix(&rt->fib6_dst.addr, &cfg->fc_dst, cfg->fc_dst_len);
|
||||
rt->fib6_dst.plen = cfg->fc_dst_len;
|
||||
if (rt->fib6_dst.plen == 128)
|
||||
rt->dst_host = true;
|
||||
|
||||
#ifdef CONFIG_IPV6_SUBTREES
|
||||
ipv6_addr_prefix(&rt->fib6_src.addr, &cfg->fc_src, cfg->fc_src_len);
|
||||
|
@ -2613,7 +2613,6 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy,
|
||||
xdst->xfrm_genid = xfrm[i]->genid;
|
||||
|
||||
dst1->obsolete = DST_OBSOLETE_FORCE_CHK;
|
||||
dst1->flags |= DST_HOST;
|
||||
dst1->lastuse = now;
|
||||
|
||||
dst1->input = dst_discard;
|
||||
@ -2899,7 +2898,7 @@ static struct xfrm_dst *xfrm_create_dummy_bundle(struct net *net,
|
||||
dst_copy_metrics(dst1, dst);
|
||||
|
||||
dst1->obsolete = DST_OBSOLETE_FORCE_CHK;
|
||||
dst1->flags |= DST_HOST | DST_XFRM_QUEUE;
|
||||
dst1->flags |= DST_XFRM_QUEUE;
|
||||
dst1->lastuse = jiffies;
|
||||
|
||||
dst1->input = dst_discard;
|
||||
|
Loading…
Reference in New Issue
Block a user