From a908a280b86b4ccf2c0382ca4ce2209f07a7e9e6 Mon Sep 17 00:00:00 2001 From: Alex Crawford Date: Sun, 15 Jun 2014 17:29:55 -0700 Subject: [PATCH] feat(sys-apps/systemd): netdev - allow setting MACAddress in .netdev Pull in 96c907 from freedesktop.org/systemd/systemd.git for v212 --- ...w-setting-macaddress-in-netdev-files.patch | 74 +++++++++++++++++++ ...d-212-r9.ebuild => systemd-212-r10.ebuild} | 3 + 2 files changed, 77 insertions(+) create mode 100644 sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/files/212-0006-networkd-netdev-allow-setting-macaddress-in-netdev-files.patch rename sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/{systemd-212-r9.ebuild => systemd-212-r10.ebuild} (98%) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/files/212-0006-networkd-netdev-allow-setting-macaddress-in-netdev-files.patch b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/files/212-0006-networkd-netdev-allow-setting-macaddress-in-netdev-files.patch new file mode 100644 index 0000000000..0b6fc05f71 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/files/212-0006-networkd-netdev-allow-setting-macaddress-in-netdev-files.patch @@ -0,0 +1,74 @@ +From e846210989367233171151ae3528d65b63a9e5a8 Mon Sep 17 00:00:00 2001 +From: Tom Gundersen +Date: Sat, 14 Jun 2014 15:38:35 +0200 +Subject: [PATCH] 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. + +Conflicts: + src/network/networkd-netdev-gperf.gperf + src/network/networkd-netdev.c + src/network/networkd-tunnel.c + src/network/networkd-veth.c + src/network/networkd.h +--- + src/network/networkd-netdev-gperf.gperf | 1 + + src/network/networkd-netdev.c | 11 +++++++++++ + src/network/networkd.h | 1 + + 3 files changed, 13 insertions(+) + +diff --git a/src/network/networkd-netdev-gperf.gperf b/src/network/networkd-netdev-gperf.gperf +index ea7ba57..30b9333 100644 +--- a/src/network/networkd-netdev-gperf.gperf ++++ b/src/network/networkd-netdev-gperf.gperf +@@ -24,3 +24,4 @@ NetDev.Name, config_parse_ifname, 0, + NetDev.Kind, config_parse_netdev_kind, 0, offsetof(NetDev, kind) + VLAN.Id, config_parse_uint64, 0, offsetof(NetDev, vlanid) + MACVLAN.Mode, config_parse_macvlan_mode, 0, offsetof(NetDev, macvlan_mode) ++NetDev.MACAddress, config_parse_hwaddr, 0, offsetof(NetDev, mac) +diff --git a/src/network/networkd-netdev.c b/src/network/networkd-netdev.c +index e333c47..07a0878 100644 +--- a/src/network/networkd-netdev.c ++++ b/src/network/networkd-netdev.c +@@ -66,6 +66,7 @@ void netdev_free(NetDev *netdev) { + + free(netdev->description); + free(netdev->name); ++ free(netdev->mac); + + condition_free_list(netdev->match_host); + condition_free_list(netdev->match_virt); +@@ -277,6 +278,16 @@ static int netdev_create(NetDev *netdev, Link *link, sd_rtnl_message_handler_t c + return r; + } + ++ if (netdev->mac) { ++ r = sd_rtnl_message_append_ether_addr(req, 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(req, IFLA_LINKINFO); + if (r < 0) { + log_error_netdev(netdev, +diff --git a/src/network/networkd.h b/src/network/networkd.h +index 8144031..877ac83 100644 +--- a/src/network/networkd.h ++++ b/src/network/networkd.h +@@ -90,6 +90,7 @@ struct NetDev { + + char *description; + char *name; ++ struct ether_addr *mac; + NetDevKind kind; + + uint64_t vlanid; +-- +1.9.3 + diff --git a/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-212-r9.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-212-r10.ebuild similarity index 98% rename from sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-212-r9.ebuild rename to sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-212-r10.ebuild index 9b013b9153..8064ae118a 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-212-r9.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-apps/systemd/systemd-212-r10.ebuild @@ -124,6 +124,9 @@ fi # stop scaring all our users with warnings about "X-Fleet" epatch "${FILESDIR}"/212-0005-conf-parser-silently-ignore-sections-starting-with-X.patch + # networkd: netdev - allow setting MACAddress in .netdev files + epatch "${FILESDIR}"/212-0006-networkd-netdev-allow-setting-macaddress-in-netdev-files.patch + # patch to make journald work at first boot epatch "${FILESDIR}"/211-tmpfiles.patch