net: ipv6: Move ip6_route_get_saddr to inline
VRF driver needs access to ip6_route_get_saddr code. Since it does little beyond ipv6_dev_get_saddr and ipv6_dev_get_saddr is already exported for modules move ip6_route_get_saddr to the header as an inline. Code move only; no functional change. Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
0023a061d7
Коммит
a2e2ff560f
|
@ -18,6 +18,7 @@ struct route_info {
|
||||||
__u8 prefix[0]; /* 0,8 or 16 */
|
__u8 prefix[0]; /* 0,8 or 16 */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#include <net/addrconf.h>
|
||||||
#include <net/flow.h>
|
#include <net/flow.h>
|
||||||
#include <net/ip6_fib.h>
|
#include <net/ip6_fib.h>
|
||||||
#include <net/sock.h>
|
#include <net/sock.h>
|
||||||
|
@ -88,9 +89,23 @@ int ip6_route_add(struct fib6_config *cfg);
|
||||||
int ip6_ins_rt(struct rt6_info *);
|
int ip6_ins_rt(struct rt6_info *);
|
||||||
int ip6_del_rt(struct rt6_info *);
|
int ip6_del_rt(struct rt6_info *);
|
||||||
|
|
||||||
int ip6_route_get_saddr(struct net *net, struct rt6_info *rt,
|
static inline int ip6_route_get_saddr(struct net *net, struct rt6_info *rt,
|
||||||
const struct in6_addr *daddr, unsigned int prefs,
|
const struct in6_addr *daddr,
|
||||||
struct in6_addr *saddr);
|
unsigned int prefs,
|
||||||
|
struct in6_addr *saddr)
|
||||||
|
{
|
||||||
|
struct inet6_dev *idev =
|
||||||
|
rt ? ip6_dst_idev((struct dst_entry *)rt) : NULL;
|
||||||
|
int err = 0;
|
||||||
|
|
||||||
|
if (rt && rt->rt6i_prefsrc.plen)
|
||||||
|
*saddr = rt->rt6i_prefsrc.addr;
|
||||||
|
else
|
||||||
|
err = ipv6_dev_get_saddr(net, idev ? idev->dev : NULL,
|
||||||
|
daddr, prefs, saddr);
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
struct rt6_info *rt6_lookup(struct net *net, const struct in6_addr *daddr,
|
struct rt6_info *rt6_lookup(struct net *net, const struct in6_addr *daddr,
|
||||||
const struct in6_addr *saddr, int oif, int flags);
|
const struct in6_addr *saddr, int oif, int flags);
|
||||||
|
|
|
@ -2586,23 +2586,6 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
|
||||||
return rt;
|
return rt;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ip6_route_get_saddr(struct net *net,
|
|
||||||
struct rt6_info *rt,
|
|
||||||
const struct in6_addr *daddr,
|
|
||||||
unsigned int prefs,
|
|
||||||
struct in6_addr *saddr)
|
|
||||||
{
|
|
||||||
struct inet6_dev *idev =
|
|
||||||
rt ? ip6_dst_idev((struct dst_entry *)rt) : NULL;
|
|
||||||
int err = 0;
|
|
||||||
if (rt && rt->rt6i_prefsrc.plen)
|
|
||||||
*saddr = rt->rt6i_prefsrc.addr;
|
|
||||||
else
|
|
||||||
err = ipv6_dev_get_saddr(net, idev ? idev->dev : NULL,
|
|
||||||
daddr, prefs, saddr);
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* remove deleted ip from prefsrc entries */
|
/* remove deleted ip from prefsrc entries */
|
||||||
struct arg_dev_net_ip {
|
struct arg_dev_net_ip {
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче