Subject: Re: [PATCH] ipv6: clear RTF_EXPIRES when call ip6_rt_copy

From: Gao feng <[email-masked]>
Date: Tue, 17 Dec 2013 17:23:37 +0800

On 12/17/2013 04:30 PM, Hannes Frederic Sowa wrote:
> On Tue, Dec 17, 2013 at 03:46:24PM +0800, Gao feng wrote:
>>> Gao, do you still remember why you used RTF_ADDRCONF|RTF_DEFAULT?
>>>
>>
>> It's a mystery， I noticed this problem when I wrote the codes.
>> http://lists.openwall.net/netdev/2012/03/19/7
> 
> I already found this thread, thanks. ;)
> 
>> I used the flags RTF_ADDRCONF|RTF_DEFAULT because they are exist in
>> rt6_{get,add,purge}_dflt_router.
> 
> I thought so, but we have to deal with !DEFAULT ADDRCONF routes, too.

Right.

> 
>> The from of new cloned rt should not be set if it's impossible for the ort
>> to be expired.
> 
> Ok.
> 
>> but seems we should set from if flags have RTF_ADDRCONF bit. RA package
>> not only generate the default route.
> 
> Exactly, but it is worse:
> 
> Prefix routes can be added with expiration time if user space installs a
> prefix with valid_lft != infinity. So I fear we already have permament route
> entries which expire.

Yes, this should happen..
> 
> Userspace router advertisment listener already use that.
> 
> I fear the flags don't have a well defined semantic any more. :(
> 
> As for the original patch in this thread, I would suggest to hold it
> back until this mess is understood. Ok?
> 

I'm ok if we want the behave back to the commit 1716a96101[ipv6: fix problem with
expired dst cache].