Commit 2c170e07 authored by David Ahern's avatar David Ahern Committed by David S. Miller
Browse files

ipv6: Handle all fib6_nh in a nexthop in fib6_info_uses_dev



Add a hook in fib6_info_uses_dev to handle nexthop struct in a fib6_info.

Signed-off-by: default avatarDavid Ahern <dsahern@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a1b7a1f0
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -5190,9 +5190,27 @@ nla_put_failure:
	return -EMSGSIZE;
}

static int fib6_info_nh_uses_dev(struct fib6_nh *nh, void *arg)
{
	const struct net_device *dev = arg;

	if (nh->fib_nh_dev == dev)
		return 1;

	return 0;
}

static bool fib6_info_uses_dev(const struct fib6_info *f6i,
			       const struct net_device *dev)
{
	if (f6i->nh) {
		struct net_device *_dev = (struct net_device *)dev;

		return !!nexthop_for_each_fib6_nh(f6i->nh,
						  fib6_info_nh_uses_dev,
						  _dev);
	}

	if (f6i->fib6_nh->fib_nh_dev == dev)
		return true;