Bug 11655 - /proc/sys/net/ipv6/conf/all/* controls don't work
Summary: /proc/sys/net/ipv6/conf/all/* controls don't work
Status: CLOSED WILL_NOT_FIX
Alias: None
Product: Networking
Classification: Unclassified
Component: IPV6 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Hideaki YOSHIFUJI
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-09-26 19:36 UTC by Adam Osuchowski
Modified: 2012-05-22 14:37 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.26.5
Tree: Mainline
Regression: No


Attachments

Description Adam Osuchowski 2008-09-26 19:36:55 UTC
Latest working kernel version: NONE
Earliest failing kernel version: UNKNOWN
Distribution: Various, mostly Slackware and PLD
Hardware Environment: ANY
Software Environment: ANY
Problem Description: `echo 0 > /proc/sys/net/ipv6/conf/all/autoconf' doesn't disable interfaces autoconfiguration

Steps to reproduce:
Changing values of /proc/sys/net/ipv6/conf/all/autoconf, /proc/sys/net/ipv6/conf/all/accept_ra and probably other /proc/sys/net/ipv6/conf/all/* controls don't cause anything.
After `echo 0 > /proc/sys/net/ipv6/conf/all/autoconf' system still accepts router advertisement packets from gateway on every interface and set autoconfigured addresses.

Situation is rather deeper because autoconf is only an example and problem afflicts /proc/sys/net/ipv6/conf/all/* controls generally.
Comment 1 Anonymous Emailer 2008-10-02 23:18:29 UTC
Reply-To: akpm@linux-foundation.org


(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Fri, 26 Sep 2008 19:36:55 -0700 (PDT) bugme-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=11655
> 
>            Summary: /proc/sys/net/ipv6/conf/all/* controls don't work
>            Product: Networking
>            Version: 2.5
>      KernelVersion: 2.6.26.5
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: IPV6
>         AssignedTo: yoshfuji@linux-ipv6.org
>         ReportedBy: adwol@zonk.pl
> 
> 
> Latest working kernel version: NONE
> Earliest failing kernel version: UNKNOWN
> Distribution: Various, mostly Slackware and PLD
> Hardware Environment: ANY
> Software Environment: ANY
> Problem Description: `echo 0 > /proc/sys/net/ipv6/conf/all/autoconf' doesn't
> disable interfaces autoconfiguration
> 
> Steps to reproduce:
> Changing values of /proc/sys/net/ipv6/conf/all/autoconf,
> /proc/sys/net/ipv6/conf/all/accept_ra and probably other
> /proc/sys/net/ipv6/conf/all/* controls don't cause anything.
> After `echo 0 > /proc/sys/net/ipv6/conf/all/autoconf' system still accepts
> router advertisement packets from gateway on every interface and set
> autoconfigured addresses.
> 
> Situation is rather deeper because autoconf is only an example and problem
> afflicts /proc/sys/net/ipv6/conf/all/* controls generally.
> 
Comment 2 David S. Miller 2008-10-13 00:33:33 UTC
From: Andrew Morton <akpm@linux-foundation.org>
Date: Thu, 2 Oct 2008 23:18:26 -0700

> (switched to email.  Please respond via emailed reply-to-all, not via the
> bugzilla web interface).

Not a bug.

These "global" setting have to be set to the desired value before the
device is created.  And it is at creation time that these global
values are "inherited" by the device.

Afterwards changes to the global value will not propagate to those
devices again, because that might override a changed setting made
by the user.

It is only newly created devices which get these values.
Comment 3 Adam Osuchowski 2008-10-13 03:14:28 UTC
David Miller wrote:
> Not a bug.
> 
> These "global" setting have to be set to the desired value before the
> device is created.  And it is at creation time that these global
> values are "inherited" by the device.
> 
> Afterwards changes to the global value will not propagate to those
> devices again, because that might override a changed setting made
> by the user.
> 
> It is only newly created devices which get these values.

I understand you are talking about /proc/sys/net/ipv6/conf/default/*
controls. If so, it's ok, but I talked about /proc/sys/net/ipv6/conf/all/*
controls. Documentation/networking/ip-sysctl.txt says:

    conf/default/*:
	    Change the interface-specific default settings.


    conf/all/*:
	    Change all the interface-specific settings.

so what is the difference between default and all in the context of your
statement? In my opinion, it could be understood that default settings
are inherited and those from "all" directory change values for all
current devices.
Comment 4 David S. Miller 2008-10-13 11:37:52 UTC
From: Adam Osuchowski <adwol@zonk.pl>
Date: Mon, 13 Oct 2008 12:13:34 +0200

> David Miller wrote:
> > Not a bug.
> > 
> > These "global" setting have to be set to the desired value before the
> > device is created.  And it is at creation time that these global
> > values are "inherited" by the device.
> > 
> > Afterwards changes to the global value will not propagate to those
> > devices again, because that might override a changed setting made
> > by the user.
> > 
> > It is only newly created devices which get these values.
> 
> I understand you are talking about /proc/sys/net/ipv6/conf/default/*
> controls. If so, it's ok, but I talked about /proc/sys/net/ipv6/conf/all/*
> controls. Documentation/networking/ip-sysctl.txt says:
> 
>     conf/default/*:
>           Change the interface-specific default settings.
> 
> 
>     conf/all/*:
>           Change all the interface-specific settings.
> 
> so what is the difference between default and all in the context of your
> statement? In my opinion, it could be understood that default settings
> are inherited and those from "all" directory change values for all
> current devices.

Unfortunately not all "all" knobs are treated universally, only some
of them all.

If you grep for "devconf_all" under net/ipv6 you'll see which ones
get used and in what manner.

Of course, we'll need to tweak either the docs or the implementation
to match :-)
Comment 5 Tore Anderson 2009-01-19 01:21:54 UTC
It would be great if the implementation could be updated to match the docs and not the other way around.  I'm not sure what purpose the knobs under all/ have at the moment, and how they differ from the ones under default/?

I'd like to disable processing of all router advertisements on all interfaces.  The sysctl tool doesn't allow for wild cards ("sysctl -w net/ipv6/conf/*/accept_ra=0" fails), and since network interfaces usually show up earlier in the boot process than when the settings in sysctl.conf is committed, the only way (that I've found, at least) is to put a for loop in /etc/rc.local.  It works, but it's not pretty.

Tore
Comment 6 Adam Osuchowski 2009-03-13 05:29:57 UTC
David Miller wrote:
> > David Miller wrote:
> > > Not a bug.
> > >
> > > These "global" setting have to be set to the desired value before the
> > > device is created.  And it is at creation time that these global
> > > values are "inherited" by the device.
> > >
> > > Afterwards changes to the global value will not propagate to those
> > > devices again, because that might override a changed setting made
> > > by the user.
> > >
> > > It is only newly created devices which get these values.
> >
> > I understand you are talking about /proc/sys/net/ipv6/conf/default/*
> > controls. If so, it's ok, but I talked about /proc/sys/net/ipv6/conf/all/*
> > controls. Documentation/networking/ip-sysctl.txt says:
> >
> >     conf/default/*:
> >         Change the interface-specific default settings.
> >
> >
> >     conf/all/*:
> >         Change all the interface-specific settings.
> >
> > so what is the difference between default and all in the context of your
> > statement? In my opinion, it could be understood that default settings
> > are inherited and those from "all" directory change values for all
> > current devices.
>
> Unfortunately not all "all" knobs are treated universally, only some
> of them all.
>
> If you grep for "devconf_all" under net/ipv6 you'll see which ones
> get used and in what manner.
>
> Of course, we'll need to tweak either the docs or the implementation
> to match :-)

And what about it after 5 months? Still nothing changed. Personally, I
don't understand for what reason there are /proc/sys/net/ipv6/conf/all/*
knobs if they don't do anything.

Beside this, I share Tore Andreson's opinion that it would be great if it could work as described in docs for the reason which was described by him. Really, it is existing matter, so don't ignore it, please.  
Comment 7 martin f. krafft 2010-02-02 03:54:50 UTC
Also see
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=517833
and
http://marc.info/?t=123599697800001&r=1&w=2

This issue is definitely yuk. …/conf/all/* should be usable to impose a policy for all interfaces, present and future.

Can this bug be merged with #9224?

Note You need to log in before you can comment on or make changes to this bug.