Rename interfaces on Linux

I just reinstalled a Debian stable on a laptop but messed with the interfaces so that an external USB WiFi card appeared as wlan0 while the main card appeared as wlan1. In case you wondered you can rename or reset interface names in /etc/udev/rules.d/70-persistent-net.rules. That’s on systemd though.
I wonder how we can change that on sysvinit? Nobody cares, probably, but I do.

According to what I read there, it is not consistent. Interfaces are named in the order in which they appear during the boot process. However it is possible to use ifrename from the wireless tools package. Why this tool that should work for all type of interface is part of the wireless tools package is beyond my comprehension. But hey whatever, Linux, and it just works.

If you are curious and want to know how ifrename actually does rename an interface, according to the code it uses a SIOCSIFNAME ioctl on a socket file descriptor. There it passes a struct ifreq in which you can provide a new name for the interface. Just man netdevice(7) for more info.

Graph editor on Linux

Imagine you just want to create a graph to represent some network topology so you can parse it and generate the configuration files accordingly. You probably want to do that in an editor because you want to quickly check different topologies. So no fancy diagram editor just nodes, edges, attributes, point and click interface which exports in a simple and clear dot format that’s it.

I’m afraid this doesn’t seem to exist. Most people will redirect you to yEd, which is a somewhat cumbersome java diagram editor (it takes more than ten seconds to start the thing). It cannot even export in the dot format, instead it saves in an overly verbose and messy GraphML format. Well, there are some other diagram editors which can export to the dot format but these tools are used to produce good looking visual content and the resulting dot file will be crowded with useless attributes and sometime invisible nodes.

It’s crazy one cannot find a such simple graph editor. Does anyone know one? Does anyone want to create one?  I see… a nice and clean GUI in Python/GtkBuilder which saves in dot and GraphML and can export the thing in various format with the “dot” command.