if (link->network->bond)
return false;
+ if (STRPTR_IN_SET(link->kind, "can", "vcan"))
+ return false;
+
if (manager_sysctl_ipv6_enabled(link->manager) == 0)
return false;
if (link->network->bond)
return false;
+ if (STRPTR_IN_SET(link->kind, "can", "vcan"))
+ return false;
+
return link->network->dhcp & ADDRESS_FAMILY_IPV4;
}
if (link->network->bond)
return false;
+ if (STRPTR_IN_SET(link->kind, "can", "vcan"))
+ return false;
+
return link->network->dhcp_server;
}
if (!link->network)
return false;
- if (STRPTR_IN_SET(link->kind, "vrf", "wireguard", "ipip", "gre", "ip6gre", "ip6tnl", "sit", "vti", "vti6"))
+ if (STRPTR_IN_SET(link->kind, "vrf", "wireguard", "ipip", "gre", "ip6gre", "ip6tnl", "sit", "vti", "vti6", "can", "vcan"))
return false;
/* L3 or L3S mode do not support ARP. */
if (!link->network)
return false;
- if (STRPTR_IN_SET(link->kind, "vrf", "wireguard", "ipip", "gre", "ip6gre", "ip6tnl", "sit", "vti", "vti6"))
+ if (STRPTR_IN_SET(link->kind, "vrf", "wireguard", "ipip", "gre", "ip6gre", "ip6tnl", "sit", "vti", "vti6", "can", "vcan"))
return false;
/* L3 or L3S mode do not support ARP. */
if (!link->network)
return false;
- if (STRPTR_IN_SET(link->kind, "vrf", "wireguard", "ipip", "gre", "sit", "vti"))
+ if (STRPTR_IN_SET(link->kind, "vrf", "wireguard", "ipip", "gre", "sit", "vti", "can", "vcan"))
return false;
if (link->network->bond)
if (manager_sysctl_ipv6_enabled(link->manager) == 0)
return false;
+ if (STRPTR_IN_SET(link->kind, "can", "vcan"))
+ return false;
+
/* DHCPv6 client will not be started if no IPv6 link-local address is configured. */
return link_ipv6ll_enabled(link) || network_has_static_ipv6_addresses(link->network);
}
return 0;
}
-static void link_set_state(Link *link, LinkState state) {
+void link_set_state(Link *link, LinkState state) {
assert(link);
if (link->state == state)