udev: net-name-slot - disable by kernel command line switch
authorTom Gundersen <teg@jklm.no>
Sun, 17 Mar 2013 04:23:33 +0000 (13:23 +0900)
committerTom Gundersen <teg@jklm.no>
Mon, 18 Mar 2013 17:28:59 +0000 (18:28 +0100)
The properties will still be set in the udev database, but they will not be used
for setting the interface names. As for the other kernel commandline switches,
we allow it to be prefixed by 'rd.' to only apply in the initrd.

TODO
man/systemd-udevd.service.xml
rules/80-net-name-slot.rules

diff --git a/TODO b/TODO
index fcc3471..c73e8dc 100644 (file)
--- a/TODO
+++ b/TODO
@@ -28,8 +28,6 @@ Fedora 19:
 * cgroup attrs:
   - update dbus interface docs in wiki
 
-* kernel cmdline switch to turn off predictable network interface names
-
 * journal is not closed properly at shutdown when run in a container?
 
 * localed:
index 35e2543..18734ee 100644 (file)
           non-working kernel modules.</para>
         </listitem>
       </varlistentry>
+      <varlistentry>
+        <term><varname>net.predictable-names=</varname></term>
+        <term><varname>rd.net.predictable-names=</varname></term>
+        <listitem>
+          <para>Rename network interfaces to give them predictable names
+          when possible. Defaults to 1.</para>
+        </listitem>
+      </varlistentry>
     </variablelist>
  </refsect1>
 
index 2834e82..e83eb3f 100644 (file)
@@ -4,6 +4,11 @@ ACTION=="remove", GOTO="net_name_slot_end"
 SUBSYSTEM!="net", GOTO="net_name_slot_end"
 NAME!="", GOTO="net_name_slot_end"
 
+IMPORT{cmdline}="net.predictable-names"
+ENV{net.predictable-names}=="0", GOTO="net_name_slot_end"
+IMPORT{cmdline}="rd.net.predictable-names"
+ENV{rd.net.predictable-names}=="0", TEST=="/etc/initrd-release", GOTO="net_name_slot_end"
+
 NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
 NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
 NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"