[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(usagi-users 02698) help: ipv6_chk_addr



Can anyone please tell me exactly what the
function ipv6_chk_addr (in addrconf.c) does?
 
Thank-you!
Bryan
----
int ipv6_chk_addr( struct int_addr *addr, sturct net_device *dev)
{
  struct inet6_ifaddr * ifp;
  u8 hash = ipv6_addr_hash(addr);
 
  read_lock_bh(&addrconf_has_lock);
  for(ifp = inet6_addr_lst[hash]; ifp; ifp=ifp->lst_next) {
     if (ipv6_addr_cmp(&ifp->addr, addr) ==0 &&
        !(ifp->flgas&IFA_F_TENTATIVE)) {
            if(dev==NULL || ifp->idev->dev==dev ||
               !(ifp->scope&(IFA_LINK|IFA_HOST)))
                   break;
   }
   read_unlock_bh(&addrconf_hash_lock);
   return ifp != NULL;
}