Bug 11655
Summary: | /proc/sys/net/ipv6/conf/all/* controls don't work | ||
---|---|---|---|
Product: | Networking | Reporter: | Adam Osuchowski (adwol) |
Component: | IPV6 | Assignee: | Hideaki YOSHIFUJI (yoshfuji) |
Status: | CLOSED WILL_NOT_FIX | ||
Severity: | normal | CC: | alan, bugzilla.kernel.org, tore |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.26.5 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Adam Osuchowski
2008-09-26 19:36:55 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. > 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. 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.
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 :-) 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 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. 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? |