Re: sysctl, argument parsing, possible bug

2017-08-08 Thread Stephen Hemminger
On Tue, 8 Aug 2017 20:26:36 +0200
Massimo Sala  wrote:

> 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

2017-08-08 Thread Massimo Sala
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

2017-08-02 Thread Luis R. Rodriguez
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

2017-08-01 Thread Stephen Hemminger
On Tue, 1 Aug 2017 14:27:37 -0700
Cong Wang  wrote:

> 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

2017-08-01 Thread Cong Wang
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.


Re: sysctl, argument parsing, possible bug

2017-08-01 Thread Massimo Sala
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 Wang  wrote:
> 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

2017-08-01 Thread Cong Wang
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.