diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-12-09 16:38:02 +0900 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-12-09 15:04:43 +0100 |
commit | 71df07760ed58c8ba4a622f2aa83a16d99e264fc (patch) | |
tree | f1a96438e97493dbde3b71874062e964b8cf01c0 | |
parent | 014e7dffd4d28b5827cd044546b216367126b17b (diff) | |
download | systemd-71df07760ed58c8ba4a622f2aa83a16d99e264fc.tar.gz |
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.
-rw-r--r-- | src/network/networkd-link.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 956e2984bc..7bc391d68d 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. */ |