Re: sysctl, argument parsing, possible bug
On Tue, 8 Aug 2017 20:26:36 +0200 Massimo Salawrote: > I make another test with kernel 4.9.32-15.41 > > sysctl procps version 3.2.8 > > sysctl net.ipv4.conf.eth0.100.forwarding > error: "net.ipv4.conf.eth0.100.forwarding" is an unknown key > > > so I install busybox : > > BusyBox v1.19.3 > > busybox sysctl net.ipv4.conf.eth0.100.forwarding > net.ipv4.conf.eth0.100.forwarding = 0 > > It is working, as I expect reading busybox source sysctl.c > > > > Stephen, I test > sysctl net/ipv4/conf/eth0.100/forwarding > I confirm it works. > > > What is the problem ? > > As sysctl, also automation tools and scripts cannot be "netdev names > aware", and so they fail using the usual dot notation. > > > I don't pretend to change sysctl to read from the /proc/sys/ > directory, as busybox does. > > I suggest to add a remark to the man page of sysctl, reporting the > difference between the two tools and an example of the alternate > syntax : > sysctl net/ipv4/conf/eth0.100/forwarding > > > Thank you for your attention. > Best regards, Massimo Busybox has always been a restricted subset of the upstream standard tools. If you have problems with busybox take it up with those developers directly; this is not the right mailing list for that.
Re: sysctl, argument parsing, possible bug
I make another test with kernel 4.9.32-15.41 sysctl procps version 3.2.8 sysctl net.ipv4.conf.eth0.100.forwarding error: "net.ipv4.conf.eth0.100.forwarding" is an unknown key so I install busybox : BusyBox v1.19.3 busybox sysctl net.ipv4.conf.eth0.100.forwarding net.ipv4.conf.eth0.100.forwarding = 0 It is working, as I expect reading busybox source sysctl.c Stephen, I test sysctl net/ipv4/conf/eth0.100/forwarding I confirm it works. What is the problem ? As sysctl, also automation tools and scripts cannot be "netdev names aware", and so they fail using the usual dot notation. I don't pretend to change sysctl to read from the /proc/sys/ directory, as busybox does. I suggest to add a remark to the man page of sysctl, reporting the difference between the two tools and an example of the alternate syntax : sysctl net/ipv4/conf/eth0.100/forwarding Thank you for your attention. Best regards, Massimo
Re: sysctl, argument parsing, possible bug
On Tue, Aug 01, 2017 at 02:54:51PM -0700, Cong Wang wrote: > On Tue, Aug 1, 2017 at 2:34 PM, Massimo Sala> wrote: > > Do you confirm it is a sysctl parsing bug ? > > > > Bosybox handles these cases, so I think also standalone sysctl have to. > > > > Or at least someone must update sysctl docs / MAN about this. > > > > Maybe, sysctl seems (I never look into it) just to interpret dot as > a separator, unless it reads from the /proc/sys/ directory, it can > not know eth0.100 is actually a netdev name. Using echo or sysctl -w works for me, try upgrading your procps, I have procps-3.3.12. Busybox sysctl fails though, so it would seems this is an issue with busybox, go fix that. With procps-3.3.12.: Setting: ergon:~ # cat /proc/sys/net/ipv4/conf/eth0.100/forwarding 1 ergon:~ # sysctl -w net.ipv4.conf.eth0/100.forwarding=0 net.ipv4.conf.eth0/100.forwarding = 0 ergon:~ # cat /proc/sys/net/ipv4/conf/eth0.100/forwarding 0 Querying: ergon:~ # sysctl net.ipv4.conf.eth0/100.forwarding net.ipv4.conf.eth0/100.forwarding = 0 With busybox: ergon:~ # busybox-static sysctl net.ipv4.conf.eth0/100.forwarding sysctl: error: 'net.ipv4.conf.eth0.100.forwarding' is an unknown key Luis
Re: sysctl, argument parsing, possible bug
On Tue, 1 Aug 2017 14:27:37 -0700 Cong Wangwrote: > On Tue, Aug 1, 2017 at 1:47 PM, Massimo Sala > wrote: > > cat /proc/sys/net/ipv4/conf/eth0.100/forwarding > > 0 > > > > sysctl net.ipv4.conf.eth0.100.forwarding > > error: "net.ipv4.conf.eth0.100.forwarding" is an unknown key > > > > Use echo instead, sysctl doesn't understand eth0.100 > is a netdev name, sigh. sysctl happily accepts / as a separator see man sysctl(8) PARAMETERS variable The name of a key to read from. An example is kernel.ostype. The '/' separator is also accepted in place of a '.'.
Re: sysctl, argument parsing, possible bug
On Tue, Aug 1, 2017 at 2:34 PM, Massimo Salawrote: > Do you confirm it is a sysctl parsing bug ? > > Bosybox handles these cases, so I think also standalone sysctl have to. > > Or at least someone must update sysctl docs / MAN about this. > Maybe, sysctl seems (I never look into it) just to interpret dot as a separator, unless it reads from the /proc/sys/ directory, it can not know eth0.100 is actually a netdev name.
Re: sysctl, argument parsing, possible bug
Do you confirm it is a sysctl parsing bug ? Bosybox handles these cases, so I think also standalone sysctl have to. Or at least someone must update sysctl docs / MAN about this. Best regards, Sala On 01/08/2017, Cong Wangwrote: > On Tue, Aug 1, 2017 at 1:47 PM, Massimo Sala > wrote: >> cat /proc/sys/net/ipv4/conf/eth0.100/forwarding >> 0 >> >> sysctl net.ipv4.conf.eth0.100.forwarding >> error: "net.ipv4.conf.eth0.100.forwarding" is an unknown key >> > > Use echo instead, sysctl doesn't understand eth0.100 > is a netdev name, sigh. >
Re: sysctl, argument parsing, possible bug
On Tue, Aug 1, 2017 at 1:47 PM, Massimo Salawrote: > cat /proc/sys/net/ipv4/conf/eth0.100/forwarding > 0 > > sysctl net.ipv4.conf.eth0.100.forwarding > error: "net.ipv4.conf.eth0.100.forwarding" is an unknown key > Use echo instead, sysctl doesn't understand eth0.100 is a netdev name, sigh.