On Wed, 31 Jan 2018 21:49:45 +0200 Serhey Popovych <serhe.popov...@gmail.com> wrote:
> Currently there is two places in ip(8) where /proc/net/dev is read line > by line with nearly identical steps: iptunnel.c and ip6tunnel.c > > On the other hand we have iptuntap.c that uses /sys/class/net that could > be problematic in case of unshare(1)d network namespace without sysfs > being mounted. > > Introduce and use do_each_proc_net_dev() helper to read data from > /proc/net/dev line by line and pass this information to implementation > specific callback function. > > See individual patch description message for more details. > > Series is open for reviews and comments. > > Tested only by compiling and executing ip [-46] [-s] [-d] tunnel in > various combinations: no problem so far. More can be done by request. > > Thanks, > Serhii > > Serhey Popovych (4): > utils: Introduce do_each_proc_net_dev() helper > iptunnel: Use do_each_proc_net_dev() > ip6tunnel: Use do_each_proc_net_dev() > tuntap: Use do_each_proc_net_dev() > > include/utils.h | 10 ++++++ > ip/ip6tunnel.c | 94 ++++++++++++++++++++------------------------------ > ip/iptunnel.c | 102 > +++++++++++++++++++++++++------------------------------ > ip/iptuntap.c | 59 ++++++++++++++------------------ > lib/utils.c | 51 ++++++++++++++++++++++++++++ > 5 files changed, 170 insertions(+), 146 deletions(-) > /proc/net/dev is legacy and unextensible. I would rather see netlink used everywhere and not /proc/net/dev or sysfs!