Exemplo n.º 1
0
/*
 *	check if given interface (or any, if dev==0) has this anycast address
 */
int ipv6_chk_acast_addr(struct net_device *dev, struct in6_addr *addr)
{
	int found = 0;

	if (dev)
		return ipv6_chk_acast_dev(dev, addr);
	read_lock(&dev_base_lock);
	for_each_netdev(&init_net, dev)
		if (ipv6_chk_acast_dev(dev, addr)) {
			found = 1;
			break;
		}
	read_unlock(&dev_base_lock);
	return found;
}
Exemplo n.º 2
0
/*
 *	check if given interface (or any, if dev==0) has this anycast address
 */
int ipv6_chk_acast_addr(struct net *net, struct net_device *dev,
			struct in6_addr *addr)
{
	int found = 0;

	if (dev)
		return ipv6_chk_acast_dev(dev, addr);
	rcu_read_lock();
	for_each_netdev_rcu(net, dev)
		if (ipv6_chk_acast_dev(dev, addr)) {
			found = 1;
			break;
		}
	rcu_read_unlock();
	return found;
}
Exemplo n.º 3
0
/*
 *	check if given interface (or any, if dev==0) has this anycast address
 */
bool ipv6_chk_acast_addr(struct net *net, struct net_device *dev,
			 const struct in6_addr *addr)
{
	bool found = false;

	rcu_read_lock();
	if (dev)
		found = ipv6_chk_acast_dev(dev, addr);
	else
		for_each_netdev_rcu(net, dev)
			if (ipv6_chk_acast_dev(dev, addr)) {
				found = true;
				break;
			}
	rcu_read_unlock();
	return found;
}