diff options
author | Tom Gundersen <teg@jklm.no> | 2014-06-14 15:38:35 +0200 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-06-14 15:38:35 +0200 |
commit | 96c907429e3224289fd360b8d9c8fdc573f4363b (patch) | |
tree | 846d558be89fc1f989fe9096cb0a5e2aabed4365 /src/network/networkd-veth.c | |
parent | d9876a527f62e85c3c972bc5f45ad872cb4958c1 (diff) |
networkd: netdev - allow setting MACAddress in .netdev files
It may sometimes be necessary to specify the MAC address of a netdev.
Let us set the correct one from the get-go, rather than having the
kernel generate a random one, and then change it after.
Diffstat (limited to 'src/network/networkd-veth.c')
-rw-r--r-- | src/network/networkd-veth.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/network/networkd-veth.c b/src/network/networkd-veth.c index 1a5d880ac2..3584981cbc 100644 --- a/src/network/networkd-veth.c +++ b/src/network/networkd-veth.c @@ -42,6 +42,16 @@ static int netdev_fill_veth_rtnl_message(NetDev *netdev, sd_rtnl_message *m) { return r; } + if (netdev->mac) { + r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac); + if (r < 0) { + log_error_netdev(netdev, + "Colud not append IFLA_ADDRESS attribute: %s", + strerror(-r)); + return r; + } + } + r = sd_rtnl_message_open_container(m, IFLA_LINKINFO); if (r < 0) { log_error_netdev(netdev, @@ -67,7 +77,7 @@ static int netdev_fill_veth_rtnl_message(NetDev *netdev, sd_rtnl_message *m) { return r; } - if(netdev->ifname_peer) { + if (netdev->ifname_peer) { r = sd_rtnl_message_append_string(m, IFLA_IFNAME, netdev->ifname_peer); if (r < 0) { log_error("Failed to add netlink interface name: %s", strerror(-r)); @@ -75,6 +85,16 @@ static int netdev_fill_veth_rtnl_message(NetDev *netdev, sd_rtnl_message *m) { } } + if (netdev->mac_peer) { + r = sd_rtnl_message_append_ether_addr(m, IFLA_ADDRESS, netdev->mac_peer); + if (r < 0) { + log_error_netdev(netdev, + "Colud not append IFLA_ADDRESS attribute: %s", + strerror(-r)); + return r; + } + } + r = sd_rtnl_message_close_container(m); if (r < 0) { log_error_netdev(netdev, |