Hi, [snip] > > SIOCGIFCONF is handled by a special handler for each protocol. > ipv4 implements it in devinet.c in function inet_gifconf(). This is > some kind of a fallback implementation if anything else failes (i.e. > nobody else registered a gifconf-handler for the interface), but > of cause it can only work if the interface is an IP interface (has an > IP address). Every other protocol stack should implement the gifconf > function on its own. If one does not, it's imho broken. Then you have > two more solutions: 1.) parsing /proc/net/dev (ugly) or 2.) retrieving > interface info via rtnetlink (complex). > > -- Jens DECnet has SIOCGIFCONF support, but turned off by default... the reason being that any protocol where the sockaddr_xx structure is larger than a generic sockaddr requires each program using the SIOCGIFCONF call to have explicit knowledge of the size of each sockaddr_xx greater than the standard sockaddr size that may be returned. Turning support on for DECnet (or indeed IPv6 for example) would break several userland programs. Its not that I think that there shouldn't be a simpler way of getting the interface information, but I'm not at all sure that SIOCGIFCONF is the right solution, Steve. - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org