From 71df07760ed58c8ba4a622f2aa83a16d99e264fc Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 9 Dec 2021 16:38:02 +0900 Subject: [PATCH] network: sd-ipv4ll and sd-ipv4acd only support ethernet interfaces The deny list in link_ipv4ll_enabled() are mostly non-ethernet type, whose link->iftype are not ARPHRD_ETHER, e.g. ARPHRD_NONE for bareudp, ARPHRD_WIREGURAD for wireguard, ARPHRD_GRE for gre, and so on. Only the exception is vrf, which is ARPHRD_ETHER, but seems not to support ARP. --- src/network/networkd-link.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 956e2984bc8..7bc391d68d8 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -87,9 +87,12 @@ bool link_ipv4ll_enabled(Link *link) { if (ether_addr_is_null(&link->hw_addr.ether)) return false; - if (STRPTR_IN_SET(link->kind, - "vrf", "wireguard", "ipip", "gre", "ip6gre","ip6tnl", "sit", "vti", - "vti6", "nlmon", "xfrm", "bareudp")) + /* ARPHRD_INFINIBAND seems to potentially support IPv4LL. + * But currently sd-ipv4ll and sd-ipv4acd only support ARPHRD_ETHER. */ + if (link->iftype != ARPHRD_ETHER) + return false; + + if (streq_ptr(link->kind, "vrf")) return false; /* L3 or L3S mode do not support ARP. */ -- 2.47.3