net: Replace calls to vrf_dev_get_rth
Replace calls to vrf_dev_get_rth with l3mdev_get_rtable. The check on the flow flags is handled in the l3mdev operation. Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3236b0042b
commit
8e1ed7058b
2 changed files with 3 additions and 27 deletions
|
@ -32,26 +32,4 @@ struct net_vrf {
|
|||
u32 tb_id;
|
||||
};
|
||||
|
||||
|
||||
#if IS_ENABLED(CONFIG_NET_VRF)
|
||||
/* caller has already checked netif_is_l3_master(dev) */
|
||||
static inline struct rtable *vrf_dev_get_rth(const struct net_device *dev)
|
||||
{
|
||||
struct rtable *rth = ERR_PTR(-ENETUNREACH);
|
||||
struct net_vrf *vrf = netdev_priv(dev);
|
||||
|
||||
if (vrf) {
|
||||
rth = vrf->rth;
|
||||
atomic_inc(&rth->dst.__refcnt);
|
||||
}
|
||||
return rth;
|
||||
}
|
||||
|
||||
#else
|
||||
static inline struct rtable *vrf_dev_get_rth(const struct net_device *dev)
|
||||
{
|
||||
return ERR_PTR(-ENETUNREACH);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __LINUX_NET_VRF_H */
|
||||
|
|
|
@ -112,7 +112,6 @@
|
|||
#endif
|
||||
#include <net/secure_seq.h>
|
||||
#include <net/ip_tunnels.h>
|
||||
#include <net/vrf.h>
|
||||
#include <net/l3mdev.h>
|
||||
|
||||
#define RT_FL_TOS(oldflp4) \
|
||||
|
@ -2125,12 +2124,11 @@ struct rtable *__ip_route_output_key(struct net *net, struct flowi4 *fl4)
|
|||
fl4->saddr = inet_select_addr(dev_out, 0,
|
||||
RT_SCOPE_HOST);
|
||||
}
|
||||
if (netif_is_l3_master(dev_out) &&
|
||||
!(fl4->flowi4_flags & FLOWI_FLAG_VRFSRC)) {
|
||||
rth = vrf_dev_get_rth(dev_out);
|
||||
|
||||
rth = l3mdev_get_rtable(dev_out, fl4);
|
||||
if (rth)
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
if (!fl4->daddr) {
|
||||
fl4->daddr = fl4->saddr;
|
||||
|
|
Loading…
Reference in a new issue