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:~# >
signature.asc
Description: OpenPGP digital signature