chiark / gitweb /
udev: net_setup - clarify reason for failure of persistent mac address policy
authorTom Gundersen <teg@jklm.no>
Fri, 6 Feb 2015 07:36:17 +0000 (08:36 +0100)
committerTom Gundersen <teg@jklm.no>
Fri, 6 Feb 2015 07:37:13 +0000 (08:37 +0100)
man/systemd.link.xml
src/udev/net/link-config.c

index 2cfe710..d5c8b99 100644 (file)
                 nothing is done. Otherwise, a new MAC address is
                 generated which is guaranteed to be the same on every
                 boot for the given machine and the given device, but
-                which is otherwise random.</para>
+                which is otherwise random. This feature depends on ID_NET_NAME_*
+                properties existing for the link, on hardware where these
+                properties are not set the generation of a persistent mac address
+                will fail.</para>
               </listitem>
             </varlistentry>
             <varlistentry>
index ad5b956..8b3dc45 100644 (file)
@@ -438,9 +438,10 @@ int link_config_apply(link_config_ctx *ctx, link_config *config,
                 case MACPOLICY_PERSISTENT:
                         if (mac_is_random(device)) {
                                 r = get_mac(device, false, &generated_mac);
-                                if (r == -ENOENT)
+                                if (r == -ENOENT) {
+                                        log_warning_errno(r, "Could not generate persistent MAC address for %s: %m", old_name);
                                         break;
-                                else if (r < 0)
+                                else if (r < 0)
                                         return r;
                                 mac = &generated_mac;
                         }
@@ -448,9 +449,10 @@ int link_config_apply(link_config_ctx *ctx, link_config *config,
                 case MACPOLICY_RANDOM:
                         if (!mac_is_random(device)) {
                                 r = get_mac(device, true, &generated_mac);
-                                if (r == -ENOENT)
+                                if (r == -ENOENT) {
+                                        log_warning_errno(r, "Could not generate random MAC address for %s: %m", old_name);
                                         break;
-                                else if (r < 0)
+                                else if (r < 0)
                                         return r;
                                 mac = &generated_mac;
                         }