From: Yu Watanabe Date: Tue, 9 Jul 2019 15:30:27 +0000 (+0900) Subject: network: do not touch kernel-created multicast route X-Git-Tag: v243~185^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bd7d6cec331a00fed29d00c2498f04e83d70b19c;p=platform%2Fupstream%2Fsystemd.git network: do not touch kernel-created multicast route Fixes #6088. --- diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 8ca4583..17829fc 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -2416,6 +2416,15 @@ static int link_drop_foreign_config(Link *link) { if (route->protocol == RTPROT_KERNEL) continue; + /* do not touch multicast route added by kernel */ + /* FIXME: Why the kernel adds this route with protocol RTPROT_BOOT??? We need to investigate that. + * https://tools.ietf.org/html/rfc4862#section-5.4 may explain why. */ + if (route->protocol == RTPROT_BOOT && + route->family == AF_INET6 && + route->dst_prefixlen == 8 && + in_addr_equal(AF_INET6, &route->dst, &(union in_addr_union) { .in6 = {{{ 0xff,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0 }}} })) + continue; + if (route->protocol == RTPROT_STATIC && FLAGS_SET(link->network->keep_configuration, KEEP_CONFIGURATION_STATIC)) continue;