Exemple #1
0
static void addrconf_leave_solict(struct device *dev, struct in6_addr *addr)
{
    struct in6_addr maddr;

    if (dev->flags&(IFF_LOOPBACK|IFF_NOARP))
        return;

#ifndef CONFIG_IPV6_NO_PB
    addrconf_addr_solict_mult_old(addr, &maddr);
    ipv6_dev_mc_dec(dev, &maddr);
#endif
#ifdef CONFIG_IPV6_EUI64
    addrconf_addr_solict_mult_new(addr, &maddr);
    ipv6_dev_mc_dec(dev, &maddr);
#endif
}
Exemple #2
0
static void pndisc_destructor(struct pneigh_entry *n)
{
	struct in6_addr *addr = (struct in6_addr*)&n->key;
	struct in6_addr maddr;
	struct net_device *dev = n->dev;

	if (dev == NULL || __in6_dev_get(dev) == NULL)
		return;
#ifndef CONFIG_IPV6_NO_PB
	addrconf_addr_solict_mult_old(addr, &maddr);
	ipv6_dev_mc_dec(dev, &maddr);
#endif
#ifdef CONFIG_IPV6_EUI64
	addrconf_addr_solict_mult_new(addr, &maddr);
	ipv6_dev_mc_dec(dev, &maddr);
#endif
}
Exemple #3
0
static int pndisc_constructor(struct pneigh_entry *n)
{
	struct in6_addr *addr = (struct in6_addr*)&n->key;
	struct in6_addr maddr;
	struct device *dev = n->dev;

	if (dev == NULL || ipv6_get_idev(dev) == NULL)
		return -EINVAL;
#ifndef CONFIG_IPV6_NO_PB
	addrconf_addr_solict_mult_old(addr, &maddr);
	ipv6_dev_mc_inc(dev, &maddr);
#endif
#ifdef CONFIG_IPV6_EUI64
	addrconf_addr_solict_mult_new(addr, &maddr);
	ipv6_dev_mc_inc(dev, &maddr);
#endif
	return 0;
}