* route/max_size sysctl in ipv4
@ 2015-01-05 23:48 Ani Sinha
2015-01-06 0:36 ` David Miller
0 siblings, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-05 23:48 UTC (permalink / raw)
To: netdev@vger.kernel.org
Hi all :
Please see : http://lxr.free-electrons.com/source/Documentation/networking/ip-sysctl.txt
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?
Please someone enlighten me.
Thanks a lot in advance,
ani
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-05 23:48 route/max_size sysctl in ipv4 Ani Sinha
@ 2015-01-06 0:36 ` David Miller
2015-01-06 0:43 ` Ani Sinha
0 siblings, 1 reply; 22+ messages in thread
From: David Miller @ 2015-01-06 0:36 UTC (permalink / raw)
To: ani; +Cc: netdev
From: Ani Sinha <ani@arista.com>
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.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-06 0:36 ` David Miller
@ 2015-01-06 0:43 ` Ani Sinha
2015-01-06 0:51 ` David Miller
0 siblings, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-06 0:43 UTC (permalink / raw)
To: David Miller; +Cc: netdev@vger.kernel.org
On Mon, Jan 5, 2015 at 4:36 PM, David Miller <davem@davemloft.net> wrote:
> From: Ani Sinha <ani@arista.com>
> 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?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-06 0:43 ` Ani Sinha
@ 2015-01-06 0:51 ` David Miller
2015-01-06 0:56 ` Ani Sinha
2015-01-07 1:56 ` Ani Sinha
0 siblings, 2 replies; 22+ messages in thread
From: David Miller @ 2015-01-06 0:51 UTC (permalink / raw)
To: ani; +Cc: netdev
From: Ani Sinha <ani@arista.com>
Date: Mon, 5 Jan 2015 16:43:30 -0800
> On Mon, Jan 5, 2015 at 4:36 PM, David Miller <davem@davemloft.net> wrote:
>> From: Ani Sinha <ani@arista.com>
>> 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.
The sysctl is kept so that scripts reading it don't suddenly stop
working. We can't just remove sysctl values.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-06 0:51 ` David Miller
@ 2015-01-06 0:56 ` Ani Sinha
2015-01-06 12:41 ` Pádraig Brady
2015-01-07 1:56 ` Ani Sinha
1 sibling, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-06 0:56 UTC (permalink / raw)
To: David Miller; +Cc: netdev@vger.kernel.org
On Mon, Jan 5, 2015 at 4:51 PM, David Miller <davem@davemloft.net> wrote:
> From: Ani Sinha <ani@arista.com>
> Date: Mon, 5 Jan 2015 16:43:30 -0800
>
>> On Mon, Jan 5, 2015 at 4:36 PM, David Miller <davem@davemloft.net> wrote:
>>> From: Ani Sinha <ani@arista.com>
>>> 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.
>
> The sysctl is kept so that scripts reading it don't suddenly stop
> working. We can't just remove sysctl values.
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-06 0:56 ` Ani Sinha
@ 2015-01-06 12:41 ` Pádraig Brady
2015-01-06 17:11 ` Ani Sinha
0 siblings, 1 reply; 22+ messages in thread
From: Pádraig Brady @ 2015-01-06 12:41 UTC (permalink / raw)
To: Ani Sinha, David Miller; +Cc: netdev@vger.kernel.org
On 06/01/15 00:56, Ani Sinha wrote:
> On Mon, Jan 5, 2015 at 4:51 PM, David Miller <davem@davemloft.net> wrote:
>> From: Ani Sinha <ani@arista.com>
>> Date: Mon, 5 Jan 2015 16:43:30 -0800
>>
>>> On Mon, Jan 5, 2015 at 4:36 PM, David Miller <davem@davemloft.net> wrote:
>>>> From: Ani Sinha <ani@arista.com>
>>>> 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
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-06 12:41 ` Pádraig Brady
@ 2015-01-06 17:11 ` Ani Sinha
2015-01-06 18:09 ` Eric Dumazet
0 siblings, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-06 17:11 UTC (permalink / raw)
To: Pádraig Brady; +Cc: David Miller, netdev@vger.kernel.org
On Tue, Jan 6, 2015 at 4:41 AM, Pádraig Brady <P@draigbrady.com> wrote:
> On 06/01/15 00:56, Ani Sinha wrote:
>> On Mon, Jan 5, 2015 at 4:51 PM, David Miller <davem@davemloft.net> wrote:
>>> From: Ani Sinha <ani@arista.com>
>>> Date: Mon, 5 Jan 2015 16:43:30 -0800
>>>
>>>> On Mon, Jan 5, 2015 at 4:36 PM, David Miller <davem@davemloft.net> wrote:
>>>>> From: Ani Sinha <ani@arista.com>
>>>>> 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?
Why can't se simply change the documentation to reflect the fact that
this sysctl is no longer in operation?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-06 17:11 ` Ani Sinha
@ 2015-01-06 18:09 ` Eric Dumazet
2015-01-06 20:05 ` Ani Sinha
0 siblings, 1 reply; 22+ messages in thread
From: Eric Dumazet @ 2015-01-06 18:09 UTC (permalink / raw)
To: Ani Sinha; +Cc: Pádraig Brady, David Miller, netdev@vger.kernel.org
On Tue, 2015-01-06 at 09:11 -0800, Ani Sinha wrote:
> Why can't se simply change the documentation to reflect the fact that
> this sysctl is no longer in operation?
It is still in operation for IPv6
Looks like you propose to update the documentation.
This is great !
Why don't you send an official patch ?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-06 18:09 ` Eric Dumazet
@ 2015-01-06 20:05 ` Ani Sinha
0 siblings, 0 replies; 22+ messages in thread
From: Ani Sinha @ 2015-01-06 20:05 UTC (permalink / raw)
To: Eric Dumazet; +Cc: Pádraig Brady, David Miller, netdev@vger.kernel.org
On Tue, Jan 6, 2015 at 10:09 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> On Tue, 2015-01-06 at 09:11 -0800, Ani Sinha wrote:
>
>> Why can't se simply change the documentation to reflect the fact that
>> this sysctl is no longer in operation?
>
> It is still in operation for IPv6
>
> Looks like you propose to update the documentation.
>
> This is great !
>
> Why don't you send an official patch ?
Just did.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-06 0:51 ` David Miller
2015-01-06 0:56 ` Ani Sinha
@ 2015-01-07 1:56 ` Ani Sinha
2015-01-08 1:25 ` Ani Sinha
1 sibling, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-07 1:56 UTC (permalink / raw)
To: David Miller; +Cc: netdev@vger.kernel.org
On Mon, Jan 5, 2015 at 4:51 PM, David Miller <davem@davemloft.net> wrote:
> The sysctl is kept so that scripts reading it don't suddenly stop
> working. We can't just remove sysctl values.
Interestingly, one of our scripts did break. It broke because now this
sysctl is only available in the global net namespace and not in the
child namespaces. If not breaking scripts is the fundamental logic in
keeping in sysctl intact, would you guys be open to accepting a patch
where we make this sysctl available for all net namespaces?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-07 1:56 ` Ani Sinha
@ 2015-01-08 1:25 ` Ani Sinha
2015-01-08 2:19 ` Eric Dumazet
0 siblings, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-08 1:25 UTC (permalink / raw)
To: David Miller; +Cc: netdev@vger.kernel.org
hey guys,
On Tue, Jan 6, 2015 at 5:56 PM, Ani Sinha <ani@arista.com> wrote:
> On Mon, Jan 5, 2015 at 4:51 PM, David Miller <davem@davemloft.net> wrote:
>
>> The sysctl is kept so that scripts reading it don't suddenly stop
>> working. We can't just remove sysctl values.
>
> Interestingly, one of our scripts did break. It broke because now this
> sysctl is only available in the global net namespace and not in the
> child namespaces. If not breaking scripts is the fundamental logic in
> keeping in sysctl intact, would you guys be open to accepting a patch
> where we make this sysctl available for all net namespaces?
Any thoughts on this?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-08 1:25 ` Ani Sinha
@ 2015-01-08 2:19 ` Eric Dumazet
2015-01-08 3:40 ` Ani Sinha
0 siblings, 1 reply; 22+ messages in thread
From: Eric Dumazet @ 2015-01-08 2:19 UTC (permalink / raw)
To: Ani Sinha; +Cc: David Miller, netdev@vger.kernel.org
On Wed, 2015-01-07 at 17:25 -0800, Ani Sinha wrote:
> hey guys,
>
> On Tue, Jan 6, 2015 at 5:56 PM, Ani Sinha <ani@arista.com> wrote:
> > On Mon, Jan 5, 2015 at 4:51 PM, David Miller <davem@davemloft.net> wrote:
> >
> >> The sysctl is kept so that scripts reading it don't suddenly stop
> >> working. We can't just remove sysctl values.
> >
> > Interestingly, one of our scripts did break. It broke because now this
> > sysctl is only available in the global net namespace and not in the
> > child namespaces. If not breaking scripts is the fundamental logic in
> > keeping in sysctl intact, would you guys be open to accepting a patch
> > where we make this sysctl available for all net namespaces?
>
> Any thoughts on this?
AFAIK, this sysctl (and others) always have been global.
Only /proc/sys/net/ipv4/route/flush is per ns
namespaces usage can indeed remove some sysctl :
Only initial namespace show them.
Presumably the global sysctl could be shadowed as read only, but still
some scripts expecting them being rw would break anyway.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-08 2:19 ` Eric Dumazet
@ 2015-01-08 3:40 ` Ani Sinha
2015-01-08 5:41 ` Eric Dumazet
0 siblings, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-08 3:40 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, netdev@vger.kernel.org
On Wed, Jan 7, 2015 at 6:19 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> On Wed, 2015-01-07 at 17:25 -0800, Ani Sinha wrote:
>> hey guys,
>>
>> On Tue, Jan 6, 2015 at 5:56 PM, Ani Sinha <ani@arista.com> wrote:
>> > On Mon, Jan 5, 2015 at 4:51 PM, David Miller <davem@davemloft.net> wrote:
>> >
>> >> The sysctl is kept so that scripts reading it don't suddenly stop
>> >> working. We can't just remove sysctl values.
>> >
>> > Interestingly, one of our scripts did break. It broke because now this
>> > sysctl is only available in the global net namespace and not in the
>> > child namespaces. If not breaking scripts is the fundamental logic in
>> > keeping in sysctl intact, would you guys be open to accepting a patch
>> > where we make this sysctl available for all net namespaces?
>>
>> Any thoughts on this?
>
> AFAIK, this sysctl (and others) always have been global.
>
> Only /proc/sys/net/ipv4/route/flush is per ns
my apologies for not conveying my thoughts clearer. Eric, you are
correct. However, notice that except /proc/sys/net/ipv4/route/flush,
rest of the sysctls are not available from a child net namespace.
>
> namespaces usage can indeed remove some sysctl :
> Only initial namespace show them.
yes, this is what I am talking about.
>
> Presumably the global sysctl could be shadowed as read only, but still
> some scripts expecting them being rw would break anyway.
true but at least those scripts which does only read the values will
continue to function in a child namespace. In our case, our script
only reads the max_size sysctl but since it operates from within a
child namespace, it doesn't find it.
thoughts?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-08 3:40 ` Ani Sinha
@ 2015-01-08 5:41 ` Eric Dumazet
2015-01-08 18:39 ` Ani Sinha
0 siblings, 1 reply; 22+ messages in thread
From: Eric Dumazet @ 2015-01-08 5:41 UTC (permalink / raw)
To: Ani Sinha; +Cc: David Miller, netdev@vger.kernel.org
On Wed, 2015-01-07 at 19:40 -0800, Ani Sinha wrote:
> true but at least those scripts which does only read the values will
> continue to function in a child namespace. In our case, our script
> only reads the max_size sysctl but since it operates from within a
> child namespace, it doesn't find it.
>
> thoughts?
Fix your script, or do not use namespaces.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-08 5:41 ` Eric Dumazet
@ 2015-01-08 18:39 ` Ani Sinha
2015-01-08 19:03 ` Eric Dumazet
0 siblings, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-08 18:39 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, netdev@vger.kernel.org
On Wed, Jan 7, 2015 at 9:41 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> On Wed, 2015-01-07 at 19:40 -0800, Ani Sinha wrote:
>
>> true but at least those scripts which does only read the values will
>> continue to function in a child namespace. In our case, our script
>> only reads the max_size sysctl but since it operates from within a
>> child namespace, it doesn't find it.
>>
>> thoughts?
>
> Fix your script,
But the whole point of keeping this sysctl still around is not to
break the userland scripts! If we are trying to achieve that, I think
we should go one step further and make sure that the sysctl is still
available for reading even in child namespaces (as it used to be the
case).
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-08 18:39 ` Ani Sinha
@ 2015-01-08 19:03 ` Eric Dumazet
2015-01-08 20:13 ` Ani Sinha
0 siblings, 1 reply; 22+ messages in thread
From: Eric Dumazet @ 2015-01-08 19:03 UTC (permalink / raw)
To: Ani Sinha; +Cc: David Miller, netdev@vger.kernel.org
On Thu, 2015-01-08 at 10:39 -0800, Ani Sinha wrote:
> But the whole point of keeping this sysctl still around is not to
> break the userland scripts! If we are trying to achieve that, I think
> we should go one step further and make sure that the sysctl is still
> available for reading even in child namespaces (as it used to be the
> case).
network namespaces make some sysctl disappear.
That is how it is since day 0.
Some scripts might even use this knowledge.
It is too late to change something now. Nobody but you ever complained.
If you want to use network namespaces, you have to adapt your scripts.
Nobody claimed network namespaces were totally transparent.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-08 19:03 ` Eric Dumazet
@ 2015-01-08 20:13 ` Ani Sinha
2015-01-08 20:18 ` Eric Dumazet
2015-01-09 18:47 ` Cong Wang
0 siblings, 2 replies; 22+ messages in thread
From: Ani Sinha @ 2015-01-08 20:13 UTC (permalink / raw)
To: Eric Dumazet; +Cc: David Miller, netdev@vger.kernel.org
On Thu, Jan 8, 2015 at 11:03 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>
> It is too late to change something now. Nobody but you ever complained.
Well, that is a strange argument! Nobody complained for a long time
that live capturing with vlan tagged packets were broken in tcpdump
because how the kernel started putting the tags in the aux data. But
someone eventually one day did notice that the issue was brought up.
>
> If you want to use network namespaces, you have to adapt your scripts.
>
> Nobody claimed network namespaces were totally transparent.
>
I see. I am going back to an old thread here where Linus says that the
#1 rule is:
""We don't regress user space"
https://lkml.org/lkml/2013/7/16/565
Breaking scripts seems to me to fall into the category of regressing
userspace. Or may be we can treat these sysctls more softly since they
are not strictly speaking linux ABIs.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-08 20:13 ` Ani Sinha
@ 2015-01-08 20:18 ` Eric Dumazet
2015-01-09 18:47 ` Cong Wang
1 sibling, 0 replies; 22+ messages in thread
From: Eric Dumazet @ 2015-01-08 20:18 UTC (permalink / raw)
To: Ani Sinha; +Cc: David Miller, netdev@vger.kernel.org
On Thu, 2015-01-08 at 12:13 -0800, Ani Sinha wrote:
> I see. I am going back to an old thread here where Linus says that the
> #1 rule is:
>
> ""We don't regress user space"
>
> https://lkml.org/lkml/2013/7/16/565
Thats totally different.
Look, I am going to stop the discussion here, because it seems you know
better than me.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-08 20:13 ` Ani Sinha
2015-01-08 20:18 ` Eric Dumazet
@ 2015-01-09 18:47 ` Cong Wang
2015-01-09 19:08 ` Ani Sinha
1 sibling, 1 reply; 22+ messages in thread
From: Cong Wang @ 2015-01-09 18:47 UTC (permalink / raw)
To: Ani Sinha; +Cc: Eric Dumazet, David Miller, netdev@vger.kernel.org
On Thu, Jan 8, 2015 at 12:13 PM, Ani Sinha <ani@arista.com> wrote:
> On Thu, Jan 8, 2015 at 11:03 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>>
>> If you want to use network namespaces, you have to adapt your scripts.
>>
>> Nobody claimed network namespaces were totally transparent.
>>
>
> I see. I am going back to an old thread here where Linus says that the
> #1 rule is:
>
> ""We don't regress user space"
>
> https://lkml.org/lkml/2013/7/16/565
>
> Breaking scripts seems to me to fall into the category of regressing
> userspace. Or may be we can treat these sysctls more softly since they
> are not strictly speaking linux ABIs.
As Eric said, it has been like this since day 0, why you still think
we break something? It is you who misunderstands the interface
not us who break your script.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-09 18:47 ` Cong Wang
@ 2015-01-09 19:08 ` Ani Sinha
2015-01-09 19:37 ` Cong Wang
0 siblings, 1 reply; 22+ messages in thread
From: Ani Sinha @ 2015-01-09 19:08 UTC (permalink / raw)
To: Cong Wang; +Cc: Eric Dumazet, David Miller, netdev@vger.kernel.org
On Fri, Jan 9, 2015 at 10:47 AM, Cong Wang <cwang@twopensource.com> wrote:
> On Thu, Jan 8, 2015 at 12:13 PM, Ani Sinha <ani@arista.com> wrote:
>> On Thu, Jan 8, 2015 at 11:03 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>>>
>>> If you want to use network namespaces, you have to adapt your scripts.
>>>
>>> Nobody claimed network namespaces were totally transparent.
>>>
>>
>> I see. I am going back to an old thread here where Linus says that the
>> #1 rule is:
>>
>> ""We don't regress user space"
>>
>> https://lkml.org/lkml/2013/7/16/565
>>
>> Breaking scripts seems to me to fall into the category of regressing
>> userspace. Or may be we can treat these sysctls more softly since they
>> are not strictly speaking linux ABIs.
>
> As Eric said, it has been like this since day 0,
I beg to differ. It has not been like this for that particular sysctl
from day 0. That sysctl was available from a child namespace and now
it isn't.
why you still think
> we break something? It is you who misunderstands the interface
> not us who break your script.
Perhaps. What I am truly confused about is :
- We are keeping a sysctl interface that does absolutely nothing in
the kernel and is completely useless in case some userland
scripts/tools are rendered broken from it's removal.
- surprisingly, we contradict ourselves when we let scripts break when
running from a child namespace because the same sysctl is no longer
available!
When the source is available for a script or tool, it's easy to change
the code to conform to the new semantics. However, for old binaries
for which we do not have any source, it's not easy or is impossible to
fix them.
I rest my case. We will of course find a way to fix our code if that
is what netdev thinks is the way to go.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-09 19:08 ` Ani Sinha
@ 2015-01-09 19:37 ` Cong Wang
2015-01-09 21:23 ` Ani Sinha
0 siblings, 1 reply; 22+ messages in thread
From: Cong Wang @ 2015-01-09 19:37 UTC (permalink / raw)
To: Ani Sinha; +Cc: Eric Dumazet, David Miller, netdev@vger.kernel.org
On Fri, Jan 9, 2015 at 11:08 AM, Ani Sinha <ani@arista.com> wrote:
>
> Perhaps. What I am truly confused about is :
>
> - We are keeping a sysctl interface that does absolutely nothing in
> the kernel and is completely useless in case some userland
> scripts/tools are rendered broken from it's removal.
I am all for getting rid of it, sane script should always check
the sysctl existence first. I think we did remove some sysctl's
from kernel before.
>
> - surprisingly, we contradict ourselves when we let scripts break when
> running from a child namespace because the same sysctl is no longer
> available!
>
I am not sure how exactly your script is broken, but it should
test the existence of any /proc file before reading it, even when
you don't use netns, because this could be a new sysctl introduced
recently (probably not the case for ip_rt_max_size, but you get my point).
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: route/max_size sysctl in ipv4
2015-01-09 19:37 ` Cong Wang
@ 2015-01-09 21:23 ` Ani Sinha
0 siblings, 0 replies; 22+ messages in thread
From: Ani Sinha @ 2015-01-09 21:23 UTC (permalink / raw)
To: Cong Wang; +Cc: Eric Dumazet, David Miller, netdev@vger.kernel.org
On Fri, Jan 9, 2015 at 11:37 AM, Cong Wang <cwang@twopensource.com> wrote:
> On Fri, Jan 9, 2015 at 11:08 AM, Ani Sinha <ani@arista.com> wrote:
>>
>> Perhaps. What I am truly confused about is :
>>
>> - We are keeping a sysctl interface that does absolutely nothing in
>> the kernel and is completely useless in case some userland
>> scripts/tools are rendered broken from it's removal.
>
> I am all for getting rid of it, sane script should always check
> the sysctl existence first. I think we did remove some sysctl's
> from kernel before.
I'd be much happier if things break uniformly everywhere - within and
outside namespaces. Besides, keeping a useless sysctl around that does
nothing is confusing and error prone, to say the least.
If we do decide to keep the sysctl around, I beg that we at least
update the documentation to reflect the true fact. I have already sent
a patch for this.
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2015-01-09 21:24 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-05 23:48 route/max_size sysctl in ipv4 Ani Sinha
2015-01-06 0:36 ` David Miller
2015-01-06 0:43 ` Ani Sinha
2015-01-06 0:51 ` David Miller
2015-01-06 0:56 ` Ani Sinha
2015-01-06 12:41 ` Pádraig Brady
2015-01-06 17:11 ` Ani Sinha
2015-01-06 18:09 ` Eric Dumazet
2015-01-06 20:05 ` Ani Sinha
2015-01-07 1:56 ` Ani Sinha
2015-01-08 1:25 ` Ani Sinha
2015-01-08 2:19 ` Eric Dumazet
2015-01-08 3:40 ` Ani Sinha
2015-01-08 5:41 ` Eric Dumazet
2015-01-08 18:39 ` Ani Sinha
2015-01-08 19:03 ` Eric Dumazet
2015-01-08 20:13 ` Ani Sinha
2015-01-08 20:18 ` Eric Dumazet
2015-01-09 18:47 ` Cong Wang
2015-01-09 19:08 ` Ani Sinha
2015-01-09 19:37 ` Cong Wang
2015-01-09 21:23 ` Ani Sinha
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).