[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f3e65ab8-0677-b2c7-2163-59b6f845a96b@cumulusnetworks.com>
Date: Tue, 16 Apr 2019 22:56:01 -0600
From: David Ahern <dsa@...ulusnetworks.com>
To: linmiaohe <linmiaohe@...wei.com>, shrijeet@...il.com,
davem@...emloft.net, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: Mingfangsen <mingfangsen@...wei.com>
Subject: Re: some trouble when using vrf
On 4/16/19 8:22 PM, linmiaohe wrote:
>
>
> On 2019/4/16 23:20, David Ahern wrote:
>> On 4/16/19 5:26 AM, linmiaohe wrote:
>>> ...
>>> bind(sock_fd, (struct sockaddr *)&addr_serv, sizeof(addr_serv));
>>> ...
>>> ret = setsockopt(sock_fd, SOL_SOCKET, SO_BINDTODEVICE, bind_dev, strlen(bind_dev)+1);
>>> ...
>>> This code snipet doesn't work if the ip address of addr_serv is not in default vrf. And
>>> "Cannot assign requested address" will occurs.
>>
>> Applications must bind to the device first and then bind to the local
>> address. As I recall this applies regardless of whether it is a VRF or
>> other.
>>
>>
> It should be, but unfortunately some applications break this.
>
Sure, I have an open item on my to-do list about re-verifying bound
addresses when the device binding changes (and vice versa). This is not
a problem VRF introduced, but VRF use case does bring more attention to it.
Powered by blists - more mailing lists