Subject: Re: route/max_size sysctl in ipv4

From: Pádraig Brady <[email-masked]>
Date: Tue, 06 Jan 2015 12:41:51 +0000

On 06/01/15 00:56, Ani Sinha wrote:
> On Mon, Jan 5, 2015 at 4:51 PM, David Miller <[email-masked]> wrote:
>> From: Ani Sinha <[email-masked]>
>> Date: Mon, 5 Jan 2015 16:43:30 -0800
>>
>>> On Mon, Jan 5, 2015 at 4:36 PM, David Miller <[email-masked]> wrote:
>>>> From: Ani Sinha <[email-masked]>
>>>> Date: Mon, 5 Jan 2015 15:48:11 -0800
>>>>
>>>>> I am looking at the code and it looks like since the route cache for
>>>>> ipv4 was removed from the kernel, this sysctl parameter no longer
>>>>> serves the same purpose. It does not look like it is even used in the
>>>>> ipv4/route.c module. Is there an equivalent sysctl parameter limiting
>>>>> the number of route entries in the kernel? Or is there now no
>>>>> mechanism to limit the number of route entries?
>>>>
>>>> There is nothing to limit, since the cache was removed.
>>>
>>> Shouldn't the documentation be updated to reflect that? Also what's
>>> the point of having a dummy variable that does nothing? Should we not
>>> simply remove it?
>>
>> There is nothing to update, the behavior is completely transparent.
>> Absolutely no cache entries exist, therefore the limit cannot be
>> reached.
> 
> I disagree. You are advertising a feature in an official documentation
> that simply does not exist for ipv4. This is very confusing. If I did
> not dig into the code, I wouldn't know that this particular knob is a
> noop since the time the route cache was removed.

You can't change APIs with impunity.

>> The sysctl is kept so that scripts reading it don't suddenly stop
>> working.  We can't just remove sysctl values.

Perhaps /proc/sys/net/ipv4/route/max_size should always return 0 when read,
and discard written values?

thanks,
Pádraig