Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Apr 2013 17:39:15 +0400
From:      "Andrey V. Elsukov" <bu7cher@yandex.ru>
To:        Sreenivasa Honnur <shonnur@chelsio.com>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: PV6 bind fails with 49 (#define EADDRNOTAVAIL   49           /* Can't assign requested address */)
Message-ID:  <516FF783.1040609@yandex.ru>
In-Reply-To: <F2BBBB6E0068844991318A316F34795C349141@nice.asicdesigners.com>
References:  <F2BBBB6E0068844991318A316F34795C349141@nice.asicdesigners.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 18.04.2013 15:37, Sreenivasa Honnur wrote:
> I have a ipv6 interface(ping6 to a remove ipv6 works) when I try to
> bind to this address through a socket program "sobind" fails with "49"
> as return value. If I give "saddr6.sin6_addr = in6addr_any;" sobind
> works.
> 
> Any idea what could be going wrong here?

> ifa_ifwithaddr_internal(struct sockaddr *addr, int getref)
> {
> ........
> ........
> 
> TAILQ_FOREACH(ifp, &V_ifnet, if_link) {
>                 IF_ADDR_RLOCK(ifp);
>                 printf("ifp->xname:%s ifp->dname:%s\n",ifp->if_xname, ifp->if_dname);
>                 TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
>                         if (ifa->ifa_addr->sa_family != addr->sa_family) ==>  ifa->ifa_addr->sa_family=18 & addr->sa_family=28. Even though the interface is in IPV6 mode its sa_family is not  set properly,
>                                                         continue;
> }

This tailq contains any addresses assigned to the interface,
sa_fimily=18 is for AF_LINK address, so it's ok.

-- 
WBR, Andrey V. Elsukov



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?516FF783.1040609>