ifconfig refactoring for FreeBSD
Dan writes "Based on Sam Leffer's suggestion, Bruce Simpson has been working on refactoring ifconfig(8). ifconfig is a FreeBSD unix utility used to assign an address to a network interface and/or configure network interface parameters. Bruce says that ifconfig has grown increasingly large and become unwieldy. Part of the effort has been to get a handle on all of the options that are currently supported so he has written a YACC grammar for it. He has uploaded some grammer, created a design document and also generated a PDF file you can view which shows you syntax diagrams for each part of the parse tree."
While they are at it, they should add something to parse /etc/rc.conf and reconfigure all interfaces while the system is running. This is one area where Linux has an advantage.
In other words, this is really one of the most boring stories ever, even considering the "let's duplicate the daemonnews slashbox" policy /. recently adopted.
Programming can be fun again. Film at 11.
You heard it here first: The Slashdot BSD Section is Dying.
"ip" is a well-structured command, although the interactions between iproute2 and ifconfig-based interface aliases confuse people (my usual advice is: one or the other).
"tc" is a complex elephant in considerable need of exposure to someone who both a) cares about qdisc and b) understands OS usability. ip & tc are hardly comparable. The "shapecfg" command is more intuitive, but communicates with a completely separate and underdeveloped kernel subsystem.
iptables then has another syntax to learn, just to drive home the point that these subsystems are not well integrated. You can't do everything iptables/Netfilter can in ip+tc; please don't claim this. Functionally, it's almost orthogonal. Fortunately, there are patches available that permit Netfilter firewalls to hook into iproute2/tc and vice versa.
It's not really a happy situation, and designing complex network behaviour for Linux is still an exercise in trial, error, patch integration, and hours of googling.