Eric Dumazet wrote:
> ip tuntap enumerates devices using /sys/class/net which is unusual.
> 
> Should we replace this enumeration using /proc/net/dev like "ip tunnel" ?
> 
> After "unshare -n" maybe mounting /sys should not be required for
> proper iproute2 behavior.
> 
> At least ip command should adopt a common enumeration method.
> 
> What do you think ?

It seems main reason for using /sys/class/net is to get additional
information for netdev like "owner", "group" and "tun_flags".

On the other hand at least iptunnel and ip6tunnel uses nearly identical
code to parse /proc/net/dev.

Having single routine that reads /proc/net/dev and calls implementation
specific callback function with given network device name is good idea.

I can try to prepare v1 for this, if no one objects this.

> 
> Thanks.
> 
> lpaa5:~# cat /proc/net/dev
> Inter-|   Receive                                                |  Transmit
>  face |bytes    packets errs drop fifo frame compressed multicast|bytes    
> packets errs drop fifo colls carrier compressed
>   adp0:       0       0    0    0    0     0          0         0        0    
>    0    0    0    0     0       0          0
> uinput4:       0       0    0    0    0     0          0         0        0   
>     0    0    0    0     0       0          0
> dynencap4:       0       0    0    0    0     0          0         0        0 
>       0    0    0    0     0       0          0
> sixtofour0:  696886    6733    0    0    0     0          0         0   
> 480743    4445    0    0    0     0       0          0
> uinput6:       0       0    0    0    0     0          0         0        0   
>     0    0    0    0     0       0          0
> gretap0:       0       0    0    0    0     0          0         0        0   
>     0    0    0    0     0       0          0
> ip6gre0:       0       0    0    0    0     0          0         0        0   
>     0    0    0    0     0       0          0
>  tunl0:       0       0    0    0    0     0          0         0        0    
>    0    0    0    0     0       0          0
> ip6tnl0:       0       0    0    0    0     0          0         0        0   
>     0    0    0    0     0       0          0
>   gre0:       0       0    0    0    0     0          0         0        0    
>    0    0    0    0     0       0          0
>   sit0:       0       0    0    0    0     0          0         0        0    
>    0    0    0    0     0       0          0
> sixdecap0:       0       0    0    0    0     0          0         0   559849 
>    2371    0    0    0     0       0          0
>     lo: 80924524  222675    0    0    0     0          0         0 80924524  
> 222675    0    0    0     0       0          0
>   eth2: 8898473491 131730002    0    0    0     0          0        89 
> 8606929352 128406009    0    0    0     0       0          0
> dynencap6:       0       0    0    0    0     0          0         0        0 
>       0    0    0    0     0       0          0
>   eth1: 9219322658 137558705    0    0    0     0          0      1592 
> 9438658576 140822798    0    0    0     0       0          0
>   eth0: 18117796393 269288710    0    0    0     0          0      1682 
> 18045588486 269228813    0    3    0     0       0          0
> 
> lpaa5:~# unshare -n
> 
> lpaa5:~# cat /proc/net/dev
> Inter-|   Receive                                                |  Transmit
>  face |bytes    packets errs drop fifo frame compressed multicast|bytes    
> packets errs drop fifo colls carrier compressed
>     lo:       0       0    0    0    0     0          0         0        0    
>    0    0    0    0     0       0          0
> 
> lpaa5:~# ip tuntap
> adp0: tap vnet_hdr UNKNOWN_FLAGS:940
> 
> lpaa5:~# mount -t sysfs sysfs /sys
> 
> lpaa5:~# ip tuntap
> 
> lpaa5:~# ls -l /sys/class/net
> total 0
> -rw-r--r-- 1 root root 4096 Jan 31 08:51 bonding_masters
> lrwxrwxrwx 1 root root    0 Jan 31 08:51 lo -> ../../devices/virtual/net/lo
> lpaa5:~# 
> 


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to