networkd: Restore logic for enslaving to a master bonding interface. --- Bonding support seems to have been removed right after being added, between 52433f6 (22 Jan) and 54abf46 (25 Jan).
http://cgit.freedesktop.org/systemd/systemd/log/src/network/networkd-link.c With this patch, networkd successfully configures the links. Currently, networkd will not dhcp on the bonding interface. Here is my configuration: # /etc/systemd/network/dhcp.network [Match] Name=bond0 [Network] DHCP=true # /etc/systemd/network/ethernet.network [Match] Name=enp5s0 [Network] Bond=bond0 # /etc/systemd/network/virtual.netdev [NetDev] Name=bond0 Kind=bond # /etc/systemd/network/wireless.network [Match] Name=wlp2s0 [Network] Bond=bond0 … and the network after manually adding address/route to bond0: $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: enp5s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000 link/ether f0:bf:97:ec:3e:ba brd ff:ff:ff:ff:ff:ff 3: wlp2s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000 link/ether f0:bf:97:ec:3e:ba brd ff:ff:ff:ff:ff:ff 4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether f0:bf:97:ec:3e:ba brd ff:ff:ff:ff:ff:ff inet 192.168.1.201/24 scope global bond0 valid_lft forever preferred_lft forever $ ip r default via 192.168.1.1 dev bond0 192.168.1.0/24 dev bond0 proto kernel scope link src 192.168.1.201
--- networkd-link.c.orig 2014-03-04 19:15:23.565904831 -0500 +++ networkd-link.c 2014-03-04 19:15:08.532572770 -0500 @@ -925,6 +925,27 @@ link->enslaving ++; } + if (link->network->bond) { + log_struct_link(LOG_DEBUG, link, + "MESSAGE=%s: enslaving by '%s'", + link->ifname, link->network->bond->name, + NETDEV(link->network->bond), + NULL); + + r = netdev_enslave(link->network->bond, link, &enslave_handler); + if (r < 0) { + log_struct_link(LOG_WARNING, link, + "MESSAGE=%s: could not enslave by '%s': %s", + link->ifname, link->network->bond->name, strerror(-r), + NETDEV(link->network->bond), + NULL); + link_enter_failed(link); + return r; + } + + link->enslaving ++; + } + HASHMAP_FOREACH(vlan, link->network->vlans, i) { log_struct_link(LOG_DEBUG, link, "MESSAGE=%s: enslaving by '%s'",
_______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel