Hello!
Yes, and have 2 binaries for those protocols. Very funny. :-(
I don't see any reason to make 2 binaries, when architecture of your programm can easily support both protocols.
The decision whether to support both protocols in a single binary or not was very hard, but I don't regret what we had chosen. Else we would get a ton of extra complexity in all the interfaces and data structures, all addresses would have to be tagged with address types, route entries would have to be either sized dynamically or according to the largest address type used, leading to much slower and space consuming result. In fact, I think this was one of the principial design failures of Zebra. Also, IPv4 and IPv6 are two worlds which have only a little in common, namely the network interfaces they live on, hence it makes very little sense to combine them to a single program.
Otherwise, there should be 2 binaries with different names - because they do 2 different things.
bird-ipv4 and bird-ipv6
Think about adding BIRD to for example Debian distribution. If there is only one name of this daemon, you have to create 2 conflicting packages bird-ipv4 and bird-ipv6.
I see no problem in distributing bird as packages "bird" (with /usr/sbin/bird), "bird-ipv6" (providing /usr/sbin/bird-ipv6) and "bird-doc" providing the documentation. No conflicts there. Have a nice fortnight -- Martin `MJ' Mares <mj@ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/ Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth