The following configuration is fully functional on baselayout-1 (data obfuscated):
modules=( "iproute2" )
"18.104.22.168 broadcast 22.214.171.124 netmask 255.255.255.128"
"126.96.36.199 broadcast 188.8.131.52 netmask 255.255.255.192"
"default via 184.108.40.206"
"default via 220.127.116.11"
On baselayout-2 with openrc, the following broken english is emitted:
Error: Either "local" is duplicate, or "netmask" is a garbage.
Networking fails to come up until netmask is specified *before* broadcast. This is a baselayout-1 -> baselayout-2 regression; the error message neither helpful nor specific.
Whoah! I was just talking about that on freenode/#gentoo-base. I'm not sure its a bug (ie to be fixed in the code), but it should definitely be documented because it caught me on a couple of servers. For people who don't have physical access to their boxes, they're in a world of pain.
Is it related? I cannot say...I can say if in /etc/rc.conf with openrc and baselayout-2 that
unless it is first the 1net.eth* will be ignored
# To disable services, prefix with a !
# Example - rc_hotplug="net.wlan !net.*"
# This allows net.wlan and any service not matching net.* to be plugged.
# Example - rc_hotplug="*"
# This allows all services to be hotplugged
rc_hotplug="!net.eth* net.lo net.wlan0"
Some more context for people that stumble onto this one.
12:23 <@Chainsaw> bonsaikitten: http://bugs.gentoo.org/show_bug.cgi?id=366905
12:23 <@Chainsaw> WilliamH: Said bug may interest you as it is a baselayout-2/openrc regression.
12:28 <@WilliamH> Chainsaw: Hmm, that error message is from iproute2... I'll look at it.
12:30 <@Chainsaw> WilliamH: Thank you.
12:31 <@WilliamH> Chainsaw: I think I know at least partly what's going on.
12:33 <@WilliamH> It may have to do with how we are converting the netmask to iproute2 notation.
12:33 <@WilliamH> ifconfig allows
12:33 <@WilliamH> ifconfig x.x.x.x netmask y.y.y.y
12:33 <@WilliamH> but iproute uses
12:34 <@WilliamH> x.x.x.x/y instead.
12:34 <@WilliamH> so I may need to look at the conversion.
My plan at this point is to stop trying to guess which tool you are using and require you to use the correct syntax for the selected module.
This was discussed on the development list, and there were no objections raised.
Fixed in commit 6fa6f95. Also supports all of the other iproute2 addr options now.