1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-02-26 09:57:26 +03:00

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.
This commit is contained in:
Yu Watanabe 2021-12-09 16:38:02 +09:00 committed by Zbigniew Jędrzejewski-Szmek
parent 014e7dffd4
commit 71df07760e

View File

@ -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. */