diff --git a/NEWS b/NEWS
index 6d479faa75..0079fd8487 100644
--- a/NEWS
+++ b/NEWS
@@ -1,11 +1,13 @@
=============================================
NetworkManager-1.46
-Overview of changes since NetworkManager-1.46
+Overview of changes since NetworkManager-1.44
=============================================
* Change internal ABI of NMSetting types and NMSimpleConnection. The layout of
these structs was already hidden from public headers since 1.34 and this change
should not be noticeable.
+* Honor udev property ID_NET_AUTO_LINK_LOCAL_ONLY=1 for enabling
+ link local addresses on default wired connection.
=============================================
NetworkManager-1.44
diff --git a/man/NetworkManager.xml b/man/NetworkManager.xml
index bd5429952f..455925ab74 100644
--- a/man/NetworkManager.xml
+++ b/man/NetworkManager.xml
@@ -193,6 +193,24 @@
+
+ NM_AUTO_DEFAULT_LINK_LOCAL_ONLY
+
+ If set to "1" or "true", the
+ automatically generated connections "Wired connection N" will only
+ enable link local addressing for IPv4 and IPv6. This can be useful
+ on thunderbolt devices or host-to-host USB devices.
+
+
+
+
+ ID_NET_AUTO_LINK_LOCAL_ONLY
+
+ Honored and treated the same as if NM_AUTO_DEFAULT_LINK_LOCAL_ONLY
+ were set.
+
+
+
diff --git a/src/core/devices/nm-device-ethernet.c b/src/core/devices/nm-device-ethernet.c
index aedacc248b..1b6101d107 100644
--- a/src/core/devices/nm-device-ethernet.c
+++ b/src/core/devices/nm-device-ethernet.c
@@ -1707,6 +1707,7 @@ complete_connection(NMDevice *device,
static NMConnection *
new_default_connection(NMDevice *self)
{
+ const char *link_local_only = NULL;
NMConnection *connection;
NMSettingsConnection *const *connections;
NMSetting *setting;
@@ -1714,7 +1715,6 @@ new_default_connection(NMDevice *self)
struct udev_device *dev;
const char *perm_hw_addr;
const char *iface;
- const char *uprop = "0";
gs_free char *defname = NULL;
gs_free char *uuid = NULL;
guint i, n_connections;
@@ -1763,10 +1763,13 @@ new_default_connection(NMDevice *self)
/* Check if we should create a Link-Local only connection */
dev = nm_platform_link_get_udev_device(nm_device_get_platform(NM_DEVICE(self)),
nm_device_get_ip_ifindex(self));
- if (dev)
- uprop = udev_device_get_property_value(dev, "NM_AUTO_DEFAULT_LINK_LOCAL_ONLY");
+ if (dev) {
+ link_local_only = udev_device_get_property_value(dev, "NM_AUTO_DEFAULT_LINK_LOCAL_ONLY");
+ if (!link_local_only)
+ link_local_only = udev_device_get_property_value(dev, "ID_NET_AUTO_LINK_LOCAL_ONLY");
+ }
- if (_nm_utils_ascii_str_to_bool(uprop, FALSE)) {
+ if (_nm_utils_ascii_str_to_bool(link_local_only, FALSE)) {
setting = nm_setting_ip4_config_new();
g_object_set(setting,
NM_SETTING_IP_CONFIG_METHOD,