From: Joshua Lock <joshua.lock@collabora.co.uk>
To: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] systemd: fix networking setup when ipv6 modules are missing
Date: Tue, 13 Oct 2015 22:58:13 +0100 [thread overview]
Message-ID: <561D7E75.2050901@collabora.co.uk> (raw)
In-Reply-To: <1444724953-43197-1-git-send-email-s.christ@phytec.de>
On 13/10/15 09:29, Stefan Christ wrote:
> If the ipv6 kernel modules are missing, e.g. /lib/modules/<version>
> doesn't match the runnig kernel, networkd doesn't bring up the
> interfaces correctly. Backport fix from systemd version v220.
>
> Signed-off-by: Stefan Christ <s.christ@phytec.de>
> ---
> Hi,
>
> this patch is only for the fido branch. The current master uses the systemd
> version v225 which already fixes the problem.
>
> Kind regards
> Stefan
Thanks Stefan,
I've queued this change in my joshuagl/fido-next branch[1].
Regards,
Joshua
1.
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=joshuagl/fido-next
>
> ---
> ...-fix-IFF_UP-when-ipv6-support-is-disabled.patch | 78 ++++++++++++++++++++++
> meta/recipes-core/systemd/systemd_219.bb | 1 +
> 2 files changed, 79 insertions(+)
> create mode 100644 meta/recipes-core/systemd/systemd/0016-networkd-fix-IFF_UP-when-ipv6-support-is-disabled.patch
>
> diff --git a/meta/recipes-core/systemd/systemd/0016-networkd-fix-IFF_UP-when-ipv6-support-is-disabled.patch b/meta/recipes-core/systemd/systemd/0016-networkd-fix-IFF_UP-when-ipv6-support-is-disabled.patch
> new file mode 100644
> index 0000000..72f9a91
> --- /dev/null
> +++ b/meta/recipes-core/systemd/systemd/0016-networkd-fix-IFF_UP-when-ipv6-support-is-disabled.patch
> @@ -0,0 +1,78 @@
> +From b1362f4f60f192aa62effd9c19e0d98b68050f5a Mon Sep 17 00:00:00 2001
> +From: Tom Gundersen <teg@jklm.no>
> +Date: Tue, 8 Sep 2015 12:53:46 +0200
> +Subject: [PATCH] networkd: fix IFF_UP when ipv6 support is disabled
> +
> +Passing ipv6 options (even when they should be noops) caused IFF_UP to
> +fail when ipv6 was supported.
> +
> +Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=90103
> +
> +(Backport from v220 to v219)
> +Signed-off-by: Stefan Christ <s.christ@phytec.de>
> +---
> + src/network/networkd-link.c | 43 +++++++++++++++++++++++--------------------
> + 1 file changed, 23 insertions(+), 20 deletions(-)
> +
> +diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
> +index f716e82..1aa1550 100644
> +--- a/src/network/networkd-link.c
> ++++ b/src/network/networkd-link.c
> +@@ -1104,31 +1104,34 @@ static int link_up(Link *link) {
> + return r;
> + }
> +
> +- r = sd_rtnl_message_open_container(req, AF_INET6);
> +- if (r < 0) {
> +- log_link_error(link, "Could not open AF_INET6 container: %s", strerror(-r));
> +- return r;
> +- }
> +-
> +- ipv6ll_mode = link_ipv6ll_enabled(link) ? IN6_ADDR_GEN_MODE_EUI64 : IN6_ADDR_GEN_MODE_NONE;
> +- r = sd_rtnl_message_append_u8(req, IFLA_INET6_ADDR_GEN_MODE, ipv6ll_mode);
> +- if (r < 0) {
> +- log_link_error(link, "Could not append IFLA_INET6_ADDR_GEN_MODE: %s", strerror(-r));
> +- return r;
> +- }
> ++ if (socket_ipv6_is_supported()) {
> ++ /* if the kernel lacks ipv6 support setting IFF_UP fails if any ipv6 options are passed */
> ++ r = sd_rtnl_message_open_container(req, AF_INET6);
> ++ if (r < 0) {
> ++ log_link_error(link, "Could not open AF_INET6 container: %s", strerror(-r));
> ++ return r;
> ++ }
> +
> +- if (!in_addr_is_null(AF_INET6, &link->network->ipv6_token)) {
> +- r = sd_rtnl_message_append_in6_addr(req, IFLA_INET6_TOKEN, &link->network->ipv6_token.in6);
> ++ ipv6ll_mode = link_ipv6ll_enabled(link) ? IN6_ADDR_GEN_MODE_EUI64 : IN6_ADDR_GEN_MODE_NONE;
> ++ r = sd_rtnl_message_append_u8(req, IFLA_INET6_ADDR_GEN_MODE, ipv6ll_mode);
> + if (r < 0) {
> +- log_link_error(link, "Could not append IFLA_INET6_TOKEN: %s", strerror(-r));
> ++ log_link_error(link, "Could not append IFLA_INET6_ADDR_GEN_MODE: %s", strerror(-r));
> + return r;
> + }
> +- }
> +
> +- r = sd_rtnl_message_close_container(req);
> +- if (r < 0) {
> +- log_link_error(link, "Could not close AF_INET6 container: %s", strerror(-r));
> +- return r;
> ++ if (!in_addr_is_null(AF_INET6, &link->network->ipv6_token)) {
> ++ r = sd_rtnl_message_append_in6_addr(req, IFLA_INET6_TOKEN, &link->network->ipv6_token.in6);
> ++ if (r < 0) {
> ++ log_link_error(link, "Could not append IFLA_INET6_TOKEN: %s", strerror(-r));
> ++ return r;
> ++ }
> ++ }
> ++
> ++ r = sd_rtnl_message_close_container(req);
> ++ if (r < 0) {
> ++ log_link_error(link, "Could not close AF_INET6 container: %s", strerror(-r));
> ++ return r;
> ++ }
> + }
> +
> + r = sd_rtnl_message_close_container(req);
> +--
> +1.9.1
> +
> diff --git a/meta/recipes-core/systemd/systemd_219.bb b/meta/recipes-core/systemd/systemd_219.bb
> index b972dd4..e531c04 100644
> --- a/meta/recipes-core/systemd/systemd_219.bb
> +++ b/meta/recipes-core/systemd/systemd_219.bb
> @@ -43,6 +43,7 @@ SRC_URI = "git://github.com/systemd/systemd-stable;branch=v219-stable;protocol=g
> file://0012-systemd-tmpfiles.c-Honor-ordering-within-files-as-th.patch \
> file://0014-Revert-rules-remove-firmware-loading-rules.patch \
> file://0015-Revert-udev-remove-userspace-firmware-loading-suppor.patch \
> + file://0016-networkd-fix-IFF_UP-when-ipv6-support-is-disabled.patch \
> file://tmpfiles-pam.patch \
> file://0001-Revert-core-mount-add-dependencies-to-dynamically-mo.patch \
> file://touchscreen.rules \
>
next prev parent reply other threads:[~2015-10-13 21:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-13 8:29 [PATCH] systemd: fix networking setup when ipv6 modules are missing Stefan Christ
2015-10-13 21:58 ` Joshua Lock [this message]
2015-11-11 15:47 ` Stefan Christ
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=561D7E75.2050901@collabora.co.uk \
--to=joshua.lock@collabora.co.uk \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.